第7章可编程逻辑器件和现场-数字逻辑-课件_第1页
第7章可编程逻辑器件和现场-数字逻辑-课件_第2页
第7章可编程逻辑器件和现场-数字逻辑-课件_第3页
第7章可编程逻辑器件和现场-数字逻辑-课件_第4页
第7章可编程逻辑器件和现场-数字逻辑-课件_第5页
已阅读5页,还剩223页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章可编程逻辑器件7.1概述7.2可编程逻辑器件基础PLD逻辑表示法逻辑阵列的PLD表示法应用举例通用阵列逻辑GAL第七章可编程逻辑器件7.1概述17.1概述可编程专用集成电路ASIC(ApplicationSpecificIntegratedCircuit)是面向用户特定用途或特定功能的大规模、超大规模集成电路。分类:按功能分为数字的、模拟的、数字和模拟混和三种。按制造方式分为全定制、半定制ASIC、可编程三种。7.1概述可编程专用集成电路ASIC(Application2根据芯片的集成度和结构复杂度分类简单可编程逻辑器件SPLD:集成度小于PALCE22V10或GAL22V10的PLD。特点是都具有可编程的与阵列、不可编程的或阵列、输出逻辑宏单元OLMC和输入输出逻辑单元IOC。复杂可编程逻辑器件CPLD:集成度大于PAL22V10或GAL22V10的PLD都可视为CPLD。CPLD在集成度和结构上呈现的特点是具有更大的与阵列和或阵列,增加了大量的宏单元和布线资源,触发器的数量明显增加。高速的译码器、多位计数器、寄存器、时序状态机、网络适配器、总线控制器等较大规模的逻辑设计可选用CPLD来实现。因此,具有复杂算法的数字滤波器等数字信号处理单元的逻辑设计也可选用这些具有更高集成度CPLD来实现。根据芯片的集成度和结构复杂度分类简单可编程逻辑器件SPLD:3根据芯片的集成度和结构复杂度分类现场可编程逻辑门阵列FPGA:现场可编程门阵列FPGA是集成度和结构复杂度最高的可编程ASIC。运算器、乘法器、数字滤波器、二维卷积器等具有复杂算法的逻辑单元和信号处理单元的逻辑设计可选用FPGA实现。根据芯片的集成度和结构复杂度分类现场可编程逻辑门阵列FPG4可编程ASIC的编程方式可编程ASIC的编程方式有两种,一种是采用专用编程器进行编程,一种是在系统编程。后者甩掉了专用编程器,而且也不用将芯片从电路系统取下,只利用计算机和一组下载电缆就可以在系统编程。Lattice和Xilinx等几家大公司现在都有在系统可编程ASIC产品。在系统编程方式方便了用户。可编程ASIC的编程方式可编程ASIC的编程方式有两种,一种5可编程ASIC的一般开发步骤设计输入(entry)功能模拟(functionsimulation)逻辑分割(partitioning)布局和布线(placeandrouting)时间模拟(timingsimulation)写入下载数据(download)可编程ASIC的一般开发步骤设计输入(entry)6ASIC开发步骤流程图ASIC开发步骤流程图7PLD的逻辑表示PLD中阵列及其阵列交叉点的逻辑表示1.PLD中阵列交叉点的逻辑表示2.PLD中与阵列和或阵列的逻辑表示PLD中基本逻辑单元的PLD表示1.输入缓冲器和反馈缓冲器2.输出极性可编程的异或门3.地址选择可编程的数据选择器4.可编程数据分配器的逻辑表示PLD的逻辑表示PLD中阵列及其阵列交叉点的逻辑表示81.PLD中阵列交叉点的逻辑表示PLD逻辑阵列中交叉点的连接方式采用图7-7所示的几种逻辑表示。图7-71.PLD中阵列交叉点的逻辑表示PLD逻辑阵列中交叉点的连接9(a)表示实体连结,就是行线和列线在这个交叉点处实在连接,这个交叉点是不可编程点,在交叉点处打上黑实点。不可编程点(a)表示实体连结,就是行线和列线在这个交叉点处实在连接,这10(b)表示可编程连接。无论×或表示该符号所在行线和列线交叉处是个可编程点,具有一个可编程单元。在采用熔丝工艺的PLD器件中,器件出厂后用户编程之前,所有可编程点处的熔丝都处于接通状态,习惯上都用×表示熔丝接通,因此可编程点上处处都打×或。可编程点(b)表示可编程连接。无论×或表示该符号所在行线和列11PLD器件被用户编程后,可编程点上的熔丝有的烧断,有的接通。编程后可在编程点上仍打有×,这时的×表示可编程点被编程后熔丝接通。熔丝烧断的可编程点上的×消失,行线和列线不相接,这种情况用图(c)表示。熔丝烧断点PLD器件被用户编程后,可编程点上的熔丝有的烧断,有的接通。12⒉PLD中与阵列和或阵列的逻辑表示与阵列如图(a)所示。在二极管与门的各支路与输出之间接入熔丝。熔丝保留的各支路的输入为有效输入,输出F是熔丝保留各支路输入的与逻辑函数的。⒉PLD中与阵列和或阵列的逻辑表示与阵列如图(a)所示。在二13⒉PLD中与阵列和或阵列的逻辑表示图(b)是PLD表示。图(a)和图(b)是熔丝全部保留的与阵列表示情况。F(A,B,C)=0。⒉PLD中与阵列和或阵列的逻辑表示图(b)是PLD表示。图14⒉PLD中与阵列和或阵列的逻辑表示图(c)是烧断3个熔丝的情况,图(d)是图(c)的PLD表示。可编程或阵列,其构成原理与可编程的与阵列相同。⒉PLD中与阵列和或阵列的逻辑表示图(c)是烧断3个熔丝的15可编程或阵列可编程或阵列,其构成原理与可编程的与阵列相同。可编程或阵列可编程或阵列,其构成原理与可编程的与阵列相同。161.输入缓冲器和反馈缓冲器在PLD中有二种特殊的缓冲器,它们是输入缓冲器和反馈缓冲器,这二种缓冲器有相同的电路构成,图7-10给出它们的PLD表示,它们是单输入、双输出的缓冲器单元,一个是高有效输出端,即同极性输出端。另一个是低有效输出端,即反极性输出端。与曾经学过的输出三态缓冲器不同,虽然输出三态缓冲器也有三个端,但只有一个输入和一个输出端,另一个是使能控制端。图7-101.输入缓冲器和反馈缓冲器在PLD中有二种特殊的缓冲器,它们171.输入缓冲器和反馈缓冲器原则上说,输出三态缓冲器有二个输入端一个输出端。注意二者之间的区别。输入缓冲器和反馈缓冲器输出只有0、1两个逻辑状态。而输出三态缓冲器除了有0、1两个逻辑状态外,还有一个称为高阻(Z)的状态。图7-101.输入缓冲器和反馈缓冲器原则上说,输出三态缓冲器有二个输入182.输出极性可编程的异或门在PLD中为了实现输出极性可编程,常采用图(a)所示的异或门结构。当熔丝烧断,异或门输出极性为低有效,即否则异或门输出高有效Q0=P⊕0=P。2.输出极性可编程的异或门在PLD中为了实现输出极性可编程,192.输出极性可编程的异或门图(b)是编程后熔丝保留,输出极性编程为高有效。图(c)是编程熔丝烧断,输出极性编程为低有效。2.输出极性可编程的异或门图(b)是编程后熔丝保留,输出极203.地址选择可编程的数据选择器地址选择可编程的数据选择器如图7-12所示。地址选择端编程后,若列线与行线相接且接地,其输入为逻辑0。否则,列线与行线断开其输入为逻辑1。根据编程情况,地址选择端的输入有00,01,10,11四种情况。3.地址选择可编程的数据选择器地址选择可编程的数据选择器如图21第7章可编程逻辑器件和现场-数字逻辑-课件224.可编程数据分配器的逻辑表示如图7-13所示。4.可编程数据分配器的逻辑表示如图7-13所示。23在图7-13中核心部分是可编程逻辑分配器根据可编程熔丝S1S0的不同编程情况,乘积项簇分别被分配到n+1号、n号、n-1号、n-2号宏单元。FUSE1正常时(默认状态)不熔断,乘积项簇的信号传不到n号宏单元。若编程后FUSE1熔断,乘积项簇信号可以传到n号宏单元。在图7-13中核心部分是可编程逻辑分配器根据可编程熔丝S1S24如果FUSE2熔断,异或门反极性传输,否则异或门原极性传输,n号宏单元接收信号与乘积项簇信号同相。FUSE2为又一个可编程点。如果FUSE2熔断,异或门反极性传输,否则异或门原极性传输,255.激励方式可编程的时序记忆单元的PLD表示时序记忆单元有二种,即锁存器和触发器。输出的状态只受输入激励信号控制的时序记忆单元是锁存器。只有在时钟信号控制下才能得到受输入激励信号决定的相应输出状态的时序记忆单元是触发器。二种时序记忆单元的根本区别是输出状态的变化是否取决于时钟信号的控制。5.激励方式可编程的时序记忆单元的PLD表示时序记忆单元有二265.激励方式可编程的时序记忆单元的PLD表示由图7-14看出,通过编程,若线与行线断开,其输入为逻辑1。根据编程情况,地址选择端的输入有00,01,10,11四种情况。5.激励方式可编程的时序记忆单元的PLD表示由图7-14看出275.激励方式可编程的时序记忆单元的PLD表示使R/L端为0,Q端的输出状态只与激励信号有关并受D决定,图7-14所示电路为D锁存器。通过编程,若使R/L端为1,图7-14所示电路只有在时钟脉冲信号CLK的驱动下,Q端的状态变化受D端的激励信号决定,该电路具有D触发器功能。5.激励方式可编程的时序记忆单元的PLD表示使R/L端为0,286.PLD中与阵列的缺省表示在PLD器件与阵列中常看到图7-15中给出的几种表示。输出为Z1的与门4个输入变量全部被编程后输入,4个交叉点均画×。因此,6.PLD中与阵列的缺省表示在PLD器件与阵列中常看到图7-296.PLD中与阵列的缺省表示同理:Z2为Z1的缺省表示。这时的阵列交叉点上均未画×,而在与门符号内却画有×,。6.PLD中与阵列的缺省表示同理:Z2为Z1的缺省表示。这时306.PLD中与阵列的缺省表示输出为Z3的与门输入阵列交叉点上无×,与门符号内也无×,这是浮动状态的逻辑表示。浮动输入状态代表与阵列编程后熔丝全部熔断,4个输入全都不同与门相接,相当与门输入悬空,与门输出为高电平,即输出逻辑“1”6.PLD中与阵列的缺省表示输出为Z3的与门输入阵列交叉点上317.双向输入/输出和反馈输入的逻辑表示双向输入/输出和反馈输入结构是PLD结构的特点之一,乘积项Pn+1为三态输出缓冲器的使能端控制信号。由于各阵列交叉点无一个×,呈悬浮状态,n+1号与门输出为逻辑“1”。或阵列输出的Sm信号加在IOm引脚上,作为输出信号。同时,Sm信号又通过反馈缓冲器被反馈到与阵列。这个输出带反馈的组态方式采用图7-16(b)所示的PLD表示。7.双向输入/输出和反馈输入的逻辑表示双向输入/输出和反馈输32Feedback=SmFeedbackFeedback=SmFeedback33在图7-17(a)中,乘积项Pn+1作为三态输出缓冲器的使能端控制信号。由于各阵列交叉点全打有×,所以n+1号与门输出为逻辑“0”,三态输出缓冲器禁止,其输出为高阻。这时,或阵列输出信号Sm与IOm引脚断开,加在IOm引脚上的输入信号则可通过反馈缓冲器加到与阵列上。这种输出三态缓冲器高阻且加在输出引脚上的信号借助反馈缓冲器成为输入信号的组态方式用图7-17(b)表示。在图7-17(a)中,乘积项Pn+1作为三态输出缓冲器的使能34Feedback=SmFeedbackFeedback=SmFeedback35通用阵列逻辑GALGAL的结构及其工作原理GAL的基本阵列结构通用型GALl6V8的电路结构GAL16V8的结构控制字GAL16V8的OLMCGAL的工作模式和逻辑组态GAL16V8的行地址图GAL16V8的编程通用阵列逻辑GALGAL的结构及其工作原理36GAL的基本阵列结构图7-19给出GAL的基本结构框图。由图7-19看出GAL是由可编程的与阵列、固定不可编程)的或阵列、可编程的输出逻辑宏单元OLMC)三部分主要电路构成。GAL的基本阵列结构图7-19给出GAL的基本结构框图。37逻辑宏单元输入/输出口输入口时钟信号输入三态控制可编程与阵列固定或阵列逻辑宏单元输入/输出口输入口时钟信三态控制可编程与阵列固定或38第7章可编程逻辑器件和现场-数字逻辑-课件392.GAL的开发流程(开发步骤)(1)建立用户源文件用户源文件就是设计者书写的描述所要实现逻辑电路功能的软件程序的集合。其软件程序必须符合某一可编程逻辑设计语言的语法规范。现在广泛使用的有ABEL-HDL,VHDL,Verilog-VHDL等硬件描述语言。(2)编译用户源文件要想使建立起来的用户源文件变成要下载的数据文件(JEDEC),必须经过若干步的语言处理程序。如语法检查、逻辑化简、功能模拟、时间模拟等。经过专用软件处理后,证明用户建立的源文件正确无误,最后将其转换成要下载的编程数据文件(JEDEC〉。把上述的一系列处理过程称为编译。2.GAL的开发流程(开发步骤)(1)建立用户源文件403.器件编程在专用的软件系统环境下,启动编程器,使计算机和编程器进行通信。将JEDEC数据文件下载到编程器上。选择目标器件的制造厂家、型号进行器件匹配。将GAL器件插入插座并锁紧。这一步必须注意芯片引脚序号与插座引脚号要对应。否则器件可能被毁坏。下载编程。即将下载到编程器上的JEDEC数据文件写入到GAL芯片中。3.器件编程在专用的软件系统环境下,启动编程器,使计算机和编414.实际功能验证将芯片从编程器取下,放到实验电路中或实际工作的系统中进行实际功能验证,如果功能正确,说明开发工作结束。如果功能验证不正确,则还要返回到第一步重新修改设计。4.实际功能验证将芯片从编程器取下,放到实验电路中或实际工作42ABEL硬件描述语言规则概要

一、标识符与关键字⒈标识符标识符用来标识器件、器件管脚或节点、集合、输入/输出信号、常量、宏及变量。所有这些标识符都遵从同样的命名规则,具体规则如下:①标识符最多31个字符长,必须以字母或下划线打头。②除第一个字符外,标识符可由大小写字母、数字、波浪线(~)和下划线(_)组成。ABEL硬件描述语言规则概要一、标识符与关键字43ABEL硬件描述语言规则概要

③标识符中不能使用空格,单词间分隔需用下划线。④标识符中不能使用句点,除非是一个合法的点后缀名。⑤标识符的命名不能与系统软件的关键字相同。⑥标识符可以用大写、小写或混合字体输入,但其意义与字体有关。例如,以全部小写字母输入的标识符output与开头字母大写的Output就为不同的标号。ABEL硬件描述语言规则概要③标识符中不能使用空格,单词间44ABEL硬件描述语言规则概要

为了更具体地说明信号的性质,在标识符后面可以加点后缀。ABEL-HDL的合法点后缀.FC触发器模式控制.CLK边沿触发器的时钟输入.CE时钟门控触发器的时钟使能输入.LE锁存器的锁存使能输入(低电平有效).LH锁存器的锁存使能输入(高电平有效).LD寄存器加载输入ABEL硬件描述语言规则概要为了更具体地说明信号的性质,在45ABEL硬件描述语言规则概要

.PR寄存器预置(同步或异步).RE寄存器复位(同步或异步).SET与器件无关的同步预置(等效于.SP加属性’buffer’).CLR与器件无关的同步复位(等效于.SR加属性’buffer’).SP同步寄存器预置.SR同步寄存器复位.ASET与器件无关的异步预置(等效于.AP加属性’buffer’)ABEL硬件描述语言规则概要.PR46ABEL硬件描述语言规则概要

.ACLR与器件无关的异步复位(等效于.AR加属性’buffer’).AP异步寄存器预置.AR异步寄存器复位.OE输出使能.PIN引脚反馈.COM触发器数据输入端(D端)的组合逻辑反馈信号.FB寄存器反馈(Q或!Q,与输出引脚同相)ABEL硬件描述语言规则概要.ACLR与器件无关的47ABEL硬件描述语言规则概要

.Q寄存器反馈(Q瑞).D在等式左边为D型触发器的数据输入在等式右边为组合逻辑反馈信号(送往D的信号).JJK触发器的J输入.KJK触发器的K输入.SSR蚀发器的S输入.SSR触发器的R输入.TT触发器的T输入ABEL硬件描述语言规则概要.Q48ABEL硬件描述语言规则概要

⒉关键字关键字是一种特殊的标识符,被ABEL视为保留字,不能用来给器件、管脚、节点、常量、集合、宏定义及信号命名.在源文件中使用关键字时,仅表明这个关键字的作用。一旦关键字被用于错误场合,语言处理程序将标出错误。硬件描述语言中的关键字不区分大小写,可以用大写、小写或混合字体输入。ABEL硬件描述语言规则概要⒉关键字49ABEL硬件描述语言规则概要

表2-3按字母顺序列出ABEL,HDL的关键字。Async_reset异步复位状态描述语句Case-Endcase条件选择语句Declarations定义段关键字Device器件定义语句*End结束语句*Equations逻辑方程关键字*Functional_block功能模块定义语句ABEL硬件描述语言规则概要表2-3按字母顺序列出ABEL50ABEL硬件描述语言规则概要

Fuses熔丝状态定义语句Goto无条件转移语句If-Then-Else条件转移语句(只能用在状态图中)Interface功能模块接口定义语句Istype属性定义语句Library库引用语句Macro宏定义语句Module模块语句Node节点定义语句ABEL硬件描述语言规则概要Fuses51ABEL硬件描述语言规则概要

Options控制选项定义语句Pin引脚定义语句*Property特征定义语句State状态描述语句State_diagram状态图关键字State_register状态寄存器说明语句Sync_reset同步复位状态描述语句Test_vectors测试向量*Title标题语句*ABEL硬件描述语言规则概要Options52ABEL硬件描述语言规则概要

Truth_table真值表表头关键字*When-Then-Else条件转移语句(只能用在方程中)With-Endwith转移方程语句ABEL硬件描述语言规则概要Truth_table53ABEL硬件描述语言规则概要

二、常量与数值常量、定值可用于ABEL-HDL的逻辑设计。常量值可用在赋值语句、真值表与测试向量中,有时还可赋给标识符以表示该标识符在整个模块中都有定值。常量值可为数值或非数值型特殊常量。在ABEL-HDL中的特殊常量如表2-4所示,输入时必须在字母两边加圆点以表示其为特殊常量,否则特殊常量.C.将被认为是标识符名C。特殊常量可用大写或小写字母。ABEL硬件描述语言规则概要二、常量与数值54ABEL硬件描述语言规则概要

ABEL-HDL中所有数值运算的精度都是128位,因此,有效数值范围是0~2128-1。数值可用五种形式中的任一种表示,其中四种是用不同的数制来表示数值,第五种是用字母符号表示数值。

ABEL硬件描述语言规则概要ABEL-HDL中所有数值运算55ABEL硬件描述语言规则概要

.C.时钟输入电平(按低一高一低变化).K.时钟输入电平(按高一低一高变化).U.时钟上升沿(电平按低一高变化).D.时钟下降沿(电平按高一低变化).F.浮动输入或输出信号.P.寄存器预装载.SVn.n,2-9,驱动输入到超级电平2-9.X.任意态.Z.高阻态ABEL硬件描述语言规则概要.C.时钟输入电平56ABEL硬件描述语言规则概要

当选用四种数制中的一种非默认数制来表示数据时,须在该数据前标明所用数制的符号。表2-5列出了ABEL-HDL支持的四种数制及它们相应的符号,数制符号可用大写或小写输入。ABEL硬件描述语言规则概要当选用四种数制中的一种非默认数57ABEL硬件描述语言规则概要

表2-5ABEL-HDL中数值的不同进制表示数制名基数数制符号二进制2^B八进制8^O十进制10^D十六进制16^HABEL硬件描述语言规则概要表2-5ABEL-58ABEL硬件描述语言规则概要

若一个指定的数据前没有数制符号,则认为它使用默认数制。正常的默认数制为十进制。数也可用一个或多个字母符号来表示。这种情况下,这个字母的ASCII的值即为它表示的数值。例如,字符"a"的ASCII码是十进制数97,因此用"a"表示一个数时,即相当于十进制数97。ABEL硬件描述语言规则概要若一个指定的数据前没有数制符号59ABEL硬件描述语言规则概要

三、字符串和注释字符串是用单引号(撇号)括起的一串ASCII码字符。字符串用于模块语句、标题语句、控制选项语句和引脚、节点、属性的定义中。若要在字符串中使用单引号,要在它前面加一个反斜线”\”。注释是使源文件易读的另一种方式。它常被用来说明源文件本身不易理解之处,注释不影响源文件的内容。ABEL硬件描述语言规则概要三、字符串和注释60ABEL硬件描述语言规则概要

可以有两种方式插入注释:①注释以双引号(")开始,以另一双引号或行结束标志结束。②注释以双斜线(//)开始,以行结束标志结束。ABEL硬件描述语言规则概要可以有两种方式插入注释:61ABEL硬件描述语言规则概要

四、运算符、表达式和方程ABEL-HDL表达式中可包含常量、信号名等对象。表达式将这些对象进行组合、比较或进行运算,以产生输出信号。这些运算(如加法、逻辑与)在表达式中用运算符来表示。ABEL-HDL的运算符可分为四种基本类型:逻辑运算符、算术运算符、关系运算符与赋值运算符。ABEL硬件描述语言规则概要四、运算符、表达式和方程62⒈逻辑运算符

逻辑运算符用于布尔方程。ABEL-HDL使用的是许多逻辑设计均采用的标准逻辑运算符,它们列在表2-6中。多位逻辑运算是逐位进行的

⒈逻辑运算符逻辑运算符用于布尔方程。63⒈逻辑运算符

表2-6ABEL-HDL中的逻辑运算符运算符说明!非&与#或$异或!$异或非⒈逻辑运算符表2-6ABEL-HDL中的逻辑运算符运算64⒉算术运算符在ABEL-HDL语言中算术运算符定义了表达式中两个对象之间的算术关系。移位运算符也属于算术运算符,因为左移一位就相当于乘以2,右移一位就相当于除以2。表2-7列出了算术运算符。⒉算术运算符在ABEL-HDL语言中算术运算符定义了表达式65⒉算术运算符运算符举例说

--A对2求补码(负数)-A-B减法+A+B加法*A*B乘法/A/B无符号整数除法%A%B取模:A/B的余数<<A<<BA左移B位>>A>>BA右移B位⒉算术运算符运算符举例说明--A对2求补码(负数)-66⒉算术运算符注意:减号的用法不同时意义也不同。当它用在一个运算数前时,表示对这个运算数取二进制补玛,当用于两个运算数之间时,表示将第三个运算数的二进制补码与第一个运算数相加。除法是无符号整数除法;余数可以通过取模得到。移位运算是逻辑无符号移位。移位运算中用零来补缺位。⒉算术运算符注意:减号的用法不同时意义也不同。67⒊关系运算符关系运算符用来比较表达式中的两项。由关系运算符构成的表达式,输出一个布尔真值或假值。表2-8列出这些关系运算符。⒊关系运算符关系运算符用来比较表达式中的两项。68⒊关系运算符运算符说

明==等

于!=不等于<小于<=小于或等于>大于>=大于或等于⒊关系运算符运算符说明==等于!=不等于<小69⒊关系运算符所有关系运算都是无符号运算。例如,表达式!0>4为真,因为0的二进制反码是1111,即无符号二进制数15,而15是大于4的。本例中假定数的精度为4位二进制,实际上ABEL-HDL使用的为128位二进制数,因此0的二进制反码应是128位均为l的二进制数。⒊关系运算符所有关系运算都是无符号运算。70⒊关系运算符逻辑真或假,在ABEL-HDL内部用数值来表示。逻辑真表示为-l,取二进制补码后,相当于128住都为l的数。逻辑假为0,相当于128住都为0的数。这就是说,一个结果取真或假的关系表达式可用在任何能使用数字或数字表达式的地方,其取值是-l或0。使用关系运算符时,要考虑运算符的优先级关系,用括号可以改变表达式的运算顺序。

⒊关系运算符逻辑真或假,在ABEL-HDL内部用数值来表示。71⒋赋值运算符

赋值运算符是一类用于布尔方程的特殊运算符,将表达式的值赋予输出。有四种赋值运算符(两种组合型和两种寄存器型)。组合型赋值在表达式求值后立即赋予输出,没有延时。而寄存器赋值要等与输出有关的时钟脉冲到来后,才进行赋值。表2-9列出了赋值运算符。⒋赋值运算符赋值运算符是一类用于布尔方程的特殊运算符,将表72⒋赋值运算符

运算符说

明=组合型赋值(确定态):=寄存器型赋值(确定态)?=组合型赋值(任意态)?:=寄存器型赋值(任意态)⒋赋值运算符运算符说明=组合型赋值(确定态)73⒋赋值运算符

注意:赋值运算符:=和?:=只能用在引脚到引脚的寄存器方程中。在使用详细点后缀的寄存器方程中要使用赋值运算符=和?=。⒋赋值运算符注意:赋值运算符:=和?:=只能用在引脚到引脚74⒌运算符的运算优先级表达式由标识符和运算符组成,求值后得出一个结果。所有的逻辑运算符,算术运算符和关系运算符都可用于表达式中。表达式按所包含的运算符进行运算,每个运算符都有相应的优先级,优先级最高为1,最低为4。表2-10按优先级次序列出了逻辑、算术、关系运算符。⒌运算符的运算优先级表达式由标识符和运算符组成,求值后得出一75⒌运算符的运算优先级表2-10运算符的优先级优先级运算符说

明1-取二进制补码(负数)1!非2&与2<<左移2>>右移2*乘法2/无符号整数除法2%取模3+加法3-减法3#或3$异或3!$异或非4==等于4!=不等于4<小于4<=小于或等于4>大于4>=大于或等于若

⒌运算符的运算优先级表2-1076⒌运算符的运算优先级若同一表达式中有优先级相同的运算符,则按从左到右的顺序进行运算,圆括号可改变运算次序,圆括号内运算优先进行。⒌运算符的运算优先级若同一表达式中有优先级相同的运算符,则按77五、集合运算在表达式和方程中可以便用集合。集合是一组可作为整体进行运算的信号和常量,用方括号括起的一列常量和信号来表示,常量或信号间须用逗号或排列运算符(..)隔开。排列运算符两边标识符的名字必须一致,即它们的字母前缀相同,后缀都为数字。例如SET1=[A7..A0]表示定义一个具有8个元素(A7,A6,A5,A4,A3,A2,Al,A0)的集合,其集合名为SET1。五、集合运算在表达式和方程中可以便用集合。78五、集合运算任何对集合的运算其实是对集合中的每个元素进行。集合将一组信号用一个名字来表示,从而简化了ABEL-HDL逻辑设计和测试向量的描述。ABEL-HDL允许利用集合的序号访问集合中的元素。比如在上述例子中,SET1[3]表示集合SET1中的第三个元素,即A4。五、集合运算任何对集合的运算其实是对集合中的每个元素进行。79五、集合运算注意,序号0是集合中最左面的元素(与元素的排列顺序有关,而不是与元素的后缀或下标有关)。绝大多数运算符可对集合进行运算。表2-11列出了可用于集合的运算符

五、集合运算注意,序号0是集合中最左面的元素(与元素的排列顺80五、集合运算表2-11ABEL-HDL支持的集合运算运算符举例说

明=A=5组合型赋值:=A:=[1,0,1]寄存型赋值!!A取二进制反码&A&B与#A#B或五、集合运算表2-11ABEL-HDL支持的集合运81五、集合运算$A$B异或!$A!$B同或-

-A取二进制补码-A-B减法+A+B加法==A==B等于!=A!=B不等于<A<B小于<=A<=B小于或等于>A>B大于>=A>=B大于或等于五、集合运算$A$B异或!$A!$B同或--A取二进制补码82五、集合运算集合按照布尔代数规则进行运算。通常这种运算是对集合中的每个元素进行的,所以对两个以上集合进行运算,集合中的元素个数必须相等。表达式“[a,b]+[c,d,e]”是非法的,因为两个集合中的元素个数不等。五、集合运算集合按照布尔代数规则进行运算。83五、集合运算表2-12给出集合的运算规则。表中大写字母表示集合名称,小写字母表示集合中的元素。字母k和n为元素和集合的下标。集合的下标指出该集合含有多少元素,所以Ak指出集合A包含k个元素,a1表示集合A的第一个元素,ak-1表示集合A的第k-l个元素。五、集合运算表2-12给出集合的运算规则。84五、集合运算表2-12ABEL-HDL中集合的运算规则表达式赋值!Ak[!ak,!ak-1,...!a1]-Ak!Ak+1Ak&Bk[ak&bk,ak-1&bk-1,...a1&b1]Ak#Bk[ak#bk,ak-1#bk-1,...a1#b1]Ak$Bk[ak$bk,ak-1$bk-1,...a1$b1]Ak!$Bk[ak!$bk,ak-1!$bk-1,...a1!$b1]Ak+BkDk,其中dn=an$bn$cn-1,cn=(an$bn)#(an&cn-1)#(bn&cn-1)c0=0Ak-BkAk+(-Bk)Ak==Bk(ak==bk)&(ak-1==bk-1)&...&(a1==b1)Ak!=Bk(ak!=bk)#(ak-1!=bk-1)#...#(a1!=b1)Ak<Bkck,其中cn=(!an&(bn#cn-1)#an&bn&cn-1)!=0c0=0集合运算的

五、集合运算表2-12ABEL-H85五、集合运算集合运算的方式与结果取决于其变量的类型。绝大多数运算符对一个集合的运算结果仍为一个集合。需注意的是关系运算符(==,!=,>,>=,<,<=)的结果为一个数值:TRUE(全1)或FALSE(全0),且该数值的位数根据需要来截取。其长度由关系运算符所处场合的上下关系决定,不取变量的长度。五、集合运算集合运算的方式与结果取决于其变量的类型。86五、集合运算任何形式表示的数值及数值集合,都可用于集合赋值或集合比较。只是用于集合赋值或比较的数要转换成二进制形式,并遵从下列规则:①如果该二进制数的有效位数多于集合中元素的个数,则要从左边截去多余的位。②如果该二进制数的有效位数少于集合中元素的个数,则要从左边用0补齐少的位。五、集合运算任何形式表示的数值及数值集合,都可用于集合赋值或87五、集合运算如下面几个方程:select=[al5..a0]==^H80FF;表示当十六位地址线的地址为十六进制80FF时,信号select为TRUE。关系运算的结果始终只有l位。[out3..out0]=[in3..in0]&enable;表示如果enable信号为真,则输出"out0"至"out3"取对应输入"in0"至"in3"的值。若enable为FALSE,则输出全为FALSE。五、集合运算如下面几个方程:88五、集合运算下面以&运算符为例说明在不同场合下表示的不同作用。SIGNAL&SIGNAL,例如:a&b。这是最常见的用法,表示如果两个信号都为真则表达式为真。SIGNAL&NUMBER,例如:a&4。这里需先将4转换为二进制数,并且只用它的最低有效位,因此该表达式相当于a&0,其结果始终为0即假。SIGNAL&SET,例如a&[x,y,z]。相当于信号与集合中的每个元素相作用,等价为:[a&x,a&y,a&z]。五、集合运算下面以&运算符为例说明在不同场合下表示的不同作用89五、集合运算SET&SET,例如:[a,b]&[x,y]。集合间的与运算将按位进行,这里就为[a&x,b&y]。这种场合下,如果集合长度不等,就会给出错误显示。SET&NUMBER,例如:[a,b,c]&5。首先要将数转换为二进制数,并按集合的长度对该二进制数截取或填零以便两者长度相等,然后再做运算。这里的转换过程为:[a,b,c]&[1,0,1]=[a&l,b&0,c&l]=[a,0,c]。五、集合运算SET&SET,例如:[a,b]&[x,y]90五、集合运算NJMBER&NUMBER,例如,9&5。这种情况下也是先将数转换为二进制,但只使用其最低位运算,因此本例相当于1&1,结果始终为l。五、集合运算NJMBER&NUMBER,例如,9&5。91GAL的应用举例用GAL实现基本逻辑门的设计用GAL实现组合及时序混合的逻辑电路用GAL实现5位二进制计数器和N位任意进制计数器设计GAL的应用举例用GAL实现基本逻辑门的设计92用GAL实现基本逻辑门的设计设计说明及构思图7-19给出了用一片GAL16V8实现基本逻辑门的要求。由图7-19看出所要实现的电路是简单的组合逻辑电路,选择GAL16V8的简单模式就可以实现。选定模式后要画出引脚配置图,由图可见全部电路共有12个输入端,6个输出端。7-19用GAL实现基本逻辑门的设计设计说明及构思7-1993用GAL实现基本逻辑门的设计设计说明及构思其中8个输入信号安排在2,3,4,5,6,7,8,9专用输入引脚上,1号和11号引脚也安排2个输入信号。剩下2个输入信号安排在12和19号引脚。7-19用GAL实现基本逻辑门的设计设计说明及构思7-1994用GAL实现基本逻辑门的设计设计说明及构思6个门电路的输出信号安排在这6个宏单元的相应输出引脚上。GAL是通用逻辑阵列器件,根据不同应用场合,ABEL语言为其提供了三个器件文件,本例中使用的是无反馈的组合电路,所以在源文件中器件名P16V8S。

7-19用GAL实现基本逻辑门的设计设计说明及构思7-1995用GAL实现基本逻辑门的设计⒉设计方法基本逻辑门使简单组合电路,用布尔方程描述其功能很方便,采用布尔方程表示。7-19用GAL实现基本逻辑门的设计⒉设计方法7-1996用GAL实现基本逻辑门的设计⒊测试向量源文件中我们写了两个相互独立的测试向量段来分别表示六个基本逻辑门的逻辑关系,每个逻辑门又分别设置了典型的测试向量,并且把各个逻辑门都分割开来,这样使仿真输出结果更易读,有了问题也更便于解决。为了阅读方便我们还加了注释语句。

7-19用GAL实现基本逻辑门的设计⒊测试向量7-19977-19建立用户源文件符合ABEL-HDL语言规范且能实现图7-19给出的基本逻辑门设计的用户源文件如下:7-19建立用户源文件987-19非门INV二输入与门AND2二输入或门OR2二输入或非门NOR2二输入异或非门NXOR2三输入与非门NAND37-19非门INV二输入与门AND2二输入或门OR2二输入或99“测试非门、与门、或门“测试非门、与门、或门100TestvectorTestvector101TestvectorTestvector102用GAL实现组合及时序混合的逻辑电路⒈设计说明及构思组合和时序混合的逻辑电路如图7-20所示。由图7-20看出,组合电路部分包括二个电路:其中一个是实现X=AS+BS的复合逻辑门,另一个是三态门。时序电路部分包括一个D触发器和一个由2个D触发器构成的四进制计数器。用GAL实现组合及时序混合的逻辑电路⒈设计说明及构思103第7章可编程逻辑器件和现场-数字逻辑-课件104说明用GAL器件实现该电路,要用GAL的寄存器组合输出组态。在进行设计时有二点必须注意:其一所实现的电路包括D触发器和四进制计数器,11号引脚只能做这个时序电路的使能控制端。在建立用户源文件时,11号引脚要给予引脚定义,不必写出OE的方程式。说明用GAL器件实现该电路,要用GAL的寄存器组合输出组态。105说明测试向量包括OE。测试或使用时将11号引脚接地就可保证时序电路使能。其二所实现的电路还包括三态门,三态门使能端E要用独立的乘积项进行控制。在设计用户源文件时,要书写有关E的专用方程式,测试向量也应包括使能信号E。说明测试向量包括OE。测试或使用时将11号引脚接地就可保证时106第7章可编程逻辑器件和现场-数字逻辑-课件107第7章可编程逻辑器件和现场-数字逻辑-课件108将上面的名为example2的用户源文件编译后会得到相应的name.JED下载编程数据文件。对GAL16V8下载后完成设计。这个组合和时序混合的逻辑电路在GAL16V8中的等效电路如图7-21所示。其中四进制计数器的真值表如表7-4所示。将上面的名为example2的用户源文件编译后会得到相应的n109图7-21图7-211107-47-4111例题用一片GAL16V8实现图10所示的4个逻辑电路。要求写出1个符合ABEL语言规范的用户源文件。GAL16V8的引脚图如图所示。F1AiBiCiSiCi+1FADQQFF1DQQFF2CPQ1Q2=1ABC&EDF2=1图10例题用一片GAL16V8实现图10所示的4个逻辑电路。要求写112例题如图所示逻辑图的逻辑方程式为:F1AiBiCiSiCi+1FADQQFF1DQQFF2CPQ1Q2=1ABC&EDF2=1图10例题如图所示逻辑图的逻辑方程式为:F1AiBiCiSiCi+113ABEL语言的源文件如下:modulecomplextitleexamdevice‘p16v8r’CP,OEpin1,11Ai,Bi,Ci,A,B,Cpin2,3,4,5,6,7D,Epin8,9Si,Ci+1,F1,F2,Q1,Q2pin12,13,14,15,16,18equationSi=Ai$Bi$CiCi+1=!Ai&Bi&Ci#Ai&!Bi&Ci#Ai&Bi&!Ci#Ai&Bi&CiF1=!A&B&CF2=D$EQ1:=!Q1Q2:=!Q1$Q2EndcomplexABEL语言的源文件如下:modulecomplex114第七章可编程逻辑器件7.1概述7.2可编程逻辑器件基础PLD逻辑表示法逻辑阵列的PLD表示法应用举例通用阵列逻辑GAL第七章可编程逻辑器件7.1概述1157.1概述可编程专用集成电路ASIC(ApplicationSpecificIntegratedCircuit)是面向用户特定用途或特定功能的大规模、超大规模集成电路。分类:按功能分为数字的、模拟的、数字和模拟混和三种。按制造方式分为全定制、半定制ASIC、可编程三种。7.1概述可编程专用集成电路ASIC(Application116根据芯片的集成度和结构复杂度分类简单可编程逻辑器件SPLD:集成度小于PALCE22V10或GAL22V10的PLD。特点是都具有可编程的与阵列、不可编程的或阵列、输出逻辑宏单元OLMC和输入输出逻辑单元IOC。复杂可编程逻辑器件CPLD:集成度大于PAL22V10或GAL22V10的PLD都可视为CPLD。CPLD在集成度和结构上呈现的特点是具有更大的与阵列和或阵列,增加了大量的宏单元和布线资源,触发器的数量明显增加。高速的译码器、多位计数器、寄存器、时序状态机、网络适配器、总线控制器等较大规模的逻辑设计可选用CPLD来实现。因此,具有复杂算法的数字滤波器等数字信号处理单元的逻辑设计也可选用这些具有更高集成度CPLD来实现。根据芯片的集成度和结构复杂度分类简单可编程逻辑器件SPLD:117根据芯片的集成度和结构复杂度分类现场可编程逻辑门阵列FPGA:现场可编程门阵列FPGA是集成度和结构复杂度最高的可编程ASIC。运算器、乘法器、数字滤波器、二维卷积器等具有复杂算法的逻辑单元和信号处理单元的逻辑设计可选用FPGA实现。根据芯片的集成度和结构复杂度分类现场可编程逻辑门阵列FPG118可编程ASIC的编程方式可编程ASIC的编程方式有两种,一种是采用专用编程器进行编程,一种是在系统编程。后者甩掉了专用编程器,而且也不用将芯片从电路系统取下,只利用计算机和一组下载电缆就可以在系统编程。Lattice和Xilinx等几家大公司现在都有在系统可编程ASIC产品。在系统编程方式方便了用户。可编程ASIC的编程方式可编程ASIC的编程方式有两种,一种119可编程ASIC的一般开发步骤设计输入(entry)功能模拟(functionsimulation)逻辑分割(partitioning)布局和布线(placeandrouting)时间模拟(timingsimulation)写入下载数据(download)可编程ASIC的一般开发步骤设计输入(entry)120ASIC开发步骤流程图ASIC开发步骤流程图121PLD的逻辑表示PLD中阵列及其阵列交叉点的逻辑表示1.PLD中阵列交叉点的逻辑表示2.PLD中与阵列和或阵列的逻辑表示PLD中基本逻辑单元的PLD表示1.输入缓冲器和反馈缓冲器2.输出极性可编程的异或门3.地址选择可编程的数据选择器4.可编程数据分配器的逻辑表示PLD的逻辑表示PLD中阵列及其阵列交叉点的逻辑表示1221.PLD中阵列交叉点的逻辑表示PLD逻辑阵列中交叉点的连接方式采用图7-7所示的几种逻辑表示。图7-71.PLD中阵列交叉点的逻辑表示PLD逻辑阵列中交叉点的连接123(a)表示实体连结,就是行线和列线在这个交叉点处实在连接,这个交叉点是不可编程点,在交叉点处打上黑实点。不可编程点(a)表示实体连结,就是行线和列线在这个交叉点处实在连接,这124(b)表示可编程连接。无论×或表示该符号所在行线和列线交叉处是个可编程点,具有一个可编程单元。在采用熔丝工艺的PLD器件中,器件出厂后用户编程之前,所有可编程点处的熔丝都处于接通状态,习惯上都用×表示熔丝接通,因此可编程点上处处都打×或。可编程点(b)表示可编程连接。无论×或表示该符号所在行线和列125PLD器件被用户编程后,可编程点上的熔丝有的烧断,有的接通。编程后可在编程点上仍打有×,这时的×表示可编程点被编程后熔丝接通。熔丝烧断的可编程点上的×消失,行线和列线不相接,这种情况用图(c)表示。熔丝烧断点PLD器件被用户编程后,可编程点上的熔丝有的烧断,有的接通。126⒉PLD中与阵列和或阵列的逻辑表示与阵列如图(a)所示。在二极管与门的各支路与输出之间接入熔丝。熔丝保留的各支路的输入为有效输入,输出F是熔丝保留各支路输入的与逻辑函数的。⒉PLD中与阵列和或阵列的逻辑表示与阵列如图(a)所示。在二127⒉PLD中与阵列和或阵列的逻辑表示图(b)是PLD表示。图(a)和图(b)是熔丝全部保留的与阵列表示情况。F(A,B,C)=0。⒉PLD中与阵列和或阵列的逻辑表示图(b)是PLD表示。图128⒉PLD中与阵列和或阵列的逻辑表示图(c)是烧断3个熔丝的情况,图(d)是图(c)的PLD表示。可编程或阵列,其构成原理与可编程的与阵列相同。⒉PLD中与阵列和或阵列的逻辑表示图(c)是烧断3个熔丝的129可编程或阵列可编程或阵列,其构成原理与可编程的与阵列相同。可编程或阵列可编程或阵列,其构成原理与可编程的与阵列相同。1301.输入缓冲器和反馈缓冲器在PLD中有二种特殊的缓冲器,它们是输入缓冲器和反馈缓冲器,这二种缓冲器有相同的电路构成,图7-10给出它们的PLD表示,它们是单输入、双输出的缓冲器单元,一个是高有效输出端,即同极性输出端。另一个是低有效输出端,即反极性输出端。与曾经学过的输出三态缓冲器不同,虽然输出三态缓冲器也有三个端,但只有一个输入和一个输出端,另一个是使能控制端。图7-101.输入缓冲器和反馈缓冲器在PLD中有二种特殊的缓冲器,它们1311.输入缓冲器和反馈缓冲器原则上说,输出三态缓冲器有二个输入端一个输出端。注意二者之间的区别。输入缓冲器和反馈缓冲器输出只有0、1两个逻辑状态。而输出三态缓冲器除了有0、1两个逻辑状态外,还有一个称为高阻(Z)的状态。图7-101.输入缓冲器和反馈缓冲器原则上说,输出三态缓冲器有二个输入1322.输出极性可编程的异或门在PLD中为了实现输出极性可编程,常采用图(a)所示的异或门结构。当熔丝烧断,异或门输出极性为低有效,即否则异或门输出高有效Q0=P⊕0=P。2.输出极性可编程的异或门在PLD中为了实现输出极性可编程,1332.输出极性可编程的异或门图(b)是编程后熔丝保留,输出极性编程为高有效。图(c)是编程熔丝烧断,输出极性编程为低有效。2.输出极性可编程的异或门图(b)是编程后熔丝保留,输出极1343.地址选择可编程的数据选择器地址选择可编程的数据选择器如图7-12所示。地址选择端编程后,若列线与行线相接且接地,其输入为逻辑0。否则,列线与行线断开其输入为逻辑1。根据编程情况,地址选择端的输入有00,01,10,11四种情况。3.地址选择可编程的数据选择器地址选择可编程的数据选择器如图135第7章可编程逻辑器件和现场-数字逻辑-课件1364.可编程数据分配器的逻辑表示如图7-13所示。4.可编程数据分配器的逻辑表示如图7-13所示。137在图7-13中核心部分是可编程逻辑分配器根据可编程熔丝S1S0的不同编程情况,乘积项簇分别被分配到n+1号、n号、n-1号、n-2号宏单元。FUSE1正常时(默认状态)不熔断,乘积项簇的信号传不到n号宏单元。若编程后FUSE1熔断,乘积项簇信号可以传到n号宏单元。在图7-13中核心部分是可编程逻辑分配器根据可编程熔丝S1S138如果FUSE2熔断,异或门反极性传输,否则异或门原极性传输,n号宏单元接收信号与乘积项簇信号同相。FUSE2为又一个可编程点。如果FUSE2熔断,异或门反极性传输,否则异或门原极性传输,1395.激励方式可编程的时序记忆单元的PLD表示时序记忆单元有二种,即锁存器和触发器。输出的状态只受输入激励信号控制的时序记忆单元是锁存器。只有在时钟信号控制下才能得到受输入激励信号决定的相应输出状态的时序记忆单元是触发器。二种时序记忆单元的根本区别是输出状态的变化是否取决于时钟信号的控制。5.激励方式可编程的时序记忆单元的PLD表示时序记忆单元有二1405.激励方式可编程的时序记忆单元的PLD表示由图7-14看出,通过编程,若线与行线断开,其输入为逻辑1。根据编程情况,地址选择端的输入有00,01,10,11四种情况。5.激励方式可编程的时序记忆单元的PLD表示由图7-14看出1415.激励方式可编程的时序记忆单元的PLD表示使R/L端为0,Q端的输出状态只与激励信号有关并受D决定,图7-14所示电路为D锁存器。通过编程,若使R/L端为1,图7-14所示电路只有在时钟脉冲信号CLK的驱动下,Q端的状态变化受D端的激励信号决定,该电路具有D触发器功能。5.激励方式可编程的时序记忆单元的PLD表示使R/L端为0,1426.PLD中与阵列的缺省表示在PLD器件与阵列中常看到图7-15中给出的几种表示。输出为Z1的与门4个输入变量全部被编程后输入,4个交叉点均画×。因此,6.PLD中与阵列的缺省表示在PLD器件与阵列中常看到图7-1436.PLD中与阵列的缺省表示同理:Z2为Z1的缺省表示。这时的阵列交叉点上均未画×,而在与门符号内却画有×,。6.PLD中与阵列的缺省表示同理:Z2为Z1的缺省表示。这时1446.PLD中与阵列的缺省表示输出为Z3的与门输入阵列交叉点上无×,与门符号内也无×,这是浮动状态的逻辑表示。浮动输入状态代表与阵列编程后熔丝全部熔断,4个输入全都不同与门相接,相当与门输入悬空,与门输出为高电平,即输出逻辑“1”6.PLD中与阵列的缺省表示输出为Z3的与门输入阵列交叉点上1457.双向输入/输出和反馈输入的逻辑表示双向输入/输出和反馈输入结构是PLD结构的特点之一,乘积项Pn+1为三态输出缓冲器的使能端控制信号。由于各阵列交叉点无一个×,呈悬浮状态,n+1号与门输出为逻辑“1”。或阵列输出的Sm信号加在IOm引脚上,作为输出信号。同时,Sm信号又通过反馈缓冲器被反馈到与阵列。这个输出带反馈的组态方式采用图7-16(b)所示的PLD表示。7.双向输入/输出和反馈输入的逻辑表示双向输入/输出和反馈输146Feedback=SmFeedbackFeedback=SmFeedback147在图7-17(a)中,乘积项Pn+1作为三态输出缓冲器的使能端控制信号。由于各阵列交叉点全打有×,所以n+1号与门输出为逻辑“0”,三态输出缓冲器禁止,其输出为高阻。这时,或阵列输出信号Sm与IOm引脚断开,加在IOm引脚上的输入信号则可通过反馈缓冲器加到与阵列上。这种输出三态缓冲器高阻且加在输出引脚上的信号借助反馈缓冲器成为输入信号的组态方式用图7-17(b)表示。在图7-17(a)中,乘积项Pn+1作为三态输出缓冲器的使能148Feedback=SmFeedbackFeedback=SmFeedback149通用阵列逻辑GALGAL的结构及其工作原理GAL的基本阵列结构通用型GALl6V8的电路结构GAL16V8的结构控制字GAL16V8的OLMCGAL的工作模式和逻辑组态GAL16V8的行地址图GAL16V8的编程通用阵列逻辑GALGAL的结构及其工作原理150GAL的基本阵列结构图7-19给出GAL的基本结构框图。由图7-19看出GAL是由可编程的与阵列、固定不可编程)的或阵列、可编程的输出逻辑宏单元OLMC)三部分主要电路构成。GAL的基本阵列结构图7-19给出GAL的基本结构框图。151逻辑宏单元输入/输出口输入口时钟信号输入三态控制可编程与阵列固定或阵列逻辑宏单元输入/输出口输入口时钟信三态控制可编程与阵列固定或152第7章可编程逻辑器件和现场-数字逻辑-课件1532.GAL的开发流程(开发步骤)(1)建立用户源文件用户源文件就是设计者书写的描述所要实现逻辑电路功能的软件程序的集合。其软件程序必须符合某一可编程逻辑设计语言的语法规范。现在广泛使用的有ABEL-HDL,VHDL,Verilog-VHDL等硬件描述语言。(2)编译用户源文件要想使建立起来的用户源文件变成要下载的数据文件(JEDEC),必须经过若干步的语言处理程序。如语法检查、逻辑化简、功能模拟、时间模拟等。经过专用软件处理后,证明用户建立的源文件正确无误,最后将其转换成要下载的编程数据文件(JEDEC〉。把上述的一系列处理过程称为编译。2.GAL的开发流程(开发步骤)(1)建立用户源文件1543.器件编程在专用的软件系统环境下,启动编程器,使计算机和编程器进行通信。将JEDEC数据文件下载到编程器上。选择目标器件的制造厂家、型号进行器件匹配。将GAL器件插入插座并锁紧。这一步必须注意芯片引脚序号与插座引脚号要对应。否则器件可能被毁坏。下载编程。即将下载到编程器上的JEDEC数据文件写入到GAL芯片中。3.器件编程在专用的软件系统环境下,启动编程器,使计算机和编1554.实际功能验证将芯片从编程器取下,放到实验电路中或实际工作的系统中进行实际功能验证,如果功能正确,说明开发工作结束。如果功能验证不正确,则还要返回到第一步重新修改设计。4.实际功能验证将芯片从编程器取下,放到实验电路中或实际工作156ABEL硬件描述语言规则概要

一、标识符与关键字⒈标识符标识符用来标识器件、器件管脚或节点、集合、输入/输出信号、常量、宏及变量。所有这些标识符都遵从同样的命名规则,具体规则如下:①标识符最多31个字符长,必须以字母或下划线打头。②除第一个字符外,标识符可由大小写字母、数字、波浪线(~)和下划线(_)组成。ABEL硬件描述语言规则概要一、标识符与关键字157ABEL硬件描述语言规则概要

③标识符中不能使用空格,单词间分隔需用下划线。④标识符中不能使用句点,除非是一个合法的点后缀名。⑤标识符的命名不能与系统软件的关键字相同。⑥标识符可以用大写、小写或混合字体输入,但其意义与字体有关。例如,以全部小写字母输入的标识符output与开头字母大写的Output就为不同的标号。ABEL硬件描述语言规则概要③标识符中不能使用空格,单词间158ABEL硬件描述语言规则概要

为了更具体地说明信号的性质,在标识符后面可以加点后缀。ABEL-HDL的合法点后缀.FC触发器模式控制.CLK边沿触发器的时钟输入.CE时钟门控触发器的时钟使能输入.LE锁存器的锁存使能输入(低电平有效).LH锁存器的锁存使能输入(高电平有效).LD寄存器加载输入ABEL硬件描述语言规则概要为了更具体地说明信号的性质,在159ABEL硬件描述语言规则概要

.PR寄存器预置(同步或异步).RE寄存器复位(同步或异步).SET与器件无关的同步预置(等效于.SP加属性’buffer’).CLR与器件无关的同步复位(等效于.SR加属性’buffer’).SP同步寄存器预置.SR同步寄存器复位.ASET与器件无关的异步预置(等效于.AP加属性’buffer’)ABEL硬件描述语言规则概要.PR160ABEL硬件描述语言规则概要

.ACLR与器件无关的异步复位(等效于.AR加属性’buffer’).AP异步寄存器预置.AR异步寄存器复位.OE输出使能.PIN引脚反馈.COM触发器数据输入端(D端)的组合逻辑反馈信号.FB寄存器反馈(Q或!Q,与输出引脚同相)ABEL硬件描述语言规则概要.ACLR与器件无关的161ABEL硬件描述语言规则概要

.Q寄存器反馈(Q瑞).D在等式左边为D型触发器的数据输入在等式右边为组合逻辑反馈信号(送往D的信号).JJK触发器的J输入.KJK触发器的K输入.SSR蚀发器的S输入.SSR触发器的R输入.TT触发器的T输入ABEL硬件描述语言规则概要.Q162ABEL硬件描述语言规则概要

⒉关键字关键字是一种特殊的标识符,被ABEL视为保留字,不能用来给器件、管脚、节点、常量、集合、宏定义及信号命名.在源文件中使用关键字时,仅表明这个关键字的作用。一旦关键字被用于错误场合,语言处理程序将标出错误。硬件描述语言中的关键字不区分大小写,可以用大写、小写或混合字体输入。ABEL硬件描述语言规则概要⒉关键字163ABEL硬件描述语言规则概要

表2-3按字母顺序列出ABEL,HDL的关键字。Async_reset异步复位状态描述语句Case-Endcase条件选择语句Declarations定义段关键字Device器件定义语句*End结束语句*Equations逻辑方程关键字*Functional_block功能模块定义语句ABEL硬件描述语言规则概要表2-3按字母顺序列出ABEL164ABEL硬件描述语言规则概要

Fuses熔丝状态定义语句Goto无条件转移语句If-Then-Else条件转移语句(只能用在状态图中)Interface功能模块接口定义语句Istype属性定义语句Library库引用语句Macro宏定义语句Module模块语句Node节点定义语句ABEL硬件描述语言规则概要Fuses165ABEL硬件描述语言规则概要

Options控制选项定义语句Pin引脚定义语句*Property特征定义语句State状态描述语句State_diagram状态图关键字State_register状态寄存器说明语句Sync_reset同步复位状态描述语句Test_vectors测试向量*Title标题语句*ABEL硬件描述语言规则概要Options166ABEL硬件描述语言规则概要

Truth_table真值表表头关键字*When-Then-Else条件转移语句(只能用在方程中)With-Endwith转移方程语句ABEL硬件描述语言规则概要Truth_table167ABEL硬件描述语言规则概要

二、常量与数值常量、定值可用于ABEL-HDL的逻辑设计。常量值可用在赋值语句、真值表与测试向量中,有时还可赋给标识符以表示该标识符在整个模块中都有定值。常量值可为数值或非数值型特殊常量。在ABEL-HDL中的特殊常量如表2-4所示,输入时必须在字母两边加

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论