mayo20102012 发表于 2014-9-16 08:04:39

关于急寄存器输入端数据的建立时间保持时间的疑问

reg        a;
reg        b;
input        data;
always @(posedge clk or negedge rst_n) begin
        if( !rst_n ) begin
                a <= 1'b0;
                b <= 1'b0;
        end
        else
                a <= x;
                b <= a;
        end
end

比如上面这个简单的程序,对于寄存器a输入端的数据,我们可以使其建立时间和保持时间都满足。
但是对于寄存器b似乎保持时间几乎为0吧?因为因为时钟上升沿一到a寄存器的输出就变了。

不知道我这个问题算不算问题,还请高手赐教!

cxhy 发表于 2014-9-16 10:39:59

我觉得这个是非阻塞式赋值啊,在X给a的同时,a之前的数值也会给b。a当然会是0.如果是阻塞式赋值就又是一码事了。

不是高手,发表一点看法
页: [1]
查看完整版本: 关于急寄存器输入端数据的建立时间保持时间的疑问