为什么都是一个时钟控制的,边沿却对不齐?
为什么都是一个时钟控制的,边沿却对不齐? 从图看两个信号没有相关性呀 NJ8888 发表于 2014-4-18 14:53从图看两个信号没有相关性呀
看这个,rBRC<=cntt.但是边沿没对齐,而且冒出了个小小的2把顺序都调乱了。这是怎么回事?
程序大致是这样的:
if(!Busy_Sig)
case(i)
1:if(y==16) begin y<=5'd0;i<=2;end
else if( Done_Sig ) begin y<=y+1'b1; isWrite <= 1'b0;end
else begin isWrite <= 1'b1; rData <=y ; rBRC <= y;end
2:
if( x == 16 ) begin x <= 5'd0; i <= 1; end
else if( Done_Sig ) begin rLED <= RdData;x <= x + 1'b1; isRead <= 1'b0; end
else begin isRead <= 1'b1; rBRC <= cntt; end
endcase
该怎么同步处理? 你是组合逻辑呀,有毛刺好理解,没看到你是时序逻辑 NJ8888 发表于 2014-4-18 15:11
你是组合逻辑呀,有毛刺好理解,没看到你是时序逻辑
不好意思。。。刚刚没贴全,完整的程序是这样的:
always @ ( posedge CLK_100Mhz or negedge RSTn )
if( !RSTn )
begin
i <= 1;
C1 <= 29'd0;
x <= 5'd1;
y <= 5'd1;
rData <= 16'd0;
rBRC <= 22'd0;
rLED <= 4'd0;
isWrite <= 1'b0;
isRead <= 1'b0;
end
elseif(!Busy_Sig)
case(i)
1:if(y==16) begin y<=5'd0;i<=2;end
else if( Done_Sig ) begin y<=y+1'b1; isWrite <= 1'b0;end
else begin isWrite <= 1'b1; rData <=y ; rBRC <= y;end
2:
if( x == 16 ) begin x <= 5'd0; i <= 1; end
else if( Done_Sig ) begin rLED <= RdData;x <= x + 1'b1; isRead <= 1'b0; end
else begin isRead <= 1'b1; rBRC <= cntt; end
endcase
cnt1在什么地方,没有找到 honeybear 发表于 2014-4-18 15:47
cnt1在什么地方,没有找到
就是cntt 我输出的时候用assign把脚给拉出去了 assgin cntt1=cntt;
页:
[1]