电子设计自动化(EDA)袁慧梅教授Tel:13693353211Email:yuanhmxxxy@263.net办公地点:北二区230、后小楼208《电子设计自动化(EDA)》考核方式理论课:30%平时考勤+70%期末开卷笔试。实验课:50%平时实验+50%期末上机开卷考试1.50%平时实验包含12次实验的出勤、实验当时完成情况和实验报告。2.平时实验1人一组,期末上机考试1人一组。(周五下午1:30-3:30)EDA技术●EDA(ElectronicDesignAutomation)●现代电子设计技术的核心技术:融合了微电子技术、计算机技术、现代电子技术、智能技术等,为现代电子理论和设计的表达与实现提供了可能性。●功能:ASIC(ApplicationSpecificIntegratedCircuit)设计电子电路设计PCB(PrintedCircuitBoard)设计●七十年代为CAD(ComputerAidedDesign计算机辅助设计)阶段用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工画图。●八十年代为CAE(ComputerAidedEngineering计算机辅助工程)阶段支持电路功能设计和结构设计。主要功能是:原理图输入,逻辑仿真,电路分析,自动布局布线,PCB后分析。●九十年代为ESDA(ElectronicSystemDesignAutomation电子系统设计自动化)阶段(1)支持“自顶向下”的设计方法;(2)支持ASIC设计;(3)采用硬件描述语言;1.1EDA技术及其发展EDA技术在进入21世纪后,得到了更大的发展,突出表现在以下几个方面:使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能;软硬件IP核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认;在仿真和设计两方面支持标准硬件描述语言的功能强大的EDA软件不断推出。电子技术全方位纳入EDA领域;EDA使得电子领域各学科的界限更加模糊,更加互为包容;更大规模的FPGA和CPLD器件的不断推出;SOC、SOPC等高效低成本设计技术的成熟。1.1EDA技术及其发展SOCSOC(SystemOnaChip)片上系统、系统级芯片:在单一硅芯片上实现信号采集、转换、存储、处理和I/O等功能,或者说在单一硅芯片上集成了数字电路、模拟电路、信号采集和转换电路、存储器、MPU、MCU、DSP、MPEG等,实现了一个系统的功能。SOC是一种在结构上以嵌入式系统为基础,集软硬件与一体的系统级芯片。•SOPC(SystemOnaProgrammableChip)即可编程的片上系统,或者说是基于大规模FPGA的单片系统。SOPC的设计技术是现代计算机辅助设计技术、EDA技术和大规模集成电路技术高度发展的产物。SOPC技术的目标就是试图将尽可能大而完整的电子系统,包括嵌入式处理器系统、接口系统、硬件协处理器或加速器系统、DSP系统、数字通信系统、存储电路以及普通数字系统等,在单一FPGA中实现•SOPC:基于FPGA解决方案的SOC(系统芯片)。SOPC几种对于EDA内容的解释“电子设计自动化技术,即通过电子电路模拟和仿真软件进行原理设计及验证,然后借助于PCB软件进行电路板的设计技术。”(电路板级设计)“EDA技术是以计算机为工作平台,以EDA软件工具为开发环境,根据硬件描述语言HDL(HardwareDescriptionlanguage)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。”(CPLD/FPGA设计,数字系统设计)电路图设计电路测试仿真电路板图布线电路板输出雕刻机完整的ONBOARD设计流程:PCB板上设计及制作传统的研发方式构思电脑辅助设计原理图准备所需材料搭建电路图实验室实验电路将原稿或程序送PCB制造厂生产完成设计成功失败电脑辅助设计软件布线制PCB板样板焊接电路实验室实验成功失败EDA的研发方式思路用电脑辅助设计原理图电脑辅助仿真电脑辅助布线雕刻机制作PCB样品焊接电路板硬件电路测试程序送达PCB厂大量生产失败成功本课程讲述的EDA技术利用EDA技术进行电子系统的设计,具有以下几个特点:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的EDA开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。电路图设计文件HDL设计文件电路功能仿真HDL功能仿真HDL综合确定PLD芯片的类型和型号布线后门级仿真与实现逻辑的物理器件有关的工艺技术文件优化、布局布线编程下载、硬件测试有问题有问题有问题没问题没问题没问题没问题FPGA(CPLD)设计流程1.2数字系统硬件设计概述1.传统的硬件设计方法(1)采用自下而上(BottomUp)的设计方法使用该方法进行硬件设计是是从选择具体元器件开始的,并用这些元器件进行逻辑电路设计,完成系统各独立功能模块设计,然后再将各功能模块连接起来,完成整个系统的硬件设计。(2)采用通用逻辑元器件(3)在系统硬件设计的后期进行调试和仿真(4)设计结果是一张电路图2.使用HDL的硬件设计方法所谓硬件描述语言,就是利用一种人和计算机都能识别的语言来描述硬件电路的功能,信号连接关系及定时关系,它可以比电原理图更能表示硬件电路的特性。(1)采用自上而下(TopDown)的设计方法从系统总体要求出发,自上而下地逐步将设计内容细化,最后完成系统硬件的整体设计。(2)采用系统早期仿真(3)降低了硬件电路设计难度(4)主要设计文件是用HDL语言编写的源程序。1.2数字系统硬件设计概述为什么要用硬件描述语言来设计?电路的逻辑功能容易理解;便于计算机对逻辑进行分析处理;把逻辑设计与具体电路的实现分成两个独立的阶段来操作;逻辑设计与实现的工艺无关;逻辑设计的资源积累可以重复利用;可以由多人共同更好更快地设计非常复杂的逻辑电路(几十万门以上的逻辑系统)。有哪几种硬件描述语言?各有什么特点?VerilogHDL-较多的第三方工具的支持-语法结构比VHDL简单-学习起来比VHDL容易-仿真工具比较好使-测试激励模块容易编写有哪几种硬件描述语言?各有什么特点?VHDLVHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptiongLanguage-比VerilogHDL早几年成为IEEE标准;-语法/结构比较严格,因而编写出的模块风格比较清晰;-比较适合由较多的设计人员合作完成的特大型项目(一百万门以上)。两者建模能力的比较VHDLVITAL系统级算法级寄存器传输级逻辑门级开关电路级行为级的抽象VerilogHDL与VHDL建模能力的比较Verilog•关于用VHDL和原理图输入进行CPLD/FPGA设计的粗略比较原理图设计的优越性:比较直观原理图设计的局限性:1)对电路的知识要比较丰富。2)对CPLD/FPGA的结构比较熟悉。3)如果你的产品有所改动,需要采用另外的CPLD/FPGA时,你将需要重新输入原理图。学习HDL的几点重要提示1.了解HDL的可综合性问题(所有的HDL描述都可以用于仿真,但不是所有的HDL描述都能用硬件实现。)2.用硬件电路设计思想来编写HDL(充分理解HDL语句和硬件电路的关系。编写HDL,就是在描述一个电路,我们写完一段程序以后,应当对生成的电路有一些大体上的了解,而不能用纯软件的设计思路来编写硬件描述语言。)3.语法掌握贵在精,不在多(30%的基本HDL语句就可以完成95%以上的电路设计)2.1FPGA/CPLD设计流程2.1.1设计输入(原理图/HDL文本编辑)1.图形输入图形输入原理图输入状态图输入波形图输入2.HDL文本输入2.1.1设计输入(原理图/HDL文本编辑)这种方式与传统的计算机软件语言编辑输入基本一致。就是将使用了某种硬件描述语言(HDL)的电路设计文本,如VHDL或Verilog的源程序,进行编辑输入。可以说,应用HDL的文本输入方法克服了原理图输入法存在的所有弊端,为EDA技术的应用和发展打开了一个广阔的天地。2.1.2综合整个综合过程就是将设计者在EDA平台上编辑输入的HDL文本、原理图或状态图形描述,依据给定的硬件结构组件和约束控制条件进行编译、优化、转换和综合,最终获得门级电路甚至更底层的电路描述网表文件。由此可见,综合器工作前,必须给定最后实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用某种网表文件的方式对应起来,成为相应的映射关系。C、ASM...程序CPU指令/数据代码:0100101000101100软件程序编译器COMPILER编译器和HDL综合功能比较VHDL/VERILOG程序逻辑综合器SYNTHESIZER为ASIC设计提供的电路网表文件(a)软件语言设计目标流程(b)硬件语言设计目标流程2.1.3适配(布局布线)适配器也称结构综合器,它的功能是将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件,如JEDEC、Jam格式的文件。适配所选定的目标器件(FPGA/CPLD芯片)必须属于原综合器指定的目标器件系列。逻辑综合通过后必须利用适配器将综合后网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、逻辑布局布线操作。适配完成后可以利用适配所产生的仿真文件作精确的时序仿真,同时产生可用于编程的文件。2.1.4时序仿真与功能仿真时序仿真功能仿真就是接近真实器件运行特性的仿真,仿真文件中己包含了器件硬件特性参数,因而,仿真精度高。是直接对VHDL、原理图描述或其他描述形式的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求的过程,仿真过程不涉及任何具体器件的硬件特性。2.1.5编程下载通常,将对CPLD的下载称为编程(Program),对FPGA中的SRAM进行直接下载的方式称为配置(Configure),但对于OTPFPGA的下载和对FPGA的专用配置ROM的下载仍称为编程。FPGA与CPLD的辨别和分类主要是根据其结构特点和工作原理。通常的分类方法是:将以乘积项结构方式构成逻辑行为的器件称为CPLD,如Lattice的ispLSI系列、Xilinx的XC9500系列、Altera的MAX7000S系列和Lattice(原Vantis)的Mach系列等。将以查表法结构方式构成逻辑行为的器件称为FPGA,如Xilinx的SPARTAN系列、Altera的FLEX10K或ACEX1K系列等。2.1.6硬件测试最后是将含有载入了设计的FPGA或CPLD的硬件系统进行统一测试,以便最终验证设计项目在目标系统上的实际工作情况,以排除错误,改进设计。FPGA设计环境AlteraXilinxLatticeAtmel…MAX+PLUSⅡQuartusⅡ支持硬核ARM922T支持软核NiosⅡFoundationISEPlatformStudio硬核PowerPC405软核MicroBlazeISP(In—SystemProgrammability)IspLever主要针对中小规模的LPD设计FPSLICAT94KAT94SIP核IP核软IP固IP硬IP(softcore)——是一种以综合的RTL代码所交付的核。(RTL:RegisterTransferLevel).不涉及物理实现,灵活性好,但性能不最优firmcore)——软核和硬核的折中。网表文件(hardcore)——是一种以GDSII文件形式进行集成的核,它是已经经过全部设计、布局、布线的核。(GDSII:GraphicalDesignSystemII)最终产品,灵活性小,性能最优QuartusII简介图形或HDL编辑编程器设计输入综合或编译适配器件下载仿真Analysis&Synthes