我不是在寻找触发器的硬件语言描述,而是要实现逻辑门级。
在verilog中,我正在寻找的等价物是:
always@(posedge clk or negedge reset) begin
if(~reset)
Q <= 1'b0;
else if(~load)
Q <= D;
end
我看过:http://reviseomatic.org/help/e-flip-flop/4013%20D-Type%20Flip%20Flop.php 和 http://www.csee.umbc.edu/~squire/images/dff.jpg
上述实现的问题是在我将一个值设置为Q(D = 0,Q = 0,load = 0)后加载(图中设置)= 0,然后当我设置加载高负载= 1在下一个clk循环中,我得到(D = x,Q = 1,负载= 1)。换句话说,将负载从true更改为false将改变Q的值,但我希望Q保持它以前的值。
什么是触发器在设置并将启用设置为高电平后将其值保持在Q值?
答案 0 :(得分:0)
您应该尝试查找mux flop。
它在标准d型前面有一个多路复用器,并在未选择负载时将其输入连接到输出。
答案 1 :(得分:0)
您的问题是'同步加载启用'与'异步设置'不同。您的Verilog代码显示带有异步复位和同步加载启用的F / F.你的第一个(修订版)参考文章只是废话 - 忽略它。它试图(错误地)描述4013,它没有负载启用。我没有详细查看第二个参考,但它看起来像传统的基于锁存器的F / F实现,具有异步低电平有效设置和复位。
您可以通过多种方式实现触发器: