key.v

来自「yong VerilogHDL yu yan bianxie de pinlv 」· Verilog 代码 · 共 89 行

V
89
字号
module key(clkin,rst,datain,dataout,en);input clkin,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 clkin or negedge rst)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	 endendalways@(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];	 endcaseendalways@(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;	 endcaseendendmodule 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?