頁:
[1]
[verilog] 指撥開關 驅動3個七段顯示器
本帖最後由 snowflying 於 2015-11-18 02:27 AM 編輯如題目 利用12個指撥開關 配合RESET鍵
來驅動3個七段顯示器
下面是我的程式碼 但是只有兩個七段顯示器會亮
請問要怎麼修改 才能亮三個燈?
module Seg72(Seg,S,B0,B1,B2,clk,reset);
input B0,B1,B2;
input clk,reset;
output S;
output reg Seg;
reg S;
reg sel;
reg Seg0;
reg Seg1;
reg Seg2;
always@(posedge clk)begin
if(!reset)begin
S<=2'b000;
sel<=0;
end
else
sel<=sel+1;
if(sel==0)
S=2'b010;
else if(sel==1)begin
S=2'b100;
S=2'b111;
end
end
always@(B0,B1,B2)begin
case(B0)
4'b0000:Seg0=7'b0111111;
4'b0001:Seg0=7'b0000110;
4'b0010:Seg0=7'b1011011;
4'b0011:Seg0=7'b1001111;
4'b0100:Seg0=7'b1100110;
4'b0101:Seg0=7'b1101101;
4'b0110:Seg0=7'b1111101;
4'b0111:Seg0=7'b0000111;
4'b1000:Seg0=7'b1111111;
4'b1001:Seg0=7'b1101111;
default:Seg0=7'bx;
endcase
case(B1)
4'b0000:Seg1=7'b0111111;
4'b0001:Seg1=7'b0000110;
4'b0010:Seg1=7'b1011011;
4'b0011:Seg1=7'b1001111;
4'b0100:Seg1=7'b1100110;
4'b0101:Seg1=7'b1101101;
4'b0110:Seg1=7'b1111101;
4'b0111:Seg1=7'b0000111;
4'b1000:Seg1=7'b1111111;
4'b1001:Seg1=7'b1101111;
default:Seg1=7'bx;
endcase
case(B2)
4'b0000:Seg2=7'b0111111;
4'b0001:Seg2=7'b0000110;
4'b0010:Seg2=7'b1011011;
4'b0011:Seg2=7'b1001111;
4'b0100:Seg2=7'b1100110;
4'b0101:Seg2=7'b1101101;
4'b0110:Seg2=7'b1111101;
4'b0111:Seg2=7'b0000111;
4'b1000:Seg2=7'b1111111;
4'b1001:Seg2=7'b1101111;
default:Seg2=7'bx;
endcase
if(sel==0)
Seg=Seg0;
else if(sel==1)begin
Seg=Seg1;
Seg=Seg2;
end
end
endmodule
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> if(!reset)begin
S<=2'b000; // 應該是3‘b000;
sel<=0;
end
兩個燈亮的原因是當 sel = 1時,只有 Seg1 跟 Seg2 active。
if(sel==0)
Seg=Seg0;
else if(sel==1)begin
Seg=Seg1;
Seg=Seg2;
end
what is the requirement for this project?
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁:
[1]