数字密码锁ISP器件VHDL编程EDA技术
论文摘要
电子技术获得了飞速的发展,在其推动下,现在电子产品几乎渗透了社会的各个领域,有力地推动了社会生产里的发展和社会信息化程度的提高,同时也是使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。首先EDA技术在进入21世纪后,得到了很大的发展,其基本特征是采用高级语言描述,具有系统级仿真和综合能力。VHDL硬件描述语言是设计源文件可以采用类似与C语言的书写形式,并采用结构设计方法。随着人们生活水平的提高,密码锁作为家庭防盗卫士的作用日趋重要,它与普通机械锁相比有一些独特的优势,如:保密性强,防盗性能好,可以不用钥匙,只要记住密码即可开锁。关键词:电子设计自动化 硬件描述语言 可编程系统 数字密码锁
Abstract
The electronic technology has obtained the rapid development, under its impetus, the electronic products nearly seeped society's each domain now, powerfully impelled in the social product development and the social becoming an information based society degree enhancement, simultaneously also is makes the modern electronic products performance further to enhance, the product renewal rhythm more and more is also quick. First the EDA technology after enters for the 21st century, obtained the very big development, its basic characteristic uses the higher order language description, has System the simulation and the synthesizing capacity. The VHDL hardware description language is designs the source document to be possible to use is similar with the C language written form, and uses the structural design method. Along with the people living standard enhancement, the password lock took the family security bodyguard's function is day by day important, it compared to has some unique superiority with the ordinary mechanical phase-lock, for example: Secret, the security performance is good, may not use the key, so long as remembers the password then unlock.
Key words: EDA VHDL CPLD Numerical ciphers lock113
基于EDA技术数字密码锁
目 录 摘要 ………………………………………………………………………………ⅠAbstract ……………………………………………………………………Ⅱ1 EDA技术发展与应用 …………………………………………………………11.1 EDA技术及其发展特征和目标 ………………………………………11.2 EDA技术的设计语言和主要特点 ……………………………………51.3 EDA技术设计流程及其发展趋势和展望 ……………………………72 CPLD技术介绍和应用 …………………………………………………………122.1 CPLD器件介绍 ………………………………………………………13 2.2 CPLD在数字电路中的应用 …………………………………………253 VHDL语言 …………………………………………………………………253.1 VHDL的简介 ………………………………………………………253.2 VHDL语言常用语句 …………………………………………………29 3.3 VHDL语言的设计环境 …………………………………………… 354 数字密码锁 ……………………………………………………………………454.1 设计方案 ……………………………………………………… 464.2总体方框图 ………………………………………………………… 47 4.3设计原理 ………………………………………………………48 4-3-1、键盘输入、密码修改、密码检测 ………………………48 4-3-2 报警电路 ……………………………………………………504-3-3、报警次数检测及锁定电路 …………………………………52 4-3-4、备用电源电路 ……………………………………………524.4VHDL源程序 …………………………………………………… 54致谢 …………………………………………………………………………64参考文献 ………………………………………………………………………65附录 …………………………………………………………………………66
数字密码锁ISP器件VHDL编程EDA技术
EDA技术发展与应用
1.1 EDA技术及其发展特征和目标
信息社会的标志产品是电子产品。现代电子产品的性能越来越高,复杂度越来越大,更新步伐也越来越快。实现这种进步的主要原因就是微电子技术和电子技术的发展。前者以微细加工技术为代表,目前已进入超深亚微米阶段,可以在几平方厘米的芯片上集成几千万个晶体管;后者的核心就是文字电子设计自动化EDA(Electronic Design Automatic)技术。EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD通用软件包,它根据硬件描述语言HDL完成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。目前EDA主要辅助进行三个方面的设计工作:IC设计、电子电路设计和PCB设计。没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的;反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。
EDA技术的概念: EDA是电子设计自动化(E1echonics Des5p AM·toM60n)的缩写。由于它是一门刚刚发展起来的新技术,涉及面广,内容丰富,理解各异,所以目前尚无一个确切的定义。但从EDA技术的几个主要方面的内容来看,可以理解为:EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片。EDA技术是伴随着计算机、集成电路、电子系统的设计发展起来的,至今已有30多年的历程。大致可以分为三个发展阶段。20世纪70年代的CAD(计算机辅助设计)阶段:这一阶段的主要特征是利用计算机辅助进行电路原理图编辑,PCB布同布线,使得设计师从传统高度重复繁杂的绘图劳动中解脱出来。20世纪80年代的QtE(计算机辅助工程设计)阶段:这一阶段的主要特征是以逻辑摸拟、定时分析、故障仿真、自动布局布线为核心,重点解决电路设计的功能检测等问题,使设计而能在产品制作之前预知产品的功能与性能。20吐纪如年代是EDA(电子设计自动化)阶段:这一阶段的主要特征是以高级描述语言,系统级仿真和综合技术为特点,采用“自顶向下”的设计理念,将设计前期的许多高层次设计由EDA工具来完成。EDA是电子技术设计自动化,也就是能够帮助人们设计电子电路或系统的软件工具。该工具可以在电子产品的各个设计阶段发挥作用,使设计更复杂的电路和系统成为可能。在原理图设计阶段,可以使用EDA中的仿真工具论证设计的正确性;在芯片设计阶段,可以使用EDA中的芯片设计工具设计制作芯片的版图:在电路板设计阶段,可以使用EDA中电路板设计工具设计多层电路板。特别是支持硬件描述语言的EDA工具的出现,使复杂数字系统设计自动化成为可能,只要用硬件描述语言将数字系统的行为描述正确,就可以进行该数字系统的芯片设计与制造。有专家认为,21世纪将是四A技术的高速发展期,EDA技术将是对21世纪产生重大影响的十大技术之一。
EDA技术的基本特征:EDA代表了当今电子设计技术的最新发展方向,利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在汁算机上自动处理完成。设计者采用的设计方法是一种高层次的”自顶向下”的全新设计方法,这种设汁方法首先从系统设计人手,在顶层进行功能方框图的划分和结构设计。在方框图一级进行仿真、纠错.并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行驶证。然后,用综合优化工具生成具体门电路的网络表,其对应的物理实现级可以是印刷电路板或专用集成电路(ASIC)。设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。由于设计的主要仿真和调试过程是在高层次上完成的,这既有利于早期发现结构设计上的错误,避免设计工作的浪费,又减少了逻辑功能仿真的工作量,提高了设计的一次性成功率。由于现代电子产品的复杂度和集成度的日益提高,一般分离的中小规模集成电路组合已不能满足要求,电路设计逐步地从中小规模芯片转为大规模、超大规模芯片,具有高速度、高集成度、低功耗的可编程朋IC器件已蓬勃发展起来。在EDA技术中所用的大规模、超大规模芯片被称为可编程ASIC芯片,这些可编程逻辑器件自70年代以来,经历了CPm、IzPGA 、CPLD、FPGA几个发展阶段,其中CPm(复杂可编程逻辑器件)/IzPGA(现场可编程逻辑器件)肩高密度可编程逻辑器件,目前集成度已高达200万门/片以上,它将掩模ASIC集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起,特别适合于样品研制或小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以很容易地转由掩模ASIC实现,因此开发风险也大为降低。可以说CPLE)/FPGA器件,已成为现代高层次电子设计方法的实现裁体。硬件描述语言(HDL)是EDA技术的重要组成部分,是EDA设计开发中的很重要的软件工具,VHDL即:超高速集成电路硬件描述语言,仍量凡是作为电子设计主流硬件的描述语言。它具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计较串和可靠性,用V佃L进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。例如一个32位的加法器,利用图形输入软件需要输入500至1删个门,而利用VHDL语言只需要书写一行“A=B十C”即可。使用硬件描述语言(HDL)可以用模拟仿真的方式完成以前必须设计和制作好的样机上才能进行的电子电路特性的说明和调试。能在系统行为级就发现可能出现的错误、问题,并加以多次反复修改论证,避免了物理级器件的损伤和多次制作,节约了时间和开发成本,缩短了电子系统开发的周期。将EDA技术与传统电子设计
————————————————————————————————————
第 3 页
工程技术学院毕业设计(论文)专用纸
————————————————————————————————————
方法进行比较可以看出,传统的数字系统设计只能在电路板上进行设计,是一种搭积木式的方式,使复杂电路的设计、调试十分困难;如果某一过程存在错误.查找和修改十分不便;对于集成电路设计而言,设计实现过程与具体生产工艺直接相关,因此可移植性差;只有在设计出样机或生产出芯片后才能进行实泅,因而开发产品的周期长。而电子EDA技术则有很大不同,采用可编程器件,通过设计芯片来实现系统功能。采用硬件描述语言作为设计输入和库(LibraIy)的引入,由设计者定义器件的内部逻辑和管脚,将原来由电路板设计完成的大部分工作故在芯片的设计中进行。由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量和难度,有效增强了设计的灵活性,提高了工作效率。并且可减少芯片的数量,缩小系统体积,降低能源消耗,提高了系统的性能和可靠性。能全方位地利用计算机自动设计、仿真和调试。EDA技术的应用:电子EDA技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。在教学方面:几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。主要是让学生了解EDA的基本原理和基本概念、掌握用VHDL描述系统逻辑的方法,为今后工作打下基础。在科研方面:主要利用电路仿真工具(EwB或PSPICE、VLOL等)进行电路设计与仿真;利用虚拟仪器进行产品调试;将O)LI)/FPGA器件的开发应用到仪器设备中。例如在CDMA无线通信系统中,所有移动手机和无线基站都工作在相同的频谱,为区别不同的呼叫,每个手机有一个唯一的码序列,CDMA基站必须能判别这些不同观点的码序列才能分辨出不同的传呼进程;这一判别是通过匹配滤波器的输出显示在输人数据流中探调到特定的码序列;FPGA能提供良好的滤波器设计,而且能完成DSP高级数据处理功能,因而FPGA在现代通信领域方面获得广泛应用。在产品设计与制造方面:从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真产品调试,而且也在P哪的制作、电子设备的研制与生产、电路板的焊接、朋比
基于EDA技术数字密码锁
比的制作过程等有重要作用。可以说电子EDA技术已经成为电子工业领域不可缺少的技术支持。EDA技术发展趋势: EDA技术在?1世纪后,由于更大规模的FPGA和凹m器件的不断推出,在仿真和设计两方面支持标准硬件描述语言的功能强大的EDA软件不断更新、增加,使电子EDA技术得到了更大的发展。电子技术全方位纳入EDA领域,EDA使得电子领域各学科的界限更加模糊,更加互为包容,突出表现在以下几个方面:使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能;基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块;软硬件IP核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认;SoC高效低成本设计技术的成熟。随着半导体技术、集成技术和计算机技术的迅猛发展,电子系统的设计方法和设计手段都发生了很大的变化。可以说电子EDA技术是电子设计领域的一场革命。传统的“固定功能集成块十连线”的设计方法正逐步地退出历史舞台,而基于芯片的设计方法正成为现代电子系统设计的主流。作为高等院校有关专业的学生和广大的电子工程师了解和攀握这一先进技术是势在必行,这不仅是提高设计效率的需要,更是时代发展的需求,只有攀握了EDA技术才有能力参与世界电子工业市场的竞争,才能生存与发展。随着科技的进步,电子产品的更新日新月异,EDA技术作为电子产品开发研制的源动力,已成为现代电子设计的核心。所以发展EDA技术将是电子设计领域和电子产业界的一场重大的技术革命,同时也对电类课程的教学和科研提出了更深更高的要求。特别是EDA技术在我国尚未普及,掌握和普及这一全新的技术,将对我国电子技术的发展具有深远的意义。
1.2 EDA技术的设计语言和主要特点
EDA的设计语言主要有以下几种
ABEL:(高级布尔表达语言),已经渐渐淡出历史的舞台
AHDL:(Altera硬件描述语言),移植性差,只能在ALTERA公司系统上使用。限制了语言的使用范围,不过易学易用
————————————————————————————————————
第 5 页
工程技术学院毕业设计(论文)专用纸
————————————————————————————————————
Verilog HDL:1983GDA公司开发使用,后来逐步完善,优点易学易用,缺点就是非常自由的语法,使设计者容易在设计上犯错误。
一般的来说,EDA技术的主要特点主要包括:
①硬件采用工作站或高档计算机:软件采用EDA工具,它的功能包括原理图输入,硬件描述语言输入,波形输入,仿真设计,可测试设计,逻辑综合,时
序分析等方面:是一种非常适合大规模电子系统设计的语言。
目前,最具有代表性的硬件描述语言是VHDL和Verilog HDL.一般来讲,两种语言的侧重点稍有不同:VHDL非常适合大型电子系统的描述。Verilog HDL.则更加适合硬件电路细节的描述。
②设计方法采用自顶向下的设计方法,即设计工作从高层开始,自顶向下跨过各个层次,从而完成整个电子系统的设计:即分层次,分模块的对电子系统进行设计和仿真,耕牛分割在于主机分割的方式,首先是将系统跟分割成各个功能子模块,然后再将各个功能子模块分解为逻辑块,而逻辑块又可以分割为更小的逻辑块和电路。这种方法有主语在设计的早期发现结构设计中的错误,提高设计的一次的成功率。
③设计原则采用模块化的设计思想,目的是使程序结构清晰,便于复用和共享:EDA工具软件结构采用开放性和标准化的框架,能够实现资源的共享。
1.3 EDA软件系统的构成
EDA技术研究的对象是电子设计的全过程,有系统级,电路级和物理级3个层次的世界,涉及的电子系统从低频,高频到微波,从线形到非线形等等。因此EDA技术研究是相当广泛的,EDA软件系统应当包含以下几个子模块;
①设计输入子模块:该模块接受用户的设计描述,并进行语义正确性,语法规则的检查,核实后存入设计数据库被其他子模块调用。此子模块一般不针对不同扫描方式的编译器,同时包含对应的分析器。
②设计数据库子模块:存放系统停工的库单元以及用户的设计描书和中间设计
————————————————————————————————————
第 6 页
工程技术学院毕业设计(论文)专用纸
————————————————————————————————————
结果。
③分析验证子模块:此包括各个层次的模拟验证,设计规则的检查,故障的诊断等④综合仿真模块:此模块包含各个层次的综合工具,理想的情况是:从高层次到低层次的综合仿真全部由EDA工具自动实现。
⑤布局布线子模块:该模块是实现由逻辑设计到物理实现的映射,因此与物理实现的方式密切相关。
1.4 EDA技术设计流程及其发展趋势和展望
①源程序的编辑、编译及行为仿真
一项工程的设计首先需利用EDA 工具的文本编辑器或图形编辑器将它用文本方式(VHDL 程序方式) 或图形方式(流程图方式和状态图方式) 表示出来。这两种表达方式必须首先通过EDA 工具进行排错编译,变成VHDL 文件格式,为进一步的逻辑综合做准备。在逻辑综合以前可以先对VHDL 所描述的内容进行行为仿真,即将VHDL 设计源程序直接送到VHDL 仿真器中仿真。该仿真只是根据VHDL 的语义进行的,与具体电路没有关系。
②逻辑综合、优化及功能仿真
逻辑综合就是通过综合器将电路的高级语言描述转换成低级的,可与CPLD/ FPGA 或构成ASIC(专用集成电路)的门阵列基本结构相映射的网表文件或程序。逻辑综合的过程同时也是设计目标的优化过程。逻辑综合以后可以将生成的VHDL 表文件送到VHDL仿真器中进行功能仿真。仿真的结果与门级仿真器所做的功能仿真结果基本一致。
③目标器件的布线/ 适配及时序仿真
逻辑透配就是将由综合器产生的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布线与操作等,配置于指定的目标器件中,产生最终的下载文件。随后,可进行时序仿真。时序仿真是将布线器/ 适配器所产生的VHDL网表文件送到VHDL 仿真器中所进行的仿
数字密码锁ISP器件VHDL编程EDA技术
真。该仿真已将器件特性考虑进去了,因此可以得到精确的时序仿真结果。
④目标器件的编程/ 下载如果编译、综合、布线/ 适配和行为仿真、功能仿真、时序仿真等过程都没有发现问题,即满足原设计的要求,就可以将由CPLD/ FPGA 布线/ 适配器产生的配置下载文件通过编程器或下载电缆载入目标芯片CPLD 或FPGA 中
⑤硬件仿真/ 硬件测试
硬件仿真:在ASIC 设计中,常利用FPGA 对系统的设计进行功能检测,通过后再将其VHDL 设计以ASIC 形式实现;硬件测试则针对CPLD 或FPGA 直接用于应用系统的设计中,将下载文件下载到CPLD或FPGA 后,对系统的设计是行的功能检测。需要说明的是上述三种软件仿真不是必须的,可根据实际情况而定。
EDA的广泛运用,所以在以后的应用应该是更加的重要,当然趋势是必然更加的完善。具体体现在几个方面,
首先是在设计输入工具的发展趋势,早期的EDA工具设计输入普遍采用原理图是如方式,以文字和图形作为设计的载体和文件,将设计信息加载到后续的EDA工具,完成设计分析工作。原理图输入反复市的优点是直观,能满足以设计分析为主的一般要求,但是原路图输入方式不适合EDA综合工具,20世纪80年代末,电子设计开始才新的综合工具,设计描述开始由原理图设计描述转向为各种硬件描述语言为主的比方式。用硬件描述语言描述设计,更新系统行为描述,切便于综合,更适合传递和修改设计信息,还可以建立独立于工艺的设计文件,不便之处就是不太直观,要求设计师学会编程。因此EDA公司在90年代相继推出一批图形化免那边成的实际输入工具,他们允许设计师用他们最方便熟习的设计方式,然后有EDA工具自动生成综合所需的硬件描述语言文件。
其次具有混合心海处理能力的EDA工具。目前,数字电路设计EDA工具远比模拟电路EDA工具多,模拟集成EDA工具开发难度大,但是,由于物理量本身多以模拟形式存在,所以实现高性能的复杂电子系统的实际离不开米你信号。因
——————————————————————————————————
第 8 页
工程技术学院毕业设计(论文)专用纸
————————————————————————————————————
此EDA公司在90年代相继推出一批图形化免那边成的实际输入工具,他们允许设计师用他们最方便熟习的设计方式,然后有EDA工具自动生成综合所需的硬件描述语言文件。
其次具有混合心海处理能力的EDA工具。目前,数字电路设计EDA工具远比模拟电路EDA工具多,模拟集成EDA工具开发难度大,但是,由于物理量本身多以模拟形式存在,所以实现高性能的复杂电子系统的实际离不开米你信号。因此EDA工具厂商比较重视数/模混合信号设计工具的开发。对数字信号的语言描述IEEE已经制定了VHDL标准马队模拟信号的语言正在制定AHDL标准,此外还提出了对微波的MHDL描述语言。
再次更为有效的仿真工具的发展,通常,可以将电子系统设计的仿真分为两个阶段:设计前提的系统级仿真和设计过程的电路级仿真,系统级仿真主要验证系统的功能:电路级仿真主要验证系统的性能,决定怎样实现设计所需的精度。在整个电子设计过程中仿真是花费时间最多的工作也是占用EDA工具资源最多的一个环节。设计挥动的大部分时间在做仿真,仿真过程中仿真收敛的快慢同样是关键因素之一,提高仿真的有效一方面是建立合理的仿真算法,另方面是系统级仿真中系统级的建模。电路级仿真中电路级模型的建模,预计在下一代EDA工具中,仿真工具将有一个较大的发展。
最后是更为理想的设计综合工具的开发。今天,电子系统和电力的集成规模越来越大,几乎不可能直接面向版图做设计,若要找出版图中的错误,更是难上加难。将设计者的精力从繁琐的版图设计和分析中转移到设计前期的算法开发和功能验证上,这是设计综合工具要达到的目的,高层次设计综合工具可以将低层次的硬件设计一起转换到物理级的设计,实现不同层次的不同形式的设计描述转换,通过各种综合算法实现目标所规定的优化设计。
设计综合工具由最初的只能实现逻辑综合,逐步发展到可以实现设计前端的综合,直到设计后端的版图综合以及测试综合的理想且完成的综合工具。
————————————————————————————————————
第 9 页
工程技术学院毕业设计(论文)专用纸
————————————————————————————————————
面对当今飞速发展的电子产品市场,电子设计人员需要更加使用,快捷的EDA工具,使用同意的集成化设计环境,改变传统设计思路。即优先考虑具体物理实现方式,而将精力集中到设计构思,方案比较和寻找优化谁机等方面,以最快的速度开发出性能优良,质量一流的电子产品,今天的EDA工具将向着功能强大,简单易学,使用方便的方向发展。
EDA技术应用展望可以来说归于以下几个方面
EDA技术将广泛应用于高校电类专业实践教学工作中:对于电子设计课程设计。特别是相互系系统性的课题,在EDA实验室不需要添加任何新的东西,即可以设计出各种比较复杂的数字系统,并借助于实验开发系统可以方便的进行硬件验证,
现代电子产品的设计离不开EDA技术,作为电类专业的毕业生,借助于EDA技术在毕业设计中可以快速,经济的设计各种高性能的电子系统,并且很容易实现,修改完善。在整个大学学习期间,我们可以分阶段,分层次的对电类专业的学生进行EDA技术的学习和应用,是我们迅速掌握并有效的利用这一新技术,同时还可以大大提高学生的实践动手能力,创新能力和计算机应用能力。
EDA技术将广泛应用与科研工作和新产品的开发中:由于可编程逻辑器件性能价格比的不断的完善,EDA技术设计电子系统具有用软件的方式设计硬件,设计过程中可用有关软件进行各种仿真,系统可现场编程,在线升级:整个系统可集成在一个芯片上的特点的利用,使其将广泛应用与科研工作和新产品的开发工作中。
EDA技术将广泛应用与专用集成电路的开发:用户可按通用器件从市场上选购,然后按自己的要求通过编程实现专用集成电力的功能,因此,对于集成电路制造技术与世界先进的集成电路制造技术有一定的差距的我国,开发具有自主知识产权的专用集成电路,已成为相关专业人员的重要任务。
EDA技术的发展至今经历了三个阶段。电子线路的CAD是EDA发展的
————————————————————————————————————
第 10 页
工程技术学院毕业设计(论文)专用纸
————————————————————————————————————
初级阶段,是高级EDA系统的重要组成部分。它利用计算机的图形编辑、分析和存储等能力,协助工程师设计电子系统的电路图、印制电路板和集成电路板图。它可以减少设计人员的繁琐重复劳动,但自动化程度低,需要人工干预整个设计过程。这类专用软件大多以微机为工作平台,易于学用,设计中小规模电子系统可靠有效,现仍有很多这类专用软件被广泛应用于工程设计。EDA技术中级阶段已具备了设计自动化的功能。其主要特征是具备了自动布局布线和电路的计算机仿真、分析和验证功能。其作用已不仅仅是辅助设计,而且可以代替人进行某种思维。
高级EDA阶段,又称为ESDA(电子系统设计自动化)系统。过去传统的电子系统电子产品的设计方法是采用自底而上(Bottom-Up)的程式,设计者先对系统结构分块,直接进行电路级的设计。这种设计方式使设计者不能预测下一阶段的问题,而且每一阶段是否存在问题,往往在系统整机调试时才确定,也很难通过局部电路的调整使整个系统达到既定的功能和指标,不能保证设计一举成功。EDA技术高级阶段采用一种新的设计概念自顶而下(Top-Down)的设计程式和并行工程(Concurrent Engineering)的设计方法,设计者的精力主要集中在所要电子产品的准确定义上,EDA系统去完成电子产品的系统级至物理级的设计。此阶段EDA技术的主要特征是支持高级语言对系统进行描述,可进行系统级的仿真和综合。
EDA工业标准:随着电子系统复杂性和难度的增大和微电子技术的快速发展,EDA技术在应用需求和运行环境的支持背景下,新型EDA工具不断出现,为解决电子产品从芯片级到板级甚至系统级的设计提供了各种解决方案。用户要根据自己的实际需要选择适宜的某一厂家的EDA产品,或几家的EDA工具。保证不同厂家的EDA工具可集成在同一平台运行,用不同EDA工具完成的设计能进行数据通信,实现资源共享,EDA工业标准是关键。目前EDA业界已在关键领域形成了EDA工业标准
基于EDA技术数字密码锁
在现在和未来,EDA技术主要应用于下面几个方面:1.高校电子类专业的实践教学中,如实验教学、课程设计、毕业设计、设计竞赛等均可借助凹ID/5PGA器件,既使实验设备或设计出的电子系统具有高可靠性,又经济、快速、容易实现、修改便利,同时可大大提高学生的实践动手能力、创新能力和计算机应用能力。2.科研和新产品开发中,0)U)/5PGA可直接应用于小批量产品的芯片或作为大批量产品的芯片前期开发。传统机电产品的升级换代和技术改造,0)U)/5PGA的应用可提高传统产品的性能,缩小体积,提高技术含量和产品的附加值
CPLD技术介绍和应用
2.1 Lattice公司CPLD器件系列
Lattice公司始建于1983年,是最早推出PLD的公司之一,GAL器件是其成功推出并得到广泛应用的PLD产品。二十世纪八十年代末,Lattice公司提出了在系统可编程的概念,并首次推出了CPLD器件,其后,将ISP与其拥有的先进的EECMOS技术相结合,推出了一系列具有ISP功能的CPLD器件,使CPLD器件的应用领域又有了巨大的扩展。所谓ISP技术,就是不用从系统上取下PLD芯片,就可进行编程的技术。ISP技术大大缩短了新产品研制周期,降低了开发风险和成本。因而推出后得到了广泛的应用,几乎成了CPLD的标准。
Lattice公司的CPLD器件主要有ispLSI系列、ispMACH系列。
下面主要介绍常用的ispLSI/MACH系列。
ispLSI系列是Lattice公司于二十世纪九十年代以来推出的,集成度1000门至60000门,引脚到引脚之间(Pin TO Pin)延时最小3ns,工作速度可达300MHz,支持ISP和JTAG边界扫描测试功能,适宜于通信设备、计算机、DSP系统和仪器仪表中应用;ispLSI/MACH速度更快,可达400MHz。
ispLSI系列主要有六个系列,分别适用于不同场合,前三个系列是基本型,后三个系列是1996年后推出的新产品。
(1)ispLSI1000系列
ispLSI1000系列又包括ispLSI1000/1000E/EA等品种,属于通用器件,集成度2000门至8000门,引脚到引脚之间的延时不大于7.5ns,集成度较低,速度较慢,但价格便宜,如ispLSI1032E是目前市面上最便宜的CPLD器件之一,因而在一般的数字系统中使用多,如网卡、高速编程器、游戏机、测试仪器仪表中均有应用。ispLSI1000是基本型,ispLSI1000E是ispLSI1000的增强型(Enhanced)。
(2)ispLSI2000系列
————————————————————————————————————
第 13 页
工程技术学院毕业设计(论文)专用纸
————————————————————————————————————
ispLSI2000系列又包括ispLSI2000/2000A/2000E/2000V/2000VL/2000VE等品种,属于高速型器件,集成度与ispLSI1000系列大体相当,引脚到引脚之间延时最小3ns,适用于速度要求高、需要较多I/O引脚的电路中使用,如移动通信、高速路由器等。
(3)ispLSI3000系列
ispLSI3000系列是第一个上万门的ispLSI系列产品,采用双GLB,集成度可达2万门,可单片集成系统逻辑、DSP功能及编码压缩电路。适用于集成度要求较高的场合。
以上系列工作电压为5V,引脚输入/输出电压为5V。
(4)ispLSI5000系列
ispLSI5000系列又包括ispLSI5000V/5000VA等品种,其整体结构与ispLSI3000系列相类似,但GLB和宏单元结构有了大的差异,属于多I/O口宽乘积项型器件,集成度10000门至25000门,引脚到引脚之间的延时大约5ns,集成度较高,工作速度可达200MHz,适用于宽总线(32位或64位)的数字系统中使用,如快速计数器、状态机和地址译码器等。ispLSI5000V系列工作电压3.3V,但其引脚能够兼容5V、3.3V、2.5V等多种电压标准。
(5)ispLSI6000系列
ispLSI6000系列的GLB与ispLSI3000系列相同,但整体结构中包含了FIFO或RAM功能,是FIFO或RAM存储模块与可编程逻辑相结合的产物,集成度可达25000门。
(6)ispLSI8000系列
ispLSI8000系列又包括ispLSI8000/8000V等品种,是在ispLSI5000V系列的基础上,更新整体结构而来的,属于高密度型器件,集成度可达60000门,引脚到引脚之间的延时大约5ns,集成度最高,工作速度可达200MHz,适用于较复杂的数字系统中应用。如外围控制器、运算协处理器等。
————————————————————————————————————
第 14 页
工程技术学院毕业设计(论文)专用纸
————————————————————————————————————
(7)ispMACH4000系列
ispMACH4000系列外观如图2.1,又包括ispLSI4000/4000B/4000C/4000V/4000Z等品种,主要是供电电压不同,ispMACH4000V、ispMACH4000B 和 ispMACH4000C器件系列供电电压分别为3.3V、2.5V 和 1.8V,莱迪思公司还基于ispMACH4000的器件结构开发出了业界最低静态功耗的 CPLD 系列-ispMACH4000Z。
ispMACH 4000 系列产品提供 SuperFAST (400MHz,超快)的 CPLD 解决方案。ispMACH 4000V 和 ispMACH 4000Z 均支持车用温度范围:-40 至 130°C (Tj) 。ispMACH 4000 系列支持介于 3.3V 和 1.8V 之间的 I/O 标准,既有业界领先的速度性能,又能提供最低的动态功耗。
ispMACH 4000V/B/C 系列器件的宏单元个数从 32 到 512 不等,ispMACH 4000Z 的宏单元数为 32 到 256。ispMACH 系列提供 44 到 256 引脚/球、具有多种密度 I/O 组合的 TQFP、fpBGA 和 caBGA 封装。
(8)ispLSI5000VE/ispMACH5000系列
ispLSI5000VE是后来设计的新产品, Lattice公司推荐用于替代ispLSI3000/5000V/5000VA。
ispLSI5000VE整体结构与ispLSI3000系列相类,但GLB和宏单元结构有了大的差异,属于多I/O口宽乘积项型器件,引脚到引脚之间延时大约5ns,集成度最大1024个宏单元,工作速度可达180MHz,适用于宽总线(32位或64位)的数字系统中使用,如快速计数器、状态机和地址译码器等。ispMACH 5000B系列速度更快,可达275MHz,集成度最大512个宏单元。
ispLSI/ispMACH 5000 系列器件的可编程结构为各种复杂的逻辑应用系统提供了业界领先的系统性能。器件的每个逻辑块拥有 68 个输入,可以在单级逻辑上轻松实现包括 64 位应用系统的复杂逻辑功能,而用传统的 CPLD 器件却需要两层或更多的逻辑层才能实现相同的功能,因为它们的逻辑块输入只相
数字密码锁ISP器件VHDL编程EDA技术
当于 ispLSI/ispMACH 5000 器件的一半。所以,对于需要 36 个以上的输入的“宽”逻辑功能,ispLSI/ispMACH 5000 的性能表现比传统的 CPLD 器件结构高出 60%。
(9)ispXPLDTM 5000MX 系列
ispXPLD5000MX系列,又包括ispXPLDTM5000MB/5000MC/5000MV等品种。ispXPLDTM 5000MX 系列代表了莱迪思半导体公司全新的 XPLD(eXpanded Programmable Logic Devices)器件系列。这类器件采用了新的构建模块-多功能块(MFB: Multi-Function Block)。这些 MFB 可以根据用户的应用需要,被分别配置成 SuperWIDETM 超宽(136个输入)逻辑、单口或双口存储器、先入先出堆栈或 CAM。
ispXPLD 5000MX 器件将 PLD 出色的灵活性与 sysIOTM 接口结合了起来,能够支持 LVDS、HSTL 和 SSTL 等最先进的接口标准,以及比较熟悉的 LVCMOS 标准。sysCLOCKTM PLL 电路简化了时钟管理。ispXPLD 5000MX 器件采用了拓展了的在系统编程技术,也就是 ispXP 技术,因而具有非易失性和无限可重构性。编程可以通过 IEEE 1532 业界标准接口进行,配置可以通过莱迪思的 sysCONFIGTM 微处理器接口进行。该系列器件有 3.3、2.5 和 1.8 伏供电电压的产品可供选择(对应MV、MB和MC系列),最大规模1024个宏单元,最快300MHz。
ispLSI/MACH器件都采用EECMOS和EEPROM工艺结构,能够重复编程万次以上,内部带有升压电路,可在5V、3.3V逻辑电平下编程,编程电压和逻辑电压可保持一致,给使用带来很大方便。具有保密功能,可防止非法拷贝。具有短路保护功能,能够防止内部电路自锁和SCR自锁。推出后,受到了极大的欢迎,曾经代表了CPLD的最高水平,但现在Lattice公司推出了新一代的扩展在系统可编程技术(ispX),在新设计中推荐采用ispMACH系列产品和ispLSI5000VE,全力打造ispXPLD器件,并推出采用扩展在系统可编程技术的ispXPGA系列FPGA器件,改变了只生产CPLD的状况。
————————————————————————————————————
第 16 页
工程技术学院毕业设计(论文)专用纸
————————————————————————————————————
2.2 CPLD器件介绍
Lattice公司的ispLSI系列CPLD是在GAL器件的基础上开发的,其结构主要包括以下几个部分:通用逻辑块(Generic Logic Block,GLB)、全局布线区(Global Routing Pool,GRP)、输出布线区(Output Routing Pool,ORP)、输入输出单元(Input/Output Cell,IOC)、时钟分配单元和加密单元,典型结构如图2.11。
(1)通用逻辑块GLB
通用逻辑块GLB是 ispLSI器件结构的基本单元和关键部分,图2.6中用A0…D7来标示,ispLSI1032E共有32个这样的GLB,ispLSI1000/2000系列的GLB有18个输入,用来驱动20个乘积项(Product Term ,PT)的阵列,这些乘积项提供四个输出,可输出至GRP或I/O单元。ispLSI3000/6000系列使用双GLB(Twin GLB),可以提供更宽的逻辑功能(24个输入,用来驱动两组各20个乘积项的阵列,这些乘积项提供两组共8个输出)。ispLSI5000V系列采用的GLB与前几个系列有较大差异,GLB包含32个宏单元,ispLSI8000系列的GLB与ispLSI5000V系列相类似,但由20个宏单元组成。ispLSI5000V/8000的GLB与ATERA公司的LAB结构差不多,下面主要介绍ispLSI1000/2000/3000系列的GLB,典型结构如图2.12。
GLB的内部逻辑由与阵列、乘积项共享阵列、可配置寄存器(OLMC)和控制部分组成。
GLB的与阵列(And Array)接受来自全局布线区GRP的输入信号,这些信号可以来自反馈信号,也可以来自外部I/O输入。与阵列用于组合逻辑中,产生乘积项。与ALTRA的MAX系列中的逻辑阵列相同。
乘积项共享阵列(Product Term Sharing Array,PTSA),允许来自与阵列的任意乘积项被任意的GLB输出共享,可消除相同乘积项组。PTSA与ALTRA的MAX系列中的乘积项选择矩阵相通。逻辑宏单元(OLMC,Output Logic Macro Cell)接受来自PTSA的全部输出,OLMC包含一个带有异或门输入的D型触发器,允许每个GLB输出配置成组合型(与或、异或)或寄存器型(D、T、JK触发器)。OLMC也就是ALTRA的MAX系列中可编程寄存器。
全局同步时钟信号或内部产生的异步乘积项时钟信号用于GLB,使得GLB更加灵活。
在ispLSI1000系列器件中,8个GLB,16个I/O单元,2个专用输入和1个ORP连接在一起,构成一个巨块。8个 GLB的输出通过ORP和16个一组的通用I/O单元连接在一起。ispLSI1032E有4个这样的巨块。
在ispLSI3000系列器件中,4个双GLB构成一个巨块,任一巨块设有专用输入。对于单I/O系列器件,设有一个输出布线区ORP,总共32个输出只有16个馈送到I/O单元,16个作为反馈输入;对于双I/O系列器件,设有两个输出布线区ORP,总共32个输出馈送到I/O单元,每个GLB输出有一个I/O单元。
基于EDA技术数字密码锁
图2-2-1 ispLSI1032E结构图图2.2-2 ispLSI1032E GLB 结构图
(2)全局布线区GRP若图片无法显示请联系QQ3710167,基于EDA技术数字密码锁系统免费,转发请注明源于www.lwfree.cn
全局布线区GRP位于结构的中央,通过它连接所有的内部逻辑。GRP具有可预测的固定的延迟,提供完全的互连特性。与ALTRA的MAX系列中可编程连线阵列PIA的全局总线相似。
(3)输出布线区ORP
ORP提供GLB输出与器件引脚之间的灵活连接,可在不改变外部引脚输出的条件下,实现设计变化。与ALTRA的MAX系列中可编程连线阵列PIA相似。
(4)输入输出单元IOC
ispLSI系列器件的I/O单元主要由扫描寄存器(输出使能电路和输出三态缓冲器)组成,输出使能电路能够由全局使能信号(OE)和乘积项驱动,还能由测试输出使能信号(TOE)驱动。每个I/O单元可独立编程配置为组合输入、寄存器输入、输出或双向三态I/O控制。
ispLSI1032E有64个I/O单元,每个I/O单元直接和一个I/O引脚相连,支持摆率控制以减少整体开关输出噪声。
每个I/O单元都只有一个边界扫描寄存器。
(5)时钟结构CPLD时钟由全局时钟GCLK、专用时钟(如I/O寄存器专用时钟)和乘积项
时钟组成。1000E系列中还设有GLB全局时钟生成网络。
(6)加密单元
加密单元用于防止阵列单元的非法拷贝,该单元编程后,禁止读出片内功能数据,但重新编程可擦除它。
(7)死锁保护
ispLSI器件片内电荷驱动能力能够防止输入负脉冲引起的内部电路阻塞,输出设计成N沟道上拉,消除了SCR引起的锁定,因此,具有良好的死锁保护功能。
3)Xilinx公司XC9500系列CPLD的基本结构
Xilinx公司XC9500系列CPLD与前面两家公司的产品在结构上稍有不同,主要由功能块(Function Block,FB)、速连开关矩阵(FastCONNECT Switch Matrix)和I/O块(IOB)组成。典型结构如图2.13。
图2-2-3 XC9500结构图
(1)功能块FB
功能块FB是XC9500系列CPLD的主要逻辑部件,由18个独立的宏单元(Macrocell)组成,有36个输入和18个输出(直接驱动IOB)。可编程的与阵列接受来自速连开关矩阵的36个输入信号,产生90个乘积项,通过乘积项分配器分配给18个宏单元共享。每个FB(XC9536除外)的输
数字密码锁ISP器件VHDL编程EDA技术
图2-2-4
出允许通过速连开关矩阵自反馈,用于实现非常快的计数器和状态机
图2-2-4 XC9500功能块内的宏单元结构图
XC9500的宏单元与MAX系列CPLD的宏单元结构基本相同,由可编程的与阵列(Programmable AND-Array)、乘积项分配器(Product Term Alloctors)和可编程寄存器三部分组成,可编程实现组合逻辑和时序逻辑。如图2-2-4
逻辑阵列用于实现组合逻辑,为宏单元提供5个乘积项。
乘积项分配器把逻辑阵列提供的乘积项有选择地提供给“或门”和“异或门”作为输入,实现组合逻辑函数;或作为可编程寄存器的辅助输入,用于时钟、复位、置位、输出使能控制。可编程寄存器用于实现时序逻辑,可配置为带可编程时钟的D、T触发器,或被旁路掉实现组合逻辑。触发器支持异步复位、置位,上电复位后,用户寄存器都初始化为用户定义的预载状态(Preload State),如未定义,则都为0。
全局控制信号包括时钟、复位、置位、输出使能控制信号通达每个宏单元,寄存器接受全局时钟和乘积项时钟使能信号,全局复位信号和乘积项复位信号,全局置位信号和乘积项置位信号。
乘积项分配器把逻辑阵列提供的乘积项有选择地提供给“或门”和“异或门”作为输入,实现组合逻辑函数;或作为可编程寄存器的控制信号。
乘积项分配器可把FB内其它宏单元未用的五个乘积项作为附加乘积项分配给宏单元,从而使单个宏单元在增加一个很小的延迟(tPTA)后拥有15个乘积项。
乘积项分配器还可把FB内其它宏单元部分乘积项分配给宏单元,从而使单个宏单元在增加一个很小的延迟(2*tPTA)后拥有18个乘积项。单个宏单元在增加一个8*tPTA的延迟后,可以拥有全部90个乘积项。
(2)速连开关矩阵
速连开关矩阵把信号送给FB作为输入,FB的输出和所有IOB的输出(输入)都可驱动速连开关矩阵。通过用户编程,所有这些信号经过一定延迟后都可驱动每个FB。在驱动目标FB之前,速连开关能够把多个内部连接组合成一根与线。这样,在不增加时延的情况下,增加了附加的逻辑能力及目标FB的有效逻辑扇入。
(3)IO块
IOB是内部逻辑和器件用户IO引脚间的接口。每个IOB包括一个输入缓冲
器、输出驱动器、输出使能选择开关和用户可编程控制地。
输入缓冲器能够接受标准5V CMOS、5V TTL和3.3V信号电平。输入缓冲器使用5V内部电源(VCCINT),保证输入不随VCCIO电压的变化而变化。
输出驱动器能够提供24mA的驱动电流,在VCCINT和VCCIO都为5V时,输出为5V TTL电平,在VCCIO降为3.3V时,输出为3.3V电平。
输出使能信号可以是来自宏单元的乘积项信号,或全局使能信号,或恒定值“1”,或恒定值“0”。
用户可编程控制地,允许将器件的I/O引脚配置为附加的地线引脚,可减少系统由于大量同时的开关输出而引起的噪声。
(4)加密单元
XC9500具有高级数据安全机制。加密单元有读保护位,可防止阵列单元的非法拷贝(读),写保护位可防止非法擦写(写保护)。读保护位编程后,禁止读出片内功能数据,也不允许重新编程,只有全部擦除才可清除它。写保护位设置后,不能重新编程,也不能擦除。因此,XC9500有四种数据安全机制。
2.3 CPLD技术在数字电路实验中的应用:
ISP技术中,ispLSI系列数字电路的开发基点不再放在仿制或反向设计上,而放在正向设计上,缩短了数字电路开发周期。IspLSI器件通过两条途径缩短系统开发时间:采用更为结构化的设计方法,使设计者可以大量重复使用他人过去设计的部件;采用高层次抽角化的设计工作,让设计者可以在高层次开始设计,也可进行分层组合设计或集成各自独立的设计到一个ispLSI器件中去。
数字电路实验分为两若图片无法显示请联系QQ3710167,基于EDA技术数字密码锁系统免费,转发请注明源于www.lwfree.cn大类:第一类是逻辑功能验证实验,如加法器、触发器、计数器、译码器、编码器、移位寄存器等:第二类是数字系统实验,这类实验点是规模较大,功能较完善,同时有较强的实用性和趣味性,如电子钟、电子秒表、可逆计数器、数字频率计等,这两类实验用ISP技术实现时略有不同。对于逻辑功能验证性实验,只需一台装有Synario软件的计算机,就可以实现原理图的输
基于EDA技术数字密码锁
入、系统仿真、输入输出波形的同时显示,从而得到功能的实验验证。对于数字系统性实验,通常在电路中需要显示部分,以及输入控制部分。因此,还需要一块装配有两片基本芯片ispLSl1032和ispGDS14以及发光二极管、数码管、按键等器件的实验板,该实验板与微机相连,可以进行大量的数字逻辑系统性实验和数字产品的开发。
0 对于数字系统性实验,由于电路规模较大,用ISP技术的原理图输入方式可采用化大为小的方法进行,即把规模较大的电路分成若干小电路,将小电路用原理图的输入方式输入并生成相应的模块,存放在元件库中,最后调用各模块连成规模较大的电路。
ISP技术的出现,可使学生做数字电路实验时,用ISP Synario开发软件在计算机中完成相应器件的设计、电路特性模拟、综合、优化、仿真及验证,最后通过编程电缆下载到有多功能硬件系统9即实验板)中的isp器件,完成整个设计和实验过程。
将ISP技术应用到数字电路实验课中,可以解决原来使用不同规模集成电路进行电路实验时存在的不足,同时也可使学生尽快掌握电子技术方面的最新知识。
.VHDL语言介绍
3.1 VHDL语言的优点
VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点
应用VHDL进行工程设计的优点是多方面的。
(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决 定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具
体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。
(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。
(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。 (5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计
传统的硬件电路设计方法是采用自下而上的设计方法,即根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图;然后根据技术规格书和系统控制流图,对系统的功能进行细化,合理地划分功能模块,并画出系统的功能框图;接着就进行各功能模块的细化和电路设计;各功能模块电路设计、调试完成后,将各功能模块的硬件电路连接起来再进行系统的调试,最后完成整个系统的硬件设计。采用传统方法设计数字系统,特别是当电路系统非常庞大时,设计者必须具备较好的设计经验,而且繁杂多样的原理图的阅读和修改也给设计者带来诸多的不便。为了提高开发的效率,增加已有开发成果的可继承性以及缩短开发周期,各ASIC研制和生产厂家相继开发了具有自己特色的电路硬件描述语言(Hardware Description Language,简称HDL)。但这些硬件描述语言差异很大,各自只能在自己的特定设计环境中使用,这给设计者之间的相互交流带来了极大的困难。因此,开发一种强大的、标准化的硬件描述语言作为可相互交流的设计环境已势在必行。于是,美国于1981年提出了一种新的、标准化的HDL,称之为VHSIC(Very High Speed Integrated Circuit)
Hardware Description Language,简称VHDL。这是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门级电路,最后用PLD实现其功能。
综合起来讲,VHDL语言具有如下优点:
1. 覆盖面广,描述能力强,是一个多层次的硬件描述语言。在VHDL语言中,设计的原始描述可以非常简练,经过层层加强后,最终可成为直接付诸生产的电路或版图参数描述。
2. 具有良好的可读性,即容易被计算机接受,也容易被读者理解。
3. 使用期长,不会因工艺变化而使描述过时。因为VHDL的硬件描述与工艺无关,当工艺改变时,只需修改相应程序中的属性参数即可。
4. 支持大规模设计的分解和已有设计的再利用。一个大规模的设计不可能由一个人独立完成,必须由多人共同承担,VHDL为设计的分解和设计的再利用提供了有力的支持。
3.2 利用VHDL语言设计数字系统的特点
主要描述系统的结构、行为、功能和接口。强大的行为描述能力可避开具体的器件结构,是设计大规模电子系统的重要保证。丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性。VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效、高速地完成必须有多人甚至多个开发组共同并行工作。对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动地把VHDL描述设计转变成门级网表。VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。当电路系统采用VHDL
数字密码锁ISP器件VHDL编程EDA技术
语言设计其硬件时,与传统的电路设计方法相比较,具有如下的特点:
采用自上而下的设计方法。即从系统总体要求出发,自上而下地逐步将设计的内容细化,最后完成系统硬件的整体设计。在设计的过程中,对系统自上而下分成三个层次进行设计:
第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数学模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑其实际的操作和算法用何种方法来实现,而是考虑系统的结构及其工作的过程是否能到达系统设计的要求。
第二层次是RTL方式描述。这一层次称为寄存器传输描述(又称数据流描述)。如前所述,用行为方式描述的系统结构的程序,其抽象程度高,是很难直接映射到具体逻辑元件结构的。要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序改写为RTL方式描述的VHDL语言程序。也就是说,系统采用RTL方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。
第三层次是逻辑综合。即利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表)。此时,如果需要,可将逻辑综合的结果以逻辑原理图的方式输出。此后可对综合的结果在门电路级上进行仿真,并检查其时序关系。应用逻辑综合工具产生的门级网络表,将其转换成PLD的编程码点,即可利用PLD实现硬件电路的设计。
由自上而下的设计过程可知,从总体行为设计开始到最终的逻辑综合,每一步都要进行仿真检查,这样有利于尽早发现设计中存在的问题,从而可以大大缩短系统的设计周期。
一. 系统可大量采用PLD芯片。
由于目前众多制造PLD芯片的厂家,其工具软件均支持VHDL语言的编程。所以利用VHDL语言设计数字系统时,可以根据硬件电路的设计需要,自行利
用PLD设计自用的ASIC芯片,而无须受通用元器件的限制。
一. 系统可大量采用PLD芯片。
由于目前众多制造PLD芯片的厂家,其工具软件均支持VHDL语言的编程。所以利用VHDL语言设计数字系统时,可以根据硬件电路的设计需要,自行利用PLD设计自用的ASIC芯片,而无须受通用元器件的限制。
三.采用系统早期仿真。
从自上而下的设计过程中可以看到,在系统设计过程中要进行三级仿真,即行为层次仿真、RTL层次仿真和门级层次仿真。这三级仿真贯穿系统设计的全过程,从而可以在系统设计的早期发现设计中存在的问题,大大缩短系统设计的周期,节约大量的人力和物力。
四.降低了硬件电路设计难度。
在传统的设计方法中,往往要求设计者在设计电路之前写出该电路的逻辑表达式或真值表(或时序电路的状态表)。这一工作是相当困难和繁杂的,特别是当系统比较复杂时更是如此。而利用VHDL语言设计硬件电路时,就可以使设计者免除编写逻辑表达式或真值表之苦,从而大大降低了设计的难度,也缩短了设计的周期。
五.主要设计文件是用VHDL语言编写的源程序。
与传统的电路原理图相比,使用VHDL源程序有许多好处:其一是资料量小,便于保存。其二是可继承性好。当设计其他硬件电路时,可使用文件中的某些库、进程和过程等描述某些局部硬件电路的程序。其三是阅读方便。阅读程序比阅读电路原理图要更容易一些,阅读者很容易在程序中看出某一电路的工做原理和逻辑关系。而要从电路原理图中推知其工作原理则需要较多的硬件知识和经验。
3.3 VHDL语言的数据类型和运算操作符
VHDL语言的对象:VHDL语言中可以赋值的对象有3种:信号(Signal)、变量(Variable)、常数(Constant)。在数字电路设计中,这3种对象通常都具有一定的物理意义。例如,信号对应地代表电路设计中的某一
条硬件连线;常数对应地代表数字电路中的电源和地等。当然,变量对应关系不太直接,通常只代表暂存某些值的载体。3类对象的含义和说明场合如表2-1所示。
表3-3-1 VHDL语言3种对象的含义和说明场合
对象类别
含 义
说 明 场 合
信 号
信号说明全局量
Architecture, package, entity
变 量
变量说明局部量
Process, function, procedure
常 数
常数说明全局量
上面两种场合下,均可存在
VHDL语言的数据类型:
1.数据类型的种类
在VHDL语言中,信号、变量、常数都是需要指定数据类型的,VHDL提供的数据类型可归纳如图3-3-1:
图3-3-2 数据类型的分类
在上述数据类型中,有标准的,也有用户自己定义的。当用户自己定义时,其具体的格式如下:
TYPE 数据类型名 数据类型的定义;
下面对常用的几种数据类型作一些说明。
整型(INTEGER):VHDL中的整型与数学中的整形定义相似,可以使用加、减、乘、除等运算符。整数的最小范围从-2147483647到+2147483647,即32位有符号的二进制数。
实数(REAL):实数即浮点数,有正有负,书写时一定要有小数点。实数的最小范围从-1.0E+38到+1.0E+38。
记录(RECORD):记录是异构复合类型,也就是说,记录中的元素可以是不同的类型。记录类型的格式如下:
数字密码锁ISP器件VHDL编程EDA技术
TYPE 记录名 IS RECORD
---记录中元素的类型说明;
END RECORD
一个具体的实例如下:
TYPE month_name(Jan, Feb, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);
TYPE date IS RECORD
day : integer range 0 to 31;
month : month_name;
year : Integer range 0 to 3000;
END RECORD;
数组(ARRAY):数组用于定义同一类型值的集合。数组可以是一维的(有一个下标),也可以是多维的(有多个下标)。此外,数组还可分为限定性数组和非限定想数组,限定性数组下标的取值范围在该数组类型定义时就被确定;而非限定性数组下标的取值范围随后才确定。其具体格式如下:
TYPE 数据类型名 IS ARRAY 范围 OF 原数据类型;
举例如下:
TYPE word IS ARRAY (1 TO 8) OF STD_LOGIC;
“STD_LOGIC_VECTOR”也属于数组,因它在程序包“STD_LOGIC_1164”中被定义成数组。
子类型:所谓子类型是用户对定义的数据类型作一些范围限制而形成的一种新的数据类型。子类型定义的一般格式为:
SUBTYPE 子类型名 IS 数据类型名 [范围];
子类型可以是对其父类型施加限制条件,也可以是简单地对其父类型重新起个名字,而没有增加任何新的意义。
2.数据类型的转换
在VHDL语言中,数据类型的定义是相当严格的,不同类型数据是不能进行运算和直接赋值的。为了实现正确的运算和赋值操作,必须将数据进行类型转换。数据类型的转换是由转换函数完成的,VHDL的标准程序包提供了一些常用的转换函数,
VHDL语言的运算操作符:如同别的程序设计语言一样,VHDL中的表达式是由运算符将基本元素连接起来的式子。VHDL的运算符可分为4组:
算数运算符、关系运算符、逻辑运算符和其他运算符以及它们的优先级别如下表所示:
表3-3-3 VHDL的运算符及优先级别
优先级顺序
运算符类型
运 算 符
功 能
低
高
逻
辑
运
算
符
AND
与
OR
或
NAND
与非
NOR
或非
XOR
异或
XNOR
异或非
关
系
运
算
符
=
等于
/=
不等于
<
小于
>
大于
<=
小于等于
>=
大于等于
+
加
―
减
&
连接
+
正
―
负
*
乘
/
除
MOD
求模
REM
取余
* *
指数
ABS
取绝对值
NOT
取反通常,在一个表达式中有两个以上的算符时,需要使用括号将这些操作分组。如果一串操作的算符相同,且是AND、OR、XOR这三个算符中的一种,则不需要使用括号,如果一串操作中的算符不同或有除这三种算符之外的算符,则必须使用括号。如:
a AND b AND c AND d
(a OR b) NAND c
关系运算符=、/=、<、<=和>=的两边类型必须相同,因为只有相同的数据类型才能比较,其比较的结果为BOOLEAN型。
正(+)负(-)号和加减号的意义与一般算术运算相同。连接运算符用于一维数组,“&”符号右边的内容连接之后形成一个新的数组,也可以在数组后面连接一个新的元素,或将两个单元素连接形成数组。连接操作常用于字符串。
乘除运算符用于整形、浮点数与物理类型。取模、取余只能用于整数类型。
取绝对值运算用于任何数值类型。乘方运算的左边可以是整数或浮点数,但右边必须为整数,且只有在左边为浮点时,其右边才可以为负数。
在用VHDL语言描述系统的硬件行为时,按语句执行的顺序可分为顺序语句和并行语句。顺序语句主要用来实现模型的算法部分;而并行语句则基本上用来表示黑盒的连接关系。黑盒中所包含的内容可以是算法描述或一些相互连接的黑盒。
一. 顺序语句
VHDL提供了一系列丰富的顺序语句,用来定义进程、过程或函数的行为。所谓“顺序”,意味着完全按照程序中出现的顺序执行各条语句,而且还意味着在结构层次中前面语句的执行结果可能直接影响后面语句的结果。顺序语句包括:
l WAIT语句
l 变量赋值语句
基于EDA技术数字密码锁
l 信号赋值语句
l IF语句
CASE语句
l LOOP语句
l NEXT语句
l EXIT语句
l RETURN语句
l NULL语句
l 过程调用语句
l 断言语句
l REPORT语句NULL语句
l 过程调用语句
l 断言语句
l REPORT语句
3.4 VHDL语言的主要描述语句
在用VHDL语言描述系统的硬件行为时,按语句执行的顺序可分为顺序语句和并行语句。顺序语句主要用来实现模型的算法部分;而并行语句则基本上用来表示黑盒的连接关系。黑盒中所包含的内容可以是算法描述或一些相互连接的黑盒。
3.4.1 顺序语句
VHDL提供了一系列丰富的顺序语句,用来定义进程、过程或函数的行为。所谓“顺序”,意味着完全按照程序中出现的顺序执行各条语句,而且还意味着在结构层次中前面语句的执行结果可能直接影响后面语句的结果。顺序语句包括
l 信号赋值语句
l IF语句
l CASE语句
l LOOP语句
l NEXT语句
l EXIT语句
l RETURN语句
l NULL语句
l 过程调用语句
l 断言语句
l REPORT语句
下面逐个介绍其中常用的一些语句:
1. 等待(WAIT)语句
进程在运行中总是处于两种状态之一:执行或挂起。当进程执行到WAIT语句时,就将被挂起来,并设置好再执行的条件。WAIT语句可以设置四种不同的条件:无限等待、时间到、条件满足以及敏感信号量变化。这几类条件可以混用。
语句格式如下:
(1)WAIT;
(2)WAIT ON 信号;
(3)WAIT UNTIL 条件表达式;
(4)WAIT FOR 时间表达式;
第1种格式为无限等待,通常不用;
第2种当指定的信号发生变化时,进程结束挂起状态,继续执行;
第3种当条件表达式的值为TRUE时,进程才被启动;
第4种当等待的时间到时,进程结束挂起状态。
l 断言(ASSERT)语句
l ASSERT语句主要用于程序仿真、调试中的人-机对话,它可以给出
一串文字作为警告和错误信息。ASSERT语句的格式如下:
ASSERT 条件 [REPORT 输出信息] [SEVERITY级别]
当执行ASSERT语句时,会对条件进行判断。如果条件为“真”,则执行下一条语句;若条件为“假”,则输出错误信息和错误严重程度的级别。
3.信号赋值语句
信号赋值语句的格式如下:
信号量 <= 信号量表达式
如:
a<= b AFTER 5 ns;
信号赋值语句指定延迟类型,并在后面指定延迟时间。但VHDL综合器忽略延迟特性。
4.变量赋值语句
在VHDL中,变量的说明和赋值限定在进程、函数和过程中。变量赋值符号为“:= ”,同时,符号“ := ”也可用来给变量、信号、常量和文件等对象赋初值。其书写格式为:
变量:= 表达式;
1. IF语句
IF语句的一般格式如下:
IF 条件 THEN
顺序处理语句;
{ELSIF 条件 THEN
顺序处理语句;
∶
ELSIF 条件 THEN
顺序处理语句;}
ELSE
顺序处理语句;
END IF;
花扩号内的嵌套语句可有可无,视具体情况而定。在IF语句中,当所设置的条件满足时,则执行该条件后面的顺序处理语句;若所有的条件均不满足时,则执行ELSE和END IF之间的顺序处理语句。
1. CASE语句
CASE语句用来描述总线或编码、译码的行为,从许多不同语句的序列中选择其中之一执行。虽然IF语句也有类似的功能,但CASE语句的可读性比IF语句要强得多,程序的阅读者很容易找出条件和动作的对应关系。
CASE语句的一般格式如下:
CASE 表达式 IS
WHEN 表达式值 => 顺序语句;
WHEN OTHERS => 顺序语句;
END CASE;
当CASE和IS之间的表达式满足指定的值时,程序将执行后面所跟的顺序语句。
7. LOOP语句
LOOP语句与其他高级语言中的循环语句一样,使程序能进行有规则的循环,循环的次数受迭代算法的控制。一般格式有两种:
(1) FOR循环变量
[标号]:FOR 循环变量 IN 离散范围 LOOP
顺序语句;
END LOOP [标号];
上面循环语句的等价语句如下:
A(1)<= B(1);
A(2)<= B(2);
A(3)<= B(3);
(1) WHILE条件循环
这种LOOP语句的书写格式如下:
[标号]:WHILE 条件 LOOP
顺序语句;
END [标号];
当条件为真时,则进行循环;当条件为假时,则结束循环。
8. NEXT 语句
在LOOP语句中,NEXT语句用来跳出本次循环。其语句格式为:
NEXT [标号] [WHEN 条件];
当NEXT语句执行时将停止本次迭代,转入下一次新的迭代。NEXT后面的标号表明下次迭代的起始位置,而WHEN条件则表明NEXT语句执行的条件。如果NEXT后面既无标号而无WHEN条件说明,则执行到该语句接立即无条件地跳出本次循环,从LOOP语句的起始位置进入下次循环。
9. EXIT 语句
EXIT语句也是LOOP语句中使用的循环控制语句,与NEXT不同的是,执行EXIT语句将结束循环状态,从而结束LOOP语句的正常执行。其格式如下:
EXIT [标号] [WHEN 条件];
若EXIT后面的标号和WHEN条件缺省,则程序执行到该语句时就无条件从
数字密码锁ISP器件VHDL编程EDA技术
LOOP语句中跳出,结束循环状态。若WHEN中的条件为“假”,则循环正常继续。10.NULL语句
NULL语句表示没有动作发生。NULL语句一般用在CASE语句中以便能够覆盖所有可能的条件。
3.4.1 并行语句
由于硬件语言所描述的实际系统,其许多操作是并行的,所以在对系统进行仿真时,系统中的元件应该是并行工作的。并行语句就是用来描述这种行为的。并行描述可以是结构性的也可以是行为性的。而且,并行语句的书写次序并不代表其执行的顺序,信号在并行语句之间的传递,就犹如连线在电路原理图中元件之间的连接。主要的并行语句有以下几种:
l 块(BLOCK)语句
l 进程(PROCESS)语句
l 生成(GENERATE)语句
l 器件(COMPONENT)和器件例化(COMPONENT_INSTANT)语句
(1) 块(BLOCK)语句
块(BLOCK)可以看作是结构体中的子模块。BLOCK语句把许多并行语句包装在一起形成一个子模块,常用于结构体的结构化描述。块语句的格式如下:
标号:BLOCK
块头
{ 说明部分 }
BEGIN
{ 并行语句 }
END BLOCK 标号;
块头主要用于信号的映射及参数的定义,通常通过GENETIC语句、GENETIC_MAP语句、PORT和PORT_MAP语句来实现。
说明部分与结构体中的说明是一样的,主要对该块所要用到的对象加以说明。
(2)进程(PROCESS)语句
VHDL模型的最基本的表示方法是并行执行的进程语句,它定义了单独一组在整个模拟期间连续执行的顺序语句。一个进程可以被看作一个无限循环,在模拟期间,当进程的最后一个语句执行完毕之后,又从该进程的第一个语句开始执行。在进程中的顺序语句执行期间,若敏感信号量未变化或未遇到WAIT语句,模拟时钟是不会前进的。
在一个结构中的所有进程可以同时并行执行,它们之间通过信号或共享变量进行通信。这种表示方法允许以很高的抽象级别建立模型,并允许模型之间存在复杂的信号流。
进程语句的格式如下:
[进程标号:] PROCESS (敏感信号表) [IS]
[ 说明区 ]
BEGIN
顺序语句
END PROCESS [进程标号];
上述格式中,中扩号内的内容可有可无,视具体情况而定。进程语句的说明区中可以说明数据类型、子程序和变量。在此说明区内说明的变量,只有在此进程内才可以对其进行存取。
如果进程语句中含有敏感信号表,则等价于该进程语句内的最后一个语句是一个隐含的WAIT语句,其形式如下:
WAIT ON 敏感信号表;
一旦敏感信号发生变化,就可以再次启动进程。必须注意的是,含有敏感信号表的进程语句中不允许再显式出现WAIT语句。
(3)生成(Generate)语句
生成语句给设计中的循环部分或条件部分的建立提供了一种方法。生成语句有如下量种格式:
标号:FOR 变量 IN 不连续区间 GENERATE
并行处理语句
END GENERATE [标号];
标号:IF 条件 GENERATE
并行处理语句
END GENERATE [标号];
生成方案FOR用于描述重复模式;生成方案IF通常用于描述一个结构中的例外情形,例如在边界处发生的特殊情况。
FOR ...GENERATE 和FOR...LOOP的语句不同,在FOR ...GENERATE语句中所列举的是并行处理语句。因此,内部语句不是按书写顺序执行的,而是并行执行的,这样的语句中就不能使用EXIT语句和NEXT语句。
IF ...GENERATE语句在条件为“真”时执行内部的语句,语句同样是并行处理的。与IF语句不同的是该语句没有ELSE项。
该语句的典型应用场合是生成存储器阵列和寄存器阵列等,还可以用于地址状态编译机。
(4) 元件(COMPONENT)和元件例化(COMPONENT_INSTANT)语句
COMPONENT语句一般在ARCHITECTURE、PACKAGE及BLOCK的说明部分中使用,主要用来指定本结构体中所调用的元件是哪一个现成的逻辑描述模块。COMPONENT语句的基本格式如下:
COMPONENT 元件名
GENERIC说明; --参数说明
PORT说明; --端口说明
END COMPONENT;
在上述格式中,GENTRIC通常用于该元件的可变参数的代入或赋值;PORT则说明该元件的输入输出端口的信号规定。
COMPONENT_INSTANT语句是结构化描述中不可缺少的基本语句,它将现成元件的端口信号映射成高层次设计电路中的信号。COMPONENT_INSTANT语句的书写格式为:
标号名:元件名 PORT MAP(信号,…)
标号名在该结构体的说明中应该是唯一的,下一层元件的端口信号和实际信号的连接通过PORT MAP的映射关系来实现。映射的方法有两种:位置映射和名称映射。所谓位置映射,是指在下一层元件端口说明中的信号书写顺序位置和PORT MAP( )中指定的实际信号书写顺序位置一一对应;所谓名称映射是将已经存于库中的现成模块的各端口名称,赋予设计中模块的信号名。
数字密码锁ISP器件VHDL编程EDA技术
数字密码锁
4.1 设计方案
随着人们生活水平的提高,密码锁作为家庭防盗卫士的作用日趋重要,它与普通机械锁相比有一些独特的优势,如:保密性强,防盗性能好,可以不用钥匙,只要记住密码即可开锁。
首先明确所要设计系统的逻辑功能;然后确定系统方案,将系统逻辑划分成控制器和处理器两大部分;再采用某种算法描述系统,本文采用ASM 图;最后设计控制器和处理器,并组成所需要的数字系统;
共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。
数字系统的设计方法有两种。一种是自下而上的设计方法,它是一种试探法。设计者根据自己的经验将规模大、功能复杂的数字系统按逻辑功能分成若干子模块,一直分到这些子模快可以用经典的方法和标准的逻辑部件进行设计为止,最后将整个系统安装、调试达到设计要求。另一种是自上而下的设计方法,这种设计方法的特点是,将整个系统从逻辑上划分成控制器和处理器两大部分,采用ASM(算法状态机)图或其它方法描述控制器和处理器的工作过程。本文采用第二种方法设计数字密码锁。这种设计方法的一般步骤为:
首先明确所要设计系统的逻辑功能;然后确定系统方案,将系统逻辑划分成控制器和处理器两大部分;再采用某种算法描述系统,本文采用ASM 图;最后设计控制器和处理器,并组成所需要的数字系统;
数字密码锁的功用:可触摸按键实现密码的设置及开锁时密码的输人;输人的密码三次不正确视为非法用户并报警;确定用户时,可更改密码
图4-2-1 系统原理图
4.3、设计过程
电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电
造成的密码锁电路失效,使用户免遭麻烦。
密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、键盘输次数锁定电路。
、键盘输入、密码修改、密码检测、开锁及执行电路 .
其电路如下图4-3-1所示:若图片无法显示请联系QQ3710167,基于EDA技术数字密码锁系统免费,转发请注明源于www.lwfree.cn
图4-3-1 键盘输入、密码修改、密码检测、开锁、执行电路
开关K1~K9是用户的输入密码的键盘,用户可以通过开关输入密码,开关两端的电容是为了提高开关速度,电路先自动将IC1~IC4清零,由报警电路送来的清零信号经C25送到T11基极,使T11导通,其集电极输出低电平,送往IC1~IC4,实现清零。
密码修改电路由双刀双掷开关S1~S4组成(如图4-3-2所示), 它是利用开关切换的原理实现密码的修改。例如要设定密码为1458,可以拨动开关S1向左,S2向右,S3向左,S4向右,即可实现密码的修改,由于输入的密码要经过S1~S4的选择,也就实现了密码的校验。本电路有16组的密码可供修改。
图4-3-2 密码修改电路
由两块74LS112(双JK触发器,包含IC1~IC4)组成密码检测电路。由于IC1处于计数状态,当用户按下第一个正确的密码后,CLK端出现了一个负的下降沿,IC1计数,Q端输出为高电平,用户依次按下有效的密码,IC2~IC3也依次输出高电平,送入与门IC5,使其输出开锁的高电平信号送往IC13的2脚,执行电路动作,实现开锁。
执行电路是由一块555单稳态电路(IC13),以及由T10、 T11组成的达林顿管构成。若IC13的2脚输入一高电平,则3脚输出高电平,使T10导通,T11导通,电磁阀开启,实现开门,同时T10集电极上接的D5(绿色发光二极管)发亮,表示开门,20秒后,555电路状态翻转,电磁阀停止工作,以节电。其中电磁阀并联的电容C24使为了提高电磁阀的力矩。
4-3-2 报警电路
报警电路实现的功能是:当输入密码的时间超过40秒(一般情况下用户输入不会超过),电路报警80秒,防止他人恶意开锁。
电路包含两大部分,2分钟延时和40秒延时电路。其工作原理是当用户开始输入密码时,电路开始2分钟计时,超出40秒,电路开始80秒的报警。图如下4-3-3所示
数字密码锁ISP器件VHDL编程EDA技术
图4-3-3 报警电路 有人走近门时,触摸了TP端(TP端固定在键盘上,其灵敏度非常高,保证电路可靠的触发),由于人体自身带的电,使IC10的2脚出现低电平,使IC10的状态发生翻转,其3脚输出高电平,T5导通(可以通过R12控制T1的基极电流),其集电极接的黄色发光二极管D3发光,表示现在电子锁处于待命状态,T6截止,C4开始通过R14充电(充电时间是40秒,此时为用户输入密码的时间,即用户输入密码的时间不能超过40秒,否则电路就开始报警, 由于用户经常输入密码,而且知道密码,一般输入密码的时间不会超过40秒),IC2开始进入延时40秒的状态。
开始报警:当用户输入的密码不正确或输入密码的时间超过40秒,IC11的2脚电位随着C4的充电而下降,当电位下降到1/3Vcc时(即40秒延时结束时候),3脚变成高电位(延时时是低电平),通过R15使(R15的作用是为了限制T7的导通电流防止电流过大烧毁三极管)T7导通,其集电极上面接的红色发光二极管D4发亮,表示当前处于报警状态,T8也随之而导通,使蜂鸣器发声,令贼人生怯,实现报警.
停止报警:当达到了80秒的报警时间,IC10的6,7脚接的电容C5放电结束,IC10的3脚变成低电平,T5截止,T6导通,强制使强制电路处于稳态,IC11
的3脚输出低电平,使T7,T8截止,蜂鸣器停止报警;或者用户输入的密码正确,则有开锁电路中的T10集电极输出清除报警信号,送至T12(PNP),T12导通,强制使T7基极至低电位,解除报警信号。
4-3-3、报警次数检测及锁定电路
若用户操作连续失误超过3次,电路将锁定5分钟。其工作原理如下:当电路报警的次数超过3次,由IC9(74161)构成的3位计数器将产生进位,通过IC7,输出清零信号送往74161的清零端,以实现重新计数。经过IC8(与门),送到IC12(555)的2脚,使3脚产生5分钟的高电平锁定脉冲(其脉冲可由公式T=1.1RC计算得出),经T9倒相,送IC6输入端,使IC6输出低电平,使IC13不能开锁,到锁定的目的。电路图如下4-3-4所示:
图4-3-4报警次数检测及锁定电路
4-3-4、备用电源电路
为了防止停电情况的发生,本电路后备了UPS电源,它包括市电供电电路,停电检测电路,电子开关切换电路,蓄电池充电电路和蓄电池组成。其电路图如下4-3-5所220V市电通过变压器B降压成12V的交流电,再经过整流桥整流,7805稳压
图4-3-5 电源电路
到5V送往电子切换电路,由于本电路功耗较少,所以选用10W的小型变压器。
由R8,R9,R6,R7及IC14构成电压比较器,正常情况下,V+
V- IC14输出高电平,由T3,T4构成的达林顿管使继电器J开启,将其常开触电将蓄电池和电路相连,实现市电和蓄电池供电的切换,保证电子密码锁的正常工作(视电池容量而定持续时间)。其电路图如下4-3-6所示:
图4-3-6停电检测及电子开关切换电路
T1,T2构成的蓄电池自动充电电路,它在电池充满后自动停止充电,其中D1
亮为正在充电,D2为工作指示。由R4,R5,T1构成电压检测电路,蓄电池电压低,则T1,T2导通,实现对其充电;充满后,T1,T2截止,停止充电,同时D1熄灭,电路中C4的作用是滤除干扰信号。其电路图如4-3-7所示:
基于EDA技术数字密码锁
图4.-3-7 蓄电池自动充电电路
4.4 VHDL源程序
键盘输入去抖电路的VHDL源程序
DCFQ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DCFQ IS PORT(CLK,CLRN,PRN,D:IN STD_LOGIC); Q:OUT STD_LOGIC);END ENTITY DCFQ;ARCHITECTURE ART OF DCFQ IS BEGIN PROCESS (CLK,CLRN,PRN) BEGIN
IF CLRN=’0’AND PRN=’1’THEN Q<=’0’;ELSIF CLRN=’1’AND PRN=’0’THEN
Q<=’1’;ELSIF CLK’EVENT AND CLK=’1’THEN Q<=D;END IF;END PROCESS;END ARCHITECTURE ART;--DEBOUNCING.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;LIBRARY ALTERA;USE ALTER.MAXPLUS2.ALL;ENTITY DEBOUCING IS PORT(D_IN,CLK:IN STD_LOGIC;DD1,DD0,QQ1,QQ0:OUT_LOGIC;D_OUT,D_OUT1:OUT STD_LOGIC);END ENTITY DEBOUNCING;ARCHITECTURE ART OF DEBOUNCING ISCOMPONENT DCFQ IS PORT(CLK,CLRN,PRN,D:IN STD_LOGIC; Q:OUT STD_LOGIC);END COMPONENT DCFQ;SIGNAL VCC,INV_D:STD_LOGIC;
SIGNAL Q0,Q1:STD_LOGIC;
SIGNAL D1,D0:STD_LOGIC;BEGINVCC<=’1’;INV_D<=NOT D_IN;U1CFQ PORT MAP(CLK=>CLK,CLRN=>INV_D,PRN=>VCC,D=>VCC,Q=>Q0);U2CFQ PORT MAP(CLK=>CLK,CLRN=>Q0,PRN=>VCC,D=>VCC,D=>VCC,Q=>Q1);PROCESS (CLK) BEGIN IF CLK’EVENT AND CLK=’1’THEND0<=NOT Q1;D1<=D0;END IF;END PROCESS;DD0<=D0;DD1<=D1;QQ1<=Q1;QQ0<=Q0;D_需要完整内容的请联系QQ3710167,本文免费,转发请注明源于www.lwfree.cn--KEYBOARD.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSINGNED.ALL;
数字密码锁ISP器件VHDL编程EDA技术
ENTITY KEYBOARD ISPORT(CLK_1K:IN STD_LOGIC; KEY_IN:IN STD_LOGIC_VECTOR(2 DOWNTO 0); CLK_SACN:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); DATA_N:OUT STD_LOGIC_VECTOR(3 DOWNTO ); DATA_F:OUT STD_LOGIC_VECTOR(3 DOWNTO ); FLAG_N:OUT STD_LOGIC; FLAG_F:OUT STD_LOGIC; CLK_CTR:OUT STD_LOGIC; CLK_DEBOUNCE:OUT STD_LOGIC);END ENTITY KEYBOATD;ARCHITECTURE ART OF KEYBOARD IS COMPONENT DEBOUNGING ISPORT(D_IN:IN STD_LOGIC; CLK: IN STD_LOGIC; D_OUT:OUT STD_LOGIC);END COMPONENT DEBOUNGING;SIGNAL CLK:STD_LOGIC;SIGNAL C_KEYBOARD:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL C_DEBOUNCE:STD_LOGIC;SIGNAL C:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL N,F:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL FN,FF:STD_LOGIC;SIGNAL SEL:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN
内部连接DATA_N<=N;DATA_F<=F;FLAN_N<=FN;FLAN_F<=FF;CLK_CLR<=CLK;――扫描信号发生器COUNTER:BLOCK IS SIGNAL Q:STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL SEL: STD_LOGIC_ VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK_1K) IS BEGIN IF CLK_1K’EVENT AND CLK_1K=’1’THEN Q<=Q+1; ENDIF; C_DEBOUNCE<=Q(2); C_KEYBOARD<=Q(6 DOWNTO 5);――产生键扫描信号 --C_DEBOUNCE<=Q(1); --C_KEYBOARD<=Q(5 DOWNTO 4); CLK<=Q(0);END PROCESS;CLK_DEBOUNG<=C_DEBOUNCE;SEL<=“1110”WHEN C_KEYBOARD=0 ELSE
1101”WHEN C_KEYBOARD=1 ELSE “1011”WHEN C_KEYBOARD=2 ELSE “0111”WHEN C_KEYBOARD=3 ELSE “1111”CLK_SCAN<=SEL;END BLOCK COUNTER;--键盘去抖DEBOUNUING :BLOCK IS BEGIN U1: DEBOUNCING PORT MAP (D_IN=>KEY_IN(0),D_OUT=>C(0),CLK=>C_DEBOUNCE); U2: DEBOUNCING PORT MAP (D_IN=>KEY_IN(1),D_OUT=>C(1),CLK=>C_DEBOUNCE); U3: DEBOUNCING PORT MAP (D_IN=>KEY_IN(2),D_OUT=>C(2),CLK=>C_DEBOUNCE);END BLOCK DEBOUNUING;――键盘译码KEY_DECODER:BLOCK SIGNAL Z:STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN Z<=C_KEYBOARD&CIF CLK’EVENT AND CLK=’1’ THEN CASE Z ISWHEN“11101”=>N<=“0000”;0WHEN“00011”=>N<=“0001”;1
WHEN“00101”=>N<=“0010”;2WHEN“11101”=>N<=“0000”;3WHEN“01011”=>N<=“0100”;4WHEN“01101”=>N<=“0101”;5WHEN“01110”=>N<=“0110”;6WHEN“10101”=>N<=“0111”;7WHEN“10110”=>N<=“1000”;8WHEN“10110”=>N<=“1001”;9WHEN OTHERS =>N<=“1111”; END CASE;END IF;IF CLK’EVENT AND CLK=’1’ THEN CASE Z ISWHEN“11011”=>F<=“0100”;需要完整内容的请联系QQ3710167,本文免费,转发请注明源于www.lwfree.cnEND ARCHITECTURE ART;――密码控制电路的VHDL源程序--CTRL.VHD
数字密码锁ISP器件VHDL编程EDA技术
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSINGED.ALL;ENTITY CTRL IS PORT(DATA_N:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DATA_F:IN STD_LOGIC_VECTOR(3 DOWNTO 0); FLAG_N:IN STD_LOGIC; FLAG_F:IN STD_LOGIC; CLK: IN STD_LOGIC; ENLOCK: OUT STD_LOGIC; DATA_BCD: OUT STD_LOGIC_VECTOR(15 DOWNTO 0));END ENTTY CTRL;ARCHITECTURE ART OF CTRL IS SIGNAL ACC,REG:STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL NC,REG:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL RR2,CLR,BB,QA,QB:STD_LOGIC; SIGNAL R1,R0:STD_LOGIC; BEGIN PROCESS(CLK) BEGIN IF CLK’EVENT AND CLK=’1’THEN R1<=R0;R0<=FLAG_F; END IF; RR2<=R1 AND NOT R0;
CLR<=RR2;END PROCESS;--按键输入数据的存储、清零进程KEYIN_PROCESS:BLOCK IS SIGNAL RST ,D0,D1:STD_LOGIC; BEGIN RST<=RR2; PROCESS(FLAG_N,RST)IS BEGIN IF RST =’1’ THEN ACC<=“00000000”; NC<=“000”; ELSE IF FLAG_N’EVENT AND FLAG_N=’1’ THEN IF NC<4 THEN ACC<=ACC(11 DOWNTO 0)&DATA_N; NC<=NC+1; END IF; END IF;END IF;END PROCESS;END BLOCK KEYIN_PROCESS;--上锁、开锁控制LOCK_PROCESS:BLOCK IS BEGIN
PROCESS(CLK,DATA_F)IS BEGIN IF(CLK’EVENT AND CLK=’1’)THEN IF NC=4 THEN IF DATA_F(2)=’1’THEN REG<=ACC; QA<=’1’;QB<=’0’; ELSIF DATA_F(0)=’1’THEN IF REG=ACC THEN QA<=’0’;QB<=’1’; END IF;ELSIF ACC=”10001000” QA<=’0’;QB<=’1’;END IF;END IF;END IF;END PROCESS;END BLOCK LOCK_PROCESS;ENLOCK<=QA AND NOT QB;DATA_BCD<=ACC;END ARCHITETURE ART;
致谢
大学就要结束,三年的大学生活不但丰富了自己的阅历,同时也增长了不少的文化知识。本次毕业设计就是对大学所的掌握知识进行总结和检验。这次设计主要是基于EDA方面的设计。同时设计中所要使用的ISP器件及VHDL等技术都是当今比较流行和未来最有前景的设计手段,让自己能体会出自己的知识必须跟上时代的进步。设计开始自己先对EDA的理论知识进行回顾和总结,然后通过自己对ISP器件和VHDL软件的一些了解初步的拟出设计原始的框架。然后设计过程中利用图书馆、互联网以及张小华老师的指导下不断的修改自己的设计方案。最后提交自己的设计成果。整个过程完全浓缩了自己的大学知识以及养成的学习方法,当然也少不了张老师对自己设计作品的检查和修改。所以自己也通过设计,了解了实际电子设计过程中所使用的手段和方法,为以后步入社会打下基础,这次设计也是锻炼了自己灵活使用书本知识的能力。
最后,要对自己出现的缺点进行总结和更正,为以后的操作和工作提供经验。同时要对自己的指导老师张老师进行感谢,感谢他在百忙之中抽空给我们进行课题指导,感谢他对自己提供课题方面的资料和对设计中出现的问题进行修改。
基于EDA技术数字密码锁
参考文献
(1) 潘松 黄继业.EDA技术实用教程[M] 北京: 科技出版社,1997.
(2) 刘仁用.ISP器件设计现代电路与系统[M] 西安:西安电子出版,1998.
(3) 刘毅坚.ABEL硬件程序设计[M] 北京:电子工业出版社,2000.
(4) 高书莉 罗朝霞.可编程逻辑设计技术及应用[M] 北京:人民邮电出版社,1997.
(5) (美)John F.Wakerly.数字设计——原理与实践[M] 北京: 高等教育出版社,2002.
(6) 冼凯仪.ABEL-HDL在数字系统中的应用[D] 广东:佛山科学技术学院,2001
(7) 林康红 汤琳宝施 惠昌.ISP技术在现代电子系统设计中的应用 [D]:上海.上海大学通信与信息工程学院,2000
(8) 王锁平编著.电子设计自动化(EDA)教程.[M]电子科技大学出版社. 2000
(9) 潘松等编著.EDA技术实用教程.[M]科学出版社.2002
(10) 潘松等编著. VHDL实用教程.[M]电子科技大学出版社.2002
(11) 戈素贞等. 采用EDA技术实现4位十进制数字密码锁.[M]山西电子技术.2002
(12) 刘钰等.一种用VHDL语言设计的数字密码锁.[M]信息技术与信息化.2004
数字密码锁ISP器件VHDL编程EDA技术
附 录The EDA technique develops trend: The EDA technique is after get into 21 centuries, because of more large-scale FPGA and continuously release of the cave m spare part are really imitate with design the both side support a standard hardware description, the function strong EDA software of the language continuously renews, increment, make the electronics EDA's technique get a larger development.The electronics technique is all-directions to bring into EDA realm, the EDA make electronics the boundary of each academics of realm be getting more misty, more with each other in order to forgive, the outstanding performance is at following few aspectses:Make electronics design the result can definitely express to make possible with confirmation by independent intelligent property right;Design standard unit according to the ASIC of EDA tool have already covered large-scale electronics system and the IP pit mold piece;The soft hardware IP pit gets further confirmation in industry realm, technique realm and the design applied realm of electronics profession;The SoC efficiently low cost design technical maturity.Along with the semi-conductor technique, integrated technique and the calculator technical fast fierce development, design method and design meanses of electronics system all took place very big variety.Can say electronics EDA's technique's ising an electronics design is a revolution of the realm.The design method of traditional"fix function integration piece ten on-lines" just and gradually withdraws history satge, but is become modern main current of design of the electronics system according to the design
method of chip.Be Gao Deng3 college's understanding and climbing to hold this advanced technique concerning the professional student and the large electronics engineer be certainly to be necessarily going, this not only is the demand of efficiency of the exaltation design, more that time generation need for develop, only climbed to hold the EDA technique just includes the competition that the ability participates the industrial market of the world electronics, then can exist with development.Along with the progress of science and technique revolution of the realm and electronics industry field of the electronics design, also in the meantime to electricity course of teaching and research put forward more deeply higher request.Especially the EDA technique hasn't make widely available in the our country and control is this all new technique with universality, will to our country the electronics technical development have profound meaning.
数字密码锁ISP器件VHDL编程EDA技术
EDA技术发展趋势: EDA技术在进入21世纪后,由于更大规模的FPGA和凹m器件的不断推出,在仿真和设计两方面支持标准硬件描述语言的功能强大的EDA软件不断更新、增加,使电子EDA技术得到了更大的发展。电子技术全方位纳入EDA领域,EDA使得电子领域各学科的界限更加模糊,更加互为包容,突出表现在以下几个方面:使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能;基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块;软硬件IP核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认;SoC高效低成本设计技术的成熟。随着半导体技术、集成技术和计算机技术的迅猛发展,电子系统的设计方法和设计手段都发生了很大的变化。可以说电子EDA技术是电子设计领域的一场革命。传统的“固定功能集成块十连线”的设计方法正逐步地退出历史舞台,而基于芯片的设计方法正成为现代电子系统设计的主流。作为高等院校有关专业的学生和广大的电子工程师了解和攀握这一先进技术是势在必行,这不仅是提高设计效率的需要,更是时代发展的需求,只有掌握了EDA技术才有能力参与世界电子工业市场的竞争,才能生存与发展。随着科技的进步,电子产品的更新日新月异,EDA技术作为电子产品开发研制的源动力,已成为现代电子设计的核心。所以发展EDA技术将是电子设计领域和电子产业界的一场重大的技术革命,同时也对电类课程的教学和科研提出了更深更高的要求。特别是EDA技术在我国尚未普及,掌握和普及这一全新的技术,将对我国电子技术的发展具有深远的意义。