對於模擬執行一些事情,一旦你可以使用initial
但這不是一個綜合的:
reg x;
initial begin
if(condition) begin
x = 1'b0 ;
end
else begin
x = 1'b1 ;
end
end
要回答這個一般性問題always @(**what I should add here**)
大多數現代Verilog仿真將允許使用的*
這將當任何右側參數改變選擇邏輯的任何條件時觸發塊(總是開始結束)。
always @* begin
if(condition)
x = y ;
else
x = ~y ;
end
舊的模擬器將要求您列出您需要在列表中觸發的變量。 always @(condition, y)
如果只有一個變量被選中,那麼在導線類型上的賦值可能會更好,但這不能侷限於「執行一次」,而是適合您的問題。不知道是否適合FPGA的雖然
wire [3:0] x ; //4 bit wire
//(condition) ? value if true : value if false ;
assign x = (condition) ? 4'b1010 : 4'b0100 ;
你想描述什麼電路? – 2012-06-30 17:49:47
您是否閱讀過您最近兩次提到這個問題的答案? – Tim
我在前面的2個問題中想要問的是事實上的一般情況。我已經閱讀了那裏的答案。我只是問我只想使用if-else語句。沒有使用總是我得到錯誤。這意味着這些陳述必須始終在內部阻止。對??。現在我應該如何執行一次總是阻塞一次。我在前面提出的問題中沒有得到答案。 – user1491918