实训报告课程名称EDA技术与应用实训专业班级电信1311学号2013118504111学生姓名杨幼周指导教师胡寅实训地点明虹楼6022016年6月8日实训成绩批阅教师日期1.可编程逻辑器件GAL16V8功能介绍专用集成电路ASIC是一种专门为某一应用领域或为专门用户需要而设计制造的LSI或VLSI电路。可编程逻辑器件(PLD)是ASIC的一个重要分支,厂家生产半定制电路,用户利用软、硬件开发工具对器件进行设计和编程,使之实现所需要的逻辑功能。可编程器件按集成度分有低密度PLD(LDPLD)和高密度PLD(HDPLD)两类。LDPLD主要产品有PROM、现场可编程逻辑阵列(FPLA)、可编程阵列逻辑(PAL)和通用阵列逻辑(GAL)等。可编程通用阵列逻辑(GAL)是在PAL基础上发展起来的新一代逻辑器件,它继承了PAL的与或阵列结构,又利用灵活的输出逻辑宏单元OLMC来增强输出功能。(1)GAL的基本结构可编程通用阵列逻辑器件GAL16V8内部逻辑结构及相应引脚分布。(2)GAL16V8内部逻辑结构由5部分组成①8个输入缓冲器(引脚2-9作为输入)。②8个输出缓冲器(引脚12-19作为输出缓冲器的输出)。③8个反馈/输入缓冲器(将输出反馈给与门阵列,或将输出端用作为输入端)。④可编程与门阵列(由8×8个与门构成,形成64个乘积项,每个与门有32个输入,其中16个来自输入缓冲器,另16个来自反馈/输入缓冲器)。⑤8个输出逻辑宏单元(OLMC12-19,或门阵列包含其中)。除以上5个组成部分外,该器件还有一个系统时钟CK的输入端(引脚1)、一个输出三态控制端OE(引脚11)、一个电源VCC端(引脚20)和一个接地端(引脚10)。(3)GAL的每一个输出端都对应有一个输出逻辑宏单元OLMC。OLMC主要由4部分组成:①或门阵列(8输入或门阵列,其中一个输入受控制。②异或门(异或门用于控制输出信号极性,XOR(n)=0输出低电平有效,XOR(n)=1输出高电平效,n为输出引脚号)③正边沿触发的D触发器(锁存或门输出状态,使GAL适用于时序逻辑电路)。④4个数据选择器(MUX)。数据选择器包括乘积项数据选择器PTMUX、三态数据选择器STMUX、反馈数据选择器FMUX和输出数据选择器OMUX。(4)GAL16V8的结构控制字GAL16V8的各种配置是经结构控制字来控制的。控制字中XOR(n)和AC1(n)里的数字n分别表示对输出引脚号为n的OLMC控制。结构控制字中各位功能如下:①同步位SYN。SYN用以确定GAL器件具有组合逻辑输出功能还是时序逻辑输出功能。SYN=1,具有组合型输出能力;SYN=0,GAL具有寄存器型输出能力。②结构控制位ACO。这一位ACO对8个OLMC是公共的,它与各OLMC(n)的各自AC1(n)一起控制OLMC(n)中的各个数据选择器。③结构控制位AC1。共有8个AC1,每个AC1(n)控制一个OLMC(n)。④极性控制位XOR(n)。8个XQR通过相应OLMC中的异或门实现对各个输出极性的控制。⑤乘积项(PT)禁止位。共有64位,分别控制与门阵列的64个乘积项(PT0-PT63)。通过对结构控制字的编程,可以控制GAL的工作模式。(5)GAL16V8的工作模式GAL16V8有3种工作模式,即简单型、复杂型和寄存器型。在简单型工作模式下,GAL内无反馈通路。在复杂型工作模式下,GAL内存在反馈通路。在寄存器型工作模式下,至少有一个OLMC工作在寄存器输出模式。2.使用Wincupl软件开发7段数码管译码器程序安装前要先删除vbajet32.dll文件NameCS;PartNo00;Date2016-6-7;Revision01;DesignerYYZ;CompanyCSXY;AssemblyNone;Location0;Deviceg16v8a;/****************INPUTPINS*********************/PIN1=I0;/**/PIN2=I1;/**/PIN3=I2;/**/PIN4=I3;/**//****************OUTPUTPINS*********************/PIN19=Q0;/**/PIN18=Q1;/**/PIN17=Q2;/**/PIN16=Q3;/**/PIN15=Q4;/**/PIN14=Q5;/**/PIN13=Q6;/**/FIELDINPUT=[I3,I2,I1,I0];FIELDOUTPUT=[Q6,Q5,Q4,Q3,Q2,Q1,Q0];TABLEINPUT=OUTPUT{'b'0001='b'0000110;3.使用proteus仿真软件仿真7段数码管译码器器件搜索器件安装测试电路4.使用Wincupl软件开发24进制计数器程序Name24;PartNo00;Date2016-6-7;Revision01;DesignerYYZ;CompanyCSXY;AssemblyNone;Location0;Deviceg16v8a;Pin1=clk;Pin2=clr;Pin3=dir;Pin11=!oe;Pin12=carry;Pin[13..19]=[Q6..0];fieldcount=[Q6..0];$defineS0'b'0000000$defineS1'b'0000001$defineS2'b'0000010$defineS3'b'0000011$defineS4'b'0000100$defineS5'b'0000101$defineS6'b'0000110$defineS7'b'0000111$defineS8'b'0001000$defineS9'b'0001001$defineS10'b'0010000$defineS11'b'0010001$defineS12'b'0010010$defineS13'b'0010011$defineS14'b'0010100$defineS15'b'0010101$defineS16'b'0010110$defineS17'b'0010111$defineS18'b'0011000$defineS19'b'0011001$defineS20'b'0100000$defineS21'b'0100001$defineS22'b'0100010$defineS23'b'0100011fieldmode=[clr,dir];up=mode:0;down=mode:1;clear=mode:[2..3];Sequencedcount{presentS0ifupnextS1;presentS1ifupnextS2;presentS2ifupnextS3;presentS3ifupnextS4;presentS4ifupnextS5;presentS5ifupnextS6;presentS6ifupnextS7;presentS7ifupnextS8;presentS8ifupnextS9;presentS9ifupnextS10;presentS10ifupnextS11;presentS11ifupnextS12;presentS12ifupnextS13;presentS13ifupnextS14;presentS14ifupnextS15;presentS15ifupnextS16;presentS16ifupnextS17;presentS17ifupnextS18;presentS18ifupnextS19;presentS19ifupnextS20;presentS20ifupnextS21;presentS21ifupnextS22;presentS22ifupnextS23;presentS23ifupnextS0;ifclearnextS0;ifupoutcarry;}5.使用proteus仿真软件仿真24进制计数器小时计时部分从0-23进行循环6.使用Wincupl软件开发60进制计数器程序Name60;PartNo00;Date2016-6-7;Revision01;DesignerYYZ;CompanyCSXY;AssemblyNone;Location0;Deviceg16v8a;Pin1=clk;Pin2=clr;Pin3=dir;Pin11=!oe;Pin12=carry;Pin[13..19]=[Q6..0];fieldcount=[Q6..0];$defineS0'b'0000000$defineS1'b'0000001$defineS2'b'0000010$defineS3'b'0000011$defineS4'b'0000100$defineS5'b'0000101$defineS6'b'0000110$defineS7'b'0000111$defineS8'b'0001000$defineS9'b'0001001$defineS10'b'0010000$defineS11'b'0010001$defineS12'b'0010010$defineS13'b'0010011$defineS14'b'0010100$defineS15'b'0010101$defineS16'b'0010110$defineS17'b'0010111$defineS18'b'0011000$defineS19'b'0011001$defineS20'b'0100000$defineS21'b'0100001$defineS22'b'0100010$defineS23'b'0100011$defineS24'b'0100100$defineS25'b'0100101$defineS26'b'0100110$defineS27'b'0100111$defineS28'b'0101000$defineS29'b'0101001$defineS30'b'0110000$defineS31'b'0110001$defineS32'b'0110010$defineS33'b'0110011$defineS34'b'0110100$defineS35'b'0110101$defineS36'b'0110110$defineS37'b'0110111$defineS38'b'0111000$defineS39'b'0111001$defineS40'b'1000000$defineS41'b'1000001$defineS42'b'1000010$defineS43'b'1000011$defineS44'b'1000100$defineS45'b'1000101$defineS46'b'1000110$defineS47'b'1000111$defineS48'b'1001000$defineS49'b'1001001$defineS50'b'1010000$defineS51'b'1010001$defineS52'b'1010010$defineS53'b'1010011$defineS54'b'1010100$defineS55'b'1010101$defineS56'b'1010110$defineS57'b'1010111$defineS58'b'1011000$defineS59'b'1011001fieldmode=[clr,dir];up=mode:0;down=mode:1;clear=mode:[2..3];Sequencedcount{presentS0ifupnextS1;presentS1ifupnextS2;presentS2ifupnextS3;presentS3ifupnextS4;presentS4ifupnextS5;presentS5ifupnextS6;presentS6ifupnextS7;presentS7ifupnextS8;presentS8ifupnextS9;presentS9ifupnextS10;presentS