看板 Programming 關於我們 聯絡資訊
程式碼: module TEST( y, reset, clk ); output y; input reset, clk; reg c; assign y = c; always @( reset or clk ) begin if( reset ) c = 4'b0; else if( clk ) c = 4'b1; end endmodule 而跑出來的結果:http://images.plurk.com/1e341f7e72261158f38e7d4e9af0d46f.jpg
我的問題是: 在2ns的地方,clk為0 且 reset為0,照理說y的值應該不會變呀?!?! 可是結果卻是y變1 請高手幫忙解答,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.224.111 ※ 編輯: rocmewtwo 來自: 140.138.224.111 (04/15 18:51) ※ 編輯: rocmewtwo 來自: 140.138.224.111 (04/15 18:53)
Leadgen:有if沒有else,這個電路是一個Latch. 182.234.11.129 04/15 19:16
Leadgen:先確定你要的是Latch,再來看第二個if有沒 182.234.11.129 04/15 19:26
Leadgen:有寫錯(或是第一個 ) 182.234.11.129 04/15 19:26
buganini:電路的概念做出來不會是一個一個if去跑 163.22.93.132 04/15 21:35
buganini:這樣的condition應該算invalid的吧 163.22.93.132 04/15 21:35
buganini:我猜測是undefined behavior 163.22.93.132 04/15 21:36
buganini:c後面的東西是combinationl logic不是 163.22.93.132 04/15 21:37
buganini:一般程式語言裡面的procedure 163.22.93.132 04/15 21:37
rocmewtwo:抱歉我好像條件有寫錯了,以致於大家看140.138.224.111 04/16 01:18
rocmewtwo:錯方向...我改改140.138.224.111 04/16 01:18
※ 編輯: rocmewtwo 來自: 140.138.224.111 (04/16 01:19)
rocmewtwo:其實我的問題是出在reset和clk重疊的時140.138.224.111 04/16 01:20
rocmewtwo:後,他們的判斷好像就不符合if else的140.138.224.111 04/16 01:20
rocmewtwo:結果?! 就是2ns那裡的問題 謝謝140.138.224.111 04/16 01:21
rocmewtwo:出來的結果確定無誤,是在code打的時候140.138.224.111 04/16 01:22
rocmewtwo:不小心改到了 抱歉140.138.224.111 04/16 01:23
buganini:改用c<=4'b0看看 163.22.93.132 04/17 02:14
buganini:同步跟非同步的差別 163.22.93.132 04/17 02:15
rocmewtwo:回buganini: 改成 <= 好像也不行耶140.138.224.111 04/17 11:09
buganini:你把時間軸拉大看 0,1之間那一小撮毛 163.22.93.132 04/17 13:00
buganini:簡單的解決方法是改變clk的phase 163.22.93.132 04/17 13:06
buganini:然後你改<=是改4'b0還是兩個都改? 163.22.93.132 04/17 13:07
rocmewtwo:只改了reset的那邊,clk沒動140.138.224.111 04/17 19:39
rocmewtwo:那撮毛有什麼特別意義嗎>O<140.138.224.111 04/17 19:40
rocmewtwo:如果把else if(clk)改成 else140.138.224.111 04/17 19:49
rocmewtwo:是可以正常跑沒錯,但是雙信號判斷140.138.224.111 04/17 19:50
rocmewtwo:好像就會出錯Q_Q140.138.224.111 04/17 19:50
buganini:那撮毛是有意義的啊 要放大看 163.22.93.132 04/17 20:49
buganini:是電路的延遲造成時序上的誤差 163.22.93.132 04/17 20:49
buganini:才產生出這樣的結果 163.22.93.132 04/17 20:49