module aa0106(clk,en,Q,codeout);
input clk,en;
output [5:0] codeout;
output reg[2:0] Q;
bb0106 bb0106(outcode,Q);
cc0106 cc0106(clk,en,Q);
endmodule
module bb0106(clk,en,Q);
input clk,en;
output reg[2:0] Q;
always@(posedge clk)
begin
if(en == 1'b1)
begin
if(Q < 3'd5)
Q <= Q + 1'b1;
else
Q <= 0;
end
else
Q <= Q;
end
endmodule
module cc0106(codeout,Q);
input [2:0] Q;
output [5:0] codeout;
reg[5:0] codeout;
always@(Q)
begin
case(Q)
3'd0:codeout=6'b011111;
3'd1:codeout=6'b101111;
3'd2:codeout=6'b110111;
3'd3:codeout=6'b111011;
3'd4:codeout=6'b111101;
3'd5:codeout=6'b111110;
default: codeout=6'bx;
endcase
end
endmodule
上面是我寫的代碼,用計數器實作對數碼管的外圍依次點亮,我的是共陽級數碼管,但是下載后發現輸入使能en只能點亮一個,不能回圈,我覺得是語法問題,求各位大佬幫助,今晚實驗


uj5u.com熱心網友回復:
是不是因為case陳述句沒有用非阻塞uj5u.com熱心網友回復:
降低一下clk 的頻率試試uj5u.com熱心網友回復:
always@(Q) 這個地方用clk 的倍頻試一下uj5u.com熱心網友回復:
每一個數碼管都有一個使能信號,你怎么能用一個en去控制所有數碼管?而且你呼叫程式的輸入輸出也有問題轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/140531.html
標籤:硬件設計
