fpga锁存器设计
基于FPGA的电子密码锁设计
![基于FPGA的电子密码锁设计](https://img.taocdn.com/s3/m/df1ba1abec3a87c24028c440.png)
基于FPGA的电子密码锁设计一、设计要求:1、开锁代码为8位二进制,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯。
否则,系统进入“错误”状态,并发出报警信号。
2、开锁程序有设计者确定,并要求所内给定的密码可调,且预置方便,保密性好。
3、串行电子密码锁的报警方式是点亮指示灯,并使喇叭鸣叫报警,直到按下复位开关,报警才停止。
此时,电子密码锁又进入等待下一次开锁的状态。
二.设计说明与提示:1.该题目的主要任务是产生一个开锁信号OPEN,而开锁信号的形成条件是,输入代码和已设密码相同。
实现这种功能的电路构思有多种,本题目运用两片8位锁存器,一片存入密码,另一片输入开锁代码,通过比较的方式,若两者相等,则形成开锁信号。
2.在开锁信号产生时,要求输出声,光信号,声音的产生由开锁信号触动扬声器工作,光信号由开锁信号点亮LED指示灯。
3.用按钮开关的第一个动作信号触发一个5秒定时器,若5秒内无开锁信号产生,让扬声器发出特殊音响,以示警告,并输出一个信号推动LED不断闪烁。
三.设计思想:电子密码锁的系统结构框图分成两大部分:控制器和处理器。
整个系统的输入信号有一个时钟脉冲CLK ,输出信号有表示开锁,关锁信号的红灯,绿灯以及报警信号SPEAKER。
控制器中的所有按键按下时均为高电平,即高电平有效。
RW 为“密码设定”信号, OK 为“确定”信号, RED=‘0’GREED=‘1’为开锁信号CNT 表示上一位密码正确时,控制器给出的可进行下一位二进制密码比较的信号,OPEN=‘1’为控制器给出的锁开信号, OPEN=‘0’为控制器给出的密码错误信号。
处理器中有一个计数器,计数器C1用是用来记录从第一个按钮触动后的5秒内若未将锁打开(即输入正确密码时间超过5秒),则电路自动复位并进入自锁状态,使之无法再打开,并由扬声器发出持续20秒的报警信号。
四、设计程序与部分分析:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity lock_m isport(key:in std_logic_vector(7 downto 0);clk,clk1,ok,rw: in std_logic;red,green,speaker,rwled,okrw:out std_logic);end lock_m;architecture behav of lock_m issignal ok1,ok2,ok0,prr,start,pdan,rw1,rin:std_logic :='0';signal sbuf1,sbuf2,keyin:std_logic_vector(7 downto 0):="";signal mmst: std_logic_vector(7 downto 0):="";signal cnt:std_logic_vector(2 downto 0):="000";signal cnt1:std_logic_vector(4 downto 0):="00000";beginprocess(clk) ---定义个存储器将密码存放在keyin中beginif clk'event and clk='1' thenkeyin<=key;end if;end process;prr<=pdan or rw1 or rin or ok;st: process(keyin,prr,ok1) -----第一次修改密码beginif ok1='1' then start<='0';elsif (keyin/="" and prr='0') thenstart<='1';else start<='0';end if;end process;inkey: process(key,start,clk) ----输入密码时间进入记时状态beginif clk'event and clk='1' then ok1<='0';ok2<='0';if start='1' then sbuf1<=keyin; ----将密码放入rom1暂存器中if ok='1' then ok2<='1';elsif cnt="100" then cnt<="000" ;ok1<='1'; --5秒到将cnt值零将ok1值置高else cnt<=cnt+'1';end if ;else cnt<="000";sbuf1<=sbuf1; ----当start=‘1’时cnt永远保持‘0’end if;end if;end process;pandan : process(ok,ok1,ok2,clk,start) ---输入密码用于判断密码是否正确beginif ok2='1' or ok1='1' then pdan<='1'; ------开锁信号elsif clk'event and clk='1' thenif pdan='1' thenif cnt1="10011" thenpdan<='0'; --20秒后判断结束,进入等待外部输入状态elsecnt1<=cnt1+'1';end if;elsecnt1<="00000"; ---等待状态时cnt1一直为‘0’end if;end if;end process;comp: process(pdan,rw1,sbuf1,mmst,rin,clk1) -----显示程序beginif pdan='1' then ------开锁信号密码正确if sbuf1=mmst then -----红灯灭,绿灯亮red<='0';green<='1';rwled<='0';speaker<='0';okrw<='0';else ------密码错误red<='1';green<='0';rwled<='0';speaker<=clk1;okrw<='0';end if; ----红灯亮,绿灯灭,elsif rw1='1' then ----第一次修改密码显示状态red<='1';green<='0';rwled<='1';speaker<='0';okrw<='0';elsif rin='1' thenred<='0';green<='0';rwled<='1';speaker<='0'; okrw<='1';elsered<='1';green<='0';rwled<='0';speaker<='0';okrw<='0';end if;end process;rewrite:process(rw,keyin,ok0,clk,start,pdan,rin)beginif clk'event and clk='1' thenif ok0='1' then rw1<='0';elsif keyin="" and pdan='0' and rin='0' thenif rw='1' thenrw1<='1';end if;end if;end if;end process;process(rw1,ok,keyin,clk)beginif clk'event and clk='1' thenok0<='0';sbuf2<=keyin;if rw1='1' thenif ok='1' thenok0<='1';if mmst=sbuf2 thenrin<='1';elserin<='0';end if;end if;elseif rin='1' thenif ok='1' thenmmst<=sbuf2;rin<='0';else mmst<=mmst;end if;else null;end if;end if;end if;end process;end behav;五、仿真波形:(密码正确)密码锁默认的密码为“”,当我们第一次设置的密码为key=””,然后按OK键盘确认。
基于FPGA的电子密码锁设计
![基于FPGA的电子密码锁设计](https://img.taocdn.com/s3/m/d3e32ae5ee06eff9aef807f2.png)
一、前言电子密码锁的使用体现了人们的消费水平、保安意识和科技水平的提高,而且避免了携带甚至丢失钥匙的麻烦。
目前设计密码锁的方法很多,例如传统的PCB板设计、用PLC设计或者单片机设计等等。
而用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法。
VHDL是一种符合IEEE标准的硬件描述语言,其最大的特点是借鉴高级程序语言的功能特性,对电路的行为与结构进行高度的抽象化、规范化的形式描述,并对设计的不同层次、不同领域的模拟验证与综合优化等处理,使设计过程延到高度自动化。
二、方案设计密码锁的的构成主要由密码输入、密码设置、比较控制和报警部分组成,此外密码锁必须能够保存已设置的密码,因而需要一个寄存器来保存密码,同时由于控制电路和报警电路要用到不同的时钟,因而需要一个时序产生电路来生成需要的不同信号,采用分频方法实现。
根据密码锁的电路特点,选用的是实验箱的模式6电路,根据电路功能,在这里设计的密码锁以4位2进制代码作为密码的电子密码锁。
其原理框图如下所示:图一、电子密码锁原理框图三、功能模块的实现1、时序电路在密码锁的电路中,输入计时、报警计时需要的1HZ的时钟脉冲信号,而驱动蜂鸣器工作需要的很高频率的脉冲信号,因而这里采用输入一个高频脉冲(1024HZ)信号来驱动蜂鸣器,采用分频的方法得到1HZ的计时脉冲,程序如下:process(clk_1k)variable cnt1:integer:=0;beginif rising_edge(clk_1k) thenif cnt1=512 thenclk_1<=not clk_1;cnt1:=0;else cnt1:=cnt1+1;end if;end if;end process;程序说明:clk_1k为输入的1024HZ高频脉冲,cnt为分频得到的1HZ 计时脉冲。
2、密码设置为了安全性,密码锁必须能够重复的设定密码,在设定密码锁后,应该设置一个寄存器来存储设定的密码,程序如下:process(rst,password,enter_p) isbeginif rst='0' thenif enter_p='1' thenram<=password;en1<='1';end if;end if;end process;程序说明:rst低电平时所有的模块复位,只有密码设置模块工作;password为设置密码时的输入端,ram就是存储密码的寄存器;enter_p为在这里为密码设置使能端,高电平有效。
基于FPGA的电子密码锁的设计
![基于FPGA的电子密码锁的设计](https://img.taocdn.com/s3/m/f0ea293302020740be1e9bfe.png)
随着社会物质财富的日益增长,安全防盗已成为人们所关注的焦点。
然而传统机械弹子锁安全性低,密码量少且需时刻携带钥匙使其无法满足一些特定场合的应用要求,特别是在人员经常变动的公共场所,目前使用的电子密码锁主要有两个方案:一是基于单片机用分立元件实现的,二是通过现代人体生物特征识别技术实现的,前者电路较复杂且灵活性差,无法满足应用要求;后者有其先进性但需考虑成本和安全性等诸多因素。
基于此,本文设计了一种新型电子密码锁,采用FPGA芯片,目前以硬件描述语言(Verilog 或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA 上进行测试,是现代IC 设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。
但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。
厂商也可能会提供便宜的但是编辑能力差的FPGA。
因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。
另外一种方法是用CPLD(复杂可编程逻辑器件备)。
1 系统功能描述本设计主要实现以下六个功能:(1)初始密码设置:系统上电后输入4位数字并按“*”后密码设置成功系统进入上锁状态。
为了实际需要,系统另设置了一个4位数的优先级密码,当用户忘记密码或被他人更改密码后,可以用优先级密码清除所设密码。
(2)密码更改:为了密码安全及避免误操作,只能在开锁状态下先输入旧密码后才能更改系统密码,然后输入4位新密码后按“*”。
(3)解锁:输入密码或优先级密码后按“#”,系统即解锁。
FPGA和Verilog设计中的latch锁存器的问题
![FPGA和Verilog设计中的latch锁存器的问题](https://img.taocdn.com/s3/m/ca341c09650e52ea55189889.png)
FPGA和Verilog设计中的latch锁存器的问题一直都知道fpga中有latch这么一回事,但是一直都不太清楚到底什么是锁存器,它是怎么产生的,它到底和寄存器有多少区别,它怎么消除。
为什么说他不好?一,是什么锁存器是一种在异步时序电路系统中,对输入信号电平敏感的单元,用来存储信息。
一个锁存器可以存储1bit的信息,通常,锁存器会多个一起出现,如4位锁存器,8位锁存器。
锁存器在数据未锁存时,输出端的信号随输入信号变化,就像信号通过一个缓冲器,一旦锁存信号有效,则数据被锁存,输入信号不起作用。
因此,锁存器也被称为透明锁存器,指的是不锁存时输出对于输入是透明的。
二锁存器与寄存器的区别:两者都是基本存储单元,单锁存器是电平触发的存储器,触发器是边沿触发的存储器。
本质是,两者的基本功能是一样的,都可以存储数据。
意思是说一个是组合逻辑的,一个是在时序电路中用的,时钟出发的。
三,锁存器的危害:对毛刺敏感,不能异步复位,所以上电以后处于不确定的状态;Latch会使静态时序分析变得非常复杂;在PLD芯片中,基本的单元是由查找表和触发器组成的,若生成锁存器反而需要更多的资源。
第三条也是最基本的原因。
四,产生的原因********ps重重之重上面说了那没多只是觉得网上的没把锁存器说明白。
下面的才是重点。
1,case2,if-------else if3,always@(敏感信号表)五解决1.case——————加default:关于defalut的情况:一是可以default:data=1‘bx;这个x表示未知,在综合时可以避免产生锁存器。
在仿真时是红线表示。
二是default:data=0;这样产生一个默认的情况。
2.if-----------------------一定要有else语句。
3.always---------如是说道:在赋值表达式右边参与赋值的信号都必须在always@(敏感电平列表)中列出。
如果在赋值表达式右端引用了敏感电平列表中没有列出的信号,那么在综合时,将会为该没有列出的信号隐含地产生一个透明锁存器。
基于FPGA的电子密码锁的研究与设计
![基于FPGA的电子密码锁的研究与设计](https://img.taocdn.com/s3/m/5682fe1b79563c1ec5da714f.png)
论文题目:基于FPGA的电子密码锁设计摘要普通的机械锁保密性不好,防盗性差,而且必须使用钥匙。
但是,基于FPGA设计的电子密码锁与普通的机械锁比较来说,就克服了这些不足之处。
该论文主要描述的是一种电子密码锁的设计方法,这种电子密码锁是基于现场可编程门阵列(FPGA)的电子密码锁。
由FPGA构造的电子密码锁系统中,硬件电路可以实现所有的算法,大幅度提高了西戎的工作可靠性。
为了提高设计的效率,可以在更改设计时只更改FPGA中的控制和接口电路,这是因为FPGA的现场可编程功能,也正是利用这一点,可以将更新后的设计下载到FPGA中,省去了更改外部电路设计的麻烦。
所以,这样的系统既可以使工作的可靠性增强也可以更加方便的升级。
系统所实现的功能:用户给电子密码锁设定一个密码,当使用本机键盘开锁时,该密码与用户设定的密码比较,如果密码正确,则开锁;如果密码不正确,用LED灯报警;允许用户重新输入密码。
关键词电子密码锁;FPGA;硬件描述语言;EDAAbstractFPGA-based design of electronic locks is a small digital system,compared with ordinary mechanical locks,has many unique advantages:confidentiality,security and strong,you can not have the keys,remember a password to unlock.This paper describes an approach based on field programmable gate array(FPGA)devices electronic locks design.Construct systems with FPGA devices,all algorithms entirely by hardware circuit to achieve,making the work system reliability greatly improved.As the FPGA with field-programmable function,when you need to change the design,just change the FPGA control and interface circuitry using EDA tools designed updated downloaded to the FPGA without the need to change the external circuit design,greatly improving the design efficiency.Therefore,the use of digital FPGA development system,not only has high reliability,but also extremely easy to upgrade.System implemented features:electronic locks user to set a password when using the keyboard lock,compared with the password set by the user's password,if the password is correct,then unlock;If the password is incorrect,the speaker alarm,allows the user to re- enter the password.Key wordsElectronic locks;FPGA;Hardware Description Language;EDA目录摘要 (I)Abstract (II)前言 (1)第一章概述 (2)1.1 课题背景 (2)1.2 课题研究的目的和意义 (2)1.3 国内外现状 (3)1.4 课题的主要研究工作 (4)第二章相关知识介绍 (5)2.1 FPGA的相关介绍 (6)2.1.1 可编程逻辑器件 (6)2.1.2 FPGA简介 (7)2.1.3 FPGA应用特点 (7)2.1.4 FPGA的设计流程 (9)2.2 硬件描述语言Verilog (11)2.2.1 Verilog语言简介 (11)2.2.2 Verilog语言的优点 (11)2.2.3 Verilog语言的基本结构 (12)2.3 QuartusⅡ软件开发工具 (12)第三章电子密码锁的总体设计 (14)3.1 设计要求 (14)3.2 系统原理框图 (14)3.3 系统主控制流程框图 (15)第四章电子密码锁的软件设计 (17)4.1 主要功能模块设计 (17)4.1.1 输入模块 (18)4.1.2 显示模块 (19)4.3 电子密码锁的仿真 (19)第五章电子密码锁的硬件实现 (24)5.1 电子密码锁的硬件模块实现 (24)5.2 硬件设备 (24)5.3 硬件的实现 (25)结论 (27)参考文献 (28)致谢 (30)前言基于FPGA的电子密码锁是新型现代化安全管理系统,微机自动识别技术和现代安全管理措施技术,包括生物技术、通信技术、电子和机械电等诸多新技术都在其中体现,重要部门出入口安全防范问题因此得到了解决。
论文FPGA电子密码锁设计方案
![论文FPGA电子密码锁设计方案](https://img.taocdn.com/s3/m/1d056edd9e314332396893a5.png)
摘要随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。
电子密码锁与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
在实际应用中,由于程序容易跑飞,系统的可靠性能较差。
本文主要阐述了一种基于现场可编程门阵列 FPGA 器件的电子密码锁的设计方法。
用 FPGA 器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。
由于 FPGA 具有现场可编程功能,当设计需要更改时,只需更改 FPGA 中的控制和接口电路,利用 EDA 工具将更新后的设计下载到FPGA 中即可,无需更改外部电路的设计,大大提高了设计的效率。
因此,采用 FPGA 开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。
本文采用 EDA 技术,利用 Quartus II 工作平台和硬件描述语言,设计了一种电子密码锁,并通过一片 FPGA 芯片实现。
关键词:关键词:电子密码锁;FPGA;硬件描述语言;EDAAbstractWith the development of electronic technology, electronic password lock with burglar alarm and other functions replacing less password and poor security mechanical code lock is an inevitable trend. compared electronic password lock with ordinary mechanical locks, it has many unique advantages : confidentiality, and security in nature, do not use the key, remember password can unlock it etc .Most electronic password locks we used now is based upon SCM technology ,SCM is its mainly device ,and the creating of encoding and decoding devices is the fashion of Software mode. In practical application, the reliability of the system may be worse because of easy running fly of the programme.This paper mainly expatiates a design method of electronic password lock based upon Field Programmable Gate Array device. We use FPGA devices to construct system , all of the algorithm entirely achieved by the hardware circuit , because of FPGA has the function of ISP , when the design needs to be changed We only need to change the control and interface circuit of FPGA,EDA tools are used to download the updated design to FPGA without changing the design of the external circuit , this greatly enhance the efficiency of the design .Therefore , we use FPGA to empolder the digital system has not only high reliability but also extremely convenient of upgrading and improvement .In this paper ,we use EDA technology , Quartus II platform and hardware description language designing an electronic password lock ,and it achieved through an FPGA chip. Key words:electronic password lock;FPGA;hardware description language; EDA :目录1 绪论 <标题部分的格式很多不对,检查修改)...... 1 1.1 本课题研究的国内外现状及其发展...... 2 1.2 本课题研究的目的和意义...... 2 2 关键技术简介...... 4 2.1 FPGA 硬件设计描述...... 4 2.1.1 2.1.2 2.1.3 FPGA 的设计流程...... 4 VHDL 语言的基本结构...... 6 自上而下<TOP DOWN)的设计方法 (7)2.2 设计语言、仿真平台与开发系统...... 8 2.3 用 QuartusⅡ进行系统开发的设计流程...... 8 3 系统总体设计...... 9 3.1 电子密码锁设计的原理...... 9 3.2 方案的提出...... 10 3.3 系统设计要求...... 11 3.4 系统设计描述...... 11 3.5 各功能模块描述...... 12 3.6 系统流程...... 13 4 系统详细设计...... 15 4.1 输入模块 (15)4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 时序产生电路...... 16 按键消抖电路...... 17 键盘扫描电路...... 20 键盘译码电路...... 21 键盘输入模块的实现 (22)4.2 电子密码锁控制模块...... 23 4.2.1 4.2.2 4.2.3 控制模块的描述...... 23 控制模块的状态图与 ASM 图......错误!未定义书签。
课程设计fpga密码锁
![课程设计fpga密码锁](https://img.taocdn.com/s3/m/7e64434c19e8b8f67d1cb98f.png)
FPGA实验报告一、实验目的1.设计一个密码锁2.加深FPGA电路原理的理解3.掌握VHDL语言的使用,学会用VHDL语言来编程解决实际问题4.学会使用EDA开发软件设计小型综合电路,掌握仿真的技巧5.学会应用开发系统实现硬件电路,检验电路的功能二、实验内容题目:电子密码锁内容:设计一个4位串行数字锁1.开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁。
否则进入“错误”状态,发出报警信号。
2.锁内的密码可调,且预置方便,保密性好。
3.串行数字锁的报警,直到按下复位开关,才停下。
此时,数字锁又自动等待下一个开锁状态。
三、实验步骤1.系统总框图本系统的硬件部分主要由密码锁按键消抖模块,密码输入比较更改模块,密码显示模块、报警模块组成。
整体系统框图如下图所示。
2.密码锁的主要功能密码锁控制器的主要功能有:(1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。
(2)密码校验:如果有按键按下,直到松开该按键,如果密码校验正确,无变化,否则如果密码校验错误蜂鸣器响,表明密码错误。
(3)错误报警:密码输入错误开始报警。
(4)密码修改:输入密码正确后按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功。
3.密码锁的各个模块(1)按键消抖。
每按下一个键,仅产生一个信号脉冲,作为按键的使能信号,使能信号控制显示的数字。
(2)密码输入比较密码输入值的比较主要有两部分,密码位数和内容,任何一个条件不满足,都不能打开锁。
锁内密码为“0000” , key2 和key1 置低电平,分别表示输入“1” 和“0” 。
输入密码前先按start键,再依次正确输入0000,会在数码管逐一显示,按确认键,经检验,输入的密码等于锁内预先设置的密码密码锁开启信号,锁开启。
同时,可以进行密码修改。
若在输入密码的过程中,4 位二进制密码出现输入错误,那么锁不能开启,同时,蜂鸣器发出报警信号。
《FPGA系统设计》实验报告》时序逻辑电路的设计
![《FPGA系统设计》实验报告》时序逻辑电路的设计](https://img.taocdn.com/s3/m/86d7963dfe00bed5b9f3f90f76c66137ee064f65.png)
《FPGA系统设计》实验报告》时序逻辑电路的设计
一、设计任务
分别设计并实现锁存器、触发器的VHDL模型。
二、设计过程
1、同步锁存器:
同步锁存器是指复位和加载功能全部与时钟同步,复位端的优先级较高。
下图为同步锁存器的VHDL程序及模型:
2、异步锁存器:
异步锁存器,是指复位与时钟不同步的锁存器。
下图为同步锁存器的VHDL程序及模型:
3、D触发器:
D触发器是最常用的触发器。
下图为简单D触发器的VHDL 模型:
4、T触发器:
T触发器的特点是在时钟沿处输出信号发生翻转。
按
照有无复位、置位信号以及使能信号等,T触发器也有多种类型。
下图为带异步复位T触发器的VHDL模型:
5、JK触发器:
JK触发器中,J、K信号分别扮演置位、复位信号的角色。
为了更清晰的表示出JK触发器的工作过程,以下给出JK触发器的真值表(如表1所示)。
表1 JK触发器真值表
按照有无复位、置位信号,常见的JK触发器也有多种类型,下图带异步复位(clr)、置位(prn)的JK触发器的VHDL模型:
三.总结
本次实验中较为顺利,在第一次课的时间内我就已经完成了必做实验与选作实验。
在实验的过程中,在防抖电路处有了较大的困难。
由于仿真中不存在此问题,在实际操作中参数选择时遇到了一定的困难。
在反复比对效果之后,我
确定了电路的参数,实现了防抖功能。
通过这次实验,我对时钟脉冲、计数器等有了更加深入的认识与理解。
-基于FPGA的电子密码锁的设计
![-基于FPGA的电子密码锁的设计](https://img.taocdn.com/s3/m/2fa784a5da38376bae1fae35.png)
本科毕业设计基于FPGA的电子密码锁的设计摘要随着现代电子技术的迅猛发展,相信电子密码锁将会逐渐取代普通的机械密码锁。
主要是由于电子密码锁拥有几个普通机械密码锁不可能替代的优点:保密系能好、安全度高、即防盗性能强,不需要使用钥匙、即记住密码就可开锁等等。
本文主要阐述了一种基于现场可编程门阵列FPGA器件的电子密码锁的设计方法。
用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。
而且由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA 工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。
因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。
此设计采用EDA技术,利用MAX+PLUSⅡ工作平台和VHDL硬件描述语言,设计了一种电子密码锁,并通过本学院的实验箱FPGA芯片实现。
关键词:电子密码锁FPGA VHDL硬件描述语言EDA MAX+PLUSⅡThe Design of Electronic Locks Based on FPGAWu Yaoxiao(College of Engineering, South China Agricultural University, Guangzhou 510642, China) Abstract:With the rapid development of modern electronic technology, electronic locks will gradually replace the ordinary mechanical locks. Confidential Department has the advantages of several ordinary mechanical locks can not substitute electronic locks, such as high security, anti-theft performance, and does not require the use of a key, Remember password can unlock. This article focuses on the design method which is based on field programmable gate array (FPGA) devices, electronic locks. FPGA device constructed system, all of the algorithms completely realized by a hardware circuit so that the operational reliability of the system can be greatly improved. And with field-programmable function, when it need to change the methods of the design, just change the FPGA control and interface circuit with using EDA tools updated design that is downloaded to the FPGA without the need to change the external circuit design, greatly improving the efficiency of the design. Therefore, the use of digital systems developed by the FPGA, not only has a very high operating reliability, but also extremely easy to upgrade. The design of the system uses the EDA technology, MAX+PLUSⅡsoftware and VHDL hardware description language, designed an electronic lock, and implemented by the Institute of experimental box FPGA chip.Keywords: electronic locks FPGA VHDL hardware description language EDAMAX + PLUS II目录1 前言 01.1 EDA技术及其发展 01.2 电子密码锁的国内外发展状况 01.3 电子密码锁的重要性 (1)2 MAX+PLUSⅡ软件环境概述 (2)2.1 MAX+PLUSⅡ设计流程 (2)2.2 MAX+PLUSⅡ支持的硬件描述语言 (3)2.3 MAX+PLUSⅡ工作过程 (4)3 硬件环境FPGA的工作原理及其结构 (5)3.1 FPGA的基本结构 (5)3.2 FPGA的设计流程 (6)4 基于FPGA电子密码锁系统的基本描述 (8)4.1 电子密码锁的系统的方案比较和选择 (8)4.2 基于FPGA的电子密码锁的设计的思路 (9)4.3 本系统设计的目的和意义 (9)5 基于FPGA电子密码锁系统的仿真和分析 (10)5.1 底层文件仿真和分析 (10)5.1.1 扫描时钟产生模块 (10)5.1.2按键去抖模块 (10)5.1.3键盘扫描模块 (11)5.1.44*4键盘编码及其按键功能的设置模块 (12)5.1.5数码管显示模块 (13)5.1.6 比较判断和功能描述模块 (15)5.2 顶层文件仿真和分析 (16)6 结论 (17)参考文献 (18)附录 (18)致谢 (33)华南农业大学本科生毕业设计成绩评定表1 前言1.1 EDA技术及其发展在计算机技术的推动下,20世纪末,电子技术获得了飞速的发展,现代电子产品几乎渗透于社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时又促使现代电子产品性能的进一步提高,产品更新换代的节奏也越来越快(潘松,等,2005)。
用FPGA实现密码锁设计
![用FPGA实现密码锁设计](https://img.taocdn.com/s3/m/35dda6fcc8d376eeaeaa31ec.png)
基于FPGA的密码锁设计(开放实验)课题名称:基于FPGA的密码锁设计实验学院:电子科学与工程学院指导老师:王玉秀实验同学:袁庆学号:B08040230合作成员:吴旺伟、朱斌一、计数指标 (1)1、整体功能要求 (1)2、系统结构要求 (1)3、电器指标 (1)4、设计条件 (1)二、方案设计 (1)三、单元电路设计 (2)1、控制器 (2)2、十转二电路 (5)3、寄存器、比较器、暂存器 (7)4、密码个数计数器 (9)5、15秒定时电路 (9)6、2秒定时器 (10)7、存储器密码产生及密码电路 (11)8、显示指示灯显示电路 (12)9、输入及输出端口 (13)四、总电路图及各部仿真 (14)1、电路总揽图 (15)2、2秒定时器电路仿真 (16)3、15秒定时电路仿真 (16)4、十转二电路仿真 (16)5、密码个数计数器仿真 (17)6、整体过程仿真 (17)(1)、进行真确的密码输入1、2、3、4时个端口电位 (17)(2)、错误密码输入2、1、3、4时关口电位输出为 (18)(3)、输入第一个密码后等待时间超过15秒 (18)五、电路装配及连接 (19)六、系统效果检验 (20)一、技术指标1整体功能要求密码锁又称电子锁,它的主要功能是:1)用数字键方式输入开锁密码,输入密码正确时开锁;2)如果输入密码有误或输入时间过长,则发出报警信号。
2系统结构要求密码锁的系统结构框图如图所示。
其中数字键用于输入密码,密码锁用于判断输入密码的正误,也可以用于修改密码。
开锁LED1亮表示输入正确并开锁,报警LED2亮表示输入有误或输入超时。
3电气指标3.1开锁密码为4位十进制数字,按“确认”键后,输入的数字有效。
3.2输入的4位数字与预设的密码相同时开锁,用LED1灯亮表示,闪亮2秒后自动熄灭。
输入的数字与预设的密码相同时开锁,用LED2灯亮表示,闪亮2秒后自动熄灭。
3.3密码可以通过键盘设定或修改。
FPGA课程论文-基于FPGA设计的电子密码锁
![FPGA课程论文-基于FPGA设计的电子密码锁](https://img.taocdn.com/s3/m/b22ea659842458fb770bf78a6529647d26283440.png)
FPGA课程论文摘要基于FPGA设计的电子密码锁是一个小型的数字系统,与普通机械锁相比, 具有许多独特的优点: 保密性好, 防盗性强, 可以不用钥匙, 记住密码即可开锁等。
目前使用的电子密码锁大部分是基于单片机技术, 以单片机为主要器件, 其编码器与解码器的生成为软件方式。
在实际应用中, 由于程序容易跑飞, 系统的可靠性能较差。
本文介绍一种基于现场可编程门阵列FPGA 器件的电子密码锁的设计方法采用VHDL语言对系统进行描述,并在FLEX10K10LC84-4上实现。
系统所实现的功能:用户给电子密码锁设定一个密码,当使用本机键盘开锁时,该密码与用户设定的密码比较,如果密码正确,则开锁;如果密码不正确,则允许用户重新输入密码,最多可输入三次,若三次都不正确,则扬声器报警,直到按复位键才允许再次输入代码。
通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。
当然,该系统在一些细节的设计上还需要不断的完善和改进,特别是对系统的扩展有很好的实用和设计的价值。
关键词:现场可编程门阵列, 硬件描述语言, 电子密码锁, 扬声器一绪言系统以利用可编程器件实现电子密码锁的设计为研究背景、现状以及发展方向,明确指出了电子密码锁面临的问题和所解决的方法。
1.1课题背景基于FPGA的电子密码锁是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,计算机技术,通讯技术,生物技术等诸多新技术。
它是解决重要部门出入口实现安全防范管理的有效措施,适用各种场合,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂、家庭等。
在数字技术网络技术飞速发展的今天,电子密码锁技术得到了迅猛的发展。
它早已超越了单纯的门道及钥匙管理,逐渐发展成为一套完整的出入管理系统。
它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。
在该系统的基础上增加相应的辅助设备可以进行电梯控制、车辆进出控制,物业消防监控、餐饮收费、私家车库管理等,真正实现区域内一卡智能管理。
FPGA和Verilog设计中的latch锁存器的问题讲解
![FPGA和Verilog设计中的latch锁存器的问题讲解](https://img.taocdn.com/s3/m/6bae181fbed5b9f3f90f1cd6.png)
FPGA和Verilog设计中的latch锁存器的问题一直都知道fpga中有latch这么一回事,但是一直都不太清楚到底什么是锁存器,它是怎么产生的,它到底和寄存器有多少区别,它怎么消除。
为什么说他不好?一,是什么锁存器是一种在异步时序电路系统中,对输入信号电平敏感的单元,用来存储信息。
一个锁存器可以存储1bit的信息,通常,锁存器会多个一起出现,如4位锁存器,8位锁存器。
锁存器在数据未锁存时,输出端的信号随输入信号变化,就像信号通过一个缓冲器,一旦锁存信号有效,则数据被锁存,输入信号不起作用。
因此,锁存器也被称为透明锁存器,指的是不锁存时输出对于输入是透明的。
二锁存器与寄存器的区别:两者都是基本存储单元,单锁存器是电平触发的存储器,触发器是边沿触发的存储器。
本质是,两者的基本功能是一样的,都可以存储数据。
意思是说一个是组合逻辑的,一个是在时序电路中用的,时钟出发的。
三,锁存器的危害:对毛刺敏感,不能异步复位,所以上电以后处于不确定的状态;Latch会使静态时序分析变得非常复杂;在PLD芯片中,基本的单元是由查找表和触发器组成的,若生成锁存器反而需要更多的资源。
第三条也是最基本的原因。
四,产生的原因********ps重重之重上面说了那没多只是觉得网上的没把锁存器说明白。
下面的才是重点。
1,case2,if-------else if3,always@(敏感信号表)五解决1.case——————加default:关于defalut的情况:一是可以default:data=1‘bx;这个x表示未知,在综合时可以避免产生锁存器。
在仿真时是红线表示。
二是default:data=0;这样产生一个默认的情况。
2.if-----------------------一定要有else语句。
3.always---------如是说道:在赋值表达式右边参与赋值的信号都必须在always@(敏感电平列表)中列出。
如果在赋值表达式右端引用了敏感电平列表中没有列出的信号,那么在综合时,将会为该没有列出的信号隐含地产生一个透明锁存器。
基于FPGA的智能密码锁设计
![基于FPGA的智能密码锁设计](https://img.taocdn.com/s3/m/ea0027c32cc58bd63186bd6a.png)
基于FPGA的智能密码锁设计摘要本文简述了VHDL语言的功能及其特点,介绍一种用EDA技术和VHDL语言,在Quartus Ⅱ环境下,设计一种新型的智能密码锁,该密码锁具有密码预置和误码报警等功能,用一片FPGA(Field Programmable Gate Array)现场可编程门阵列芯片实现,从而大大简化了系统结构,降低成本,提高了系统的保密性和可靠性。
它体积小,功耗低,价格便宜,安全可靠,维护和升级都十分方便,具有较好的应用前景。
关键词:智能密码锁、硬件描述语言、电子设计自动化、Quartus IIAbstractThe paper introduces the function and characteristic of VHDL language. A new type intelligent digital password lock is designed using VHDL language. An FPGA (Field Programmable Gate Array) chips is adopted in this design, thus greatly simplifying the system structure, reduce cost and improve the system of confidentiality and reliability .This new digital intelligent has better application prospect based on its small volume, low power, security and easy maintenance and upgrade.Keywords:intelligent loc k、VHD L、ED A、Quartus II目录引言 (3)1 VHDL语言特点 (3)2 智能密码锁的设计要求 (4)3 智能密码锁的电路组成 (4)3.1密码锁输入电路 (4)3.2密码锁控制电路 (4)3.3 密码锁输出显示电路 (4)4 密码锁输入电路的设计 (5)4.1 时序电路 (5)4.2 键盘扫描电路 (8)4.3 键盘消抖电路 (9)4.4 键盘译码电路 (10)4.5 按键存储电路 (13)4.6 智能密码锁控制电路 (14)5 结论 (23)谢辞 (24)参考文献 (25)引言随着社会物质财富的日益增长,安全防盗已成为全社会问题。
FPGA RS锁存器报告
![FPGA RS锁存器报告](https://img.taocdn.com/s3/m/f7b778017cd184254b3535aa.png)
一、实验原理在数字系统中,为了协调各部分的工作状态,常常要求某些锁存器在同一时刻动作,这样输出状态受输入信号直接控制的基本锁存器就不适用了。
为此,必须引入同步信号,使这些锁存器只有在同步信号到达时才按输入信号改变状态。
由同步信号控制的锁存器称为同步锁存器或钟控锁存器,同步信号也叫做时钟信号,用CP表示。
常见的钟控锁存器有钟控RS锁存器和锁控D锁存器等。
二、实验目的(1)熟悉ISE9.1的开发环境,掌握工程的生成方法。
(2)熟悉XUPV2Pro实验环境。
(3)了解Verilog HDL语言在FPGA中的使用。
(4)通过锁存器的设计实验了解数字电路设计。
三、实验内容(1)用Verilog语言设计锁存器。
(2)RS锁存器二的实现,D锁存器的实现。
(3)使用ChipScope-Pro生成ILA/ICON核,在线观测调试。
四、(RS锁存器)实验步骤(1)在D:\Xinlinx91i\目录下,新建名为rsuocun的新工程。
器件族类型(Device Family)选择”Virtex2P”器件型号(Device)选“XC2VP30 ff896-7”综合工具(Synthesis Tool)选“XST(VHDL/Verilog)”仿真器(Simulator)选“ISE Simulator”(2)设计输入:输入上面所提到的代码,保存后如图1.1所示。
(3)功能仿真a)在sources窗口“sources for”中选择“Behavioral Simulation”。
b)用“Test Bench WaveForm”添加激励源,如图1.2所示。
仿真波形分析如下:开始在0到100ns内的是R,S均为0,则不能确定状态,这是RS锁存器的不允许状态。
Q1,Q2是两个互为相反的变量,其波形可以观察到。
观察波形可知,当R为1,S为0时,输出的Q1为0,Q2为1,实现置0功能;当R为0,S为1时,输出的Q1为1,验证了电路的置1功能;当R,S均为1的时候,电路输出保持原状态不变。
锁存器与触发器的FPGA实现
![锁存器与触发器的FPGA实现](https://img.taocdn.com/s3/m/c991080c844769eae009ed46.png)
目录摘要 (1)1.锁存器与触发器概述 (2)1.1什么是锁存器、触发器 (2)1.2锁存器与触发器的区别 (2)2锁存器的电路结构及工作原理 (3)2.1 SR锁存器 (3)2.1.1基本SR锁存器 (3)2.1.2逻辑门控SR锁存器 (4)2.2 D锁存器 (5)3触发器的电路结构及工作原理 (7)3.1 触发器的分类 (7)3.1.1主从触发器 (7)3.1.2维持阻塞触发器 (8)3.2 触发器的逻辑功能 (9)3.2.1逻辑功能转换 (9)3.2.2D触发器功能的转换 (9)4锁存器与触发器的FPGA实现 (11)4.1 锁存器的FPGA实现 (11)4.1.1基本SR锁存器 (11)4.1.2D锁存器 (17)4.2 触发器的FPGA实现 (22)4.2.1D触发器 (22)4.2.2JK触发器 (28)4.2.3JK触发器转换的D触发器 (32)5总结 (38)摘要大多数数字系统,除了需要具有逻辑运算和算术运算功能的组合逻辑电路输出信号外,还需要具有存储功能的电路保存这些数字二进制数码信息,这就要用到存储电路,它是构成时序逻辑电路的基本单元。
组合电路与存储电路结合可构成时序逻辑电路,简称时序电路。
本报告将介绍实现存储功能的两种逻辑单元电路,即锁存器和触发器。
着重介绍它们的电路结构、工作原理以及所实现的不同逻辑功能;同时还将讨论用V erilog HDL描述锁存器与触发器的方法。
1锁存器与触发器概述1.1什么是锁存器、触发器锁存器和触发器是构成各种时序电路的存储单元电路,其共同特点是都具有0和1两种稳定状态,一旦稳定状态被确定,就能自行保持,即长期存储1位二进制码,直到有外部信号作用时才有可能改变。
锁存器是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。
触发器是一种对脉冲边缘敏感的存储电路,它们只能在作为触发信号的时钟脉冲上升沿或下降沿的变化瞬间才能改变状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
begin if (a == 1'b1) q <= b; end 例 2 因为代码中未对 z 变量赋值,而产生锁存器 process (c) begin case c is when '0' => q <= '1'; z <= ' 0'; when others => q <= '0'; end case; end process; 例 3 因为代码中缺少赋值和条件语句,而产生锁存器
if (g == 1'b1) q <= 0; else if (a == 1'bl) q <= b;
end 推荐的编码风格: always @(g1 or g2 or a or b) begin:
q <= 1'b0 ; if (gl == 1'b1) q <= a; else if (g2 == 1'bl) q <= b;
⎧
⎪ ⎪ ⎩Q = 0
G2 输出 Q = 0 ⋅1 +1⋅1⋅ D = 1 ,所以 D 不影响 Q 和 Q
锁存器原理图
⎧ ⎪Q = 0 ⎪ ⎪ ⎩Q = 1
G2 输出 Q = 1⋅1 + 0 ⋅1⋅ D = 0 ,所以 D 也不影响 Q 和 Q
∴结论:原来状态不被改变,D 不影响 Q 和 Q 。 由上述分析看出:
C 是锁存控制信号输入端,D 数据输入端, Q 和 Q 是数据互补输出端。
Ⅰ: C =0, G2 左与门被封锁, G3 被封锁
⎧ ⎪Q = D G2 输出, Q = 0 ⋅ Q + 1⋅ D = D ,∴ ⎪ ⎨ ⎪ ⎪ ⎩Q = D
Ⅱ: C 时,分两种情况
⎪Q = 1 (a) ⎪ ⎨
(b) ⎪ ⎨
Page 5 of 8
让锁存器不再让人头痛
/bbs
图5带full case的例子 由于在例 8 中使用了 full case 语句,综合工具在综合时不会产生锁存器。另外,综合指令 “synthesis full_case”以注释的方式出现在代码中,只影响综合工具的综合结果,对设 计模型的语义没有其它影响。警告:使用full_case指令可能会导致设计模型和综合出的网表 功能不一致。 四、再谈锁存器 前面已经讲了当条件语句没有覆盖到所有分支时将产生锁存器, 很多资料也提到在设计中要 避免锁存器,其中的原因是什么呢? 例9 一个锁存器 module test_latch(y, a, b); output y; input a; input b; reg y; always @(a or b) begin if(a==1’b1) y=b; end endmodule
always @(d)
begin case (d) 2’b00: z <= 1’b1; //缺少对s的赋值 2’b01: z <= 1’b0; //缺少对s的赋值 2’b10: z <= 1’b1;s <= 1’b 1; endcase end //缺少在条件2’b11下对变量z和s的赋值
通过使用以下编码技术,可以避免产生锁存器。
参考文献: [1] Verilog HDL的数字系统应用设计。王钿,国防工业出版社 [2] Reuse Methodology Manual for System-on-a-chip Designs. Michael Keating [3] Verilog HDL Synthesis A Practical Primer. J.Bhasker [4] /bbs/
Page 6 of 8
让锁存器不再让人头痛
/bbs
从图6可知,例9对应的电路是锁存器。在信号a为高电平的时候,信号b可以传递给y,即使b是 带毛刺的信号。 例10 一个D触发器 module test_d(y,clk,a,b); output y; input clk; input a; input b; reg y; always @(posedge clk) begin if(a==1'b1) y=b; end endmodule
⎧ ⎪ ⎪C = 0时,Q = D,电路不锁存数据,相当于缓冲器 ⎨ ⎪ ⎪ ⎩C = 1时,D不起作用,电路状态保持C由0 → 1时刻前D决定的状态
也就是说, C 由 0 → 1 时刻将数据 D 锁定并保持,直到 C 由 1 → 0。 二、下面谈在你的设计中,如何避免使用任何锁存器 但也有例外,你可以使用工艺无关的 GTECH D 锁存器。然而,对于所有的锁存器都必
process (state, bus_request) begin -- 对输入进行初始化被避免产生锁存器 bus_hold <= ‘0’;
Page 2 of 8
让锁存器不再让人头痛
/bbs
bus_interrupt <= ‘0’; case (state) ... ... end process; 例 5 通过对所有输入条件赋输入值,避免产生锁存器 差的编码风格: always @(g or a or b) begin :
让锁存器不再让人头痛
/bbs
让锁存器不再让人头痛
(喜欢把学的东西整理一下,欢迎大家指正 chenhongyi123@ 2007.04.13) 触发器是指由时钟边沿触发的存储器单元。 锁存器指一个由信号而不是时钟控制的电平 敏感的设备。 一、锁存器的工作原理 锁存器不同于触发器,它不在锁存数据时,输出端的信号随输入信号变化,就像信号通 过一个缓冲器一样;一旦锁存信号起锁存作用,则数据被锁住,输入信号不起作用。锁存器 也称为透明锁存器,指的是不锁存时输出对于输入是透明的。 如下图所示为锁存器的原理图
Page 3 of 8
让锁存器不再让人头痛
/bbs
设计者就不可能完成PCI规范中对Reset功能的定义。为了设计是可测试的,可以采用如图1所 示的方法。它们使用多选的方法,提供一般功能或者I/O接口的数据。多选器的选择控制位来自 于扫描控制全能的测试模式管脚。
图1 让锁存器变得可测试 避免产生组合电路反馈 组合电路反馈是指组合逻辑电路形式的反馈环路.组合反馈环路会引发一系列问题,包括会使精 确静态时序分析难以实现。如图2、3所示。 不好:出现组合环路
end 例6 VHDL代码中,通过对条件语句的最后分支使用else语句,避免产生锁存器 差的编码风格: MUX3_PROC: process (decode, A, B) begin if (decode = ‘0’) then
C <= A;
elsif (decode = ‘1’) then
C <= B; end if; end process MUX3_PROC;
图2 好:不出现组合环路
图3 对于CASE语句生成锁存器的问题: 例7 case条件分支不完整导致了锁存器的产生 module latch_test(y1,a,sel); output y1; input [3:0] a; input [2:0] sel; reg y1; always @(sel or a) begin case(sel) 3'b000: y1=a[0];
Page 4 of 8
让锁存器不再让人头痛
/bbs
3'b001: y1=a[1]; 3'b010: y1=a[2]; 3'b011: y1=a[3]; endcase end endmodule 其综合出来的RTL图如图4。
图4 例七是一个不完整的条件分支的例子,sel信号位宽为3,可出现8种输入情况,但是在前级保证 输入只可能出现3’000、3’001、3’010、3’011四种情况下,在使用综合指令“synthesis full_case”后,综合工具将其综合成不带锁存器的电路如下图5所示。 例8 带full case的例子 module latch_test(y1,a,sel); output y1; input [3:0] a; input [2:0] sel; reg y1; always @(sel or a) begin case(sel) /*synthesis full_case*/ 3'b000: y1=a[0]; 3'b001: y1=a[1]; 3'b010: y1=a[2]; 3'b011: y1=a[3]; endcase end endmodule
推荐的编码风格: MUX3_PROC: process (decode, A, B) begin if (decode = ‘1’) then
C <= A;
else
C <= B; end if; end process MUX3_PROC;
三、如果必须使用锁存器 在有些设计中,不可避免地需要用到锁存器。例如,在PCI接口设计中,如果不用锁存器,
如例 4 的 VHDL 代码所示,将默认值赋值语句写在进程的开始。 如例 5 的 Verilog 代码所示,对所有可能的输入条件,都有明确的输出。 如例 6 的 VHDL 代码所示,对于条件语句的最后一个分支,使用 else 语句(而不使用 elsif 语句) 。 例 4 通过默认值,避免产生锁存器
Page 1 of 8
让锁存器不再让人头痛
/bbs
须提供文档记录。包括对每个锁存器的列表、描述和相关的时序特殊需求。寄存器堆、存储 器、FIFO 和其它一些设计中使用的 D 锁存器是允许的。 注意:用设计检查工具对设计中的锁存器进行检查。 例 1 所示的 Verilog 程序,综合会产生锁存器。因为在 if 语句的使用中缺少 else 语句。 例 2 所示的 VHDL 程序,综合后会产生锁存器。因为,when others 条件成立时,z 变量没 有被赋值。 例 1 因为缺少 else 语句,而产生锁存器