我正在學習verilog,並且當我不知道電路如何在Verilog代碼中工作時,我會轉到RTL查看器以查看數字邏輯。但是在這段代碼中出現了一個奇怪的組件,我不知道這個組件是什麼。是觸發器,多路複用器還是邏輯端口?下面是 的代碼和圖片,在圖片中,組件是紅色的三角形。使用verilog的quartus RTL查看器中的奇怪組件
的代碼:
module testesoma(clock,reset,in, out,aux);
input wire reset, clock, in ;
output reg [3:0] out,aux;
always @(posedge clock or posedge reset)
begin
if(reset)
begin
out = 0;
end
else
out = aux;
aux = aux + 1;
end
endmodule
好的答案,但必須在第2點加上注意。'begin'和'end'等同於'C'中的大括號和[consensus] (http://programmers.stackexchange.com/questions/16528/single-statement-if-block-braces-or-no)是省略這些內容對於一個內線更容易引入意外的錯誤。 OP中的一個錯誤就是這樣一個例子 - 無法開始/結束'else'子句。 – Chiggs
謝謝,現在我看到「else」之後的「開始」和「結束」錯誤,現在通過改正電路變成可以理解的電路。我需要組合邏輯的「=」,例如: 'code' a = b + c; d = a + e; f = d + a; 'code' 你會建議我將順序的組合邏輯分開嗎? –