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

看板Electronics作者 (只想把你留在心中)時間16年前 (2009/05/02 14:56), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串7/7 (看更多)
※ 引述《LINAN322 (新熱血陽光男孩￾NN)》之銘言: : 你的意思是說, : 如果運算式: : 先令 : 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 ; : 就可以寫成 : 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 : assign b = a * 2 + 3 ; : assign c = a + 2 * b ; : assign d = a + b + c ; : 以上的都還好, : 可是d = a + b + c,這一行會不會怪怪的... : 就是當b改變,d也會變,但是c還沒改變... : 就已經得到d的數值... : 還是時間控制好,就沒有問題。 不是唷!所謂a是input,就是你用testbench去控制... 要不然你想要把a嵌進電路裡也可以... 將a寫成一個簡單的counter,隨著clk去變動他的值.. 接下來... 關於case的寫法,他通常會是個多工器... 在你的設計中應該是不需要用到此寫法... counter很簡單 always @ (posedge clk or negedge n_rst) begin if(n_rst) a <= 0 ; end else a <= a + 1 ; ##想要加什麼數字都可以 end end 至於pipeline的觀念,我是覺得你還沒建立完全,不知道該從何講起, 只好請你先翻翻書囉....><" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.103.42

05/02 15:12, , 1F
嗯,好,我會多看一些書的..謝謝︿︿
05/02 15:12, 1F
文章代碼(AID): #19--waiI (Electronics)
討論串 (同標題文章)
文章代碼(AID): #19--waiI (Electronics)