|||
我们原来学D触发器的时候,如果全部用组合逻辑来实现,推导出来的式子会很长很长,如果这么傻做的话,会很麻烦。现在我们用引脚扩展名来实现就很方便。
我们以GAL16V8B(在WinCupl中对应的编译型号为g16v8a)为例,GAL16V8B一共有20个引脚。第1引脚是CLK,即时钟引脚,第2~9引脚是输入引脚,共8个。第10引脚是地,第11引脚是OE,低电平禁止,高电平允许。第12~19是输出引脚,共8个,第20引脚是电源,一般可接+5V。
现在我们用该器件来实现一个4D触发器,即4个同样的D触发器。
在WinCupl中新建一个工程,文件内容如下:
Name DSample ;
PartNo 00 ;
Date 2006-8-9 ;
Revision 01 ;
Designer Wu Jian ;
Company Tale ;
Assembly None ;
Location ;
Device g16v8a ;
/* *************** INPUT PINS *********************/
PIN [2..5] = [A1..4];
/* *************** OUTPUT PINS *********************/
PIN 18 = Q1;
PIN 17 = Q2;
PIN 16 = Q3;
PIN 15 = Q4;
Q1.D = A1;
Q2.D = A2;
Q3.D = A3;
Q4.D = A4;
很有意思吧。关键是最后的QX.D。这个“.D”表示把Q1~Q4当D触发器用。A1~A4就是这4个D触发器的输入端,Q1~Q4就是D触发器的输出端,正好4个。有人就要问了,时钟端呢?不要急,GAL16V8B的第1个引脚就是时钟端,当时钟端的输入信号出现上升沿的时候就将第2~5引脚的信号锁存到第18~15引脚。而11引脚可以当OE使能端用,正好一个D触发器。
本文件编译后,在Proteus软件中的仿真图如下所示:
好了,这个图大家可以自己去仿真。如果看过我的文章后对您有帮助的话,就达到我的目的了。