2015-10-09 65 views

回答

1

有兩種類型以Verilog for循環的,程序性的for循環(一個或initialalways塊內),併產生for循環(外initialalways塊)。兩者都限於簡單的單變量賦值。

通常,您不需要通過for-loop管理多個變量。在大多數情況下,其他值可以來自一個索引。你的代碼並不需要三個變量,一切都可以從i確定:

generate 
genvar i; 
for (i = 0; i < 4; i = i + 1) 
    Register Register_inst (.d(w_data), .en(decoder_out[i]), .clk(clk), .q(reg_out[i*8 +: 8)); 
endgenerate 

更多的+:陣列上切片算子,請參閱前面回答問題:
Indexing vectors and arrays with +:What is `+:` and `-:`?

注:SystemVerilog的支持具有程序性循環的多個變量賦值。按照IEEE Std 1800-2012生成for循環,仍然存在單個變量賦值限制。

相關問題