用可编程逻辑器件(PLD)设计时序逻辑电路

一、通用阵列逻辑器件gal(generic array logic) gal器件特点:可重复编程至上万次,编程后的数据能保存20年以上。其电路结构在可编程“与或 ”阵列的基础上,增加了输出可编程的逻辑宏单元olmc(output logic micro cell)电路。
现以gal16v8器件为例加以说明,gal16v8部分电路:
电路采用可编程“与阵” 和固定的“或阵”构成,每个输出增加了可编程的输出逻辑宏单元olmc电路。“与阵”中具有8个专用输入变量,8个反馈变量,共64个“与项”;输出8个逻辑宏单元,每个宏单元中有一个8输入的固定或门。
逻辑宏单元结构:
有两个2/1和两个4/1多路选择器,一个异或门和一个触发器等电路。它们的作用分别说明如下,ptmux(乘积项2/1选择器):用来选择来自与阵的第一个乘积项是否作为或门的一个输入。tsmux(4/1三态选择器):决定输出三态门使能控制信号。omux(2/1输出选择器):决定输出信号是直接输出还是经寄存器输出。fmux(反馈8/1数据选择器):但输入只有4个,选择反馈信号接回到“与阵列”的输入来源。
olmc的工作模式有5种,它由结构控制字中的syn,aco,aci(n),xor(n) 的状态指定。
(1) syn=1,aco=0,aci(n)=1:专用工作模式
简化等效电路为:
此时输出三态门输出高阻态,i/o只能作为输入使用,作为送到相邻的输入信号。
(2)syn=1,aco=0,aci(n)=0:专用组合输出模式
简化电路如图:
此时输出三态门为选通状态,电路为一个组合输出电路。xor=0,输出为低电平有效;xor=1,输出高电平有效。
(3)syn=1,aco=1,aci(n)=1:反馈组合输出模式
简化电路如图:
输出三态门由第一乘积项选通,输出信号同时反馈到“与”逻辑阵到的输入线上。
(4)syn=0,aco=1,aci(n)=1:时序电路中的组合
简化电路如图:
此时异或门输出不经过触发器,而是直接送到输出端。
(5)syn=0,aco=1,aci(n)=0:寄存器输出模式
简化电路如图:
异或门输出经过d触发器输出,其中反馈至“与”阵作为输入。
可见,gal器件具有灵活的各种输出电路结构。在实际应用中,开发软件又会根据用户的要求自动配置。因此,时序型的gal器件也完全能代替组合型的pal器件。除通用型gal器件外,还有扩展型、异步型、异或型、大电流输出型、低功耗型、fpla型和在系统可编程型等gal。
二、用pld器件实现时序逻辑电路
例:试用gal16v8设计一个具有同步清零,同步置数和保持功能的8421编码的十进制可逆计数器。
解:设待设计的8421bcd码十进制可逆计数器如图所示,其中qc和qb是计数器的进位及借位输出,功能要求如表所示:
该计数器的abel语言如下:
将该abel语言编译仿真后,其波形如图。