-1

我有一个带有异步复位和启用的触发器。这是我的代码:

module DFF_aSR(in, enable, clock, reset, out);
input in, enable, clock, reset;
output out;
reg out;

always @ (posedge clock or posedge reset) begin
    if (reset) begin
        out <= 1'b0;
    end 
    else if (enable) begin
        out <= in;
    end 
end
endmodule

但这是我得到的波形,显示复位后没有发生重新锁定,为什么会这样?

触发器波形

4

1 回答 1

1

如果/当出现时钟上升沿且数据稳定为高且复位稳定时,锁存器输出应为高低的。我看到的唯一这样的边缘是在第一个复位脉冲之前。如果您希望锁存器在例如 110ns 时间获取信号,则应确保在此之前复位输入变为低电平。如果您的意图是复位应该是边沿触发而不是电平触发,您可能需要使用一对触发器,一个由时钟触发,另一个由复位触发,连线使得第一个的 D 输出连接到第二个,第二个的 D 连接到第一个的 /Q。将锁存器的输出馈送到异或门将产生一个信号,该信号将指示哪个信号具有最近的上升沿(警告:同时上升沿可能触发亚稳态)。然后,您似乎想要的信号可以通过将锁存数据与 XOR 的输出进行“与”以及可能的一些避险门来形成。

于 2015-01-27T00:23:49.757 回答