用存储器构建任意时序多路脉冲发生器

2020-07-22 02:04胡世昌
九江职业技术学院学报 2020年2期
关键词:触发器存储器时序

胡世昌

(沈阳师范大学,辽宁沈阳 110034)

在逻辑电路课程讲解触发器特性的过程中,有一部分题目是直接给出时钟波形和输入波形,要求画出输出波形〔1〕,为演示和验证这类题目,就需要能够产生任意时序关系的脉冲发生器。而常见的脉冲发生器,通常要求首先掌握触发器的原理〔2〕,甚至用到单片机〔3〕、CPLD、FPGA等更复杂器件〔4〕,复杂度使其不易掌握,决定了它们不适合作为教学工具。同时,这些脉冲发生器的输出都是有规律的脉冲序列,功能上也不符合器件功能验证的需求。作为器件功能验证使用的脉冲发生器,要能产生任意时序关系的多路脉冲,所需学习时间不宜过长。根据存储器的性质,笔者找到了一个使用存储器产生任意时序的多路脉冲发生器的方法,并用软件进行了仿真。该方法可以满足逻辑电路课程讲解中的演示和验证。

1 用存储器构建任意时序多路脉冲发生器

首先在存储器中存储连续的0或1,再用一个计数器产生存储器的连续递增的地址信号,即可存储器的数据输出端产生相应的逻辑信号波形,存储器中的1位对应高电平,0位对应低电平。

例如,如果在一位存储器中的每一位,分别存储下列连续的0和1,在顺序递增的地址信号作用下,即可在数据输出端产生连续的五个方波,每段高电平对应两个连续的1,每段低电平对应两个连续的0。这个方波可以作为触发器的时钟信号CP,通过在不同的比特位设置相应的0和1,可以产生不同时间关系的数字信号(如图1所示)。

把上述连续的位序列,分别存储到3个1位宽的存储器中,并用一个模21(十六进制15H)的加法计数器作为该存储器地址信号的发生器,即可产生相应的3个波形:由计数器和三个1位存储器构成的3路脉冲发生器。图2是对应的logisim-evolution仿真电路。

如果采用四位存储器,可灵活选用每个半字节中的三位作为波形存储位,例如用0位产生CP,1位产生J,2位产生K,未使用的3位置零,则第一个半字节应存储0000,第二个半字节应存储0000,第三个半字节应存储0001,依此类推,可知对应的32个存储单元的内容(0013 2677 6011 0237 6675 0000 0000 0000),对应的脉冲发生器电路如图3所示。

初学者可以采用多个一位存储器来分别实现每一路脉冲;熟练者则可以采用四位或八位存储器来构建多路脉冲。

脉冲发生器构建完毕之后,就可以把它作为一个独立的模块使用来验证或演示逻辑电路的功能。构建这个脉冲发生器,只需确定计数次数、存储位序即可,简单易学。

图1 连续位0和1及其对应的波形信号

图2 计数器和3个一位存储器构成的3路脉冲发生器

图3 计数器和1个四位存储器构成的3路脉冲发生器

图4 用多路脉冲发生器验证JK触发器的功能特性

图5 用多路脉冲发生器验证JK触发器功能特性的输出波形

2 用存储器构建的多路波形发生器验证逻辑功能

以验证JK触发器功能为例,把上述波形发生器接入JK触发器,即可分别验证JK触发器的置0、置1、保持、翻转功能。如图4所示,其中模块wavGen是前面所实现的脉冲发生器,它的输出信号被接入一个下降沿触发的JK触发器的输入端。

仿真结果如图5所示,在CP的前4个下降沿中,第一个验证了置1功能,第二个验证了置0功能,第三个验证了保持功能,第四个验证了翻转功能。

调整存储器中所保存的0或1,即可调整个输入波形之间的时序关系,非常方便。

3 Logisim-Evolution仿真软件的缺陷

需要注意的是图5中CP波形的第5个下降沿,设计这个时序关系的目的是要验证“时钟有效沿之后的状态,取决于时钟有效沿前一瞬间的输入”这个功能特性。但是很遗憾,所得到的输出波形是错误的,因为在第5个下降沿之前,J=1,K=1,应该翻转;下降沿之后,J=0,K=0,应该保持。根据 “触发器在时钟有效沿之后的状态,取决于时钟有效沿前一瞬间的输入”这个功能特性,输出Q本应根据下降沿之前的输入(J=1,K=1)而翻转,但从输出波形来看,它没有翻转,而是依照下降沿之后的输入(J=0,K=0)而保持。

改用D触发器,使用存储器构建的脉冲发生器,让数据输入端D在触发脉冲有效沿跳变的瞬间同步改变,用Logisim-Evolution仿真的结果表明,下降沿后的输出信号Q也是依据触发脉冲有效跳变后的瞬间输入来确定的。这进一步印证了Logisim-Evolution在跳变沿前后瞬间的输入采样处理方面的错误。

Logisim-Evolution软件“使用触发脉冲跳变沿后的数据输入,来确定触发器的数据输出”这一做法,与真实的硬件行为不同,在应用时必须加以注意。

4 结语

利用存储器的存储位元来实现任意波形数字信号发生器,具有方便、直观、易于掌握的优点,是数字电路设计和学习中值得推广的好方法。它可以构建任意时间关系的多路 波形,在时序逻辑电路功能的学习和验证中简单易用。但要注意,Logisim-Evolution这个软件,在边沿触发器的仿真上,没有实现“时钟有效沿之后的状态,取决于时钟有效沿前一瞬间的输入”这一特性,而是选择了“根据时钟有效沿之后的瞬间输入,改变输出状态”这个做法。该方法不符合硬件本身的逻辑,在应用中必须加以注意。

猜你喜欢
触发器存储器时序
清明
静态随机存储器在轨自检算法
浅谈时序逻辑电路的成长记忆
基于不同建设时序的地铁互联互通方案分析
触发器在酒店管理系统中的应用
基于FPGA 的时序信号光纤传输系统
任意2~k点存储器结构傅里叶处理器
基于模体演化的时序链路预测方法
存储器——安格尔(墨西哥)▲
几种常见触发器工作方式的讨论