作者zx33571163 (mm)
看板Electronics
标题[问题] VERILOG 时脉问题
时间Sun Aug 15 21:58:59 2010
always@(posedge clk or negedge reset )
begin
if(!reset)
begin
count=0;
end
else
begin
count1<=0;
buffer<=bufin;
count <=count+1;
begin
if(count==n)
begin
判断<=1;
end
end
end
end
end
always@(posedge clk )
begin
if(判断==0)
begin
bufout<= 1'bz;
end
else if(判断==1)
begin
count <=0;
bufout<= buffer;
count1<=count1+1;
begin
if(count1==n)
判断<=0;
end
end
end
endmodule
我这样写
实际的输出结果会比我想要的输出 "慢1个CLOCK"
请问是哪出问题?
也就是判断==1 但bufout晚1个CLOCK出来
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.117.162.75
※ 编辑: zx33571163 来自: 59.117.162.75 (08/15 21:59)
※ 编辑: zx33571163 来自: 59.117.162.75 (08/15 22:00)
1F:推 rabird:Combinational和Sequential绞在一起.... 08/15 22:51
2F:→ TripleC:先去看书分清楚sequential和combinational, 对自己比较好 08/16 00:48
3F:推 tkhan:基本太差,多看点书,多看点别人的code.. 08/16 08:23
4F:→ vapaa:比较好奇 这样子写不晓得synthesis会不会过@@ 08/16 10:31
5F:→ vapaa:我想是你的bufout中间经过一个buffer(flip-flop) 08/16 10:37
6F:→ vapaa:才读到bufin的值 所以会晚一个CLK出现 08/16 10:38
7F:→ vapaa:那个buffer感觉是多余的 因为你的bufout本身就是flip-flop了 08/16 10:40
8F:→ vapaa:还有如果要用flip-flop reset里面都要写完整吧 08/16 10:42