看了特权同学的书后,有不明白的地方,见于 “同步设计思想”:
读写同时触发时有可能总线冲突。
正确的做法没有完全看懂。但我目前的做法好像也没遇到总线冲突的现象,怎么评判?
我的做法: 不用脉冲信号A做触发来计数,而是对脉冲做处理产生和时钟同步且宽度为一个时钟周期的信号B,然后对B计数。
计数代码如下。
always@(posedge CLK or posedge RESN)
begin
if (RESN == 1)
cnt <= 32'b0;
else
if( B )
cnt <= cnt + 1'b1;
end
assign Dout = cnt;
读取代码如下。
always@( posedge CLK or posedge RESN)
case(WE,OE,CE,ADDR) //ADDR为地址线,DBUS为数据线。
9'b100000111: DBUS <= Dout;
按书上的说法,以上做法也会产生读写冲突,可实际的情况是计数很准确,电机也运转正常。
用户1696769 2016-3-9 11:07
用户376150 2015-9-7 09:59
用户376150 2015-8-24 15:52