EDA系统设计复习题本科.docx
《EDA系统设计复习题本科.docx》由会员分享,可在线阅读,更多相关《EDA系统设计复习题本科.docx(16页珍藏版)》请在冰豆网上搜索。
EDA系统设计复习题本科
AEDA系统设计复习资料2009级本科
2012.12.18
一、EDA概念部分(20分)
1、EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
2、20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。
在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。
这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。
这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。
3、EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
4、EDA技术的概念
⏹EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
⏹利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
⏹现在对EDA的概念或范畴用得很宽。
包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。
例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。
⏹EDA设计可分为系统级、电路级和物理实现级。
5、EDA设计方法
(1)前端设计(系统建模RTL级描述)后端设计(FPGAASIC)系统建模
(2)IP复用
(3)前端设计
(4)系统描述:
建立系统的数学模型。
(5)功能描述:
描述系统的行为或各子模块之间的数据流图。
(6)逻辑设计:
将系统功能结构化,通常以文本、原理图、逻辑图、布尔表达式来表示设计结果。
(7)仿真:
包括功能仿真和时序仿真,主要验证系统功能的正确性及时序特性。
6、EDA设计工具软件
⏹EDA工具软件可大致可分为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类。
⏹目前进入我国并具有广泛影响的EDA软件是系统设计软件辅助类和可编程芯片辅助设计软件:
Protel、AltiumDesigner、PSPICE、multisim12(原EWB的最新版本)、OrCAD、PCAD、LSIIogic、MicroSim、ISE、modelsim、Matlab等等。
这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同时还可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。
⏹按主要功能或主要应用场合,EDA工具软件也可分为电路设计与仿真工具、PCB设计软件、IC设计软件、PLD设计工具及其它EDA软件。
二、PCB设计工具-ProtelDXP2004(40分)
⏹PCB(Printed-CircuitBoard印制电路板)设计软件种类很多,如Protel、AltiumDesigner、OrCAD、Viewlogic、PowerPCB、CadencePSD、MentorGraphices的ExpeditionPCB、ZukenCadStart、Winboard/Windraft/Ivex-SPICE、PCBStudio、TANGO、PCBWizard(与LiveWire配套的PCB制作软件包)、ultiBOARD7(与multiSIM2001配套的PCB制作软件包)等等。
⏹目前在我国用得最多当属Protel。
⏹Protel是PROTEL(现为Altium)公司在20世纪80年代末推出的CAD工具,是PCB设计者的首选软件。
它较早在国内使用,普及率最高,在很多的大、中专院校的电路专业还专门开设Protel课程,几乎所有的电路公司都要用到它。
早期的Protel主要作为印刷板自动布线工具使用,其最新版本为AltiumDesigner10,现在普遍使用的是Protel99SE或ProtelDXP,它是个完整的全方位电路设计系统,包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印刷电路板设计(包含印刷电路板自动布局布线),可编程逻辑器件设计、图表生成、电路表格生成、支持宏操作等功能,并具有Client/Server(客户/服务体系结构),同时还兼容一些其它设计软件的文件格式,如ORCAD、PSPICE、EXCEL等。
使用多层印制线路板的自动布线,可实现高密度PCB的100%布通率。
Protel软件功能强大(同时具有电路仿真功能和PLD开发功能)、界面友好、使用方便,但它最具代表性的是电路设计和PCB设计。
1、ProtelDXP主要特点
1)通过设计档包的方式,将原理图编辑、电路仿真、PCB设计及打印这些功能有机地结合在一起,提供了一个集成开发环境。
2)提供了混合电路仿真功能,为设计实验原理图电路中某些功能模块的正确与否提供了方便。
3)提供了丰富的原理图组件库和PCB封装库,并且为设计新的器件提供了封装向导程序,简化了封装设计过程。
4)提供了层次原理图设计方法,支持“自上向下”的设计思想,使大型电路设计的工作组开发方式成为可能。
5)提供了强大的查错功能。
原理图中的ERC(电气法则检查)工具和PCB的DRC(设计规则检查)工具能帮助设计者更快地查出和改正错误。
6)全面兼容Protel系列以前版本的设计文件,并提供了OrCAD格式文件的转换功能。
7)提供了全新的FPGA设计的功能,这好似以前的版本所没有提供的功能。
2、ProtelDXP电路原理图设计
⏹原理图设计是电路设计的基础,只有在设计好原理图的基础上才可以进行印刷电路板的设计和电路仿真等。
⏹电路原理图设计流程:
如图1所示
图1电路原理图设计流程
⏹原理图具体设计步骤:
(1)新建原理图文件。
在进人SCH设计系统之前,首先要构思好原理图,即必须知道所设计的项目需要哪些电路来完成,然后用ProtelDXP来画出电路原理图。
(2)设置工作环境。
根据实际电路的复杂程度来设置图纸的大小。
在电路设计的整个过程中,图纸的大小都可以不断地调整,
设置合适的图纸大小是完成原理图设计的第一步。
(3)放置组件。
从组件库中选取组件,布置到图纸的合适位置,并对组件的名称、封装进行定义和设定,根据组件之间的走
线等联系对组件在工作平面上的位置进行调整和修改使得原理图美观而且易懂。
(4)原理图的布线。
根据实际电路的需要,利用SCH提供的各种工具、指令进行布线,将工作平面上的器件用具有电气意义
的导线、符号连接起来,构成一幅完整的电路原理图。
(5)建立网络表。
完成上面的步骤以后,可以看到一张完整的电路原理图了,但是要完成电路板的设计,就需要生成一个网
络表文件。
网络表是电路板和电路原理图之间的重要纽带。
(6)原理图的电气检查。
当完成原理图布线后,需要设置项目选项来编译当前项目,利用ProtelDXP提供的错误检查报告修
改原理图。
(7)编译和调整。
如果原理图已通过电气检查,那么原理图的设计就完成了。
这是对于一般电路设计而言,尤其是较大的项
目,通常需要对电路的多次修改才能够通过电气检查。
(8)存盘和报表输出:
ProtelDXP提供了利用各种报表工具生成的报表(如网络表、组件清单等),同时可以对设计好的原
理图和各种报表进行存盘和输出打印,为印刷板电路的设计做好准备。
3、ProtelDXP印制电路板设计(PCB设计)
⏹印刷电路板(PCB板)设计的一些基本概念:
一般所谓的PCB电路板有SingleLayerPCB(单面板)、DoubleLayerPCB(双面板)、四层板、多层板等。
●单面板是一种单面敷铜,因此只能利用它敷了铜的一面设计电路导线和组件的焊接。
●双面板是包括Top(顶层)和Bottom(底层)的双面都敷有铜的电路板,双面都可以布线焊接,中间为一层绝缘层,为常用的一种电路板。
●如果在双面板的顶层和底层之间加上别的层,即构成了多层板,比如放置两个电源板层构成的四层板,这就是多层板。
通常的PCB板,包括顶层、底层和中间层,层与层之间是绝缘层,用于隔离布线层。
它的材料要求耐热性和绝缘性好。
早期的电路板多使用电木为材料,而现在多使用玻璃纤维为主。
在PCB电路板布上铜膜导线后,还要在顶层和底层上印刷一层SolderMask(防焊层),它是一种特殊的化学物质,通常为绿色。
该层不粘焊锡,防止在焊接时相邻焊接点的多余焊锡短路。
防焊层将铜膜导线覆盖住,防铜膜过快在空气中氧化,但是在焊点处留出位置,并不覆盖焊点。
对于双面板或者多层板,防焊层分为顶面防焊层和底面防焊层两种。
电路板制作最后阶段,一般要在防焊层之上印上一些文字元号,比如组件名称、组件符号、组件管脚和版权等,方便以后的电路焊接和查错等。
这一层为SilkscreenOverlay(丝印层)。
多层板的防焊层分TopOverlay(顶面丝印层)和BottomOverlay(底面丝印层)。
⏹多层板概念
Ø一般的电路系统设计用双面板和四层板即可满足设计需要,只是在较高级电路设计中,或者有特殊需要,比如对抗高频干扰要求很高情况下才使用六层及六层以上的多层板。
多层板制作时是一层一层压合的,所以层数越多,无论设计或制作过程都将更复杂,设计时间与成本都将大大提高。
Ø如果在PCB电路板的顶层和底层之间加上别的层,即构成了多层板,比如放置两个电源板层构成多层板。
Ø多层板的Mid-Layer(中间层)和InternalPlane(内层)是不相同的两个概念,中间层是用于布线的中间板层,该层均布的是导线,而内层主要用于做电源层或者地线层,由大块的铜膜所构成,其结构如图2所示。
图2多层板剖面图
Ø在图2中的多层板共有6层设计,最上面为TopLayer(顶层);最下为BottomLayer(底层);中间4层中有两层内层,即InternalPlane1和InternalPlane2,用于电源层;两层中间层,为MidLayerl和MidLayer2,用于布导线。
⏹PCB电路板的设计流程
PCB电路板设计的流程如图3所示
图3PCB板设计流程图
1.设计原理图
这是设计PCB电路的第一步,就是利用原理图设计工具先绘制好原理图文件。
如果在电路图很简单的情况下,也可以跳过这一步直接进人PCB电路设计步骤,进行手工布线或自动布线。
2.定义组件封装
原理图设计完成后,组件的封装有可能被遗漏或有错误。
正确加入网表后,系统会自动地为大多数组件提供封装。
但是对于用户自己设计的组件或者是某些特殊组件必须由用户自己定义或修改组件的封装。
3.PCB图纸的基本设置
这一步用于PCB图纸进行各种设计,主要有:
设定PCB电路板的结构及尺寸,板层数目,通孔的类型,网格的大小等,既可以用系统提供的PCB设计模板进行设计,也可以手动设计PCB板。
4.生成网表和载入网表
网表是电路原理图和印刷电路板设计的接口,只有将网表引人PCB系统后,才能进行电路板的自动布线。
在设计好的PCB板上生成网表和加载网表,必须保证产生的网表已没有任何错误,其所有组件能够很好的加载到PCB板中。
加载网表后系统将产生一个内部的网表,形成飞线。
组件布局是由电路原理图根据网表转换成的PCB图,一般组件布局都不很规则,甚至有的相互重迭,因此必须将组件进行重新布局。
组件布局的合理性将影响到布线的质量。
在进行单面板设计时,如果组件布局不合理将无法完成布线操作。
在进行对于双面板等设计时,如果组件布局不合理,布线时。
将会放置很多过孔,使电路板走线变得复杂。
5.布线规则设置
飞线设置好后,在实际布线之前,要进行布线规则的设置,这是PCB板设计所必须的一步。
在这里用户要定义布线的各种规则,比如安全距离、导线宽度等。
6.自动布线
ProtelDXP提供了强大的自动布线功能,在设置好布线规则之后,可以用系统提供的自动布线功能进行自动布线。
只要设置的布线规则正确、组件布局合理,一般都可以成功完成自动布线。
7.手动布线
在自动布线结束后,有可能因为组件布局或别的原因,自动布线无法完全解决问题或产生布线冲突时,即需要进行手动布线加以设置或调整。
如果自动布线完全成功,则可以不必手动布线。
在组件很少且布线简单的情况下,也可以直接进行手动布线,当然这需要一定的熟练程度和实践经验。
8.生成报表文件
印刷电路板布线完成之后,可以生成相应的各类报表文件,比如组件清单、电路板信息报表等。
这些报表可以帮助用户更好的了解所设计的印刷板和管理所使用的组件。
9.档打印输出
生成了各类档后,可以将各类档打印输出保存,包括PCB文件和其它报表文件均可打印,以便永久存档。
⏹PCB布局的基本原则:
保证电路的电气性能;便于产品的生产、维护和使用;导线尽可能短。
⏹PCB布线的基本原则:
先设计公共通路的导线;按信号流向布线;保持良好的导线形状;双面板布线(水平或垂直布线、元件面的导线与焊接面的导线垂直等);地线处理(模拟地与数字地分开,地线尽量宽,大面积地线应设计成网状)。
三、VHDL硬件描述语言编程(20分)
VHDL的全名VHSIC(VeryHighSpeedIntegratedCircuit)HardwareDescriptionLanguage.VHDL是硬件描述语言的业界标准之一。
主要的硬件描述语言(HDL)有VHDL、VerilogHDL、SystemVerilog和SystemC.
1、VHDL编程文件构成
VHDL语言程序主要由5个部分组成:
库(Library)、实体说明(EntityDeclaration)、结构体(Architecture)、程序包(Package)、配置(Configuration)。
基本组成部分为:
库、实体说明、结构体。
2、VHDL端口模式:
a.IN:
输入端口,定义的通道为单向只读模式。
b.OUT:
输出端口,定义的通道为单向输出模式。
c.INOUT:
定义的通道为输入输出双向端口。
c.BUFFER:
缓冲端口,其功能与INOUT类似,区别在于当需要输入数据时,只允许内部回读输出的信号,即允许反馈。
3、VHDL编程实例(2个)
实例1:
图4所示为4选1数据选择器原理示意图,写出函数表达式,并用VHDL语言程序实现。
图44选1数据选择器原理示意图
1)4选1数据选择器的函数表达式为:
F=A1'A0'D0+A1'A0D1+A1A0'D2+A1A0D3
2)VHDL实现的程序如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYmux_4IS
PORT(
d:
INSTD_LOGIC_VECTOR(3DOWNTO0);
a1,a0:
INSTD_LOGIC;
e_l:
INSTD_LOGIC;
f:
OUTSTD_LOGIC);
ENDmux_4;
ARCHITECTUREmux_4pOF7mux_4IS
SIGNALsel:
STD_LOGIC_VECTOR(1DOWNTO0);
BEGIN
sel<=a1&a0;
PROCESS(d,sel,e_l)
BEGIN
IFe_l=‘1’THENf<=‘0’;
ELSIFsel=“00”THENf<=d(0);
ELSIFsel=“01”THENf<=d
(1);
ELSIFsel=“10”THENf<=d
(2);
ELSIFsel=“11”THENf<=d(3);
ENDIF;
ENDPROCESS;
ENDmux_4p;
实例2:
用VHDL设计一位全加器。
在两个一位二进制数Ai和Bi相加时,要考虑相邻低位的进位Ci,即将两个一位二进制数相加的同时,再加上来自低位的进位信号,这种电路称为全加器(Fulladder)。
其真值表如下:
全加器真值表
AiBiCi
SiCi+1
000
001
010
011
100
101
110
111
00
10
10
01
10
01
01
11
由真值表得全加器的逻辑函数:
Si=AiBiCi;
Ci+1=AiBi+Ci(AiBi)
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYadder_1IS
PORT(
ai,bi,ci:
INSTD_LOGIC;
si,co:
OUTSTD_LOGIC);
ENDadder_1;
ARCHITECTUREadder_1pOFadder_1IS
SIGNALh:
STD_LOGIC;
BEGIN
h<=aiXORbi;
si<=hXORci;
co<=(aiANDbi)or(hANDci);
ENDadder_1p;
四、PLD/FPGA可编程器件(20分)
1、概念
PLD(ProgrammableLogicDevice)是一种由用户根据需要而自行构造逻辑功能的数字集成电路。
目前主要有两大类型:
CPLD(ComplexPLD)和FPGA(FieldProgrammableGateArray)。
它们的基本设计方法是借助于EDA软件,用原理图、状态机、布尔表达式、硬件描述语言等方法,生成相应的目标文件,最后用编程器或下载电缆,由目标器件实现。
生产PLD的厂家很多,但最有代表性的PLD厂家为Altera、Xilinx和Lattice公司。
PLD的开发工具一般由器件生产厂家提供,但随着器件规模的不断增加,软件的复杂性也随之提高,目前由专门的软件公司与器件生产厂家使用,推出功能强大的设计软件。
主要器件生产厂家和开发工具介绍如下:
①ALTERA:
20世纪90年代以后发展很快。
主要产品有:
MAX3000/7000、FELX6K/10K、APEX20K、ACEX1K、Stratix等。
其开发工具-MAX+PLUSII是较成功的PLD开发平台,最新又推出了QuartusII开发软件。
Altera公司提供较多形式的设计输入手段,绑定第三方VHDL综合工具,如:
综合软件FPGAExpress、LeonardSpectrum,仿真软件ModelSim。
②XILINX:
FPGA的发明者。
产品种类较全,主要有:
XC9500/4000、Coolrunner(XPLA3)、Spartan、Vertex等系列,其最大的Vertex-IIPro器件已达到800万门。
开发软件为Foundation和ISE。
通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。
全球PLD/FPGA产品60%以上是由Altera和Xilinx提供的。
可以讲Altera和Xilinx共同决定了PLD技术的发展方向。
③Lattice-Vantis:
Lattice是ISP(In-SystemProgrammability)技术的发明者。
ISP技术极大地促进了PLD产品的发展,与ALTERA和XILINX相比,其开发工具比Altera和Xilinx略逊一筹。
中小规模PLD比较有特色,大规模PLD的竞争力还不够强(Lattice没有基于查找表技术的大规模FPGA),1999年推出可编程模拟器件,1999年收购Vantis(原AMD子公司),成为第三大可编程逻辑器件供应商。
2001年12月收购Agere公司(原Lucent微电子部)的FPGA部门。
主要产品有ispLSI2000/5000/8000,MACH4/5。
④ACTEL:
反熔丝(一次性烧写)PLD的领导者。
由于反熔丝PLD抗辐射、耐高低温、功耗低、速度快,所以在军品和宇航级上有较大优势。
ALTERA和XILINX则一般不涉足军品和宇航级市场。
⑤Quicklogic:
专业PLD/FPGA公司,以一次性反熔丝工艺为主,在中国地区销售量不大。
⑥Lucent:
主要特点是有不少用于通讯领域的专用IP核,但PLD/FPGA不是Lucent的主要业务,在中国地区使用的人很少。
⑦ATMEL:
中小规模PLD做得不错。
ATMEL也做了一些与Altera和Xilinx兼容的片子,但在品质上与原厂家还是有一些差距,在高可靠性产品中使用较少,多用在低端产品上。
⑧ClearLogic:
生产与一些著名PLD/FPGA大公司兼容的芯片,这种芯片可将用户的设计一次性固化,不可编程,批量生产时的成本较低。
⑨WSI:
生产PSD(单片机可编程外围芯片)产品。
这是一种特殊的PLD,如最新的PSD8xx、PSD9xx集成了PLD、EPROM、Flash,并支持ISP(在线编程),集成度高,主要用于配合单片机工作。
⑦Altium:
提供Actel、Altera、Lattice和Xilinx四家PLD/FPGA器件的通用跨厂商开发平台,最新推出了AltiumDesigner10软件中集成了AldecHDL仿真功能。
顺便提一下:
PLD(可编程逻辑器件)是一种可以完全替代74系列及GAL、PLA的新型电路,只要有数字电路基础,会使用计算机,就可以进行PLD的开发。
PLD的在线编程能力和强大的开发软件,使工程师可以几天,甚至几分钟内就可完成以往几周才能完成的工作,并可将数百万门的复杂设计集成在一颗芯片内。
PLD技术在发达国家已成为电子工程师必备的技术。
2、设计流程
FPGA/CPLD设计流程:
输入(图形输入[原理图、状态图、波形图输入]、HDL文本输入)、综合、适配、仿真(时序与功能)、编程下载、硬件测试。
3、IP核(IntellectualProperty)定义:
就是知识产权核或知识产权模块的意思。
4、可编程逻辑器件分类:
5、FPGA/CPLD编程工艺分类:
a.基于电擦除的存储单元的EEPROM或Flash技术。
CPLD一般使用此技术进行编程,CPLD被编程后改变了电可擦除存储单元中的信息,掉电后课保存。
b.基于SRAM查找表的编程单元。
掉电信息丢失,在下次上电后还需重新载入信息,大部分FPGA采用此工艺。
c.基于反熔丝编程单元。
Actel的FPGA、Xilinx早期的FPGA采用此结构,反熔丝技术编