基于VHDL的数字密码器的设计(5)

2019-05-27 17:50

种情况下,密码器每收到一个按键信号后,控制器模块应该判断出该按键输入是数字密码还是OPEN_T信号。

如果判断出按键输入OPEN_T信号,那么这是就不符合启动程序,这是密码器将转移到报警状态,同时还向密码错误次数计数模块发出ANC时钟,作为密码错误次数计数输入脉冲。是如果判断出是数字按键输入,则提供DUS时钟给编码模块作为密码输入位数计数脉冲信号,同时如果判断出该按键输入为正确密码,则向计数器选择模块发出CNP时钟信号,目的是选出对应的预置密码与输入的密码进行比较。对于比较模块来说,如果DEP的输出为0,那么控制器模块应该转移到密码错误状态;如果DEP的输出为0,那么这时检查计数器选择模块的输出FULL是否有效。如果FULL有效,那么表示已经接收了6个正确的数字密码,控制器模块将转移到启动状态,否则将返回本状态继续接收密码。

4)启动状态

启动状态是控制器模块的第4个状态,这时控制器将判断按键输入的具体信号:如果判断出按键输入是OPEN_T信号,那么将发出S_LG信号;如果判断出是数字按键输入,那么仍向编码模块发出DUS时钟。

5)误码状态

当控制器处于这个状态时,如果按下READY键,那么控制器将发出复位信号RESET,并使控制器返回到密码输入状态:如果按下OPEN_T键,那么控制器将向误码模块发出ANC时钟,同时转移到报警状态;如果判断出是数字按键输入,那么向编码模块发出DUS时钟。

6)报警状态

当控制器处于这个状态时,这时控制器将判断NOTC信号是否有效,如果该信号有效,则表示密码输入错误次数已经达到3次,这时密码器将进入到死锁状态,同时控制器将转移到报警返回状态;如果NOTC信号无效,则向密码错误计数模块发出定时信号,这时指示设备将发出警告信号,这时任何按键输入都将不被响应;如果定时结束(4s)则,密码器将再次进入到准备就绪状态,这时允许再次输入密码。

7)报警返回状态

报警返回状态是控制器模块的最后一个状态,这是密码器将判断输入的具体信号:如果按下SETUP信号,那么控制器模块将返回到密码建立等待状态;如果按下其他键,那么状态将不会发生变化。

根据上面对控制器模块的工作原理的描述,可以画出该模块的状态图,如图2-18所示。其中QA、QB、QC、QD、QE、QF、QG分别对应控制器的建立等待状态、准备就绪状态、密码输入状态、启动状态、误码状态、报警状态、报警返回状态这7个状态。

WAIT_T QA WAIT_T FULL READY QB READY QC READY DSW OPEN_T DEP QG NOTC SETUP 图2-18 控制器模块的状态图 QF OPEN_T QE READY OPEN_T QD SETUP

3、VHDL设计

通过前面对控制器模块的详细介绍,可以给出控制器模块的VHDL描述,其VHDL程序为control_model.vhd。

21

3 数字密码器的VHDL程序的编译、综合、仿真、验证

本课题中设计的所有模块均采用VHDL硬件描述语言进行描述,在Altera公司的MAX+PLUSⅡ开发环境下进行程序的编译、逻辑综合和优化、功能仿真、布局布线以及时序仿真,由Altera公司的FPGA产品FLEX10K系列产品EPF10K10LC84-4实现验证。

3.1 编译、综合

Altera公司的MAX+PLUSⅡ开发环境,由于其目的是形成可下载到可编程逻辑器件(FPGA或CPLD)中的文件,因此,编译、综合过程是一起的。

逻辑综合就是将较高抽象层次的描述自动转换到较低抽象层次描述的一种方法,就设计而言,既将RTL级的描述转换成网表的过程,编译的最终目的是为了生成可以进行仿真、定时分析及下载到可编程逻辑器件的相关文件,如*.cnf,*.rPt,*.snf,*.pof等。由于芯片的资源有限,为了优化输出和工艺映射,就要有相应的约束条件加以控制。以FPGA为目标器件时,设计实体中有的电路要尽量压缩面积而忽略性能要求;而有的电路为了满足关键信号及性能的要求,则要忽略面积占用。所以,速度和面

[12]

积优化的选择在多数情况下是矛盾的,这就要求设计者视具体情况选择,采用一定的优化设计方法。

3.2 模块仿真

下面给出主要模块的仿真波形图。

3.2.1 顶层模块仿真

1、密码输入错误

图3-1 密码输入错误状态的仿真波形图

密码输入错误状态的波形仿真图如图3-1所示,从图中可以看出:输入的密码为854321,而正确密码为654321,所以在按下OPEN_T键后,控制器进入了报警状态(QF),符合控制器工作流程。

2、密码输入正确

密码输入正确下的仿真波形图如图3-2所示。从图中可以看出,当密码输入654321后,控制器进入到了启动状态(QD)。在按下OPEN_T键后,控制器又返回了建立等待状态,同时发出LED_G绿灯驱动信号。这完全符合控制器工作流程,满足设计要求。

22

图3-2 密码输入正确下的仿真波形图

3.2.2 编码模块仿真

编码模块的仿真波形图如图3-3所示,从图中可以看出:当检测到有数字按键输入是,DATA_IN将输出一个时钟周期的高电平,同时该按键信号所代表的数值将通过B4~B1和IN1~IN6存储起来。

图3-3 编码模块的仿真波形图

至此完成了系统软件上的仿真。由于仿真激励文件的不完善,所以时序仿真的通过并不代表加载到FPGA片上的成功,只是通过了FPGA的硬件调试,才是系统设计的真正成功。

由于输入延时及仿真频率的选择问题,输出带有一定的延时,所以应该考虑到输出的延时问题,才能正确的对输入进行设置,从而得到意想的结果。

23

3.3 FPGA验证

FPGA验证就是将编译、综合生成的下载文件下载到指定的芯片上,本设计采用的是EDA—V型实验开发系统。本实验器由主板和下载板组成。下载板由ALTERA公司生产的FPGA(EPF10K10LC84—4)芯片及单片机系统组成,还包括EEPROM等。可以完成FPGA设计资料的下载,存储,显示等功能,可以和主板配合完成CPLD的各种开发及实验。

本设计通过在MAX+PLUSⅡ软件上进行编译、综合,最后下载到FPGA(EPF10K10LC84—4)芯片并在实验开发系统上进行验证,实际测试表明系统的各项功能要求均得到满足并且系统工作良好。

4 结束语

本文设计的密码锁克服了基于单片机的密码锁的可靠性较差的缺点高效的进行功能扩展和产品升级。本设计还突破了一般密码锁只能设置四位密码的限制任意位密码, 具有使用灵活、 性能可靠、 同时本文还通过数字密码器的设计展现出了现代电子设计方法—式的优点。VHDL语言具有很强的电路描述和建模能力而大大简化了硬件设计任务,提高了设计效率和可靠性。用其功能的实现,而不需要对不影响功能的与工艺相关的因素花费过多的时间和精力。它必将是现代电子的重要设计手段和发展方向。

附录1、 顶层模块(cipher_top.vhd) LIBRARY IEEE;

USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_arith.ALL; USE IEEE.std_logic_unsigned.ALL; USE WORK.cipher_example.ALL; ENTITY cipher_top IS

PORT(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9 : IN std_logic; wait_t : IN std_logic; ready : IN std_logic; setup : IN std_logic; open_t : IN std_logic; clk : IN std_logic;

led_g,led_r,alert : OUT std_logic; a,b,c,d,e,f,g : OUT std_logic;

sel : OUT std_logic_vector(2 DOWNTO 0)); END cipher_top;

ARCHITECTURE cipher_top_arch OF cipher_top IS COMPONENT keysync_model

PORT(c1,c2,c3,c4: IN std_logic;

a00,a10,a20,a30,a40,a50,a60,a70,a80,a90: IN std_logic; clk: IN std_logic;

c11,c22,c33,c44: OUT std_logic;

a01,a11,a21,a31,a41,a51,a61,a71,a81,a91: OUT std_logic); END COMPONENT;

, 利用了FPGA 的ISP 功能可, 可方便的设置, 将有十分良好的应用前景。

EDA 技术的灵活性,层次化设计方

[13]

,能从多个层次对数字系统进行建模和描述,从VHDL 语言实现电路设计者可以专心致力于程序清单

24

安全保密性强等优点 COMPONENT enable_model

PORT(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9: IN std_logic; en: IN std_logic;

a00,a10,a20,a30,a40,a50,a60,a70,a80,a90: OUT std_logic); END COMPONENT;

COMPONENT mux4_model

PORT(s0,s1,s2 : IN std_logic; e1,e2,e3,e4 : OUT std_logic); END COMPONENT;

COMPONENT encoder_model

PORT(a01,a11,a21,a31,a41,a51,a61,a71,a81,a91 : IN std_logic; reset,dus : IN std_logic; b1,b2,b3,b4 : OUT std_logic; data_in,di : OUT std_logic;

in1,in2,in3,in4,in5,in6 : OUT std_logic_vector(3 DOWNTO 0)); END COMPONENT;

COMPONENT comparator_model

PORT(b1,b2,b3,b4: IN std_logic; e1,e2,e3,e4: IN std_logic; dep : OUT std_logic); END COMPONENT;

COMPONENT counter_model

PORT(reset : IN std_logic; cnp : IN std_logic; s0,s1,s2 : OUT std_logic; full : OUT std_logic); END COMPONENT;

COMPONENT decoder_model

PORT(data : IN std_logic_vector(3 DOWNTO 0); a,b,c,d,e,f,g: OUT std_logic); END COMPONENT;

COMPONENT indicator_model

PORT(wait_l : IN std_logic; s_lg : IN std_logic; s_lr : IN std_logic; di,bjy : IN std_logic; clk_div1 : IN std_logic;

led_g,led_r,alert: OUT std_logic); END COMPONENT;

COMPONENT control_model

PORT(c11,c22,c33,c44 : IN std_logic; data_in : IN std_logic; dep,dsw : IN std_logic; full,notc : IN std_logic; clk : IN std_logic; en,dus,anc: OUT std_logic;

25


基于VHDL的数字密码器的设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:历年自考中国法律思想史试题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: