- 设计构思:设计所有基本类型的触发器(D、T、J-K、R-S)在同一块PAL器件上;
- 先通过简略地回顾D型触发器的主要性能,来构思这一设计.然后再给出T、J-K和R-S触发器的设计思。我们将只使用D型触发 器,其它逻辑功能的触发器用D型触发器来构造。同时决定采用哪类PAL器件;
- 建立触发器的布尔方程;
- 完成设计文件;
- 仿真基本触发器;
- 器件编程。
基本触发器的逻辑图
组合型方程: DT = D 寄存器型方程: DT : =D
建立触发器的布尔方程
D型触发器的数据输入只有在时钟脉冲信号到来后才出现在输出端。它的基本传递函数可以表示成: DT:= D
输出信号 DT (D Trace)
输出补偿信号 DC (DC:= /D) 式中使用“:=”而不是‘‘=”,表示这一方程输出是被寄存的;
触发器需增加“同步预置”和“清零”功能。这由2条引脚PR和CLR来完成。为了增加这些功能:
对触发器输出原信号DT,每一个乘积项加上“/CLR”因子,同时增加一个仅由PR组成的新乘积项;
对输出的补偿信号DC,每一个乘积项加上“/PR”因子,并增加一个仅由CLR组成的新乘积项;
因此,带有清零和预置功能的D型触发器的布尔方程为:
DT:=D * /CLR+PR
DC:=/D * /PR + CLR 真值表
这样,当触发器清零时,对于高电平有效的触发器没有乘积项为真,因而输出DT为“低”电平;对于低电平有效的触发器,其最后一个乘积项为真,因而其输出DC为“高”电平。同样分析,对于触发器的预置功能会出现相反的情况。
设计中还有一个漏洞,即如果预置和清零操作同时发生会怎样? 根据现在的布尔方程,两个输出DT和DC均为“高”电平。这是无意义的,因为两个输出信号应当是互补的。为了纠正这一错误,可以规定清零操作优先于预置操作。为此,只需在原输出DT的每一乘积项加上因子/CLR。由此可得清零操作优先的D型触发器布尔方程:·
DT:= D * /CLR + PR * /CLR
DC:= /D * /PR + CLR
同样,可以推导出T触发器的布尔方程: (真值表)
TT:= T * /TT * CLR + /T * TT * /CLR+ PR * /CLR
TC:= T * /TC * /PR +/T * TC * /PR + CLR
在这些方程中,有的信号本身出现在右边的函数表达式中,这是由于触发器的输出反馈信号用于确定触发器的下一个状态。
例如TT方程中的反馈等效图为:
同样对其它触发器可推导出:
JK触发器(真值表)
JKT:= J*/JKT*/CLR+/K*JKT*/CLR+PR*/CLR
JKC:= /J*/JKC*/PR+K*JKC*/PR+CLR
RS触发器(真值表)
SRT:= S * /CLR + /R * SRT * /CLR + PR * /CLR
STC:= R * /PR + /S * SRC * /PR + CLR
PAL器件的选择
我们选择了PAL16R8(需要9输入,8输出)
16个输入,8个输出
它是输出低电平有效
具有时钟引脚CLK和输出选通引脚OE
输出引脚按下图(6-3-1)那样定义,输出引脚都用斜杠“/”定义,表示它们是“反向的”或“负”的引脚;
根据管脚定义和PAL16R8的逻辑图建立基本触发器设计的说明文件
建立设计文件
PAL16R8 逻辑图
完成设计文件
基本触发器设计的说明部分( 1 )
触发器布尔方程部分 ( 2 )
仿真基本触发器
在修正了设计中的错误,并处理了设计文件后,就应编写仿真部分。除了一条用于简化时钟信号操作的新指令外,我们具有所需的一切仿真指令。可以将SETF指令和时钟引脚一起使用,但那样的话,时钟信号的每一改变都需要两条指令:一条将时钟信号置成“高”,另一条使之变回“低”。
另一种办法是使用CLOCKF指令。这样,使用一条指令就能将脉冲加至时钟引脚。当然,寄存器型输出的状态将在时钟信号的上升沿到来之后才会改变。由于时钟引脚巳命名为CLK,可用指令:CLOKF CLK 来同步器件。
因此,可用下列指令来仿真D型触发器的原信号:
SETF D ;置D输入为高
CLOCKF CLK ;时钟信号同步器件操作
CHECK DT ;验证输出DT是否为高
SETF /D ;置D输入为低
CLOCKF CLK ;时钟信号同步器件操作
CHECK /DT ;验证输出DT是否为低
同样,对其它触发器,可进行类似的仿真处理
在寄存器型设计进行仿真以前,必须初始化两项:
时钟CLK:由于“CLOCKF”语句在时钟引脚上施加一个“高-低”脉冲,因而首先必须确定开始时时钟是否被置成“低”电平。
输入选通引脚OE:必须选通输出端,这通过将OE引脚置成“低”电平来实现。
SETF /CLK /OE ;初始化CLK 和OE
初始化触发器,以验证CLR操作是否正确地工作。初始化工作由语句完成:
SETF CLR /PR ;置清零引脚CLR
CLOCKF CLK ;触发器清零
CHECK /DT DC /TT TC /JKT JKC /SRT SRC ;验证触发器输出
SETF /CLR ;撤除清零信号
SETF PR 、SETF /PR ;设置、验证和去除预置
SETF PR CLR、SETF /PR /CLR ;设置、验证和去除清零优先
此后,就能够仿真整个电路了。设计的仿真部分示于下表,该文件的仿真操作与基本逻辑门设计中的仿真操作相同.仿真结果可以通过检查历史文件或跟踪文件获得,也可通过观察产生的波形得到。
基本触发器模拟仿真部分( 1 )
基本触发器模拟仿真部分( 2 )
基本触发器完整的设计文件 ( 1 )
基本触发器完整的设计文件 ( 2 )
基本触发器完整的设计文件 ( 3 )
器件编程
在对基本触发器的设计进行了仿真,并确定设计能正确工作后,就可对器件进行编程,对器件编程的大致步骤与示例1-基本逻辑门设计 相同。