📄 dial.v
字号:
/*
读入拨码开关8位0 1状态在8位7段数码管相应位上显示0或1。
*/
module dial(clk,rst,datain,dataout,en);
input clk,rst;
input[7:0] datain;
output[7:0] dataout;
reg[7:0] dataout;
output[7:0] en;
reg[7:0] en;
reg[15:0] cnt;
reg[3:0] dataout_buf;
always@(posedge clk)
begin
if(!rst) begin
cnt<=0;
en<=8'b1111_1110;
end
else begin
cnt<=cnt+1;
if(cnt==16'hffff) begin
en[7:1]<=en[6:0];
en[0]<=en[7];
end
end
end
always@(en or datain)
begin
case(en)
8'b1111_1110:
dataout_buf=datain[0];
8'b1111_1101:
dataout_buf=datain[1];
8'b1111_1011:
dataout_buf=datain[2];
8'b1111_0111:
dataout_buf=datain[3];
8'b1110_1111:
dataout_buf=datain[4];
8'b1101_1111:
dataout_buf=datain[5];
8'b1011_1111:
dataout_buf=datain[6];
8'b0111_1111:
dataout_buf=datain[7];
default:
dataout_buf=datain[7];
endcase
end
always@(dataout_buf)
begin
case(dataout_buf)
4'b0000:
dataout=8'b0000_0011;
4'b0001:
dataout=8'b1001_1111;
4'b0010:
dataout=8'b0010_0101;
4'b0011:
dataout=8'b0000_1101;
4'b0100:
dataout=8'b1001_1001;
4'b0101:
dataout=8'b0100_1001;
4'b0110:
dataout=8'b0100_0001;
4'b0111:
dataout=8'b0001_1111;
4'b1000:
dataout=8'b0000_0001;
4'b1001:
dataout=8'b0001_1001;
4'b1010:
dataout=8'b0001_0001;
4'b1011:
dataout=8'b1100_0001;
4'b1100:
dataout=8'b0110_0011;
4'b1101:
dataout=8'b1000_0101;
4'b1110:
dataout=8'b0110_0001;
4'b1111:
dataout=8'b0111_0001;
endcase
end
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -