Re: [請益] 請教有關verilog的nonblocking的寫法...
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 7 之 7 篇):