作者YOYOKT (東西要出清啦)
看板Electronics
標題[問題] 如何在沒有reset下去計數clock
時間Wed Mar 12 18:25:35 2008
如果只有一個input,且是一個clock,而要輸出reset跟一些其他訊號,目前卡在如何去
計數clock,我的寫法如下:
input clock;
reg state;
reg [8:0] count;
always @(posedge clock)
begin
state <= 1'b0;
end
always @(posedge clock )
begin
if (~state)
count <= 8'd0; // initial count=0
end
always @(posedge clock)
if (~count)
count <= count + 1;
modelsim模擬結果,這樣是可以計數clock,可是要合成電路會有錯誤,"Only one
always block may assign a given variable count[8:0]" 現在想不通如何把下面兩個
always合成一個always呢? 謝謝了!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.185.203
1F:推 FengMin:count這變數不能在兩個不同的always block同時access 03/12 21:42
2F:→ YOYOKT:那請教該如何做才能達到呢? 03/13 09:35
3F:推 DinoZavolta:我覺得你用FSM比較好控制,只需定義好每個狀態該做什麼 03/13 10:53
4F:→ DinoZavolta:ex. 初始狀態 => count=0, 計數狀態 => count=count+1 03/13 10:57
5F:→ DinoZavolta:這樣只需要一個seq. block (用來控制狀態轉換), 03/13 10:59
6F:→ DinoZavolta:跟一個comb. block (用來描述各狀態的動作) 03/13 11:01
7F:→ YOYOKT:請問定義初始狀態COUNT=0,合成時不是無效嗎? 03/13 11:13
8F:→ DinoZavolta:只要count=0包在always block內,是確定可合成的~ 03/13 11:38
9F:→ YOYOKT:原來如此,立刻試看看,謝謝您^^ 03/13 11:44