《基于FPGA的电子密码锁的设计 .doc》由会员分享,可在线阅读,更多相关《基于FPGA的电子密码锁的设计 .doc(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘 要在电子技术飞速发展的今天,具有防盗报警等功能的电子密码锁代替弹子锁和密码量少,安全性差的机械式密码锁已是必然趋势。随着电子技术的发展,电子密码锁的设计也在不断地发展,有传统的PCB板设计、用PLC设计或者用单片机设计等。其中,使用较多的是基于单片机技术的设计。以单片机为主要器件, 其编码器与解码器的生成为软件方式。在实际应用中, 由于程序容易跑飞, 系统的可靠性能较差。而用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法。本文介绍的是一种基于现场可编程门阵列FPGA 器件的电子密码锁的设计方法。本文采用EDA技术,利用Quartus II工作平台和硬件描述语言,设
2、计了一种电子密码锁,并通过一片FPGA芯片实现。设计充分利用了FPGA的资源可编程特性,可高效率的对系统进行升级与改进.用FPGA 器件构造系统, 所有算法完全由硬件电路来实现, 使得系统的工作可靠性大为提高。由于FPGA具有IsP功能,当设计需要更改时, 只需更改FPGA 中的控制和接口电路, 利用EDA 工具将更新后的设计下载到FPGA 中即可, 无需更改外部电路的设计, 大大提高了设计的效率。另外,在本文设计的系统中充分考虑了实际生活的需要,加入了键盘防抖、数码显示控制、自动报警的功能使得设计人性化、实用化,真正起到了为现实生化服务的目的。因此,该密码锁具有较高的推广价值。关键词:电子密
3、码锁 FPGA 硬件描述语言 EDAAbstractToday, as rapid development in electronic technology, electronic password lock with burglar alarm and other functions replacing less password and poor security mechanical code lock is an inevitable trend. With the development of electronic technology, the design of electron
4、ic locks are constantly evolving, with traditional PCB board design, with PLC design or design with a single chip. Among them, 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 Softwa
5、re mode. In practice, because of easy running to fly, the system reliability can be poor. Whereas, the use of VHDL can be more quickly and flexibly meet the various requirements designed locks, better than the other design. This article mainly describes a design method of electronic password lock ba
6、sed upon Field Programmable Gate Array device. 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.The design takes full advantage of the ISP functiong of FPGA, so it can be efficientl
7、y upgraded and improved. 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 down
8、load the updated design to FPGA without changing the design of the external circuit, this greatly enhance the efficiency of the design.In addition,the design of the system in this fully into account the needs of real life, joined the anti-shake keyboard, digital display control, alarm function makes
9、 the design of human nature, practical, and really play services for the purpose of biochemical reality. Therefore, the lock is well worth popularizing.Key words: Electronic Password Lock FPGA Hardware Description Language EDA目 录目 录I第一章 绪 论11.1国内外发展及现状11.2研究目的及意义2第二章电子密码锁基本原理分析32.1 电子密码锁简介32.2电子密码锁原
10、理32.2.1 编码总量的确定32.2.2 编码制式的选择42.2.3 误码输入保护措施42.3 系统设计目标5第三章系统需求分析63.1 FPGA简介63.2 FPGA特点93.3模块化设计FPGA93.4自顶向下设计方法103.5自上而下设计方法113.6 VHDL硬件描述语言113.6.1 VHDL语言的基本结构113.6.2 结构体的描述方式123.7 EDA技术简介13第四章系统详细设计144.1系统功能描述144.2 顶层模块的VHDL语言程序164.2.1 顶层实体说明的VHDL语言程序164.2.2 顶层结构体的设计及其VHDL语言程序174.3 底层模块的分析、实现与仿真21
11、4.3.1输入消抖同步电路214.3.2 编码电路224.3.3 比较电路224.3.4 预置密码电路234.3.5 计数器选择电路234.3.6 控制指示灯电路244.3.7 分频电路244.3.8 七段显示译码电路254.3.9 其他简单电路264.4 控制器模块的分析及其VHDL语言程序264.5系统的RTL分析27第五章 系统评析28第六章 系统前景29第七章 总结30谢辞31参考文献32附录1、系统的源程序清单331.顶层结构的VHDL程序332.输入消抖电路的VHDL程序清单353.编码电路的VHDL程序清单354.比较电路的VHDL程序清单365.预置密码电路的VHDL程序清单3
12、66.计数器选择电路的VHDL程序清单367.控制指示灯电路的VHDL程序清单378.分频电路的VHDL程序清单379.七段显示译码电路的VHDL程序清单3810其他电路的VHDL程序清单4011.控制功能模块的VHDL程序清单41附录2、RTL分析框图43第一章 绪 论1.1国内外发展及现状随着人们生活水平的提高和安全意识日益的增强,自然而然对安全的要求越来越高。锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。弹子锁由于结构上的局限已难以满足当前社会管理和防盗要求,特别是在人员经常变动的公共场所,如办公室、写字楼、宾馆、仓库
13、等地方。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。但较实用的还是按键式电子密码锁。20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小
14、,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过不断的努力,使电
15、子密码锁在我国也能得到广泛应用。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。在实际应用中,由于程序容易跑飞,系统的可靠性能较差。基于现场可编程逻辑门阵列FPGA器件的电子密码锁,用FPGA器件能够简化系统系统,降低成本,所有算法完全由硬件电路来实现,使得系统的工作可靠性和保密性大大提高。由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。1.2研究目的及意义随着人们生活水平的提高,对家庭防盗技术的要求也是越来越高
16、,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。现在市场上主要是基于单片机技术的电子密码锁,但可靠性较差。FPGA即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物,是一种超大规模集成电路,具有对电路可重配置能力。通常FPGA都有着上万次的重写次数,也就是说现在的硬件设计和软件设计一样灵活、方便。相对于基于单片机技术的电子密码锁,用FPGA器件来构成系统,可靠性提高,并且由于FPGA具有的现场可编程功能,使得电子密码锁的更改与升级更为方便简单。通过本次设计掌握FPGA系统设计的方法,熟
17、悉FPGA设计的相关软件,以及硬件描述语言的使用,了解电子密码锁的系统构成,利用FPGA实现电子密码锁的设计与实现,可以加深自己对所学专业的认识,关联知识,增强自己的动手能力,积累实践经验,为以后的工作打好基础。第二章电子密码锁基本原理分析2.1 电子密码锁简介通用的电子密码锁主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。(1) 密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。(2) 密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路
18、(开/关门锁电路)等几个小的功能电路。(3) 密码显示电路主要将显示数据的BCD码转换成相对应的编码。如,若选用七段数码管显示电路,主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。2.2电子密码锁原理2.2.1 编码总量的确定电子密码锁随机开锁成功的概率定义为:P=1/NT其中P为随机开锁成功概率,NT为密码编码总量。显然要使密码锁保密安全性高,NT应尽可能大,使P趋于零,但NT越大,相应电路越复杂,密码的记忆与操作也越麻烦。故NT应有合理的上限和下限。下限NTL的选择应使密码落在随机开锁可能成功的操作时区以外。若每一次开锁操作时间为t,为便于做随机试验,将N T分为n段并期望在1/
19、n段的1/2处开锁成功。此时p=1/2n则随机开锁试验期望成功的时间为:Tr=NTt/2n假定系统设计不考虑误码输入的保护,密码锁在无保护的情况下使操作人员任意作随机开锁试验的时间为TEN,则:NTL=(2nT EN t)x,其中x为最低安全系数。即:TEN=(N TLt2n)x显然若使NT=NTL,则TrTEN,则使分段随机试验不易成功。由此可得出数字密码锁的编码总量设定是系统设计安全性、保密性的首要技术指标。一般来说,当NT选定之后,NT的上限NTH原则上是越大越安全,但一般设计时取NTH=(101000)NTL较为合理。2.2.2 编码制式的选择编码制式应根据NT的大小选取,可分为如下三
20、种:(1)密码的各位都可以重码:NT1=ai;(2)密码的非相邻位可以重码:NT2=a(a-1)i;(3)密码的任何一位都不能重码:NT3=a(a-1)(a-i+1)。其中a为基数,i为位数,a和i的选取应该满足NTNTL , a=2,3,4,10,12,14,16。现在以最常用的a=10,i=6为例,可以计算出NT2=0159NT 1,NT 3=0.15N T1,所以编码制式考虑是否重码对NT有很大影响。另外,相同制式下不同的基底对编码总量NT会有影响,而且基底的选择也会影响到硬件电路的设计。本文设计的密码锁采用十进制编码,密码各位允许重码,为简化电路设计,密码锁口令采用对串行脉冲计数的方式
21、输入。2.2.3 误码输入保护措施如前所述,电子密码锁的设计应考虑自身的安全保密性,由于编码和捕捉密码的实验都是随机的,若要使P=1 NT趋近于0,必须采取误码输入的保护措施。假定设定的误码输入次数不超过三次,误码达到三次时系统应关闭主控电路,拒绝大于三次的密码输入,并且系统进入死锁状态。系统正常状态的恢复也可采用以下三种方式:(1)延时后输入二级密码管理方式,即由管理员级密码作为正常输入的开锁密码,之后重新定义新的开锁密码;(2)使用一个按键使系统重新恢复到正常状态;(3)系统掉电恢复。2.3 系统设计目标设计一个具有较高安全性和较低成本的通用电子密码锁,具体功能要求如下:(1)数码输入:每
22、按下一个数字键,就输入一个数值,并在显示器上的显示出该数值,同时将先前输入的数据依序左移一个数字位置。(2)数码清除:按下此键可清除前面所有的输入值,清除为“0000”。(3)激活电锁:按下此键可将密码锁上锁。(4)解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。(5)报警:当输入密码错误时,要进行相应的报警处理。第三章系统需求分析3.1 FPGA简介自1985年Xilinx公司推出第一片大规模现场可编程逻辑器件(FPGA)至今,FPGA已经历了十几年的历史。在这十几年的过程中,可编程器件有了惊人的发展:从最初的1200个可利用门,到今天的25万可利用门,规模增大了200多倍;FP
23、GA供应商也从Xilinx的一枝独秀,到今天近20个厂商的分庭抗争;FPGA从单一的基于SRA结构到今天各种结构类型的出现,都充分体现了可编程器件这一巨大市场的吸引力。FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、芯片价格不断降低。由于目前电子产品生命周期相对缩短,相近功能产品的派生设计增多等特点,促使FPGA越来越多地取代了ASIC的市场,特别是对国内众多的科研单位来说,小批量、多品种的产品需求,使得FPGA成为首选。FPGA的发展非常迅速,形成了各种不同的结构。按逻辑功能块的大小,FPGA可分为细粒度FPGA和粗粒度FPGA。细粒度FPGA的
24、逻辑功能块较小,资源可以充分利用,但连线和开关多,速度慢;粗粒度FPGA的逻辑功能块规模大,功能强,但资源不能充分利用。从逻辑功能块的结构上分类,可分为查找表结构、多路开关结构和多级与非门结构。根据FPGA内部连线的结构不同,可分为分段互联型和连续互联型。根据编程方式,FPGA可分为一次编程和可重复编程两种。FPGA一般可由三种可编程电路和一个用于存放编程数据的SRAM组成,这三种可编程电路是:可编程逻辑块(CLB)、输入/输出模块(IOB)和互联资源(IR)。CLB是FPGA的主要组成部分,是实现逻辑功能的基本单元。它主要是由逻辑函数发生器、触发器、数据选择器等电路组成。IOB提供了器件引脚
25、和内部逻辑阵列之间的连接,通常排列在芯片的四周。其主要是由输入触发器、输入缓冲器、输出触发/锁存器和输出缓冲器组成。每一个IOB控制一个引脚,可被配置为输入、输出活双向I/O功能。可编程互联资源包括各种长度的金属连线和一些可编程连接开关,它们将各个CLB之间和IOB之间互相连接起来,构成各种复杂功能的系统。图3-1给出了Xilinx Spartan-芯片内部结构。图3-1 Xilinx SpartanII芯片内部结构1、可配置存储器FPGA芯片逻辑功能的配置是由按点阵分布于芯片的存储单元静态存储器(SRAM)实现的,即通过对分布的SRAM的不同加电配置,决定各部分的逻辑定义。对于FPGA器件编
26、程实现,实际上就是由加载于SRAM上的配置数据决定和控制各个CLB、IOB及内部连线PI的逻辑功能和它们之间的相互连接关系。加载不同的配置数据,芯片便实现不同的逻辑功能。配置LCA的数据文件由XACT(Xilinx Automated CAE Tools)开发系统产生,通过数据配置方式及相应接口加载于芯片中。2、可配置逻辑块(CLB)图3-2 CLB结构框图XC4000系列的CLB(简化框图如图3-2所示)具有13个输入、4个输出。内部由两个独立的四输入逻辑函数发生器、一对触发器和若干个由配置控制的多路转换器组成。逻辑块的输入输出可以接到外部的可编程连线资源。两个四输入逻辑函数发生器(输入分别
27、为F1F4和G1G4),可以独立提供四输入的任意定义的布尔函数,它们的输出分别为F和G。函数发生器的输出由存储器查找表(look up table,LUT)技术实现,传播延迟与所实现的函数无关。第三个输出为H的函数发生器可以实现三输入(F、G和块外信号H1)的任意布尔函数。由函数发生器生成的信号F或H可以被连到X输出端,G或H可以被连到y输出端。从而使一个CLB可以实现两个独立的多达四变量的任意函数,或单个五变量任意函数,或一个任意的四变量函数连同一个五变量函数,或多达九变量的一些函数。在单一逻辑块上实现如此宽的逻辑函数,既减少了所要求的逻辑块数又减少了在信号通路上的时延,达到了增加密度和速度
28、的目的。在CLB中有两个边沿触发的D触发器,它们具有公用时钟(K)和时钟使能(EC)输入,第三个公用输入(S/R)可以分别地对它们编程为异步置位或复位信号,该输入也可定义为不被使能。另外,还有一个单独的全局置位/复位线,在电源接通或重新配置时由专用复位网线对每个触发器置位或复位。函数发生器F和G的另一种可选方式是使其中的查找存储器用做162或321位的读/写存储单元阵列使用。这种RAM的速度是很高的,读操作与逻辑延时一样,大约5.5ns,而写操作大约8ns。这是一个新的相当有用的功能,在系统中可以设计寄存器阵列、LIFO堆栈或FIFO缓冲器等。3、输入/输出块(IOB)图3-3输入输出模块IO
29、B用户可配置的IOB(见图3-3)为芯片外部引脚和内部逻辑提供了一个界面,每个IOB控制一个外部引脚,并可定义为输入、输出或双向三种功能。当IOB定义为输入时,输入信号经Pad进入输入缓冲器,并根据配置可以直接输入,亦可以通过边沿触发器或电平敏感锁存器输入。当IOB定义为输出时,输出信号可以通过配置选择是否反相,是直接传输到Pad,还是通过边沿触发器寄存后传输。可以选择用输出使能信号(OE)使输出缓冲器是否为高阻状态,以实现三态输出或双向I/O传输。4、可编程内部连线(PI)内部连线由一些具有可编程开关点或开关矩阵的金属线段组成,结构对称、规范,适合于建立自动有效的布局布线算法。布线通道的数目
30、由阵列规模决定。3.2 FPGA特点FPGA与CPLD(复杂可编程逻辑器件)都是可编程逻辑器件,它们是在PAL、GAL等逻辑器件的基础上发展起来的。FPGA既继承了ASIC的大规模、高集成度、高可靠性的优点,又克服了普通ASIC设计周期长、投资大、灵活性差的缺点,逐步成为复杂数字硬件电路设计的理想首选。在这十几年的发展过程中,以FPGA/CPLD为代表的数字系统现场集成技术取得了惊人的发展:现场可编程逻辑器件从最初的数百个门发展到现今的数百万个门。目前,国际上现场可编程逻辑器件著名厂商有Xilinx的XC系列,TI公司的TPC系列,Altera公司的FIEX系列等。同以往的PAL、GAL等相比
31、较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。对用户而言,CPLD与FPGA的内部结构只是稍有不同,但用法一样,所以多数情况下不加以区分7。FPGA具有以下特点:1FPGA芯片的规模越来越大,其单片逻辑门数已达数百万门。所能实现的功能也越来越强,用FPGA设计,ASIC电路用户不需要投片生产就能得到合用的芯片。2FPGA可做其它全定制或半定制ASIC电路的试样片,并且它采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容,它是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。3FPGA内部有丰富的触发器和I/O引脚,用户可以反复地编程、擦除、使
32、用或在外围电路不动的情况下用不同软件实现不同的功能。既能使数字系统适应柔性系统的需求(不同的配置实现不同的功能),又能随着市场需求的变化和技术的发展及时扩展,变更数字系统的功能,提高了电子产品的应变能力。4FPGA的保密性好。在某些场合下,根据要求选用防止反向技术的FPGA能很好的保护系统的安全性和设计者的知识产权。5FPGA开发工具智能化,功能强大,软件包中有各种输入工具和仿真工具以及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可以完成电路的输入、编译、优化、仿真,直至最后芯片的制作。可以使设计人员能集中精力进行电路设计,使产品快速推向市场。6电路设计人员使用FPGA进行电路
33、设计时,软件易学易用。正是如此,FPGA应用前景广阔,尤其适合于新产品的研制。3.3模块化设计FPGA随着可编程技术的发展,FPGA被广泛应用于电子设计的各个领域。越来越多复杂的系统的核心电路利用FPGA设计完成,这些复杂系统经常需要使用百万门加密卡的研制与加密算法的FPGA实现以上的大规模FPGA来设计。另一方面,为了对市场需求做出最迅速的反映,就要求这些电子产品的设计周期尽量缩短,只有以第一时间推出成熟稳定的产品,才能获得更大的市场份额。于是一方面需要百万门以上的大规模FPGA以满足设计需要,另一方面需要在最短的时间内高质量的完成设计以满足市场需要,这两者出现了矛盾。解决这个矛盾的唯一出路
34、是投入更多的人力,进行并行工作、协同设计。并行工作、协同设计在一般的工业生产中比较容易实现,例如生产一部汽车,可以在不同车间并行生产出汽车的各个配件,然后统一将这些配件组装起来即可。如果每个零件的制造都能满足图纸的公差标准,那么每个零部件的制造的关联就不是那么紧密,完全可以并行进行生产制造。使制造每个零部件之间的联系尽量小,然后运用并行、协同工作方式相对独立的生产每个零部件,最后将这些零部件组合起来的工作方法就是一种模块化设计方法。3.4自顶向下设计方法所谓自顶向下设计方法,简单地说,就是采用可完全独立于芯片厂商及其产品结构的描述语言,在功能级对设计产品进行定义,并结合功能仿真技术,以确保设计
35、的正确性,在功能定义完成后,利用逻辑综合技术,把功能描述转换成某一具体结构芯片的网表文件,输出给厂商的布局布线器进行布布线。布局布线结果还可反标回同一仿真器,进行包括功能和时序的后验证,以保证布局布线所带来的门延时和线延时不会影响设计的性能。自顶向下设计方法的优越性是显而易见的。首先,由于功能描述可完全独立于芯片结构,在设计的最初阶段,设计师可不受芯片结构的约束,集中精力进行产品设计,进而避免了传统设计方法所带来的重新再设计风险,大大缩短了设计周期。其次,设计的再利用得到保证。目前的电子产品正向模块化发展,所谓模块化就是对以往设计成果进行修改,组合和再利用,产生全新的或派生设计,而自顶向下设计
36、方法的功能描述可与芯片结构无关。因此可以以一种IP的方式进行存档,以便将来的重新利用。第三,设计规模大大提高。简单的语言描述即可完成复杂的功能,而不需要手工绘图。第四,芯片选择更加灵活。设计师可在较短的时间内采用各种结构芯片来完成同一功能描述,从而在设计规模、速度、芯片价格及系统性能要求等方面进行平衡,选择最佳结果。目前,最为常用的功能描述方法是采用均已成为国际标准的两种硬件描述语言:VHDL和Verilog。3.5自上而下设计方法自上而下的设计方法是现代电子系统的新型设计策略,它从设计的总体要求出发,自上而下地逐步从系统数学模型的设计与仿真,到数据流级的设计与仿真,选择系统设计方案,最后完成
37、系统硬件的整体设计。VHDL的自上而下的设计方法不仅体现在它的基本结构由描述外视特性的实体与描述内视行为和结构的结构体构成,同一实体可以有一个以上的结构体,以便设计方案的选择,还体现在系统硬件设计过程的三个层次:行为级描述与仿真、RTL级描述与仿真、逻辑综合与门级仿真。逻辑综合与所使用的逻辑综合工具有关,由逻辑综合优化工具生成具体的门级逻辑电路的EDIF(Electronic Design Interchange Format)网表。EDIF网表是一种标准接口,它是一个以ASCII字符为基础的中间互换格式,被大多数供应商提供的CAE/CAD系统所支持。半导体制造厂基于这种网表生成ASIC芯片的
38、制造工艺,FPGA则基于这种网表生成用以配置FPGA芯片的位流文件。这三种仿真贯穿系统硬件设计的全过程,从而可以在系统设计早期发现设计中存在的问题,与传统的自下而上的后期仿真相比大大缩短系统的设计周期,并且利于方案的综合评价与选取。这是用VHDL语言设计系统硬件的最突出的优点。3.6 VHDL硬件描述语言VHDL(Very high speed integrated circuit Hardware Description Language)硬件描述语言从高于逻辑级的抽象层次上描述硬件的功能、信号连接关系及定时关系。VHDL的设计流程如下图。图3-4 VHDL的设计流程3.6.1 VHDL语言
39、的基本结构一个完整的VHDL语言程序通常包含实体(Entity)、结构体(Architecture)、配置(Configuration)、包集合(Package)和库(Library)五个部分。1、实体实体说明部分是说明一个器件的外观视图,即从器件外部看到的器件外貌,其中包括器件的端口,同时也可以定义参数,并把参数从外部传入模块内部,主要用于描述所设计的系统的外部接口。2、结构体结构体是描述一个器件的内部视图,是次级设计单元。在其对应的初级设计单元实体说明被编译并且被并入设计库之后,它就可以单独地被并入该设计库中。结构体描述一个设计的结构和行为,把一个设计的输入和输出之间的关系建立起来。一个设
40、计可以有多个结构,分别代表该器件的不同实现方案。根据对一个器件设计由抽象到具体的过程,可把结构体的描述方式分为三个层次:行为描述方式、寄存器传输描述方式(RTL)和结构描述方式。3、库库是经编译后的实体、结构体、包集合和配置的集合。使用库时总要在设计单元的前面予以说明。一旦说明,库中的数据对该设计单元就是可见的,从而共享已经编译过的设计结果。VHDL语言中存在的库大致有IEEE库、STD库、ASIC厂家提供的库、用户定义的库和现行作业库。4、包集合包集合属库中的一个层次,是一种可编译的源设计单元。它收集了VHDL语言中所用到的信号、常数、数据类型、函数和过程的说明等。用户可以构造一个包集合,用
41、以存放常数、数据类型、函数和过程,该包集合经编译后便自动加到WORK库中。使用库中的包集合时,在打开库后要用USE语句说明。例如:LIBRARY IEEE;USE ;5、配置配置语句从一个库中为一个实体选择一个特定的结构体,是一种放在库中的被编辑单元,并有相应的配置名。通过配置技术,可以选取多种不同的结构体,以便对一个设计任务采用仿真工具进行多种配置的性能实验。另外,配置说明和规定的特性还可以用在多层描述中。3.6.2 结构体的描述方式在VHDL语言中,对结构体的三种描述方式从不同角度对硬件系统进行行为和功能的描述,体现了不同的建模方法。1、行为描述方式行为描述是对系统的数学模型的抽象描述,它
42、不考虑结构体是如何具体实现的。在程序中可以采用算术运算、关系运算、惯性延时和传输延时等难以或不能进行逻辑综合的VHDL语句。一般说,它主要用于系统数学模型的仿真或系统工作原理的仿真。2、RTL描述方式RTL是真正可以进行逻辑综合的描述方式,它介于行为描述和结构描述之间。通过对系统的寄存器和总线的描述来说明数据的传输方向,在仿真通过后利用逻辑综合工具产生门级网表,从而完成硬件设计。3、结构描述方式结构描述方式是在多层次的设计中,高层次的设计模块调用低层次的设计模块,或直接用门电路设计单元来构造一个复杂的逻辑电路的描述方法。它描述的是子元件及之间的连线。它所描述的端口与硬件端口之间的对应关系要比行
43、为描述的端口与硬件端口的对应关系更容易明白。它能提高设计效率,可以将现有的设计成果方便地用到新的设计中去。3.7 EDA技术简介EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术是以计算机为工具,根据硬件描述语言HDL( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的EDA工
44、具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。适配器的功能是将由综合器产生的王表文件配置与指定的目标器件中,产生最终的下载文件,如JED文件。第四章系统详细设计4.1系统功能描述通常情况下,电子密码锁的具体设计要求为:(1) 电子密码锁的密码应采用3个十进制数字;(2) 当3个密码数字输入正确后,系统就可以正确启动装置;(3) 当输入密码不正确(多一位或少一位十进制数据均为密码不正确)时,这时系统将会给出报警信息;(
45、4) 系统中应该含有一定数量的指示灯,用来指示系统的工作状态。根据上面电子密码锁的具体设计要求,可以分析出这个系统的输入电路功能应该包括以下5点:(1) 系统开始输入数字密码之前的等待状态。这里首先要按READY键,表示目前准备就绪,然后才可以输入数字密码。(2) 开锁事件发生以后,系统应重新回到等待状态。这里设置一个WAIT_T键。(3) 开锁人员输入密码不正确时,系统将会给出报警信息。这时候即使按下READY键和WAIT_T键也是不起作用的,而必须由内部保安人员重新设置到等待状态,这就需要再设置一个新的按键SETUP。(4) 数字密码正确输入后,这里要设置一个开锁按键LOCK_OFF。(5
46、) 十个数字按键用来作为密码锁的密码输入。同样,根据上面电子密码锁的具体设计要求,可以分析出这个系统的输出电路功能为:(1) 数字密码输入正确并开锁后,这时系统输出一个绿灯LT;(2) 数字密码输入错误后,系统输出一个红灯RT,然后报警信号装置产生鸣叫。根据上面对电子密码锁输入电路和输出电路的具体分析,可以确定这个电子密码锁的基本方案如下所示:(1) 采用3位十进制数字作为密码,密码事先在系统内部设置。(2) 系统通电后并按WAIT - T键将进入等待状态,这时用来标志引爆正确的绿灯和红灯都不处于工作状态。(3) 系统的具体开锁过程如下所示:按准备就绪键READY,开始启动密码锁,这时系统处于
47、准备状态。依次输入3个十进制数字密码。输入正确密码后启动开锁按键LOCK_OFF。若按上述执行并且按键正确,那么按下开锁按键LOCK_OFF后,绿灯亮;若按错密码或未按上述过程执行,则按动开锁按键LOCK_OFF后,报警信号装置鸣叫,红灯亮。开锁事件结束以后,系统将进入下一次开锁等待状态,这时需要按WAIT_T键,作用是使系统重新进入等待状态。若在报警状态,按WAIT_T键和READY键应该不起作用,需用内部按键SETUP才能使系统进入等待状态,内部SETUP键应放在保安人员值班室或其他人员不能接触的地方。(4) 操作者如果按错密码,可以在按LOCK_OFF键之前按READY键重新启动开锁程序
48、。(5) 数字密码09,READY,LOCK_OFF,WAIT_T,SETUP均为按键方式产生。(6) 报警频率由外部提供。根据上面制定的基本设计方案,可以给出电子密码锁的框图,如图4.1所示:图4.1 系统框图整个系统的总状态转移图,如图4.2所示:图4.2 系统的状态转移图4.2 顶层模块的VHDL语言程序在数字电路系统的设计中,自顶向下的设计方法就是指从电路设计的总体要求出发,自顶向下地将设计划分为不同的功能模块,每个功能模块完成一定的逻辑功能。不难看出,这种设计方法的总体思路是:首先确定顶层模块并进行顶层模块的设计;然后将顶层模块中的逻辑功能划分为不同的功能模块,再进行功能模块的详细设计。一般