1、= #1 1 b1;else if (cnt = period - 1) / b0;= #1 assign clkout = clkout_r ;endmodulemodule key_scan ( clk , keydrv , rst ) ;output 3: 0 keydrv ;wire 3:parameter s1 = 4 b1110;parameter s2 = 4 b1101;parameter s3 = 4 b1011;parameter s4 = 4 b0111;reg 3: 0 current_state; 0 next_state;always ( posedge clk o
2、r negedge rst )current_state = s1 ;else current_state = next_state ;always ( current_state )case ( current_state )s1: next_state =s2;s2:=s3;s3:=s4;s4:=s1;default:endcaseassign keydrv = current_state ; timescale 1 ms / 1 nsmodule mms (enter, clk,KEYO , KEYI , rst, DIG, Y, right, wrong, change, led_c,
3、 clr, led_clr) ;input enter;output right;reg right;output wrong;reg wrong;input change;output led_c;reg led_c;input clr;output led_clr;reg led_clr;input 3: 0 KEYO ; /- FPGA 0 KEYI ;FPGA wire scanclk; 0 keyvalue;reg 7: 0 temp_r; 0 scankey_o; 0 scankey_i;wire dis;output 7: 0 Y; 0 Y_r;assign Y=Y_r; 0 D
4、IG;assign dis = &KEYO ;reg dis_pre;assign KEYI = keydrv;scan_clk key_clk(. clk ( clk) ,. clkout ( scanclk) ,. rst ( rst ) ;key_scan key_scan(. clk ( scanclk ) ,. keydrv (keydrv) ,always ( posedge clk or negedge rst ) beginif ( rst=1 b0 ) begin scankey_o = 4 b0 ;scankey_i dis_pre = dis;end else if (
5、clk =1 b1 ) beginif ( (dis = 1 b0) &(dis_pre=1 b1) ) beginscankey_o = keydrv ;= KEYO ;temp_r=scankey_o, scankey_i ;reg clkk;always ( temp_r or rst ) begin b0 ) begin /keyvalue =4 b1111;clkk=1elsecase ( temp_r)8 b1110_1110 : beginkeyvalue h7; clkk b1110_1101 : h8; b1110_1011 : h9; b1101_1110 : h4; b1
6、101_1101 : h5; b1101_1011 : h6; b1011_1110 : h1; 8 b1011_1101 : h2; b1011_1011 : h3; b0111_1101 : h0;default :keyvalue=4reg 2:always (negedge rst or posedge clkk)begin if(! rst) begin cnt=0; RG endbegin cnt=cnt+1;=keyvalue, RG15: 4 ;/output 15: 0 RG;reg 15:/*always (cnt)if(! rst) RGcase (cnt)3 b001:
7、 begin RG3: 0 =keyvalue; b010: begin RG7: 4 b011: begin RG11: 8 b100: begin RG15: 12 =RG;*/reg1: 0 js;always (posedge scanclk) rst) jsjs=js+1;always (js) rst) DIGcase(js)2 b00: begin DIG A=RG3: 0 ; b01:=RG7: 4 ; b10:=RG11: 8 ; b11:=RG15: 12 ; 0 A;always (A or rst ) b0 ) /Y_r = 8 b0000_0000;Y_r =8cas
8、e (A )/5 hh: Y-r = 8 / wu xian shi4 h0: Y_r = 8 b0011_1111; / 0 h1: b0000_0110; / 1 h2: b0101_1011; / 2 h3: b0100_1111; / 3 h4: b0110_0110; / 4 h5: b0110_1101; / 5 h6: b0111_1101; / 6 h7: b0000_0111; / 7 h8: b0111_1111; / 8 h9: b0110_1111; / 9/4 b0001: b1000_0000; /. b0100_1001; 0 MM;always (enter) enter) begin right wrong/MM=16 b0001_0010_0011_0100;begin if(enter=1 ba1)begin if(RG=MM) begin rightelse begin rightalways (change or clr) clr)begin led_clr change) led_c
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1