1、1基于 VHDL 的数字密码器的设计【摘 要】 本论文介绍了一种利用 EDA 技术 和 VHDL 语言,通过自顶向下的设计方法对数字密码器进行设计,并在 FPGA 芯片 EPF10K10LC84-4 上实现 。用 FPGA 器件构造系统, 所有算法完全由硬件电路来实现, 使得系统的工作可靠性大为提高。由于 FPGA 具有 ISP (在系统可编程)功能, 当设计需要更改时, 只需更改 FPGA 中的控制和接口电路, 利用 EDA 工具将更新后的设计下载到 FPGA 中即可, 无需更改外部电路的 设计 , 大大提高了设计的效率。因此, 采用 FPGA 开发的数字系统, 不仅具有很高的工作可靠性,
2、其升级与改 进也极其方便。本文设计的密码器采用 6 位密码, 比一般的四位密码锁具有更高的安全可靠性, 应用前景十分良好。【关键词】 数字密码器 EDA VHDL 自顶向下 FPGA Abstract: This paper introduced one method that use the EDA technologies and VHDL language, through top-down approach to the design of digital password lock design. At last, in FPGA chip EPF10K10LC84-4 to ach
3、ieve. Structural system with FPGA devices, all algorithm entirely by the hardware circuitry to achieve, making the system work reliability greatly improved. As FPGA with ISP (in-system programmable) function, when the need to change the design, simply change the FPGA in the control and interface cir
4、cuits, use of EDA tools will be updated after the design can be downloaded to the FPGA, without changing the external circuit, greatly improving the efficiency of the design. Therefore, the digital system developed by FPGA, working not only with high reliability, upgrade and improve its also extreme
5、ly convenient. In this paper, the design of the password-lock using 6 bite password, than the average four bite password lock has a higher safety and reliability, application prospects are very good. Key words: digital password lock EDA VHDL top-down FPGA2目录摘要 11 EDA 技术概述 41.1 现代电子设计方法 EDA 技术 41.1.1
6、 EDA 技术的发展历程 41.1.2 EDA 技术的基本特征 41.1.3 EDA 技术的发展趋势 51.2 硬件描述语言(VHDL)简介 51.2.1 VHDL 的产生与发展 61.2.2 VHDL 的基本特征 61.2.3 VHDL 的设计流程 61.3 可编程逻辑器件 (P LD)简介 71.3.1 PLD 的发展历程 71.3.2 FPGA/CPLD 简介 81.3.3 用 FPGA/CPLD 进行开发的优点 82 数字密码器的 VHDL 设计 92.1 数字密码器的总体方案设计 92.1.1 数字密码器的功能描述 92.1.2 数字密码器的内部结构及模块划分 102.1.3 数字密
7、码器的工作过程 112.2 数字密码器的顶层设计 112.2.1 顶层模块的输入输出 112.2.1 模块描述 122.2.2 VHDL 设计 122.3 数字密码器的底层设计 122.3.1 分频模块 122.3.2 消抖同步模块 132.3.3 使能电路模块 142.3.4 密码预置输出模块 152.3.5 编码模块 152.3.6 比较模块 162.3.7 计数器选择模块 162.3.8 数码管显示译码模块 172.3.9 数码管扫描模块 172.3.10 指示电路模块 182.3.11 误码模块 192.3.12 控制器模块 193 数字密码器的 VHDL 程序的编译、综合、仿真、验证
8、 223.1 编译、综合 2233.2 模块仿真 223.2.1 顶层模块仿真 223.2.2 编码模块仿真 233.3 FPGA 验证 244 结束语 24致谢辞 24参考文献 24附录 程序 清单 2541 EDA 技术概述电子技术的发展,特别是专用集成电路(ASIC)设计技术的日趋进步和完善,推动了数字系统的迅猛发展。传统的“固定功能集成块+连线”的设计方法已不能满足实际需求,根据系统功能要求利用现代电子设计方法EDA 技术,采用自上而下的设计方式,设计出速度快、体积小、重量轻、功耗低的集成电路已成为必然趋势。1.1 现代电子设计方法EDA 技术EDA(Electronic Design
9、 Automation)即电子设计自动化,它的定义是指利用计算机来完成电子系统的设计。EDA 技术就是指以计算机为工作平台、以 EDA 软件工具为开发环境、以硬件描述语言为设计语言、以可编程逻辑器件为实验载体、以 ASIC1和 SoC 为设计目标、以电子系统设计为应用方向的电子产品自动化设计过程。在现代电子设计技术领域中,EDA 技术已成为主要的设计手段。采用 EDA技术可以缩短电系统设计的开发周期,极大地提高了工作效率。1.1.1 EDA 技术的发展历程EDA 技术 2不是某一学科的分支,或某种新的技能技术,应该是一门综合性学科。它融合多学科于一体,打破了软件和硬件间的壁垒,使计算机的软件技
10、术与硬件实现、设计效率和产品性能合二为一,它代表了电子设计技术和应用技术的发展方向。就过去近 30 年的电子技术的发展历程,可大致将EDA 技术的发展分为三个阶段。第一阶段 20 世纪 70 年代,集成电路制作方面, MOS 工艺已得到广泛的应用。 可编程逻辑技术及其器件已经问世,计算机作为一种运算工具已在科研领域得到广泛的应用。而在后期,CAD 的概念已见雏形。这一阶段人们开始利用计算机取代手工劳动,辅助进行集成电路版图编辑、PCB 布局布线等工作。第二阶段 20 世纪 80 年代,集成电路设计进入了 CMOS(互补场效应管)时代。 复杂可编程逻辑器件已进入商业应用,相应的辅助设计软件也已投
11、入使用,而在 80 年代末,出现了 FPGA,CAE 和 CAD 技术的应用更为广泛,它们在 PCB 设计方面的原理图输入、自动布局布线及 PCB 分析,以及逻辑设计、逻辑仿真、布尔方程综合和化简等方面担任了重要的角色,特别是各种硬件描述语言的出现、应用和标准化方面的重大进步,为电子设计自动化必须解决的电路建模、标准文档及仿真测试奠定了基础。第三阶段 进入 20 世纪 90 年代,随着硬件描述语言的标准化得到进一步的确立,计算机辅助工程、辅助分析和辅助设计在电子技术领域获得更加广泛的应用,与此同时电子技术在通信、计算机及家电产品生产中的市场需求和技术需求,极大地推动了全新的电子设计自动化技术的
12、应用和发展。特别是集成电路设计工艺步入了超深亚微米阶段,百万门以上的大规模 ASIC 设计技术的应用,促进了EDA 技术的形成。更为重要的是各 EDA 公司致力于兼容各种硬件实现方案和支持标准硬件描述语言的EDA 工具软件的研究,都有效地将 EDA 技术推向成熟。1.1.2 EDA 技术的基本特征EDA 代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高
13、层次的电子设计方法。下面介绍与 EDA 基本特征有关的几个概念 3。1、 自顶向下的设计方法5“自顶向下”的设计方法首先从系统级设计入手,在顶层进行功能方框图的划分和结构设计;在方框图级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述;在功能级进行验证,然后用逻辑综合优化工具生成具体的门级逻辑电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。 “Top-down”设计方法有利于在早期发现结构设计中的错误,提高设计的一次成功率,因而在现代 EDA 系统中被广泛采用。2、 硬件描述语言(HDL)用硬件描述语言进行电路与系统的设计是当前 EDA 技术的一个重要特征。与传统的原理
14、图输入设计方法相比较,硬件描述语言更适合于规模日益增大的电子系统,它还是进行逻辑综合优化的重要工具。硬件描述语言使得设计者在比较抽象的层次上描述设计的结构和内部特征。它的突出优点是:语言的公开可利用性;设计与工艺的无关性;宽范围的描述能力;便于组织大规模系统的设计;便于设计的复用和继承等。目前最常用的硬件描述语言有 VHDL 和 Verilog-HDL,它们都已经成为 IEEE 标准。3、 逻辑综合优化逻辑综合功能将高层次的系统行为设计自动翻译成门级逻辑的电路描述,做到了设计与工艺的独立。优化则是对于上述综合生成的电路网表,根据布尔方程功能等效的原则,用更小更快的综合结果替代一些复杂的逻辑电路
15、单元,根据指定的目标库映射成新的网表。4、 开放性和标准化框架是一种软件平台结构,它为 EDA 工具提供了操作环境。框架的关键在于提供与硬件平台无关的图形用户界面以及工具之间的通信、设计数据和设计流程的管理等,此外还应包括各种与数据库相关的服务项目。任何一个 EDA 系统只要建立了一个符合标准的开放式框架结构,就可以接纳其他厂商的 EDA 工具一起进行设计工作。这样,框架作为一套使用和配置 EDA 软件包的规范,就可以实现各种EDA 工具间的优化组合,并集成在一个易于管理的统一的环境之下,实现资源共享。5、ASIC 设计现代电子产品的复杂度日益提高,一个电子系统可能由数万个中小规模集成电路构成
16、,这就带来了体积大、功耗大、可靠性差的问题。解决这一问题的有效方法就是采用 ASIC 芯片进行设计。ASIC按照设计方法的不同可分为全定制 ASIC、半定制 ASC 和可编程 ASIC(也称为可编程逻辑器件) 。 设计全定制 ASIC 芯片时,设计师要定义芯片上所有晶体管的几何图形和工艺规则,最后将设计结果交由 m 厂家去进行格模制造,做出产品。这种设计方法的优点是芯片可以获得最优的性能,即面积利用率高、速度快、功耗低,而缺点是开发周期长,费用高,只适合大批量产品开发。 半定制 ASIC 芯片的版图设计方法分为门阵列设计法和标准单元设计法,这两种方法都是约束性的设计方法,其主要目的就是简化设计
17、,以牺牲芯片性能为代价来缩短开发时间。 可编程逻辑芯片与上述掩模 ASIC 的不同之处在于:设计人员完成版图设计后,在实验室内就可以烧制出自己的芯片,无须 IC 厂家的参与,大大缩短了开发周期。 可编程逻辑器件自 70 年代以来,经历了 PAL、GAL、CPLD、FPGA 几个发展阶段,其中 CPLDFPGA高密度可编程逻辑器件,目前集成度已高达 200 万门片,它将格模 ASC 集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起,特别适合于样品研制或小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以很容易地转由掩模 ASIC 实现,因此开发风险也大为降低。 上述 ASI
18、C 芯片,尤其是 CPLDFPGA 器件,已成为现代高层次电子设计方法的实现载体。 1.1.3 EDA 技术的发展趋势随着大规模集成电路技术和计算机技术的不断发展,在涉及工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,EDA 技术的含量正以惊人的速度上升,电子类的高新技术项目的开发也日益依赖于 EDA 技术的应用 4。即使是普通的电子产品的开发,EDA 技术常常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩短、性能价格比大幅度提高。所以 EDA 技术将成为电子设计领域中的极其重要的组成部分。电子设计专家认为,单片机时代己经结束,未来将是 EDA 的时代。随着微电子技术
19、的飞速进步,电子学进入了一个崭新的时代。其特征是电子技术的应用以空前规6模和速度渗透到各行各业。各行业对自己专用集成电路(ASIC)的设计要求日趋迫切,可编程器件的广泛应用,为各行业的电子系统设计工程师自行开发本行业专用的 ASIC 提供了技术和物质条件。与单片机系统开发相比,利用 EDA 技术对 FPGA/CPLD 的开发,通常是一种借助于软件的纯硬件开发,可以通过这种途径进行专用 ASIC 开发,而最终的 ASIC 芯片,可以是 FPGA/CPLD,也可以是专制的门阵列掩模芯片,FPGA/CPLD 起到了硬件仿真 ASIC 芯片的作用。1.2 硬件描述语言(VHDL)简介EDA 技术的设计
20、语言是硬件描述语言 HDL,它采用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接方式等。利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路 ASIC 或现场可编程门阵列 FPGA 自动布局布线工具,把网表转换为要实现的具体电路布线结构。1.2.1 VHDL 的产生与发展美国于 1981 年提出了一种新的、标准化的 HDL,称之为 VHSIC(Very
21、High Speed Integrated Circuit) Hardware Description Language,简称 VHDL。这是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门级电路,最后用 PLD 实现其功能。1987 年底,VHDL 被 IEEE 和美国国防部确认为标准硬件描述语言 。自 IEEE 公布了 VHDL 的标准版本,IEEE-1076(简称 87 版)之后,各 EDA 公司相继推出了自己的 VHDL 设计环境,或宣布自己的设计工具可以和 VHDL 接口。此后 VH
22、DL 在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993 年,IEEE 对VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展 VHDL 的内容,公布了新版本的 VHDL,即IEEE 标准的 1076-1993 版本, (简称 93 版) 。现在,VHDL 和 Verilog 作为 IEEE 的工业标准硬件描述语言,又得到众多 EDA 公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL 和 Verilog 语言将承担起大部分的数字系统设计任务。1.2.2 VHDL 的基本特征与其它的硬件描述语言相比,VHDL 具有
23、更强的行为描述能力,能够避开具体的器件结构,从行为功能上对数字电路系统设计进行描述。VHDL 具有如下的基本特征:1、设计功能强、方法灵活、支持广泛。VHDL 语言可以支持自上而下的设计方法,它具有功能强大的语言结构,可用简洁明确的代码描述来进行复杂控制逻辑的设计,可硕士学位论文绪论以支持同步电路、异步电路、以及其他随机电路的设计。其范围之广是其他 HDL 语言所不能比拟的。此外,VHDL 语言可以自定义数据类型,这也给编程人员带来了较大的自由和方便。2、系统硬件描述能力强。VHDL 语言具有多层次的设计描述功能,可以从系统的数字模型直到门级电路,支持设计库和可重复使用的元件生成,它支持阶层设
24、计且提供模块设计的创建。VHDL 语言能进行系统级的硬件描述是它的一个最突出的优点。3、可以进行与工艺无关编程。VHDL 语言设计系统硬件时,没有嵌入描述与工艺相关的信息,不会因为工艺变化而使描述过时。与工艺技术有关的参数可通过 VHDL 提高的类属加以描述,工艺改变时,只需修改相应程序中的类属参数即可。4、VHDL 语言标准、规范,易于共享和复用。VHDL 既是 IEEE 承认的标准,故 VHDL 的描述可以被不同的 EDA 设计工具所支持。从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台去执行。这意味着同一个 VHDL 设计描述可以
25、在不同的设计项目中采用,方便了设计成果的设计和交流。另外,VHDL 语言的语法比较规范,从而其可读性比较好,给阅读和使用都带来了极大的好处。75、方便向 ASIC 移植。VHDL 语言的效率之一,就是如果设计是被综合到一个 CPLD 或 FPGA,则可以设计的产品以最快速度上市。当产品的产量达到相当的数量时,采用 VHDL 进行的设计可以很容易转成用专用集成电路来实现,仅仅需要更换不同的库重新进行综合。由于 VHDL 是一个成熟的定义型语言,可以确保 ASIC 厂商交付优良品质的器件产品。此外,由于工艺技术的进步,需要采用更先进的工艺时,仍可以采用原来的 VHDL 代码。1.2.3 VHDL
26、的设计流程利用 VHDL 语言进行设计可分为以下几个步骤 5:1、设计要求的定义。在从事设计进行编程 VHDL 代码之前,必须先对你的设计目的和要求有一个明确的认识.对所需的信号建立时间、时钟/输出时间、最大系统工作频率、关键的路径等这些要求,要有一个明确的定义,这将有助于你的设计,然后再选择适当的设计方式和相应的器件结构,进行设计的综合。2、用 VHDL 语言进行设计描述。(l)应决定设计方式,设计方式一般说来有三种:自顶向下设计,自底向上设计,平坦式设计。前两种方式包括设计阶层的生成,而后一种方式将描述的电路当作单模块电路来进行的。自顶向下的处理方式要求将你的设计分成不同的功能元件,每个元
27、件具有专门定义的输入和输出,并执行专门的逻辑功能.首先生成一个由各功能元件相互连接形成的顶层块来做成一个网表,然后再设计其中的各个元件。而自底向上的处理方法正好相反。平坦式设计则是指所有功能元件均在同一层和同一图中详细进行的。(2)编写设计代码。编写 VHDL 语言的代码与编写其他计算机科技大学硕士学位论文绪论程序语言的代码有很大的不同。必须清醒地认识到正在设计硬件,编写的VHDL 代码必须能够综合到采用可编程逻辑器件来实现的数字逻辑中。懂得 EDA 工具中仿真软件和综合软件的大致工作过程,将有助于编写出优秀的代码。3、用 VHDL 仿真器对 VHDL 原代码进行功能仿真。对于大型设计,采用
28、VHDL 仿真软件对其进行仿真可以节省时间,可以在设计的早期阶段检测到设计中的错误,从而进行修正,以便尽可能地减少对设计日程计划的影响。因为对于小型设计,其综合优化、配置花费的时间不多,而且在综合优化之后,往往会发现为了实现性能目标,将需要修改设计。在这种情况下,用户事先在原代码仿真时所花费的时间是毫无意义的,因为一旦改变设计,还必须重新再做仿真。4、利用 VHDL 综合优化软件对 VHDL 原代码进行综合优化处理。选择目标器件、输入约束条件后,VHDL 综合优化软件工具将对 VHDL 原代码进行处理,产生一个优化了的网络表,并可以进行粗略的时序仿真。5、配置将综合优化处理后得到的优化了的网络
29、表,安放到前面选定的 CPLD 或 PPGA 目标器件之中,这一过程成为配置。再优化了的网络表配置到目标器件后,从完成的版图上可以得到连线长短、宽窄的信息,把它们反注到原来的网络表,为再次进行时序做准备。6、配置后的时序仿真。这时的时序仿真将检查诸如信号建立时间、时钟到输出、寄存器到寄存器的时延是否满足要求。因为已经得到实际连线引起的时延数据,所以仿真结果能比较精确地未来芯片的实际性能。如果时延仿真结果不能满足设计的要求,就需要重新对 VHDL 原代码进行综合优化,并重新装配于新的器件之中,或选择不同速度品质的器件。同时,也可以重新观察和分析 VHDL 原代码,以确认描述是正确有效的。只有这样,取得的综合优化和配置的结果才符合实际要求。7、器件编程。在成功地完成了设计描述、综合优化、配置和配置后的时序仿真之后,则可以对器件编程和继续进行系统设计的其他工作。1.3 可编程逻辑器件(PLD)简介PLD(可编程逻辑