我是一個初學者,通過xilinx編寫verilog。xilinx中位置聲明變量有什麼區別?
我已經學會端口聲明必須像下面
module mealy(
nReset,
clk,
in,
out
);
input nReset;
input clk;
input in;
output out;
endmodule
當我使用賽靈思,它的默認選項來設置變量,它似乎是這樣的:
module mealy(
input nReset,
input clk,
input in,
output out
);
endmodule
有時候,當我使用第二種方式,它會產生一個錯誤。兩種風格有什麼區別?
一個次要問題,聲明輸出作爲reg
S中的第一個樣式時可以正常工作,即
module mealy(
in,
out
);
output out;
input in;
reg out;
endmodule
當使用第二種風格,它會產生一個錯誤,指出不能聲明兩次。
module mealy(
input in,
output out
);
reg out;
endmodule
這是怎麼回事?我只是初學者,我不知道爲什麼我必須申報'reg'。
感謝摩根的幫助。另一個問題是爲什麼它不能以相同的方式聲明。我爲我的代碼添加了另一個問題。請幫助解決一個問題。 – dskim
你問了兩個問題;您需要爲兩者提供錯誤消息。第二個錯誤很容易;你不能混用舊式和新式的聲明。第一個錯誤並不明顯。你說'有時'它會產生一個錯誤。什麼時候?什麼是錯誤? 「出去」是一條電線嗎?你有'default_nettype'設置某處? – EML
@EML我認爲你打算評論這個問題而不是答案。主要問題是「有什麼區別」,而不是如何使錯誤消失,在這方面,確切的工具錯誤並不相關。 – Morgan