1、第 8 章可编程逻辑器件实训实训8可编程逻辑器件可编程逻辑器件8.1概述概述8.2可编程逻辑器件的结构可编程逻辑器件的结构8.3PAL器件结构及其应用器件结构及其应用8.4GAL器件结构及其应用器件结构及其应用8.5现场可编程门阵列现场可编程门阵列FPGA简介简介第 8 章可编程逻辑器件实训实训8 用用GAL设计数字电路设计数字电路1.实训目的(1)使用GAL设计一个二输入与门和异或门的电路。(2)掌握GAL的使用方法,基本学会使用ABEL语言编写源程序。(3)巩固ALL-07编程器的使用方法,掌握对GAL芯片的硬件编程方法。第 8 章可编程逻辑器件2.设备和器件实训设备:386电脑,ALL-
2、07编程器,ABEL编译软件和ACCESS硬件编程软件,直流电源,示波器(或逻辑试电笔)。实训器件:GAL16V8一片,面包板一块,导线若干。第 8 章可编程逻辑器件3.实训步骤与要求1)编写源程序使用GAL16V8设计一个二输入与门和异或门的电路,设输入信号为A、B,输出为X、Y,X=AB,Y=AB。在EDIT下用ABEL语言编写源程序如下:module_GATE 标头段,命名模块“GATE”,给模块一个标题 title example of gal第 8 章可编程逻辑器件 declarations GATE device p16v8s;定义使用器件GAL16V8 A,B pin 1,2;定
3、义管脚的分配使用情况 X,Y pin 17,18;Equations X=A&B;用方程来描述电路的逻辑关系,“&”代表与运算 Y=A$B;“$”代表异或运算第 8 章可编程逻辑器件 Test_vectors(A,BX,Y)测试向量段,用来验证逻辑设计的功能 0,00,0;0,10,1;1,0-0,1;1,1-1,0;end GATE 模块GATE结束第 8 章可编程逻辑器件2)编译源程序,生成.JED文件在DOS状态下,键入“ABEL filename”并回车,就可以对ABEL程序进行编译。编译后如果源程序有错误,编译系统会自动生成文本文件filename.LST,该文件包含有错误说明。根据
4、错误说明在EDIT中修改源程序,对修改后的源程序重新编译,直到没有错误为止。第 8 章可编程逻辑器件3)硬件编程,将.JED文件写入GAL芯片中(1)插入芯片。在编程器中插入GAL16V8并固定,注意芯片一定要按照编程器上的标识插在正确的位置。打开编程器的电源开关。(2)进入硬件编程程序。打开计算机,执行ACCESS命令,即可进入编程程序,在菜单DEVICE下选择“PLD”,执行PLD的硬件编程程序,选择生产厂家和芯片型号。第 8 章可编程逻辑器件(3)检查GAL的内容。选好合适的芯片类型并回车后,就进入到编程界面(如果所选芯片类型有误,在此选择“M”和“T”可以修改芯片的生产厂家和类型)。键
5、入“B”(BLANK CHECK),可以检查GAL的内容是否为空。检查完成若显示“OK”,则说明其内容为空,可以进行步骤4);否则说明GAL中有信息,不能写入,需要擦除后再进行写入操作。键入“E”(ERASE)即可完成擦除操作。第 8 章可编程逻辑器件(4)对GAL写入内容。键入“2”,将filename.JED文件调入缓冲区。此时,可以通过观察缓冲区的内容来查看待编程的GAL16V8的2048(32行64列,见图8.17)个可编程单元的编程情况。键入“P”,开始按照缓冲区的内容对GAL进行编程。第 8 章可编程逻辑器件4)芯片功能该芯片经过编程后,就是一个二输入的与门和异或门,根据源程序,G
6、AL16V8的1、2脚分别为输入A、B端,17、18脚分别为与门输出X和异或门输出Y。可将编程后的GAL16V8取下,接上电源和地线,根据两个门的真值表验证其逻辑关系是否正确。第 8 章可编程逻辑器件4.实训总结与分析(1)GAL16V8的开发是通过编程器和相应的开发软件来完成的。(2)本实训的软件是ABEL编译软件,其作用是将在DOS状态下编辑的ABEL源程序翻译为.JED文件,该文件是编程器对GAL进行硬件编程所需的数据。这是实训步骤2)所进行的工作。第 8 章可编程逻辑器件(3)编程器可以将.JED文件写入GAL芯片,即实训步骤3)所进行的工作。(4)ABEL源程序是在DOS下编写的,实
7、训步骤1)中的程序可以在EDIT下完成。源程序的编写有一定的要求,读者可参考有关ABEL的书籍,这里只做简单的介绍。第 8 章可编程逻辑器件在本设计中,因为电路非常简单,所以只有一个模块。每个模块以module开始,以end结束。每个模块都由标头段、定义段、逻辑描述段、测试向量段和结束语句段组成。第 8 章可编程逻辑器件标头段的主要作用是命名模块,并给模块一个标题。例如程序中的以下语句:module GATE title example of gal就是标头段。第 8 章可编程逻辑器件ABEL分别为GAL16V8和GAL20V8提供了3个器件文件,选择器件时可依据以下规则:若设计组合逻辑,且每
8、个输出需8个乘积项,则选择P16V8S或P28V8S;若设计带反馈的组合逻辑,则选择P16V8C或P28V8C,每个输出只能有7个乘积项;若设计时序逻辑,则选择P16V8R或P28V8R。第 8 章可编程逻辑器件逻辑描述段用来描述电路的逻辑关系,可以用方程、真值表和状态图等描述电路的逻辑关系。本程序采用方程进行描述。测试向量段是可选段,用于验证逻辑设计的功能。结束段用于标识一个模块的结束,它的关键字为end。第 8 章可编程逻辑器件8.1 概概 述述可编程逻辑器件(PLD)是一种标准化、通用的数字电路器件,集门电路、触发器、多路选择开关、三态门等器件和电路连线于一身。PLD使用起来灵活方便,可
9、以根据逻辑设计要求来设定输入与输出之间的关系,也就是说,PLD是一种由用户配置某种逻辑功能的器件。第 8 章可编程逻辑器件8.2 可编程逻辑器件的结构可编程逻辑器件的结构8.2.1 PLD的基本结构的基本结构PLD是一种可由用户编程的逻辑器件,大多数标准的PLD器件是由两个逻辑门阵列(与阵列和或阵列)组成的。PLD的每个输出都是输入的“乘积和”的函数。PLD的基本结构框图如图8.1所示。第 8 章可编程逻辑器件图 8.1 PLD的基本结构框图第 8 章可编程逻辑器件图8.2表示PLD的典型输入缓冲器,它的两个输出B、C分别是输入A的原码和反码,即B=A,C=A。图8.3给出了与门的传统表示法和
10、PLD表示法。图8.4给出了或门的传统表示法和PLD表示法。图8.5表示了PLD的三种连接方式:实点表示固定连接;“”表示可编程连接;在交叉点若无实点或“”,则表示断开连接。第 8 章可编程逻辑器件图 8.2 PLD的输入缓冲器第 8 章可编程逻辑器件图 8.3 与门表示法第 8 章可编程逻辑器件图 8.4 或门表示法第 8 章可编程逻辑器件图 8.5 PLD的三种连接方式第 8 章可编程逻辑器件1.PROM结构PROM是由固定的“与”阵列和可编程的“或”阵列组成的,如图8.6所示。与阵列为全译码方式,当输入为I1In时,与阵列的输出为n个输入变量可能组合的全部最小项,即共有2n个最小项。或阵
11、列是可编程的,如果PROM有m个输出,则包含有m个可编程的或门,每个或门有2n个输入可供选用,由用户编程来选定。第 8 章可编程逻辑器件图 8.6 PROM结构第 8 章可编程逻辑器件2.PLA(Programmable Logic Array)结构PLA是处理逻辑函数的一种更有效的方法,其结构与ROM类似,但它的与阵列是可编程的,且不是全译码方式,而是部分译码方式只产生函数所需要的乘积项。或阵列也是可编程的,它选择所需要的乘积项来完成或功能。在PLA的输出端产生的逻辑函数是简化的与或表达式,图8.7为 PLA结构。第 8 章可编程逻辑器件图 8.7 PLA结构第 8 章可编程逻辑器件3.PA
12、L(Programmable Array Logic)结构PAL的基本结构是由可编程的与阵列和固定的或阵列组成的,如图8.8所示。这种结构形式为实现大多数逻辑函数提供了最有效的方法。PAL的每一个输出包含的乘积项数目是由固定连接的或阵列提供的,一般函数包含3至4个乘积项,而PAL可提供7至8个乘积项的与或输出。第 8 章可编程逻辑器件图 8.8 PAL结构第 8 章可编程逻辑器件4.GAL(Generic Array Logic)结构市场上供应较多的是GAL16V8、GAL20V8,GAL22V10,这里“16(20、22)”是指可使用的输入端数,“V”表示通用型,“8(10)”表示输出端数。
13、对上述4种结构的比较列于表8.1中。第 8 章可编程逻辑器件第 8 章可编程逻辑器件8.2.2 FPGA(Field Programmable Gate Array)的结构一类是逻辑单元阵列结构LCA(Logic Cell Array),主要由三部分组成:可组态逻辑块CLB(Configurable Logic Block)、可编程输入/输出模块IOB(Input-Output Block)和可编程内部连线PIC(Programmable Interconnect)。另一类是可擦除EPLD(Erasable PLD)。第一类结构的平面示意图如图8.9所示。第 8 章可编程逻辑器件图 8.9 L
14、CA结构第 8 章可编程逻辑器件 8.3 PAL器件结构及其应用器件结构及其应用8.3.1 PAL器件结构器件结构1.专用输出结构图8.10是专用输出结构的逻辑图。这种结构是将基本门阵列的输出加上反相器得到的。基本门阵列的输出结构也属于专用输出结构。第 8 章可编程逻辑器件图 8.10 专用输出结构第 8 章可编程逻辑器件2.异步I/O输出结构图8.11是异步I/O输出结构的逻辑图。该图的或门实现7个与项的逻辑加,并输出到三态门G3。它受到与门G2输出(第一个与项)的控制。如果编程时使此与项常为0,即该与门的所有输入端都接通,则三态门处于高阻态,此时,I/O端可作为输入端,G4为输入缓冲器。第
15、 8 章可编程逻辑器件图 8.11 异步I/O输出结构第 8 章可编程逻辑器件3.寄存器输出结构图8.12是寄存器输出结构的逻辑图。这种结构是在基本门阵列基础上加入D触发器得到的。在时钟CLK的上升沿,或门的输出存入D触发器,同时Q端通过OE控制的三态门G3输出。另外,通过缓冲器G2反馈至与门阵列,这样PAL便成了具有记忆功能的时序网络,从而满足了设计时序电路的需要。第 8 章可编程逻辑器件图 8.12 寄存器输出结构 第 8 章可编程逻辑器件4.异或结构图8.13是异或输出结构的逻辑图。这种结构是把与项之和分成了两部分,经异或运算后,在CP的上升沿将异或结果存入D触发器,通过OE控制的三态门
16、G6输出。这样处理后,它除了具有寄存器输出结构的特征外,还能实现时序逻辑电路的保持功能。第 8 章可编程逻辑器件图 8.13 异或输出结构第 8 章可编程逻辑器件5.算术选通反馈结构算术选通反馈结构是在异或结构基础上加入反馈选通电路得到的,如图8.14所示。反馈选通电路可以对反馈项和输入项A实现4种逻辑加操作,反馈选通的4个或门输出分别为A+Q、A+Q、A+、A+。这4种结果反馈到与门阵列之后,可获得更多的逻辑组合。第 8 章可编程逻辑器件图 8.14 算术选通反馈结构第 8 章可编程逻辑器件8.3.2 PAL器件举例及应用器件举例及应用图8.15是PAL16H8的逻辑图,它有6432个熔丝点
17、,输出电路由8个D触发器构成,是寄存器输出结构。第 8 章可编程逻辑器件图 8.15 PAL16H8逻辑图第 8 章可编程逻辑器件图8.16是PAL14H4的应用实例连接图。PAL14H4是基本的输出结构,对于该器件的开发,可以按照实训8中的方法来实现,即:首先编写正确的ABEL源程序,然后进行编译,生成相应的.JED文件,最后通过编程器根据.JED文件对芯片写入,就可以得到与.JED 文件完全对应的实例图8.16。类似于图8.16的表示方法也是.JED文件的一种熔丝图表现。第 8 章可编程逻辑器件图 8.16 PAL14H4的应用实例接线图第 8 章可编程逻辑器件图8.16中交叉处的“”表示
18、熔丝保留,意味着该与线含有与竖线对应的变量;交叉处无“”表示熔丝烧断,则该与线不含有相应的变量;如果一条与线上的熔丝全保留,则这条与线的值恒为0;如果一条与线上的熔丝全烧断,则这条与线的值恒为1。第 8 章可编程逻辑器件按图8.16的接法,I1、I2、I3、I4为4个输入量,O1、O2、O3、O4为4个输出量。标有“NC”符号的输入端,表示该输入端不接输入信号。按照上述分析,输入输出的逻辑关系为:第 8 章可编程逻辑器件8.4 GAL器件结构及其应用器件结构及其应用8.4.1 GAL芯片的特点芯片的特点(1)采用E2CMOS工艺,最大运行功耗45 mA,最大维持功耗35 mA,存取速度高达15
19、25 ns,具有可重复擦除和编程的功能。(2)具有输出逻辑宏单元(OLMC),可灵活设计为各种复杂逻辑。第 8 章可编程逻辑器件(3)GAL16V8可以模拟20引脚的PAL器件,可代替21种PAL产品;GAL20V8可以模拟24引脚的PAL器件,可代替21种PAL产品。(4)具有高速编程、重新编程的功能。一个GAL芯片重新编程的次数大于100次。第 8 章可编程逻辑器件(5)具有加密单元,可防止复制;具有电子标签,可用作识别标志;可预置或加电复位全部寄存器,具有100%的功能可实验性。数据保存期可超过20年。第 8 章可编程逻辑器件8.4.2 GAL常用芯片的结构常用芯片的结构1.GAL16V
20、8实训中使用的GAL16V8是有20个引脚的集成电路芯片,图8.17 示出了它的芯片逻辑框图。(1)GAL16V8的29脚是输入端,每个输入端有一个输入缓冲器。因为它的8个输出有时可用作反馈输入,因此输入端最多可有16个。第 8 章可编程逻辑器件(2)它有8个输出逻辑宏单元(OLMC)。输出引脚为1219。OLMC包括“与”门、“或”门、“异或”门、D触发器,两个2选1、两个4选1多路选择器、输出缓冲器。(3)它包括32列64行的“与”阵列。32列表示8个输入的原变量和反变量及8个输出反馈信号的原变量和反变量,相当于有32个输入变量。64行表示8个输出的8个乘积项,相当于阵列有64个乘积项。故
21、有2048个可编程单元。第 8 章可编程逻辑器件(4)它的1脚为系统时钟CLK。(5)它的11脚为输出三态公共控制端OE。另外,它的10脚为公共地,20脚为直流电源VCC(接直流+5 V)。第 8 章可编程逻辑器件图 8.17 GAL16V8 逻辑图第 8 章可编程逻辑器件2.GAL20V8(1)GAL20V8的211脚、14、23脚皆为输入端,因为它的8个输出有时可用作反馈输入,因此输入端最多可有20个。(2)它也有8个同样的输出逻辑宏单元(OLMC),对应8个输出引脚1522。OLMC的内部结构与GAL16V8的相同。第 8 章可编程逻辑器件(3)GAL20V8比GAL16V8多了4条输入
22、线,因此与阵列有40列64行,共有2560个可编程单元(码点)。(4)它的1脚为系统时钟CLK。(5)它的13脚为输出三态公共控制端OE。另外,它的12脚为公共地,24脚为直流电源VCC(接直流+5 V)。第 8 章可编程逻辑器件8.4.3 输出逻辑宏单元(输出逻辑宏单元(OLMC)1.OLMC的结构OLMC的结构示于图8.18。OLMC中的或门G1完成或操作,异或门G2完成极性选择,同时还有一个D触发器和4个多路选择器。4个多路选择器的功能叙述如下。第 8 章可编程逻辑器件图 8.18 OLMC的结构第 8 章可编程逻辑器件1)积项选择多路选择器(PTMUX)每个OLMC都有来自与门阵列的8
23、个乘积项输入,其中7个直接作为或门的输入,最上面的乘积项作为PTMUX的一个输入。PTMUX在AC0、AC1(n)的控制下,选择以地或者该乘积项作为或门的一个输入。第 8 章可编程逻辑器件2)输出选择多路选择器(OMUX)或门G1的输出送给异或门G2,由XOR(n)控制输出所需极性的信号。该输出一方面直接送给OMUX,作为逻辑运算的组合型输出结果;另一方面送入D触发器,触发器的输出Q作为逻辑运算的寄存器结果也送入OMUX。OTMUX在AC0、AC1(n)的控制下,选择组合型或寄存器型作为OMUX的输出。第 8 章可编程逻辑器件3)输出允许控制多路选择器(TSMUX)OMUX的输出经过输出三态门
24、G3后才是实际输出。三态门G3的控制信号是通过TSMUX来选择的。在AC0、AC1(n)的控制下,可选择VCC、地、OE或者一个乘积项中的一个作为三态门G3的控制信号。第 8 章可编程逻辑器件4)反馈多路选择器(FMUX)该多路选择器在AC0、AC1(n)的控制下,选择地、邻级OLMC的输出、本级OLMC的输出和D触发器的作为反馈信号,送回与阵列作为输入信号。GAL16V8和GAL20V8的结构控制字如图 8.19 所示。第 8 章可编程逻辑器件图 8.19 GAL16V8和GAL20V8的结构控制字第 8 章可编程逻辑器件控制字共82位,分别为:64位积项控制位PT0PT63,分别控制与阵列
25、的64行,以屏蔽某些不用的积项;1位同步位SYN,确定GAL器件是寄存器输出或者纯组合型输出;1位结构控制位AC0,是8个OLMC公用的;8位结构控制位AC1(n),每个OLMC是单独的;8位极性控制位XOR(n),控制异或门的输出极性。第 8 章可编程逻辑器件2.OLMC的五种工作方式1)专用组合输入方式SYN、AC0、AC1(n)分别为1、0、1时,相应单元的OLMC的电路结构为专用组合输入方式。该方式中,OLMC是组合逻辑电路。第 8 章可编程逻辑器件2)专用组合输出方式SYN、AC0、AC1(n)分别为1、0、0时,相应单元的OLMC的电路结构为专用组合输出方式。该方式中,OLMC是组
26、合逻辑电路。1、11脚和29脚一样,可作为普通的数据输入使用;输出三态门控制信号接VCC,输出始终允许;相应的I/O只能作纯组合输出,不能作反馈输入使用,输出函数的或项最多为8个。第 8 章可编程逻辑器件【例8.1】利用GAL器件设计一个8输入的与门和一个8输入的或非门。解 此电路要求16个输入端和2个输出端,所以用GAL16V8就可以完成设计。其逻辑表达式为:第 8 章可编程逻辑器件3)带反馈的组合型输出方式SYN、AC0、AC1(n)分别为1、1、1时,相应单元的OLMC的电路结构为反馈组合输出方式。该方式中,1、11脚和29脚一样,作为普通的数据输入端使用。第 8 章可编程逻辑器件输出三
27、态门控制信号是第一个与项,故输出函数的或项最多为7个;1318脚的 I/O 端既可输出,也可使用本单元的反馈开关作反馈输入使用;12、19脚因无反馈开关使用(分别被11脚、1脚占用)只能作为输出而不能作为反馈输入。第 8 章可编程逻辑器件4)时序逻辑中的组合输出方式SYN、AC0、AC1(n)分别为0、1、1时,相应单元的OLMC为时序逻辑中的组合输出方式。此方式下,引脚1和11分别为CLK和OE输入信号;12、19和1318脚既可作输出,也可作反馈输入使用,输出函数的或项最多为7个。第 8 章可编程逻辑器件5)时序型输出方式SYN、AC0、AC1(n)分别为0、1、0时,被组态的OLMC的电
28、路结构为时序型输出方式。该方式中,引脚1和11分别为CLK和OE输入信号,8个OLMC可以都是时序型输出的010方式,每个I/O端既可作输出也可利用本单元的反馈开关作反馈输入,输出函数的或项最多为8个。第 8 章可编程逻辑器件GAL20V8是24引脚的芯片,输入最多有20个,输出有8个,即1522脚的8个 I/O 端,它用于输入数量较多的数字系统设计。GAL20V8同样具有上述5种工作方式,也具有8个相同的OLMC,其工作原理和使用方法都和GAL16V8基本相同。第 8 章可编程逻辑器件8.4.4 使用使用GAL器件设计数字系统简介器件设计数字系统简介PLD器件的开发过程主要由两部分组成:一是
29、硬件开发,包括编程器和PC机或工作站的开发;二是开发软件。PLD开发软件的基本功能应包括编译、模拟、测试和验证等功能,大多数的开发软件和硬件编程器都支持GAL器件的设计。第 8 章可编程逻辑器件 8.5 现场可编程门阵列现场可编程门阵列FPGA简介简介8.5.1 Xilinx FPGA的结构简介的结构简介1.LCA结构如图8.9所示,LCA由CLB构成二维阵列,块之间有纵向、横向两种布线通道,其连线的可编程资源由SRAM控制,芯片的四周是输入/输出模块,这些IOB也是由逻辑门和触发器等组成。第 8 章可编程逻辑器件2.可编程输入/输出块IOB 每一个IOB可以根据需要,通过编程控制的存储器单元
30、来定义3种不同的功能:输入、输出和双向。当IOB作为输入接口使用时,输入信号通过缓冲器后直接进入芯片内部,也可通过寄存器输入。第 8 章可编程逻辑器件3.可编程内部连接线PIC可编程内部连接线主要由金属线段组成,它分布于CLB阵列周围,通过由SRAM配置控制的可编程开关实现系统逻辑的布线。它主要有三种类型的连线:内部连线、长线和直接连线。XC3000系列的长线含有复用总线和宽位“线与”功能。第 8 章可编程逻辑器件直接连线资源常被用来进行CLBCLB之间、CLBIOB之间的连接,具有布线短、延迟小的特点。长线用于传递传输距离长的或要求偏移率低的信号。第 8 章可编程逻辑器件8.5.2 Xilinx FPGA的开发过程简介的开发过程简介FPGA的开发过程如下:因为FPGA中SRAM的配置数据在芯片关机或掉电后将丢失,所以首先要将FPGA内部的逻辑硬件连结关系数据烧制在一片单独的EPROM中。第 8 章可编程逻辑器件在印刷电路板上,该EPROM与FPGA芯片以并行接口的方式实现连接,这样在加电或复位时,EPROM中的结构码内容就可以以并行方式首先打入FPGA芯片的SRAM中,从而完成对FPGA芯片的构造。此后EPROM即可与FPGA芯片脱钩,FPGA可以开始独立工作。