我正在創建一個有4個空的4位寄存器的寄存器文件,並且在每個時鐘週期內,寄存器獲取一個值,然後使用該值顯示一個7段解碼器。如果寄存器是空的,不應該有顯示,但是一旦一個值被加載到寄存器,那麼應該有一個顯示。我試圖編寫7段解碼器的verilog代碼,如果En = 1,那麼應該只有一個輸出。我的問題是,代替不顯示任何內容,7段解碼器將顯示0,直到值被添加到寄存器,這種情況下,解碼器將顯示加載的值。這裏是verilog代碼。寫入一個只有輸出的Verilog代碼時啓用
module seven_seg_decoder(S, Z, Y, X, W,En);
input Z,Y,X,W,En;
output [6:0] S;
reg [6:0] S;
always @(En)
begin
case({Z,Y,X,W,En})
5'b00001: S = 'b0000001;
5'b00011: S = 'b1001111;
5'b00101: S = 'b0010010;
5'b00111: S = 'b0000110;
5'b01001: S = 'b1001100;
5'b01011: S = 'b0100100;
5'b01101: S = 'b0100000;
5'b01111: S = 'b0001111;
5'b10001: S = 'b0000000;
5'b10011: S = 'b0000100;
5'b10101: S = 'b0001000;
5'b10111: S = 'b1100000;
5'b11001: S = 'b0110001;
5'b11011: S = 'b1000010;
5'b11101: S = 'b0110000;
5'b11111: S = 'b0111000;
endcase
end
endmodule
當寄存器加載的值,我已經輸出來自寄存器說,它被加載,並且被用作輸入對這個解碼器的使能
我明白你在說什麼了,但如果我確實在你提到的那個條款中加入了,那麼它是不是還會顯示8?默認原因創建相同的輸出作爲案件5'b10001 – Zebs
對不起,我不小心打入太快。我編輯了評論 – Zebs
我不知道你的輸出編碼是什麼。改變它的意思是「什麼都不顯示」 – skrrgwasme