内容简介
《数字集成电路设计实验教程》是作者结合自身多年教学经验和项目实践经验所编著的一《数字集成电路设计实验教程》。作为一《数字集成电路设计实验教程》,《数字集成电路设计实验教程》着重突出实用性和可操作性。也就是以一系列具有工程项目特点的实验为载体,结合实用的工具软件,详细介绍数字集成电路从前端设计到后端设计的一系列流程和方法。《数字集成电路设计实验教程》由简单到复杂、逐步深入、易学易懂,理论和实验密切结合,使读者能够较快掌握数字集成电路的设计方法。主要内容包括数字集成电路自顶向F (top-down)的设计流程,仿真软件ModelSim、FPCA开发软件ISE、调试利器ChipSe、ope Pro、逻辑综合软件Design Compiler以及后端设计软件Astro的使用,基本逻辑门电路、分频器、状态机、按键防抖电路、数码管扫描显示电路基础性实验,乐曲演奏电路、数字时钟电路、交通信号灯、基于I2C接口的存储器渎写访问、VCA、MIPS微处理器综合性实验。《数字集成电路设计实验教程》在每章后面还安排了相应的习题,便于读者检验学习的效果。
目录
目录
第1章数字集成电路的设计流程1
第2章EDA软件使用指南6
2.1仿真软件——ModelSim6
2.1.1基于ModelSim的仿真流程6
2.1.2仿真设计7
2.2FPGA开发软件——ISE12
2.2.1启动ISE软件12
2.2.2创建项目工程13
2.2.3添加设计的约束文件15
2.2.4逻辑综合17
2.2.5FPGA设计实现19
2.2.6编程下载FPGA20
2.3调试利器——ChipScope Pro28
2.3.1ChipScope Pro工作原理28
2.3.2ChipScope Pro开发实例28
2.4逻辑综合软件——Design Compiler38
2.4.1启动DesignCompiler综合器39
2.4.2逻辑单元库加载40
2.4.3用户设计源文件的加载与分析41
2.4.4顶层设计文件设置44
2.4.5时序约束45
2.4.6综合及优化46
2.4.7综合结果导出48
2.5后端设计软件——Astro50
2.5.1数据准备(data preparation)51
2.5.2设计建立(design setup)52
2.5.3布局规划(floorplan)57
2.5.4时序设置(timing setup)63
2.5.5布局(placement)67
2.5.6时钟树综合(clock tree synthesis)72
2.5.7布线75
2.5.8可制造性设计(design for manufacturing)82
2.5.9数据导出(data export)88
第3章基础性实验94
3.1基本逻辑门电路实验94
3.1.1实验目的94
3.1.2实验原理94
3.1.3实验工具94
3.1.4实验步骤95
3.1.5VHDL参考源代码95
3.2分频器实验96
3.2.1实验目的96
3.2.2实验原理96
3.2.3实验工具97
3.2.4实验步骤97
3.2.5VHDL参考源代码97
3.3状态机控制流水灯实验99
3.3.1实验目的99
3.3.2实验原理99
3.3.3实验工具99
3.3.4实验步骤99
3.3.5VHDL参考源代码100
3.4按键防抖电路实验103
3.4.1实验目的103
3.4.2实验原理104
3.4.3实验工具105
3.4.4实验步骤105
3.4.5VHDL参考源代码106
3.5数码管扫描显示电路实验107
3.5.1实验目的107
3.5.2实验原理108
3.5.3实验工具109
3.5.4实验步骤109
3.5.5VHDL参考源代码109
第4章综合性实验113
4.1乐曲演奏电路实验113
4.1.1实验目的113
4.1.2实验原理113
4.1.3实验工具116
4.1.4实验步骤117
4.1.5VHDL参考源代码122
4.2数字时钟电路实验126
4.2.1实验目的126
4.2.2实验原理126
4.2.3实验工具127
4.2.4实验步骤127
4.2.5VHDL参考源代码128
4.3交通信号灯实验145
4.3.1实验目的145
4.3.2实验原理145
4.3.3实验工具146
4.3.4实验步骤146
4.3.5VHDL参考源代码146
4.4基于I2C接口的存储器读写访问综合实验153
4.4.1实验目的153
4.4.2实验原理153
4.4.3实验工具158
4.4.4实验步骤158
4.4.5VHDL参考源代码158
4.5VGA综合实验188
4.5.1实验目的188
4.5.2实验原理188
4.5.3实验工具192
4.5.4实验步骤192
4.5.5VHDL参考源代码192
4.6MIPS综合实验196
4.6.1实验目的196
4.6.2实验原理196
4.6.3实验工具212
4.6.4实验步骤212
4.6.5VHDL参考代码212
主要参考文献231
精彩书摘
第1章数字集成电路的设计流程
集成电路(integrated circuit,IC)是微电子技术发展的一个标志性成果,集成电路的发展经历了小规模(SSI)、中规模(MSI)、大规模(LSI)、超大规模(VLSI)阶段,一直发展到目前的SoC,已经可以在单一芯片中集成中央处理器(CPU)、数字信息处理器(DSP)、接口、锁相环(PLL)、模拟数字转换器(ADC)等越来越多的模块。同时,集成电路设计与加工的特征尺寸也达到十几纳米的水平。集成电路的高性能、高复杂性要求,给设计带来了挑战,同时也极大地促进了EDA的迅猛发展,尤其对于数字集成电路,其规模甚至达到单片几亿个晶体管,如果不依赖于EDA技术,其工作量是难以想象的。
电子设计自动化技术针对传统的自底向上(bottom-up)的设计方法提出了自顶向下(top-dowm)的设计方法。自顶向下的设计过程是从系统硬件的高层次抽象描述向底层物理描述的一系列转换过程。自顶向下的设计对底层单元的选取更加灵活,有利于更好地发挥设计人员的创造性,从而形成具有自主知识产权的芯片产品。自顶向下的设计流程如图1-1所示。
图1-1自顶向下设计流程
自顶向下的设计由功能级、行为级描述开始;寄存器传输(RTL)级描述为第一个中间结果;再将RTL级描述由逻辑综合得到网表(net-list)或电路图;利用EDA工具将网表自动转换成目标文件下载到现场可编程门阵列(field programmable gate array,FPGA)/复杂可编程逻辑器件(complex programmable logic device,CPLD)或通过自动布局布线设计成专用集成电路(application specification integrated circuit,ASIC),从而得到电路与系统的物理实现。
在设计过程中,FPGA开发设计流程与ASIC设计流程有很大的差异。
FPGA的设计流程是利用EDA开发软件对FPGA芯片进行开发的过程。FPGA的设计流程主要包括电路设计输入、功能仿真、综合、综合后仿真、布局布线、布线后仿真以及芯片编程与调试等步骤。FPGA开发的主要流程如图1-2所示。
图1-2FPGA开发的主要流程
以下对各步骤进行简要介绍:
(1)电路设计输入。常用的电路设计输入方法有硬件描述语言(HDL)和原理图输入等。原理图输入是一种最直接的描述方式,在可编程芯片发展的早期应用比较广泛,它将所需的器件从元件库中调出来,画出原理图。这种方法虽然直观并易于仿真,但效率很低,且不易维护,不利于模块构造和重用,可移植性差,当芯片升级后,所有的原理图都需要做一定的改动。目前,在实际开发中应用最广泛的就是HDL输入法,它利用文本描述设计,其主流语言是Verilog HDL和VHDL。这两种语言都是美国电气与电子工程师协会(IEEE)的标准HDL,其共同的突出特点有:语言与芯片工艺无关,利于自顶向下设计,便于模块的划分,可移植性好,具有很强的逻辑描述和仿真功能,而且输入效率很高。
(2)功能仿真。功能仿真,也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和HDL等建立波形文件和测试向量,仿真结果将会生成报告文件并输出信号波形,从中便可以观察各个节点信号的变化。如果发现错误,则返回修改逻辑设计。常用的工具有Model Tech公司的ModelSim、Sysnopsys公司的VCS和Cadence公司的NC-Verilog以及NC-VHDL等软件。
(3)综合。所谓综合就是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供FPGA布局布线软件进行实现。即将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表。常用的综合工具有Synopsys(原Synplicity公司)公司的Synplify/Synplify Pro软件以及各个FPGA厂家自己推出的综合开发工具。
(4)综合后仿真。综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中,可估计网表中门延时带来的影响。但由于没有布线信息,这一步骤不能估计线延时,所以与布线后的实际情况还有一定的差距,并不十分准确。
(5)布局布线。布局布线即实现,是将综合生成的逻辑网表配置到具体的FPGA芯片上,布局布线是其中最重要的过程。布局将逻辑网表中的底层单元合理地配置到FPGA芯片内部的固有硬件结构上。布线则根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个元件。布线结束后,软件工具会自动生成报告,提供有关设计中各部分资源的使用情况。基于对自身芯片知识产权的考虑,布局布线工具一般由各FPGA芯片生产商自主提供。
(6)布线后仿真。布线后仿真也称为后仿真,是指将布局布线的延时信息反标注到设计网表中,对设计的电路进行验证。后仿真包含的时序信息最完整,能较好地反映芯片的实际工作情况。
(7)芯片编程与调试。设计的最后一步就是芯片编程与调试。芯片编程是指产生使用的数据文件(位流文件,bitstream),然后将编程数据下载到FPGA芯片中。逻辑分析仪是FPGA设计的主要调试工具,但需要引出大量的测试引脚,且价格昂贵。目前,主流的FPGA芯片生产商都提供了内嵌的在线逻辑分析仪(如Xilinx ISE中的ChipScope、Altera QuartusII中的Signal TapII以及Signal Prob)来解决上述矛盾,它们只需要占用芯片少量的逻辑资源,具有很高的实用价值。
ASIC的设计可以粗略地分为设计输入、逻辑综合、仿真、布局(placement)、布线(rounting)、版图后仿真、检查验证等步骤。利用商业化工具以及预先设计好的标准单元库、宏单元库已经使ASIC 设计成为速度最快、成本最低而且错误最少的一种IC 设计方法,因而ASIC 设计方法已迅速在工业界的各个领域得到推广。ASIC的设计流程如图1-3所示。
图1-3ASIC设计流程
当HDL的行为级仿真通过之后,就可以进行ASIC逻辑综合了。所谓ASIC逻辑综合是指在工艺库的基础上通过映射和优化过程,把设计的RTL级描述转换成与工艺密切相关的门级网表。在综合过程中,设计者可以根据自己的需要加入时序约束或驱动负载约束等,使综合结果合乎设计的要求。在ASIC逻辑综合上,Cadence公司的AMBIT Build Gates 和Synopsys公司的Design Compiler都是经过无数验证,切实可用的工具。综合结束后为了及早地发现错误、排除错误,可以进行门级估算时序仿真,如果结果有错误就可以马上回到代码设计纠正错误,直到仿真结果符合要求。
接下来流程转入版图设计,在EDA工具环境下,可以将综合生成的网表读入并与工艺物理信息库及时序库配合,进行整个芯片的布局布线。布局布线走通后,可得到一个初步的版图。为了验证实际布线后寄生效应对设计的影响是否会导致时序出错,必须进行版图后仿真,仿真的方法与综合后仿真相同。另外,版图必须在随后的DRC、LVS中进行验证,以确保版图不违背设计规则、无电气错误。此外,在版图设计完成后,还可以进行更为准确的晶体管级的功能仿真,以此确保芯片设计的正确性。当然以上流程往往不是跑一遍就能够完全达到功能、时序等条件的要求,一般都需要经过多次的迭代和优化才能最终达到时序等条件的“收敛”。本章仅仅是对FPGA和ASIC设计的流程做了大致的介绍,后面的实验教程有更为详细的介绍和讲解。
习题
(1)top-down设计方法主要包括哪几个阶段?分别是什么内容?
(2)FPGA开发的主要流程有哪些?
(3)ASIC设计流程包括哪些?
(4)FPGA开发的主要流程与ASIC设计流程有哪些区别?
(5)FPGA的主要厂商有哪些?各自使用的EDA软件是什么?
第2章EDA软件使用指南
“工欲善其事,必先利其器”,EDA软件的熟练使用是学习数字集成电路设计的基础。本章详细介绍ModelSim仿真软件、FPGA开发软件ISE、调试利器Chipscope Pro、逻辑综合软件(design compiler)和后端设计软件(Astro)的使用。
2-1仿真软件——ModelSim
ModelSim是Mentor公司推出的优秀的HDL仿真软件,它功能强大,提供友好的仿真环境,支持VHDL和Verilog混合仿真,具有速度快、精度高和便于操作的特点。它还具有代码分析能力,可以看出不同代码段消耗的资源情况。
2-1-1基于ModelSim的仿真流程
使用ModelSim进行仿真的流程如图2-1所示。
图2-1ModelSim仿真流程
前言/序言
数字集成电路设计实验教程 电子书 下载 mobi epub pdf txt