触发器有加载/设置,复位,clk和输入

时间:2013-11-10 23:31:24

标签: verilog

我不是在寻找触发器的硬件语言描述,而是要实现逻辑门级。

在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.phphttp://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值?

2 个答案:

答案 0 :(得分:0)

您应该尝试查找mux flop

它在标准d型前面有一个多路复用器,并在未选择负载时将其输入连接到输出。

答案 1 :(得分:0)

您的问题是'同步加载启用'与'异步设置'不同。您的Verilog代码显示带有异步复位和同步加载启用的F / F.你的第一个(修订版)参考文章只是废话 - 忽略它。它试图(错误地)描述4013,它没有负载启用。我没有详细查看第二个参考,但它看起来像传统的基于锁存器的F / F实现,具有异步低电平有效设置和复位。

您可以通过多种方式实现触发器:

  1. 对于CMOS传输 - 栅极触发器实现,请参阅NXP datasheet表示4013
  2. 对于基于锁存器的TTL,请参阅 datasheet代表7474
  3. 旧的TI数据手册用于显示翻牌     使用异步反馈电路的实现。
  4. 对于同步负载控制部分,请查看Morgan的mux链接。