作者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