目 录
目 录 ................................................................................................................................................... I
第 1 章
EDA 概述 ............................................................................................................................. 1
1.1
1.2
1.3
EDA 发展回顾 ..................................................................................................................... 1
EDA 系统构成 ..................................................................................................................... 2
EDA 工具发展趋势 .............................................................................................................. 3
第 2 章
Quartus II 软件应用基础 ...................................................................................................... 5
2.1
2.2
2.3
Quartus II 软件简介 .............................................................................................................. 5
Quartus II 软件 PLD 设计流程.............................................................................................. 5
Quartus II 软件工程设计 ...................................................................................................... 8
2.3.1 基于原理图的工程设计 ............................................................................................... 9
2.3.2 基于 Verilog HDL 的工程设计 ................................................................................... 36
附录 1 上海星研实验系统 ......................................................................................................................... 50
附录 2 74 系列芯片 ................................................................................................................................... 68
参考文献 .............................................................................................................................................. 70
I
第1章 EDA 概述
随着电子系统设计复杂程度的不断增加,仅靠手工进行电子系统的设计已经无法满足要求,迫切需要
更高级、更快速和更有效的电子设计自动化 EDA 工具,所谓电子设计自动化就是指设计者可以利用计算
机以及相关应用软件完成设计工作。
EDA 工具是以计算机的硬件和软件为基础工作平台,集数据库、图形学、图论与拓扑逻辑、计算数学、
优化理论等多学科最新成果研制的计算机辅助设计通用软件包。
EDA 技术是电子设计的发展趋势,利用 EDA 工具可以代替设计者完成电子系统设计中的大部分工作,
EDA 工具从数字系统设计的单一领域,发展到今天,应用范围已涉及模拟、微波等多个领域,可以实现各
个领域电子系统设计的测试、设计仿真和布局布线等。设计者只要完成对电子系统的功能描述,就可以利
用计算机和 EDA 工具,进行设计处理,最终得到设计结果。
1.1 EDA 发展回顾
EDA 技术伴随着计算机、集成电路、电子系统设计的发展,经历了计算机辅助设计 CAD、计算机辅
助工程设计 CAE 和电子系统设计自动化 ESDA 三个发展阶段。
1、70 年代的计算机辅助设计 CAD 阶段
早期的电子系统硬件设计采用的是分立元件,随着集成电路的出现和应用,硬件设计进入到发展的初
级阶段。初级阶段的硬件设计大量选用中小规模标准集成电路,人们将这些器件焊接在电路板上,做成板
级电子系统,对电子系统的调试是在组装好的 PCB 板上进行的。与分立元件为基础的早期设计阶段不同,
初级阶段硬件设计的器件选择是各种逻辑门、触发器、寄存器和编码译码器等集成电路,设计师只要熟悉
各种集成电路制造厂家提供的标准电路产品的说明书,并掌握 PCB 布图工具和一些辅助性的设计分析工
具,就可以从事设计活动。由于设计师对于图形符号使用数量能力有限,传统的手工布图方法又无法满足
产品复杂性的要求,更不能满足工作效率的要求。这时,人们开始将产品设计过程中高重复性的繁杂劳动,
如布图布线工作用二维图形编辑与分析的 CAD 工具替代,最具代表性的产品就是美国 ACCEL 公司开发的
Tango 布线软件。EDA 技术发展初期,PCB 布图布线工具受到计算机工作平台的制约,能支持的设计工作
有限且性能比较差。
2、80 年代的计算机辅助工程设计 CAE 阶段
初级阶段的硬件设计是用大量不同型号的标准芯片实现电子系统设计。随着微电子工艺的发展,相继
出现了集成上万只晶体管的微处理器、集成几十万直到上百万存储单元的随机存储器和只读存储器。此外,
支持定制单元电路设计的硅编辑、掩膜编程的门阵列,如标准单元的半定制设计方法以及可编程逻辑器件
等一系列微结构和微电子学的研究成果都为电子系统的设计提供了新天地。因此,可以用少数几种通用的
标准芯片实现电子系统设计。伴随计算机和集成电路的发展,EDA 技术进入到计算机辅助工程设计阶段。
80 年代初,推出的 EDA 工具则以逻辑模拟、定时分析、故障仿真、自动布局和布线为核心,重点解决电
路设计没有完成之前的功能检验等问题。利用这些工具,设计师能在产品制作之前预知产品的功能与性能、
能生成产品制造文件,在设计阶段对产品性能的分析前进了一大步。
3、90 年代电子系统设计自动化 ESDA 阶段
1
为了满足千差万别的系统用户提出的设计要求,最好的方法是由用户自己设计芯片,让他们把想设计
的电路直接设计在自己的专用芯片上。微电子技术的发展,特别是可编程逻辑器件的发展,微电子厂家可
以为用户提供各种规模的可编程逻辑器件,使设计者通过设计芯片实现电子系统功能。EDA 的工具发展,
又为设计师提供了全线电子系统设计自动化 ESDA 工具。这个阶段发展起来的 ESDA 工具,目的是在设计
前期将设计师从事的许多高层次设计由工具来做,如可以将用户要求转换为设计技术规范;有效地处理可
用的设计资源与理想的设计目标之间的矛盾;按具体的硬件、软件和算法分解设计等。由于微电子技术和
ESDA 工具的发展,设计师可以在不太长的时间内使用 EDA 工具,通过一些简单标准化的设计过程,利
用微电子厂家提供的设计库完成数万门 ASIC 和集成系统的设计与验证。
90 年代,设计师逐步从使用硬件转向设计硬件,从电路级电子产品开发转向系统级电子产品开发。因
此 ESDA 工具是以系统级设计为核心,包括系统行为级描述与结构级综合,系统仿真与测试验证,系统划
分与指标分配,系统决策与文件生成等一整套的电子系统设计自动化工具。ESDA 工具不仅具有电子系统
设计的能力,而且能提供独立于工艺和厂家的系统级设计能力具有高级抽象的设计构思手段。例如,提供
方框图、状态图和流程图的编辑能力,具有适合层次描述和混合信号描述的硬件描述语言,同时含有各种
工艺的标准元件库。只有具备上述功能的 EDA 工具,才有可能使电子系统工程师在不熟悉各种半导体厂
家和各种半导体工艺的情况下,完成电子系统的设计。
1.2 EDA 系统构成
EDA 技术研究的对象是电子设计的全过程,有系统级、电路级和物理级各个层次的设计:涉及的电子
系统从低频、高频到微波,从线性到非线性,从模拟到数字,从通用集成电路到专用集成电路构造的电子
系统,因此 EDA 技术研究的范畴相当广泛。如果从专用集成电路 ASIC 开发与应用角度看,EDA 系统应
当包含以下子模块:设计输入子模块、设计数据库子模块、分析验证子模块、综合仿真子模块、布局布线
子模块等。
1、 设计输入子模块
该模块接受用户的设计描述,并进行语义正确性、语法规则的检查,检查通过后,将用户的设计描述
数据转换为 EDA 软件系统的内部数据格式,存入设计数据库以备其它子模块调用。设计输入子模块不仅
能接受图形描述输入、硬件描述语言(HDL)描述输入,还能接受图文混合描述输入。该子模块一般包含
针对不同描述方式的编辑器,如图形编辑器、文本编辑器等,同时包含对应的分析器。
2、 设计数据库子模块
该模块存放系统提供的库单元以及用户的设计描述和中间设计结果。
3、 分析验证子模块
该模块包括各个层次的模拟验证、设计规划的检查、故障诊断等。
4、 综合仿真子模块
该模块包括各个层次的综合工具,理想的情况是:从高层次到低层次的综合仿真全部由 EDA 工具自
动实现。
5、 布局布线子模块
该模块实现由逻辑设计到物理实现的映射,因此与物理实现的方式密切相关。例如,最终的物理实现
可以是门阵列、可编程逻辑器件等。由于对应的器件不同,因此各自的布局布线工具会有很大的差异。
2
1.3 EDA 工具发展趋势
1、 设计输入工具的发展趋势
早期 EDA 工具设计输入普遍采用原理图输入方式,由元件符号和连线组成。这种以文字和图形作为
设计载体的文件,可以将设计信息加载到后续的 EDA 工具,完成设计分析工作。原理图输入方式的优点
是直观,能满足以设计分析为主的一般要求,但是原理图输入方式不适于用 EDA 综合工具。80 年代末,
电子设计开始采用新的综合工具,设计描述开始由原理图设计描述转向以各种硬件描述语言为主的编程方
式。用硬件描述语言描述设计,更接近系统行为描述,且便于综合,更适于传递和修改设计信息,还可以
建立独立于工艺的设计文件,不便之处是不太直观,要求设计师学会编程。
很多电子设计师都具有原理图设计的丰富经验,不具有编程经验,所以仍然希望继续在比较熟悉的符
号与图形环境中完成设计,而不是利用编程完成设计。为此,EDA 公司在 90 年代相继推出一批图形化免
编程的设计输入工具,它们允许设计师用他们熟悉的设计方式,如框图、状态图、真值表和逻辑方程建立
设计文件,然后由 EDA 工具自动生成综合所需要的硬件描述语言文件。例如,ALTA Group 的设计工具,
以框图编辑器作为设计输入工具,然后可以生成“C”和“VHDL”源代码。“C”代码可送数字信号处理
器 DSP 相关的开发系统,“VHDL”代码则送 EDA 综合工具。
2、 具有混合信号处理能力的 EDA 工具
目前,数字电路设计的 EDA 工具远比模拟电路的 EDA 工具多,模拟集成电路 EDA 工具的开发难度
较大,但是,由于物理量本身多以模拟形式存在,所以实现高性能的复杂电子系统的设计离不开模拟信号。
因此,90 年代以来 EDA 工具厂商都比较重视数/模混合信号设计工具的开发。对数字信号的语言描述 IEEE
已经制定了 VHDL 标准,对模拟信号的语言描述正在制定 AHDL 标准,此外还提出了对微波信号的 MHDL
描述语言。
3、发展更为有效的仿真工具
通常,可以将电子系统设计的仿真过程分为两个阶段:即设计前期的系统级仿真和设计过程中的电路
级仿真。系统级仿真主要验证系统的功能;电路级仿真主要验证系统的性能,决定怎样实现设计所需的精
度。在整个电子设计过程中仿真是花费时间最多的工作,也是占用 EDA 工具资源最多的一个环节。通常
设计活动的大部分时间在做仿真,验证设计的有效性、测试设计的精度、处理和保证设计要求等。仿真过
程中仿真收敛的快慢同样是关键因素之一。提高仿真的有效性一方面是建立合理的仿真算法,另一方面是
系统级仿真中系统级模型的建立,电路级仿真中电路级模型的建模。预计在下一代 EDA 工具中,仿真工
具将有一个较大的发展。
4、开发更为理想的设计综合工具
今天,电子系统和电路的集成规模越来越大,几乎不可能直接面向版图做设计,要找出版图中的错误
更是难上加难。将设计者的精力从繁琐的版图设计和分析中转移到设计前期的算法开发和功能验证上,这
是设计综合工具要达到的目的。高层次设计综合工具可以将低层次的硬件设计一直转移到物理级的设计,
实现不同曾系和不同形式的设计描述转换,通过各种综合算法实现设计目标规定的优化设计。当然,设计
者的经验在设计综合中仍将起到重要的作用,自动综合工具将有效的提高优化设计的效率。
设计综合工具由最初的只能实现逻辑综合,逐步发展到可以实现设计前端的综合直至设计后端的版图
综合以及测试综合的理想且完整的综合工具。设计前端的综合工具也称高层次综合工具,可以实现从算法
级的行为描述到寄存器传输级结构描述的转换,给出满足约束条件的硬件结构。在确定寄存器传输结构描
3
述后,由逻辑综合工具完成硬件的门级结构描述。逻辑综合的结果将作为版图综合的输入数据,进行版图
综合。版图综合则是将门级和电路级的结构描述转换成物理版图的描述,版图综合时将通过自动交互的设
计环境,实现按面积、速度和功率完成布局布线的优化,实现最佳的版图设计。人们希望将设计测试工作
尽可能地提前到设计前期,以便缩短设计周期,减少测试费用。因此,测试综合贯穿在设计过程的始终。
测试综合可以消除设计中的冗余逻辑、诊断不可测的逻辑结构、自动插入可测性结构、生成测试向量,当
整个电路设计完成时,测试设计也随之完成。
面对当今飞速发展的电子产品市场,电子设计人员需要更加实用、快捷的 EDA 工具,使用统一的集
成化设计环境,改变优先考虑具体物理实现方式的传统设计思路,从而将精力集中到设计构思、方案比较
和寻找最优化设计等方面,以最快的速度开发出性能优良、质量一流的电子产品。今后的 EDA 工具将向
着功能强大、简单易学、使用方便的方向发展。
4
第2章 Quartus II 软件应用基础
2.1 Quartus II 软件简介
Quartus II 是 Altera 提供的 FPGA/CPLD 开发集成环境,Altera 是世界最大可编程逻辑器件供应商
之一。Quartus II 在 21 世纪初推出,是 Altera 前一代 FPGA/CPLD 集成开发环境 MAX+plus II 的更新
换代产品,其界面友好,使用便捷。在 Quartus II 上可以完成设计输入、HDL 综合、布线布局(适配)、
仿真和下载和硬件测试等流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输
入、快速处理和器件编程。
Altera 的 Quartus II 提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编
程系统(SOPC)设计的综合性环境和 SOPC 开发的基本设计工具,并为 Altera DSP 开发包进行系统
模型设计提供了集成综合环境。Quartus II 设计工具完全支持 VHDL、Verilog 的设计流程,其内部嵌有
VHDL、Verilog 逻辑综合器。Quartus II 也可以利用第三方的综合工具,如 Leonardo Spectrum、Synplify
Pro、FPGA Complier II,并能直接调用这些工具。同样,Quartus II 具备仿真功能,同时也支持第三方
的仿真工具,如 ModelSim。此外,Quartus II 与 MATLAB 和 DSP Builder 结合,可以进行基于 FPGA
的 DSP 系统开发,是 DSP 硬件系统实现的关键 EDA 工具。
Quartus II 包括模块化的编译器。编译器包括的功能模块有分析/综合器(Analysis & Synthesis)、
适配器(Filter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)、
EDA 网表文件生成器(EDA Netlist Writer)和编辑数据接口(Complier Database Interface)等。可以
通过选择 Start Complication 来运行所有的编译器模块,也可以通过选择 Start 单独运行各个模块。还可
以通过选择 Complier Tool(Tools 菜单),在 Complier Tool 窗口中运行该模块来启动编辑器模块。在
Complier Tool 窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。
此外,Quartus II 还包含许多十分有用的 LPM(Library of Parameterized Modules)模块,它们是复
杂或高级系统构建的重要组成部分,在 SOPC 设计中被大量使用,也可在 Quartus II 普通设计文件一起
使用。Altera 提供的 LPM 函数均基于 Altera 器件的结构做了优化设计。在许多实用情况中,必须使用
宏功能模块才可以使用一些 Altera 特定器件的硬件功能。例如各类片上存储器、DSP 模块、LVDS 驱
动器、PLL 以及 SERDES 和 DDIO 电路模块等。
2.2 Quartus II 软件 PLD 设计流程
Altera Quartus II 设计软件提供完整的多平台设计环境,能够直接满足特定设计需要,为可编程芯片系
统提供全面的设计环境。QuartusII 软件含有 FPGA 和 CPLD 设计所有阶段的解决方案。Quartus II 的主要
设计流程如图 4.1 所示。
5
图 3-1 Quartus II 的主要设计流程
(1) 设计输入
Quartus II 工程包括在可编程器件中最终实现设计需要的所有设计文件,软件源文件和其他相关文件。
使用 Quartus II 模块编辑器、文本编辑器、MegaWizard 插件管理器和 EDA 设计输入工具可以建立包括 Altera
宏功能模块、参数化模块库(LPM)功能和知识产权(IP)功能在内的设计。Quartus II 支持的输入方式如
图 3-2 所示。
Quartus II 模块编辑器用于以原理图和框图形式输入和编辑图形设计信息。每一个模块设计文件包含设
计中代表逻辑的框图和符号。模块编辑器将每一个框图、原理图或者符号代表的设计逻辑合并到工程中。
Quartus II 文本编辑器是一个灵活的工具,用于以 AHDL、VHDL 和 Verilog HDL 语言以及 Tcl 脚本语
言输入文本型设计。还可以使用文本编辑器输入、编辑和查看其它 ASCII 文本文件,包括为 Quartus II 软
件或由 Quartus II 软件建立的文本文件。
Quartus II 符号编辑器用于查看和编辑代表宏功能、宏功能模块、基本单元或设计文件的预定义符号。
每个符号编辑器文件代表一个符号。对于每个符号文件,均可以从包含 Altera 宏功能模块和 LPM 功能的
库中选择。可以自定义这些模块符号文件,然后将这些符号添加到使用模块编辑器建立的原理图中。
6
设计输入(Design Entry)综合(Synthesis)布局布线(Place & Route)时序分析(Timing Analysis)仿真(Simulation)编程和配置(Programming & Configuration)功耗分析(Power Analysis)调试(Debugging)工程更改管理(Engineering Change Management)时序逼近(Timing Closure)
图 3-2 Quartus II 支持的输入方式和文件类型
Altera 宏功能模块是复杂的高级构建模块,可以在 Quartus II 设计文件中与逻辑门和触发器基本单元一
起使用。Altera 提供的参数化宏功能模块和 LPM 功能均为 Altera 器件结构做了优化。必须使用宏功能模块
才可以使用一些 Altera 专用器件的功能,例如,存储器、DSP 块、LVDS 驱动器、PLL 以及 SERDES 和
DDIO 电路。
(2) 综合
您可以使用 Compiler 的分析和综合模块分析设计文件,建立工程数据库。分析和综合使用 Quartus II
Integrated Synthesis 综合 Verilog(.v)或者 VHDL 设计文件(.vhd)。根据需要可以使用其它 EDA 综合工
具综合 Verilog HDL 或 VHDL 设计文件,然后生成 Quartus II 软件使用的 EDIF 网表文件(.edf)或者 Verilog
Quartus 映射文件(.vqm)。
(3) 布局布线
Quartus II Fitter 对设计进行布局布线,在 Quartus II 软件中是指“fitting(适配)”。Fitter 使用由 Analysis
& Synthesis 建立的数据库,将工程的逻辑和时序要求与器件的可用资源相匹配。它将每个逻辑功能分配给
最佳逻辑单元位置,进行布线和时序分析,并选定相应的互连路径和引脚分配。
(4) 功耗分析
Quartus II PowerPlay 功耗分析工具提供的界面使您能够在设计过程中,估算静态和动态功耗。
PowerPlay Power Analyzer 进行适配后功耗分析,产生高亮的功耗报告,显示模块类型和实体,以及消耗的
功率。Altera PowerPlay Early Power Estimator 在设计的其他阶段估算功耗,产生估算信息的 Microsoft Excel
电子表格。
7