您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > EDA技术及应用复习重点
EDA技术及应用复习重点一、基础知识1、什么叫EDA技术?利用EDA技术进行电子系统设计具有的特点。(P1)狭义的EDA技术,就是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术,或称为IES/ASIC自动设计技术。广义的EDA技术,除了狭义的EDA技术外,还包括计算机辅助分析CAA技术(如PSPICE、EWB、MATLAB等)和印刷电路板计算机辅助设计PCB-CAD技术(如PROTEL、ORCAD等)。在广义的EDA技术中,CAA技术和PCB-CAD技术不具备逻辑综合和逻辑适配的功能。1.1、利用EDA技术(特指IES/ASIC自动设计技术)进行电子系统的设计,具有以下几个特点:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高;⑥从以前的“组合设计”转向真正的“自由设计”;⑦设计的移植性好,效率高;⑧非常适合分工设计,团体协作。2、常用的硬件描述语言(P4)常用的硬件描述语言有VHDL、Verilog和ABEL。3、EDA软件系统应当包含的内容。(P6)EDA软件系统应当包含:设计输入子模块、设计数据库子模块、分析验证子模块、综合仿真子模块、布局布线子模块等。(1)设计输入子模块:该模块接受用户的设计描述,并进行语义正确性、语法规则的检查,检查通过后,将用户的设计描述数据转换为EDA软件系统的内部数据格式,存入设计数据库,以便被其他子模块调用。(2)设计数据库子模块:该模块存放系统提供的库单元以及用户的设计描述和中间设计结果。(3)分析验证子模块:该模块包括各个层次的模拟验证、设计规则的检查、故障诊断等。(4)综合仿真子模块:该模块包括各个层次的综合工具。(5)布局布线子模块:该模块实现由逻辑设计到物理实现的映射,因此与物理实现的方式密切相关。4、FPGA/CPLD工程设计流程(P9)第一,需要进行“源程序的编辑和编译”——用一定的逻辑表达手段将设计表达出来;第二,要进行“逻辑综合”——将用一定的逻辑表达手段表达出来的设计,经过一系列的操作,分解成一系列的基本逻辑电路及对应关系(电路分解);第三,要进行“目标器件的布线/适配”——在选定的目标器件中建立这些基本逻辑电路及对应关系(逻辑实现);第四,目标器件的编程/下载——将前面的软件设计经过编程变成具体的设计系统(物理实现);最后,要进行硬件仿真/硬件测试——验证所设计的系统是否符合设计要求。同时,在设计过程中要进行有关“仿真”——模拟有关设计结果,看是否与设计构想相符。5、数字系统设计模型的优点,采用自顶向下的设计方法的优点(P15)5.1数字系统设计模型的优点:(1)把数字系统划分为控制子系统和数据处理子系统两个主要部分,使设计者面对的电路规模减小,二者可以分别设计。(2)数字系统中控制子系统的逻辑关系比较复杂,将其独立划分出来后,可突出设计重点和分散设计难点。(3)当数字系统划分为控制子系统和数据处理子系统后,逻辑分工清楚,各自的任务明确,这可以使电路的设计、调测和故障处理都比较方便。5.2自顶向下的设计方法的优点:(1)自顶向下设计方法是一种模块化设计方法。对设计的描述从上到下逐步由粗略到详细,符合常规的逻辑思维习惯。由于高层设计与器件无关,因此设计易于在各种集成电路工艺或可编程器件之间移植。(2)适合多个设计者同时进行设计。随着技术的不断进步,许多设计由一个设计者已无法完成,由多个设计者分工协作完成一项设计的情况越来越多。在这种情况下,应用自顶向下的设计方法便于由多个设计者同时进行设计,对设计任务进行合理分配,用系统工程的方法对设计进行管理。6、数字系统的设计原则(P16)分割准则、系统的可观测性、同步和异步电路、最优化设计、系统设计的艺术6.1、数字系统的设计步骤1.系统任务分析2.确定逻辑算法3.建立系统及子系统模型4.系统(或模块)逻辑描述5.逻辑电路级设计及系统仿真6.系统的物理实现7、PLD的分类方法(P22)1.从结构的复杂度分类:一般可将PLD分为简单PLD和复杂PLD(CPLD),或分为低密度PLD和高密度PLD(HDPLD)。2.从互连结构上分类:可将PLD分为确定型和统计型两类。确定型PLD提供的互连结构每次用相同的互连线实现布线,统计型结构是指设计系统每次执行相同的功能,却能给出不同的布线模式,一般无法确切地预知线路的延时。3.从可编程特性上分类:可将PLD分为一次可编程和重复可编程两类。一次可编程的典型产品是PROM、PAL和熔丝型FPGA,其他大多是重复可编程的。4.从可编程元件上分类:一般有五种编程元件:①熔丝型开关;②可编程低阻电路元件;③EPROM的编程元件;④EEPROM的编程元件;⑤基于SRAM的编程元件。8、CPLD和FPGA的编程与配置(P98)CPLD的编程主要要考虑编程下载接口及其连接,而FPGA的配置除了考虑编程下载接口及其连接外,还要考虑配置器件问题。FPGA的配置模式是指FPGA用来完成设计时的逻辑配置和外部连接方式。只有经过逻辑配置后,FPGA才能实现用户需要的逻辑功能。FPGA器件的配置电路方法:1.使用PC并行口配置FPGA2.使用专用配置器件配置FPGA3.使用单片机配置FPGA9、FPGA和CPLD的开发应用选择(P167)1.器件的逻辑资源量的选择首先要考虑的是所选的器件的逻辑资源量是否满足本系统的要求。(1)硬件描述语言的选择、描述风格的选择以及HDL综合器的选择。(2)综合和适配开关的选择。如选择速度优化,则将耗用更多的资源,而若选择资源优化,则反之。在EDA工具上还有许多其他的优化选择开关,都将直接影响逻辑资源的利用率。(3)逻辑功能单元的性质和实现方法。一般情况,许多组合电路比时序电路占用的逻辑资源要大,如并行进位的加法器、比较器以及多路选择器。2.芯片速度的选择:芯片速度的选择应与所设计的系统的最高工作速度相一致。3.器件功耗的选择4.FPGA/CPLD的选择(1)在中小规模范围,CPLD价格较便宜,能直接用于系统。(2)开发CPLD的EDA软件比较容易得到,其中不少PLD公司还有条件地提供免费软件。(3)CPLD的结构大多为EEPROM或FlashROM形式,具有编程后即可固定下载的逻辑功能,使用方便,电路简单。(4)目前最常用的CPLD多为在系统可编程的硬件器件,编程方式极为便捷。这一优势能保证所设计的电路系统随时可通过各种方式进行硬件修改和硬件升级,且有良好的器件加密功能。(5)CPLD中有专门的布线区和许多块,无论实现什么样的逻辑功能,或采用怎样的布线方式,引脚至引脚间的信号延时几乎是固定的,与逻辑设计无关。5.FPGA和CPLD封装的选择6.其他因素的选择二、程序编辑1、全加器用VerilogHDL设计一个1位二进制全加器。(P114)1)或门模块myor2.v//或门模块myor2.vmodulemyor2(a,b,c);//模块描述开始inputa,b;//模块输入端口说明outputc;//模块输出端口说明//数据流方式描述模块功能assignc=a|b;//连续赋值语句描述模块功能endmodule//模块描述结束2)半加器模块h_adder.v//半加器模块h_adder.vmoduleh_adder(a,b,so,co);//模块描述开始inputa,b;//模块输入端口说明outputso,co;//模块输出端口说明//数据流方式描述模块功能assignso=(a|b)&&(!(a&&b));//连续赋值语句描述模块功能assignco=!(!(a&&b));//连续赋值语句描述模块功能endmodule//模块描述结束3)全加器f_adder.v//全加器f_adder.vmodulef_adder(ain,bin,cin,sum,cout);//模块描述开始inputain,bin,cin;//模块输入端口说明outputsum,cout;//模块输出端口说明wires1,s2,s3;//数据类型说明//使用元件实例化语句描述系统的组成结构h_adderu1(.a(ain),.b(bin),.so(s2),.co(s1));//名字关联元件实例化h_adderu2(.a(s2),.b(cin),.so(sum),.co(s3));//名字关联元件实例化myor2u3(.a(s1),.b(s3),.c(cout));//名字关联元件实例化endmodule//模块描述结束2、译码器(1)3–8线译码器(高电平有效)。(P175)//3–8线译码器(高电平有效)decode3_8a.vmoduledecoder3_8a(ain,en,yout);inputen;input[2:0]ain;output[7:0]yout;reg[7:0]yout;always@(enorain)beginif(!en)yout=8'b00000000;elsecase(ain)3'b000:yout=8'b00000001;3'b001:yout=8'b00000010;3'b010:yout=8'b00000100;3'b011:yout=8'b00001000;3'b100:yout=8'b00010000;3'b101:yout=8'b00100000;3'b110:yout=8'b01000000;3'b111:yout=8'b10000000;default:yout=8'b00000000;endcaseendendmodule(2)3–8线译码器(低电平有效)。//3–8线译码器(低电平有效)decode3_8b.vmoduledecoder3_8b(g1,g2a,g2b,c,b,a,y7,y6,y5,y4,y3,y2,y1,y0);inputg1,g2a,g2b,c,b,a;outputy7,y6,y5,y4,y3,y2,y1,y0;regy7,y6,y5,y4,y3,y2,y1,y0;always@(g1org2aorg2borcorbora)beginif((g1==1'b0)||(g2a==1'b1)||(g2b==1'b1)){y7,y6,y5,y4,y3,y2,y1,y0}=8'b11111111;elseif((g1==1'b1)&&(g2a==1'b0)&&(g2b==1'b0))begincase({c,b,a})3'b000:{y7,y6,y5,y4,y3,y2,y1,y0}=8'b11111110;3'b001:{y7,y6,y5,y4,y3,y2,y1,y0}=8'b11111101;3'b010:{y7,y6,y5,y4,y3,y2,y1,y0}=8'b11111011;3'b011:{y7,y6,y5,y4,y3,y2,y1,y0}=8'b11110111;3'b100:{y7,y6,y5,y4,y3,y2,y1,y0}=8'b11101111;3'b101:{y7,y6,y5,y4,y3,y2,y1,y0}=8'b11011111;3'b110:{y7,y6,y5,y4,y3,y2,y1,y0}=8'b10111111;3'b111:{y7,y6,y5,y4,y3,y2,y1,y0}=8'b01111111;default:{y7,y6,y5,y4,y3,y2,y1,y0}=8'b11111111;endcaseendelse{y7,y6,y5,y4,y3,y2,y1,y0}=8'b11111111;endendmo
本文标题:EDA技术及应用复习重点
链接地址:https://www.777doc.com/doc-1863975 .html