摘 要
Quartus II是最高级和复杂的,用于system-on-a-programmable-chip (SOPC)的设计环境。 Quartus II提供完善的 timing closure 和 LogicLock 基于块的设计流程。QuartusII design是唯一一个包括以timing closure 和 基于块的设计流为基本特征的programmable logic device (PLD)的软件。 Quartus II 设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmed devices开发的统一工作流程。
本文介绍了微机上的QuartusⅡ软件系统的使用,并用该软件分别设计半加器,全加器,并编译连接设计一个8位加法器的过程。
关键词: 8位加法器;EDA(电子设计自动化);QuartusⅡ(可编程逻辑软件)
目 录
第1章 概 述 ......................................................................................................................... 1
1.1 EDA的概念 ..................................................................................................................... 1 1.2 硬件描述语言概述 ......................................................................................................... 2 第2章 QUARTUS II ............................................................................................................ 4
2.1 QUARTUSII概述 ........................................................................................................... 4 2.2 QUARTUSII建立工程项目 .......................................................................................... 4 2.3 QUARTUSII建立原理图输入文件 .............................................................................. 6 2.4 QUARTUSII层次化项目设计 ...................................................................................... 9 第3章 8位加法器设计 ..................................................................................................... 12
3.1 8位加法器分析 ............................................................................................................. 12 3.2 设计过程 ........................................................................................................................ 12 参考文献 .................................................................................................................................... 15 结论 ............................................................................................................................................ 16
第1章 概 述
1.1 EDA的概念
EDA是电子设计自动化(Electronic Design Automation)的缩写,从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
由于它是一门刚刚发展起来的新技术,涉及面广,内容丰富,理解各异,所以目前尚无一个确切的定义。但从EDA技术的几个主要方面的内容来看,可以理解为EDA技术就是以计算机为工具,设计者在EDA软件平台上,以硬件描述语言为系统逻辑描述的主要表达方式完成设计文件,然后由计算机自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度[1]。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
EDA技术是伴随着计算机、集成电路、电子系统的设计发展起来的,至今已有30多年的历程。大致可以分为三个发展阶段。20世纪70年代的CAD(计算机辅助设计)阶段:这一阶段的主要特征是利用计算机辅助进行电路原理图编辑,PCB布同布线,使得设计师从传统高度重复繁杂的绘图劳动中解脱出来。20世纪80年代的QAE(计算机辅助工程设计)阶段:这一阶段的主要特征是以逻辑摸拟、定时分析、故障仿真、自动布局布线为核心,重点解决电路设计的功能检测等问题,使设计能在产品制作之前预知产品的功能与性能[2]。20世纪90年代是EDA(电子设计自动化)阶段:这一阶段的主要特征是以高级描述语言,系统级仿真和综合技术为特点,采用“自顶向下”的设计理念,将设计前期的许多高层次设计由EDA工具来完成[3]。
1.1.1 EDA的发展
从目前的EDA技术来看,中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PC主板和小型ASIC领域,仅有小部分的设计人员工发复杂的片上系
1
统器件。为了与和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要购入一些最新的EDA技术。
在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。要大力推进制造业信息化,积极开展计算机辅助设计(CAD)、计算机辅助工程(CAE)、计算机辅助工艺(CAPP)、计算机机辅助制造(CAM)、产品数据管理(PDM)、制造资源计划(MRPII)及企业资源管理(ERP)等。有条件的企业可开展“网络制造”,便于合作设计、合作制造,参与国内和国际竞争。开展“数控化”工程和“数字化”工程。自动化仪表的技术发展趋势的测试技术、控制技术与计算机技术、通信技术进一步融合,形成测量、控制、通信与计算机(M3C)结构。在ASIC和PLD设计方面,向超高速、高密度、低功耗、低电压方向发展。
1.1.2 EDA的应用
电子EDA技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。利用电路仿真工具进行电路设计与仿真;利用虚拟仪器进行产品调试;将FPGA器件的开发应用到仪器设备中。在产品设计与制造方面:从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真、产品调试,而且也在后期的制作、电子设备的研制与生产、电路板的焊接、器件的制作过程等有重要作用。可以说电子EDA技术已经成为电子工业领域不可缺少的技术支持[4]。
1.2 硬件描述语言概述
硬件描述语言(HDL-Hardware Description Language)是一种用于设计硬件电子 系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传 统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软件 需要输入500至1000个门,而利用VHDL语言只需要书写一行A=B+C即可,而且VHDL语言可读性强, 易于修改和发现错误。早期的硬件描述语言,如ABEL-HDL、AHDL,是由不同的EDA厂商开发的,互相不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上缺陷,1985年 美国国防部正式推出了VHDL(Very High Speed IC Hardware Description Language)语言, 1987年IEEE采纳VHDL为硬件描述语言标准(IEEE STD-1076)。
2
VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个 设计层次,支持结构、数据流、行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件 描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。另外,VHDL还 具有以下优点: VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心提高到了系统功 能的实现与调试,只需花较少的精力用于物理实现[5]。 VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计 结果的交流、保存和重用。 VHDL的设计不依赖于特定的器件,方便了工艺的转换。 VHDL是一个标准语言,为众多的EDA厂商支持,因此移植性好。
3
第2章 QUARTUS II
2.1 QUARTUSII概述
设计输入是设计者对系统要实现的逻辑功能进行描述的过程。设计输入有多种表达方式,常用的用原理图输入、硬件描述语言输入、网表输入等。
1、原理图输入:
原理图设计输入方式是利用软件提供的各种原理图库,采用画图的方式进行设计输入。这是一种最为简单和直观的输入方式。原理图输入方式的效率比较低,半只用于小规模系统设计,或用于在顶层拼接各个以设计完成的电路子模块。
2、硬件描述语言输入:
这种设计输入方式是通过文本编辑器,用VHDL,Verilog或AHDL等硬件描述语言进行设计输入。采用语言描述的有点事效率较高,结果容易仿真,信号观察方便,在不同的设计输入库之间转换方便,适用于大规模数字系统的设计。但语言输入必须依赖综合器,只有好的综合器才能把语言综合成优化的电路。
3、网表输入:
现代可编程数字系统设计工具都提供了和它第三方EDA工具相连接的接口。采用这种方法输入时,可以通过标准的网表把它设计工具上已经实现了的设计直接移植进来,而不必重新输入。一般开发软件可以接受的网表有EDIF格式、VHDL格式及Verilog格式等。在用网表输入时,必须注意在两个系统中采用库的对应关系,所有的库单元必须一一对应,才可以成功读入网表[6]。
2.2 QUARTUSII建立工程项目
在 Quartus II 中,用户的每个设计都对应一个工程项目,每个工程项目可包含一个或多个设计文件。其中一个是顶层文件,编译器是对项目中的顶层文件进行编译的,项目同时还管理编译过程中产生的各种中间文件,这些中间文件的文件名相同,但后缀名不同。为了便于管理,对于每个新的项目应该建立一个单独的子目录。指定项目名称的步骤如下:
1. 打开 Quartus II,在File 菜单中选择New Project Wizard 项,将出现工程项目建立向导对话框。如图2-1 (a)所示。
4
2. 点击“Next”,进入到如图2-1 (b)所示的工程项目命名对话框,在最上面的文本输入框中输入为该项目所建的目录名,如本例为“E:\\Clock”,在中间的文本输入框中输入项目名称,本次实验为“adder”,在最下面的文本输入框中输入最顶层模块的名称“adder”。
3. 点击“Next”,进入到如图2-1 (c)所示的设计文件选择对话框,由于在本例中还没有任何设计文件,所以不选择任何文件。
(a)工程项目建立向导对话框图 (b)工程项目命名对话框
(c)设计文件选择对话框 (d)器件选择对话框
(e)第三方EDA工具选则对话框 (f)”Summary”对话框
图2-1 项目建立向导
5
4. 点击“Next”,进入到如图2-1(d)所示的器件选择对话框,在“Family”下拉菜单中选择需要的器件。
5. 点击“Next”进入到如图2-1 (e)所示的第三方EDA 工具选择对话框,在这个界面可以选择第三方的综合工具、仿真工具和时延分析工具。由于在本例中综合、仿真和时延分析都采用Quartus II 内置的工具,所以在这个页面不作任何选择。6. 点击“Next”进入到如图2-1 (f)所示的“Summary”对话框,在这个窗口列出了前面所作设置的全部信息。
7. 点击“Finish”完成工程项目建立过程,回到如图2-2主窗口,主窗口分为几个部分,除了菜单和工具条以外,左上有项目导航(Project Navigator)栏,此时在该栏能看到顶层模块的名称;左中是处理进度栏,用于显示项目处理的进度;下方是信息栏,用于显示项目处理过程中产生的各项信息。
项目导航栏 主工作区
进度处理栏
信息栏
图2-2 Quartus II 主窗口界面
2.3 QUARTUSII建立原理图输入文件
在 Quartus II 中我们可以利用Block Editor 以原理图的形式进行设计输入和
6
编辑。Block Editor 可以读取并编辑后缀名为”.bdf”的原理图设计文件以及在 MAX+PLUS II中建立的后缀为”.gdf”的原理图输入文件。在Block Design Files 的基础上还可以生成Block Symbol Files(.bsf), AHDL Include 文件(.inc) 和HDL 文件,以被其他设计文件调用。
下面介绍原理图输入的过程:
1. 在 File 菜单中选择New 项,将出现新建文件对话框,如图2-3 所示。选择“BlockDiagram/Schematic File”项。
图2.3 新建文件对话框
2. 点击“OK”,在主界面中将打开如图2-4 所示的“Block Editor”窗口。图2-4 所示的“Block Editor”包括主绘图区和主绘图工具条两部分。主绘图区是用户绘制原理图的区域,绘图工具条包含了绘图所需要的一些工具。
7
主绘图区
绘图工具栏
图2.4 Block Editor主窗口
3. 点击绘图工具栏上的按钮打开如图2-5 所示的元件添加窗口。
图2-5 元件添加窗口
8
在“Libraries”栏中显示目前你已经安装的元件库,一般缺省会有mega functions、others 和primitives这三个库。其中mega functions 是参数化模块库,包含了一些参数可调、功能复杂的高级功能模块;others 库中则包含了原来MAX+PLUS II 中的部分器件库,其中包括了大部分的74 系列中规模逻辑器件;primitives 库是基本库包含一些基本的逻辑器件,如各种门、触发器等。
4. 在元件库中打开元件目录,选中所需要的元件,此时在右侧窗口中能即时看到该器件的外形,单击“OK”按钮,对话框关闭,此时在鼠标光标处将出现所选的元件,并随鼠标的移动而移动,在合适的位置点击鼠标左键,放置一个元件,移动鼠标,重复放置第二个元件,放置结束时点击鼠标右键选择Cancel。
5. 完成元件放置后就需要连接各个器件了。连接元器件的两个端口时,先将鼠标移到其中一个端口上,这时鼠标指示符自动变为“+”形状,然后一直按住鼠标的左键并将鼠标拖到第二个端口,放开左键,则一条连接线被画好了。如果需要删除一根连接线,可单击这根连接线使其成高亮线,然后按键盘上的“Delete”键即可。
6. 从“File”菜单下选择“Save”,出现文件保存对话框。单击“OK”,使用默认的文件名存盘。默认的文件名为项目顶层模块名加上“.bdf”后缀。
2.4 QUARTUSII层次化项目设计
数字系统设计的一般方法是采用自底向上或自顶向下的层次化设计。利用Quartus II提供的工具我们可以很容易的完成用层次化设计。
2.4.1 底层模块符号的建立和修改
为了便于顶层模块的调用,我们首先必须将前面设计的所需电路转变成一个元件符号。
1. 在所需要的底层电路图设计完成以后,在图形编辑器窗口下,执行菜单“File”下“Create / Update”子菜单下的“Create symbol Files for Current File”,就可以将我们自己设计的电路编译成库中的一个元件;
2. 执行菜单“File”下的“Open”项,在文件类型下拉列表框中选择“Other Source Files”项,然后在文件窗口内选择刚完成编译的元件,点击“打开”按钮,打开符号编辑器窗口,在这个窗口中我们可以看到我们新建元件符号的外观。
3. 和图形编辑器类似,在符号编辑器里,我们可以通过画图工具对符号进行一些必要的修改,以满足我们的需要。
2.4.2 建立顶层设计文件
在完成模块符号生成后,我们可以建立顶层文件来调用这个符号,以构成完
9
整的系统。
新建一个空白的图形文件,保存为“Clock.bdf”。
打开元件添加窗口。可以注意到和以前不同的是在“libraries”栏中,多出了一个“project”目录如图2-6,在这个目录下,可以看到我们自己做的元件。
图2-6元件添加窗口
在绘图区内放置若干元件,经过连接后,完成我们需要的顶层文件。 假设我们前面我们指定的项目顶层文件为“Counter60.bdf”,而现在这个项目的顶层文件是“Clock.bdf”,所以必须重新设置。在主窗口的“Project Navigator”栏中,打开“File”项,在“Device Design Files”目录中选择“Clock.bdf”点击鼠标右键,在右键菜单,选择“Set as Top_Lever Entity”项,将“Clock.bdf”指定为项目顶层文件如图2-7
编译完成后,在主窗口的“Project Navigator”栏中,打开“Hierarchy”项显示整个项目的设计层次,如图2-8 所示。
10
图2-7 设置顶层项目文件
11
图2-8 显示项目设计层次
第3章 8位加法器设计
3.1 8位加法器
3.1.1原理及功能说明
8位加法器是由8个一位的全加器串联构成,运算时,低位的数相加运算求得和与进位,将和输出,进位传给上一位全加器。以此类推。最终实现将2组8位二进制数进行求和运算。
3.1.2设计思路
和 和 和 和 和 和 和 和 全加器 2个加 数 2个加数 2个加数 2个加数 2个加数 2个加数 2个加数 2个加数 全加器全加器全加器全加器全加器全加器全加器3.2 设计过程
3.2 .1半加器、
原理图设计如图3-2
进位 进位 进位 进位 进位 进位 进位 图3-1 8位加法器数据流
图3-2 半加器原理图
12
半加器由一个二位输入与门、一个非门和一个二位输入与非门如图连接构成。 将原理图保存好后进行仿真,仿真波形图如图3-3。
图3-3 半加器波形图
通过波形图可以确认,半加器无误。为了能够简化全加器原理图,将半加器进行编译,形成元件”h_adder”。
3.2 .2全加器
全加器的原理图如图3-4
图3-4 全加器原理图
全加器由两个半加器、一个或门、三个输入端、两个输出端构成。 全加器的波形图如图3-5
图3-5 全加器波形图
通过波形图可以确认,全加器无误。为了能够简化8位全加器原理图,将全加器进行编译,形成元件”f_adder”。
3.2 .3 8位全加器
8位全加器的原理图如图3-6
13
图3-6 8位全加器原理图
将8个一位全加器分别串联起来,低位的进位输出到高位的输入,并将该位的结果输出。最终输出8位结果和一位最高进位(忽略)。
8位全加器仿真图如图3-7
图3-7 8位全加器波形图
同过观察波形图可以看出,8位全加器的设计无误。至此,8位全加器完成。
14
参考文献
[1] 王振宇.电子设计自动化(EDA).北京:电子工业出版社,2007.
[2] 郑家龙,王小海,章安元.集成电子技术基础教程.北京:高等教育出版社,
2002.
[3] 宋万杰,罗丰,吴顺君.CPLD技术及其应用.西安:西安电子科技大学出
版社,1999.
[4] 刘明业,将敬旗,岚松等译.硬件描述语言Verilog.北京:清华大学出版
社,2001.
[5] 王金明,杨吉斌.数字系统设计与Verilog HDL.北京:电子工业出版社,
2002 .
[6] Altera Corporation,“QuartusII Help Version 2.0”.
15
结 论
通过此次课程设计,让我对EDA这门科学有了一个初步的了解,并且能够应用以前学到的知识进行简单的硬件设计。初步的学会了使用QuartusⅡ软件,明白了EDA层次设计的方法。
层次设计给我们提供了一种“自顶向下”的全新的设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。由于设计的主要仿真和调试过程是在高层次上完成的,这有利于早期发现结构设计上的错误,避免设计工作的浪费,提高了设计的一次成功率。
此次课程设计是应用原理图输入法设计8位全加器,在课程设计时遇到了很多困难,因为从没有接触过EDA课程,所以很多内容都不了解,只能借来书籍自己一点一点的摸索。最后在老师的帮助下,完成了8位全加器的设计。
16
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务