1

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

在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,load=1)。换句话说,将负载从 true 更改为 false 会改变 Q 的值,但我希望 Q 保持它之前的值。

什么是触发器,它在设置和启用设置为高之后会在 Q 上保持它的值?

4

2 回答 2

0

您应该尝试查找mux flop

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

于 2013-11-11T09:00:44.283 回答
0

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

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

  1. 对于 CMOS 传输门触发器实现,请参阅 NXP 数据表中的 4013
  2. 对于基于锁存器的 TTL,请参阅 7474的数据表
  3. 旧的 TI 数据手册用于显示使用异步反馈电路的触发器实现。

同步负载控制部分,看Morgan的mux链接。

于 2013-11-11T09:30:54.450 回答