看板 Electronics 關於我們 聯絡資訊
※ 引述《icetofux (豆腐)》之銘言: : input in0,in1; : reg a; : always@(in0) : begin : a=0; : end : always@(in1) : begin : a=1; : end : 在軟體模擬上,compile會通過,也能進行波形模擬,但是以donwload用的軟體去進行 : compile,則會告訴不能讓兩個always敘述去變動同一個變數值。 : 如果我想改成: : always@(in0 or in1) : begin : ... : end : 我要怎麼去判斷到底是in0有動作還是in1有動作而進入always敘述呢? always @(in0 or in1) begin if(in0) a=0; else if(in1) a=1; else a=0; end 上課要認真.. 這是基礎中的基礎.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.157.114.11
icetofux:謝謝你 04/18 09:11
icetofux:不好意思,如果用你這種判斷方式,是不是只能針對 04/18 17:34
icetofux:上升時觸發有效?如果要下降時觸發則改為if(~in0)? 04/18 17:38
sepcher:樓上 you got it 04/18 19:22
bighead319:樓上亂講,這東西合成出來是一個組合邏輯,只要in0或 04/18 20:27
bighead319:in1其中有一個有變化,就會進到判斷式影響a的輸出 04/18 20:28
sepcher:我只是就他敘述來說明~當然這是level sensitive trigger 04/18 20:39
sepcher:應該是我搞錯他的意思(= = 我以為他只是單純問if造成變化 04/18 20:47
sasako:這種是level的觸發 不是edge的觸發... 04/19 02:12
sasako:這是在控制訊號等於1時觸發 並不是所謂的上升... 04/19 02:13
ery001:如果synthesis tools至今仍沒有太大的差異,這個寫法請小心 04/20 17:24
ery001:基本上這種寫法simulation可能不會有問題,但是我的經驗是 04/20 17:25
ery001:曾經在design compiler合出來的東西和預期是不同的 04/20 17:26
ery001:當然我不是專搞digital的人,所以並不敢說絕對會出問題 04/20 17:26
ery001:不過當時請教過一些寫了數年verilog先進,多數都會盡避開在 04/20 17:29
ery001:oops...sorry,我搞錯了...這個應該是沒問題的,之前是拿clk 04/20 17:31
ery001:一起來做類似的combinational logic所以出問題... :P 04/20 17:32