EDA技术与应用授课教师:崔瑞雪电话:13722600869E-MAIL:cuiruixue2003@yahoo.com.cn第1章EDA技术概述第1章EDA技术概述•EDA,ElectronicsDesignAutomation•----电子设计自动化1.1、EDA技术的发展及未来•1.电子系统设计CAD是EDA发展的初级阶段(20世纪60年代中期—80年代初)。•2.电子系统设计CAE是EDA发展的中级阶段(20世纪80年代初—90年代初)。•3.以可编程器件为核心的EDA技术是EDA发展的高级阶段(20世纪90年代以来)1.1.1EDA技术发展的三个阶段----CAD阶段主要进行PCB布局布线、电路模拟与仿真、原理图的绘制等等。例如:SMARTWORK、TANGO、SPICE。缺点:各软件只针对某一具体应用而开发,相互衔接比较困难;不能提供系统级的综合与仿真,难以适应复杂的、大规模的电子系统设计,主要面向LSI和PCB设计。1.1.1EDA技术发展的三个阶段----CAE阶段•由于制定了EDA工业标准,采用统一的数据管理技术,各种设计模块逐渐整合成为一个完整的计算机辅助工程设计系统(CAE),结合完善的电子系统设计流程,可通过顺序循环完成设计的全过程。•例如:OrCAD和Protel•缺点:设计输入手段以原理图输入为主,形式单一,不适应大规模电子系统的设计。1.1.1EDA技术发展的三个阶段----EDA阶段当今的EDA技术更多的是指芯片内的电子系统设计自动化,即片上系统(SOC,SystemOnChip)设计。也就是说,开发人员完全可以通过自己的电子系统设计来定制其芯片内部的电路功能,使之成为设计者自己的专用集成电路(ASIC,ApplicationSpecificIC)芯片。•设计一个数字钟,使之完成以下功能:•实现时、分、秒的计时;时可采取12小时计时也可采取24小时计时;具有启动/停止功能;并可调整时间。•用数码管显示时分秒;具有整点报时功能;•可继续设计日、星期、月、年等其他万年历功能。•可设计秒表功能,闹钟功能。问题的提出:如何实现芯片设计解决方案•首先在计算机上安装EDA软件,它们能帮助设计者自动完成几乎所有的设计过程;再选择合适的PLD芯片,可以在一片芯片中实现整个数字系统。EDA软件空白PLD+数字系统编程1.根据设计要求划分功能模块2.PLD开发(利用EDA工具)•(1)设计输入:采用原理图或硬件描述语言(HDL),描述出输入和输出的逻辑关系,将整个原理图或程序输入到计算机中。设计输入•libraryieee;•useieee.std_logic_1164.all;•useieee.std_logic_unsigned.all;•entitysecondis•port(•clk,reset,setmin:instd_logic;•enmin:outstd_logic;•daout:outstd_logic_vector(6downto0));•endentitysecond;•architecturefunofsecondis•signalcount:std_logic_vector(6downto0);•signalenmin_1,enmin_2:std_logic;•begin•daout=count;(2)设计的编译EDA工具可自动进行逻辑综合,将功能描述转换为门级描述,或转换成具体PLD的网表文件,将网表文件自动适配到具体芯片中进行布局布线。(2)设计的编译(3)功能仿真和时序仿真(4)编程下载•(4)编程下载到实际芯片中,在实验台上进行验证;•(5)在每一阶段若有问题,可在计算机上直接修改设计,重复以上过程。优点:•优点:•效率高——所有这一切,几乎都是借助计算机利用EDA软件自动完成!•容易检查错误,便于修改;•设计周期短、成功率很高;•产品体积小。总结今天的EDA技术基于芯片的设计方法——采用PLD(可编程逻辑器件),利用EDA开发工具,通过芯片设计来实现系统功能。问题:随着微电子技术和计算机技术的不断发展,在涉及通信、国防、航天、工业自动化、仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升,它已成为当今电子技术发展的前沿之一。•1.EDA技术的发展趋势①广度上:每一位电子工程师必备的主要设计工具②深度上:ESDA(ElectronicSystemDesignAutomation)单芯片集成(SOC/SOPC:SystemOnaProgrammableChip)1.1.2EDA技术未来ESDA特色ESDA是EDA技术发展的高级阶段,具体特色如下:在设计方式方面:①采用并行设计工程CE(ConcurrentEngineering)设计方式的核心就是对设计对象(产品)具有全面可预见性,它要求设计者从一开始就考虑设计产品的质量、成本、开发周期、用户需求和市场占有周期等综合因素。使用统一的集成化设计环境,由若干的设计小组共享数据库,同步进行设计。②采用自顶而下(TOP-DOWN)层次化设计方式设计者从系统总体入手,进行系统行为或功能的划分、描述和验证。设计者不受器件的限制。以上两种方式使设计者可以在系统层次上把握设计全过程。•在设计工作环境方面•EDA工具是一个开放式的完整的集成开发环境,一般而言,同一个EDA集成开发环境至少应该包括电气原理图与硬件描述语言输入、PCB设计、混合电路仿真、PLD设计与下载等功能。不同EDA工具之间应该具有良好的接口特性,从而实现资源共享。2.EDA工具的发展趋势①输入工具发展趋势是以硬件描述语言(HDL)为主②混合信号处理能力数/模混合信号的处理数字信号的描述:VHDL、VerilogHDL模拟信号的描述:AHDL微波信号的描述:MHDL1.1.2EDA技术未来仿真工具功能仿真、时序仿真综合工具综合:由高层次描述自动转换为低层次描述的过程。是EDA的核心。1.1.2EDA技术未来1.1.2EDA技术未来EDA技术将向广度和深度两个方向发展,EDA将会超越电子设计的范畴进入其他领域,随着基于EDA的SOC设计技术的发展,软硬核功能库的建立,IP核复用(IPReuse),以及基于VHDL所谓自顶向下设计理念的确立,未来的电子系统的设计与规划将不再是电子工程师们的专利。有专家认为,21世纪将是EDA技术快速发展的时期,并且EDA技术将是对21世纪产生重大影响的十大技术之一。当前,EDA的主要应用方向为微控制器(Microcontroller)、ASIC和DSP等方面。1.2EDA技术的构成要素1.大规模可编程器件--载体2.硬件描述语言--主要表达手段3.软件开发环境--智能、自动化工具4.实验开发环境--下载与硬件验证工具1.大规模可编程器—电子系统设计的载体;•可编程器件:由用户编程以实现某种电子电路功能的器件。可编程器件可编程逻辑器件(PLD)(ProgrammableLogicDevice)可编程模拟器件(PAC)(ProgrammableAnalogCircuit)PLD低密度PLD高密度PLD可编程阵列逻辑(PAL)通用阵列逻辑(GAL)复杂可编程逻辑器件(CPLD)现场可编程门阵列(FPGA)在系统可编程逻辑器件(isp-PLD)PAC在系统可编程模拟器件(isp-PAC)2.硬件描述语言—电子系统设计的主要表达手段•电子设计自动化(EDA)技术要求用硬件描述语言(HardwareDescriptionLanguage,HDL)来进行硬件的行为(信号连接关系、定时关系)和功能(逻辑功能)的描述。•常见的HDL语言:VHDL语言、VerilogHDL语言等。HDL语言的特点:(1)具有较强的电路描述能力;(2)易于传递、修改、保存、重复利用设计;(3)易于层次化和结构化设计;(4)与具体硬件电路的设计平台无关。3.软件开发环境—电子系统设计的软件平台•集成化开发工具:•Altera公司:MAXPlusII和QuartusII•Xilinx公司:ISE、Foundation、Aillance•Lattice公司:ispDesignEXPERT系列•特定功能的开发软件:•综合软件:•Synplicity公司的Synplify/SynplifyPro•Synopsys公司的FPGAexpress、FPGAcompilerII•Mentor公司的Modelsim•仿真类•ModelTech公司的Modelsim•Aldec公司的ActiveHDL•Cadence公司的NC-Verilog、NC-VHDL、NC-SIM4.实验开发环境—电子系统设计的下载与硬件验证工具提供FPGA/CPLD芯片下载电路及EDA实验、开发环境的外围资源,以供硬件验证用。一般包括:(1)实验开发所需的各类基本信号发生模块(时钟、脉冲、电平等)(2)通用数字式和扫描驱动类型接口(3)模拟器件及接口(4)监控程序模块(5)目标芯片适配座,以及FPGA/CPLD目标芯片和编程下载电路等。实验开发板1.3EDA软件系统的构成EDA软件系统的基本结构大致包括:EDA软件系统设计输入模块设计数据库模块分析验证模块综合仿真模块布局布线模块一、设计输入模块•接受用户不同的设计输入表达方式(原理图输入、波形输入、层次输入、HDL输入等)然后将用户设计描述数据转换为EDA软件系统内部数据格式(即网表文件,如EDIF文件),存入设计数据库,以便于其它模块调用。二、设计输入数据库•该模块存放系统提供的库单元以及用户的设计描述和中间设计结果。三、综合仿真模块•综合的目的就是将多个模块化设计合并成网表文件,使层次设计平面化。•综合是把软件设计的HDL描述与硬件结构挂钩,是实现软件转化为硬件的关键,是文字描述与硬件实现之间的一座桥梁。•所谓仿真,就是利用EDA工具对综合后的结果进行模拟测试的过程。四、布局布线模块•实现由逻辑设计到物理实现的映射,与物理实现方式密切相关。其功能是将综合产生的网表文件配置于制定的目标器件,也称为适配器。1.4EDA与传统电子设计的比较•传统的数字电子系统设计采用手工的设计步骤,一般先按电子系统的具体功能要求进行功能划分,然后画出每个子模块的真值表,用卡诺图进行手工逻辑简化,写出布尔表达式,画出相应的逻辑线路图,再选择元器件,设计电路板,最后进行实测与调试。•EDA数字系统设计的步骤全部都可以在计算机上完成。1.4EDA与传统电子设计的比较•1.4.1传统的电子设计方法—自底向上1.整体方案设计2.方案选择与可行性论证3.单元电路的设计及标准集成电路选择4.安装与调试Bottom_up系统分解单元设计功能块划分子系统设计系统生成1.4EDA与传统电子设计的比较1.4EDA与传统电子设计的比较•1.4.2EDA电子设计方法1.自顶向下的设计方法(Top-Down)自顶向下设计的结构分解图完整树设计结构分解行为建模部分树设计行为建模自顶向下的设计方法(Top-Down)•采用自顶向下的设计方法有如下优点:(1)自顶向下设计方法是一种模块化设计方法。•(2)由于高层设计同器件无关,可以完全独立于目标器件的结构,因此在设计的最初阶段,设计人员可以不受芯片结构的约束,集中精力对产品进行最适应市场需求的设计,从而避免了传统设计方法中的再设计风险,缩短了产品的上市周期。•(3)由于系统采用硬件描述语言进行设计,可以完全独立于目标器件的结构,因此设计易于在各种集成电路工艺或可编程器件之间移植。•(4)适合多个设计者同时进行设计。传统设计方法vsEDA设计方法传统设计方法EDA设计方法自底向上手动设计软硬件分离原理图设计方式系统功能固定不易仿真难测试修改模块难移植共享设计周期长(很难确保设计的一次成功)自顶向上自动设计打破软硬件屏障原理图、HDL等设计方式系统功能易改易仿真易测试修改模块可移植共享设计周期短1.5基于可编程器件的EDA技术设计流程设计准备行为仿真功能仿真时序仿真硬件仿真器件测试设计输入项目文件编译设计实现器件编程与配置本节