请教关于从memory中读数据的问题。望各位指教,谢谢了。
时间:10-02
整理:3721RD
点击:
从memory中每个时钟读取一个数据到module的输入端口DataIn.
然后数据再从DataIn输入到Dff.
Memory->DataIn(Input port )->Dff/D
我从仿真的波形文件上看Dff/Q 在第二个时钟时才有值:
#1 clock 数据到达DataIn
#2 clock 数据到达Dff/Q
我觉得理解不了的是memory到Dff/Q需要两个周期吗?
按我的理解从硬件上来看memory和Dff/D不就是类似于直接连在一起,然后只需一个时钟周期数据就可以到达Dff/Q了吗?
还是说输入端口也相当于一个寄存器,也需要一个clock?
菜鸟一只,望大家指点一下。谢谢!
附上相关的代码供参考:
///在design中
module design ( ....., DataIn,....);
...
always @ (posedge CLK )
Dff <= DataIn;
...
endmodule
///在testbench中
always @ (posedge CLK)
begin
DataIn <= memory;
i=i+1;
end
更正一下,
///在testbench中
always @ (posedge CLK)
begin
DataIn <= memory[i];
i=i+1;
end
第一步,给地址输出memory中数据至DataIn,第二步输出至DFF的Q端,每一步一个时钟,有问题吗?
楼上正解。
也就是说从memory中读数据到它自己的输出端口需要一个clock?
我原来理解错了,还以为数据就一直在memory输出端口上候着呢。
谢谢楼上两位:)
1时钟的时候datain上的数据是前一个时钟激发出来的,需要一个时钟周期
