我需要在生成語句中聲明一個寄存器來存儲一些臨時值,生成語句:verilog
要在實例化中使用。
我有
generate
for(i=0; i< N; i=i+1)
begin: i_loop
Inst_file u(S1(i),P1(i),S(i),P(i));
/* S1 and P1 have N bits and
S = S1^P1;
P = S1 & P1
*/
end //i_loop
S1和P1是簡單combinationl邏輯和我已經使用它們作爲導線用於第一
迭代。但是在i的每次迭代之後,我需要分配輸出S和P作爲輸入
(即用S和P代替S1和P1)。
我明白我應該用寄存器,而不是線做(是嗎?)
在我需要S1和P1爲REG這種情況。我試着用
, , ,裏面總是聲明的方式生成。它給出了錯誤。
u能請建議出路..
請格式化您的代碼,請參閱http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks。你可能希望先不用'generate'編寫代碼,直到你對verilog中的事物看起來應該有更多的直覺。 'generate'使速記成爲可能,但不是該語言的基本特徵。 – Andy 2011-04-19 04:56:31
@安迪:好的安迪,以後我會照顧格式:)感謝您的鏈接。 – Nandhini 2011-04-19 05:40:12