Re: [請益] 請教有關verilog的nonblocking的寫法...

看板Electronics作者 (新熱血陽光男孩￾NN)時間16年前 (2009/05/02 14:46), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串6/7 (看更多)
你的意思是說, 如果運算式: 先令 ip第0個clk為 2 ; ip第1個clk為 4 ; 第一級Block: a = ip ; b = a * 2 + 3 ; c = a + 2 * b ; d = a + b + c ; 第二級Block: e = d * 2 ; 就可以寫成 always @ (posedge clk) begin case (i) 1: begin a = ip ; i = i+1 ; end 2: begin e = d * 2 ; i = i+1 ; end 3: begin ... end .... default: begin i=i; end end assign b = a * 2 + 3 ; assign c = a + 2 * b ; assign d = a + b + c ; 以上的都還好, 可是d = a + b + c,這一行會不會怪怪的... 就是當b改變,d也會變,但是c還沒改變... 就已經得到d的數值... 還是時間控制好,就沒有問題。 ※ 引述《titansan (ㄎㄎ!)》之銘言: : ※ 引述《LINAN322 (新熱血陽光男孩￾NN)》之銘言: : : 不好意思,舉了個不好的例子, : : 應該說,a值會隨著clk一直改變的, : : 因為a是要傳送的訊號... : : ,接著會進行運算,得到d值後,會將d值傳送出去... : : 即d作為傳送至下一級的訊號。 : : b、c、d會因為運算,跟著改變其值,有相依性。 : : 所以跟s大大說的,就是將數值儲存起來。 : 這樣a應該是屬於sequential的電路 : b c d應該就是單純的combination的電路 : 那何不寫成 : assign b= : aggign c= : aggign d= : always @ (posedge clk) : ... : ... : a= -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.178.157 ※ 編輯: LINAN322 來自: 140.138.178.157 (05/02 14:53)

05/02 20:50, , 1F
你想想硬體要怎麼設計 然後再開始寫RTL
05/02 20:50, 1F

05/02 20:54, , 2F
要讓那些數值有相依性 就要讓他們在不同的clock做動
05/02 20:54, 2F
文章代碼(AID): #19--mkJG (Electronics)
討論串 (同標題文章)
文章代碼(AID): #19--mkJG (Electronics)