K变模可拟计数器竞争冒险现象的消除
1 引 言
数字电路中,在驱动端同时变化的两个信号,由于布线及门的传输延迟时间的不同,常导致接收端信号的不同步,由此产生干扰脉冲,这就是竞争冒险。在用VHDL语言设计数字电路时,常遇到这种现象。对于毛刺敏感电路,必须采取措施抑制措施,避免逻辑错误。关于竞争冒险产生的原因、判断方法及改善的措施许多资料都有阐述,主要有选通法、加入D触发器、修改逻辑设计等。其中加入选通脉冲或D触发器的方法具有一定的局限性,诸如产生符合要求的选通脉冲比较困难,另外,D触发器的加入会使电路的输出信号延迟一个时钟周期。因此简单而有效的方法应该是修改电路的逻辑设计,即从HDL程序设计上进行修改。
下面以k变模可逆计数器的设计为例介绍一种通过修改逻辑设计来消除竞争冒险现象的方法。k变模可逆计数器主要应用在数字锁相环技术中起数字滤波作用。数字锁相环DPLL与传统的模拟PLL相比,具有精度高、易于集成且不受温度、电压影响,环路带宽和中心频率编程可调,易于构建高阶锁相环等优点,而受设计者的欢迎。
2 竞争冒险现象产生的原因
K变模可逆计数器的设计思路是:根据外部输入信号(c,b,a)决定计数模值;鉴相器输出信号updn的高低电平决定计数方向,updn为高电平,进行减法计数,updn为低电平则进行加法计数;进位脉冲INC或借位脉冲DEC的输出则作为脉冲加减电路的输入。假设外部输入信号(c,b,a)与模值之间的关系如下。
资料中通常采用如下2个进程来完成K变模可逆计数器的设计。
最后通过“INC<=outinc;DEC<=outdec;”将输出信号引出。仿真后得到图1所示的仿真波形,从中可以看到当CQ=4和6,且updn为0时,或updn为1,且CQ=1时有毛刺。分析程序可知,在图1中cba信号的作用下,K值预定为7(“00000111”),而设计要求updn为0时,只有当CQ=k时,进位信号inc才为1。为何CQ还没有到达k值大小时,INC就有高电平出现,仔细分析可知,决定INC状态的进程为组合逻辑电路,在时钟信号到来之前如果CQ的大小为“00000011”,当CLK的上升沿到来后,由于CQ(2)的变化早于CQ(0)和CQ(1)的变化,导致“00000111”状态的短暂出现,因此INC上出现毛刺,如图2所示。同样可以分析出updn为1时,dec上毛刺产生的原因。
观察综合后生成的RTL图形(以dec信号为例,如图3所示)可以发现INC和DEC信号的输出为引入缓冲器的组合逻辑电路输出。
3 竞争冒险现象的消除
(1)采用D触发器。考虑到D触发器可以消除毛刺,若采取在上述进程后加入一个D触发器的方法(程序如下),则仿真之后的波形如图4所示。
相关文章
- 2024-01-19风机-液力偶合器模糊-PID调速控制系统研究
- 2023-04-28浅谈《工程力学》中平衡条件与平衡方程教学的点滴体会
- 2023-04-27基于物联网技术的防作弊电子秤和信息系统
- 2023-05-11基于遗传算法的模糊PID复合控制在电阻炉上的应用
- 2023-05-14旋进旋涡流量计进气道堵塞和磨损对计量误差的影响
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。