密码锁的verilog代码.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
密码锁的verilog代码 module scan_clk ( clkout ,clk ,rst ); input rst ; input clk ; wire clk ; output clkout ; reg clkout_r ; parameter period= 200000; reg [31:0] cnt; always @( posedge clk or negedge rst) //分频50Hz begin if ( !rst ) begin cnt = {31{1b0}} ; clkout_r = 0 ; end else begin cnt= cnt+1; if (cnt == (period 1) - 1) //设定周期时间的一半 clkout_r = #1 1b1; else if (cnt == period - 1) //设定的周期时间 begin clkout_r = #1 1b0; cnt = #1 b0; end end end assign clkout = clkout_r ; endmodule module key_scan ( clk ,keydrv ,rst ); input clk ; input rst ; wire clk ; output [3:0] keydrv ; wire [3:0] keydrv ; parameter s1 = 4b1110; parameter s2 = 4b1101; parameter s3 = 4b1011; parameter s4 = 4b0111; reg [3:0]current_state; reg [3:0]next_state; always @ ( posedge clk or negedge rst ) begin if ( !rst ) current_state = s1 ; else current_state = next_state ; end always @ ( current_state ) begin case ( current_state ) s1: next_state =s2; s2: next_state =s3; s3: next_state =s4; s4: next_state =s1; default: next_state =s1; endcase end assign keydrv = current_state ; endmodule `timescale 1 ms / 1 ns module mms (enter,clk, KEYO ,KEYI ,rst,DIG,Y,right,wrong,change,led_c,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 input clk ; input rst ; output [3:0] KEYI ; //与原理图一致,是FPGA输出给 键盘 wire scanclk; wire [3:0] keydrv ; reg [3:0] keyvalue; reg [7:0] temp_r; reg [3:0] scankey_o; reg [3:0] scankey_i; wire dis; output [7:0] Y; reg [7:0] Y_r; assign Y=~Y_r; output [3:0] DIG; reg [3:0] DIG; 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) , .rst ( rst ) ); alway

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档