EDA技术基础-常用仿真分析
- 格式:ppt
- 大小:1.10 MB
- 文档页数:6
电子EDA技术的基础知识现代电子设计技术的核心就是EDA技术。
EDA技术是一门综合性学科,它打破了软件和硬件间的壁垒,代表了电子设计技术和应用技术的发展方向。
本文将带你一起来了解关于EDA的分类、基本特征、应用、常用软件以及发展前景。
电子设计自动化(Electronic Design Automation)的缩写即是EDA.EDA技术是把计算机技术应用在电子设计过程的一门技术,从而实现了电子设计的自动化进行,现今EDA技术已经广泛用于电子电路的设计仿真以及集成电路版图设计、印刷电路板的设计和可编程器件的编程等工作中。
EDA技术是一门综合的学科,它代表了未来电子设计技术的发展方向,打破了软硬件之间的隔阂。
一、EDA的分类我们依据计算机辅助技术介入程度的不同,将电子系统设计分为以下三类:1.人工的设计方法此种设计方法从提出方案到验证方案等等均需要由人工来完成,并且方案的验证必须搭建实际的电路来完成验证。
这种人工的设计方法缺陷在于:开销特别大,但是效率却极低,并且周期比较长,还有一点就是现在的产品不是单单靠人工就能够完成的。
2.计算机辅助设计CAD1970年以来,计算机开始被应用于Ic版图设计以及PCB布局布线,后来发展为可对电路功能和结构进行设计,并且在原来的基础上增添了逻辑仿真、自动布局布线等等的功能。
可以这么说CAD技术的应用取得了可喜的成果。
但我们也不能过于乐观,因为各种各样的软件层出不穷,每一种设计软件只能够解决一部分的问题,这就造成了软件不能完全脱离人去设计,智能化程度不能够满足人们的需求。
3.EDA电子设计自动化1990年以后是EDA时代的到来。
伴随着电子计算机的不断发展,计算机系统被广泛的应用于电子产品的设计和电子产品的测试以及电子产品的制造等各环节当中。
由于电子产品的性能不断提高以及精密度的增加,产品的更新所需要的时间越来越短。
相应的,电子产品的设计和电子产品的测试以及电子产品的制造也必须跟上更新的步伐。
技术是在电子CAD技术基础上发展起来的软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从设计、性能分析到设计出IC 版图或版图的整个过程在计算机上自动处理完成。
现在对EDA的概念或范畴用得很宽。
包括在、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。
例如在飞机过程中,从设计、性能及特性分析直到飞行模拟,都可能涉及到EDA技术。
本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。
EDA设计可分为系统级、电路级和物理实现级。
EDA常用软件EDA工具层出不穷,目前进入我国并具有广泛影响的EDA软件有:EWB、PSCE、、PCAD、Prol、ViewLogic、、Graphics、Synopsys、LSIlogic、、croSim 等等。
这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同时以可以进行PCB自动布局,可输出多种网表文件与第三方软件。
下面按主要功能或主要应用场合,分为电路设计与仿真工具、PCB设计软件、IC设计软件、PLD设计工具及其它EDA软件,进行简单介绍。
1、电子电路设计与仿真工具电子电路设计与仿真工具包括SPICE/PSPICE;EWB;;SystemView;MMICAD等。
下面简单介绍前三个软件。
(1)SPICE(Simulaon Prog with Integrated Circuit Emphasis)是由美国加州大学推出的电路分析仿真软件,是20世纪80年代世界上应用最广的电路设计软件,1998年被定为美国国家标准。
1984年,美国MicroSim公司推出了基于SPICE的微机版PSPICE(Peonal—SPICE)。
EDA仿真软件介绍EDA(Electronic Design Automation)是一类电子设计自动化软件,用于辅助电子产品的设计与仿真。
EDA软件帮助工程师在电子产品的设计过程中快速、准确地完成各种任务,从而提高设计效率和产品质量。
本文将介绍几款常见的EDA仿真软件,以及它们的特点和优势。
1. Cadence AllegroCadence Allegro是一款功能强大的EDA仿真软件。
它提供了完整的设计流程,包括原理图设计、PCB(Printed Circuit Board)布局和仿真。
Cadence Allegro可以帮助工程师快速设计复杂的电子电路,并进行各种信号和功耗仿真。
该软件具有直观的用户界面,易于学习和使用。
此外,Cadence Allegro还提供了丰富的库和模型,方便用户进行各种电路设计和仿真。
2. Mentor Graphics PADSMentor Graphics PADS是一款流行的EDA仿真软件,专门用于PCB设计和仿真。
它提供了直观的用户界面,支持多种设计工具和功能,如原理图设计、电路仿真、PCB布局和封装设计等。
此外,Mentor Graphics PADS还提供了强大的仿真和验证功能,可以帮助工程师检测电路的性能和可靠性问题,提高产品的质量。
3. Altium DesignerAltium Designer是一款专业的PCB设计和仿真软件。
它提供了完整的设计流程,包括原理图设计、PCB布局和仿真。
Altium Designer具有友好的用户界面,支持多种设计工具和功能,如自动布线、3D模拟和原理图捕捉等。
此外,Altium Designer还提供了丰富的库和模型,方便用户进行各种电路设计和仿真。
4. Ansys HFSSAnsys HFSS是一款强大的高频电磁场仿真软件。
它可以帮助工程师对射频(Radio Frequency)和微波(Microwave)电路进行仿真,包括天线设计、滤波器设计和射频电路设计等。
E D A基础总结综述部分1.EDA的中文全称为电子设计自动化,英文全名为Electronic Design Automation;2.EDA平台常用的两种输入电路的方法是:电路原理图输入法、HDL输入法;3.EDA平台工作流程:电路输入、综合优化、功能仿真、布局布线、门级仿真;数字电路部分1.EDA中常用的仿真语言为Verilog和VHDL;2.VHDL其英文全名为VHSIC Hardware Description Language,而VHSIC则是Very HighSpeed Intergeraterd Circuit的缩写词,意为甚高速集成电路,故VHDL其准确的中文译名为甚高速集成电路的硬件描述语言;3.Verilog HDL其英文全名为Verilog Hardware Decription Language,HDL中文译名为硬件描述语言;4.Verilog和VHDL的比较共同点:能形式化地抽象表示电路的行为和结构;支持逻辑设计中层次与范围的描述;可借用高级语言的精巧结构来简化电路行为的描述;具有电路仿真与验证机制以保证设计的正确性;支持电路描述由高层到低层的综合转换;硬件描述与实现工艺无关;便于文档管理;易于理解和设计重用;不同点:Verilog在系统级抽象方面略差,VHDL在门级开关电路方面略差;5.软核、固核和硬核软核:功能经过验证的、可综合的、实现后电路结构总门数在5000门以上的Verilog 模型;固核:在某一种现场可编程门列器件上实现的经验证是正确的,且总门数在5000门以上的电路结构编码文件;硬核:在某一种专用集成电路工艺的器件上实现的,经验证是正确的,且总门数在5000门以上的电路结构版图掩膜;6.自顶向下Top Down设计7.自底向上Down Top设计8.名词解释:ASIC:Application Specific Integrated Circuit,专用集成电路;FPGA:Field Programmable Gate Array,现场可编程门阵列;PLD:Programmable Logic Device,可编程逻辑器件;Verilog编程题:数据比较器2位//数据比较器module compare equal, a, b;input a,b;output equal;reg equal;always a or bif a == bequal = 1;elseequal = 0;endmodule//数据比较器测试代码`timescale 1ns/1ns`include "./1-1.v"module t;reg a,b;wire equal;initialbegina=0;b=0;100 a=0; b=1;100 a=1; b=1;100 a=1; b=0;100 a=0; b=0;100 $stop;endcompare m.equalequal, .aa, .bb; endmodule数据比较器8位module compare8equal, a, b;input 7:0a, b;output equal;reg equal;always a or bif a > bbeginequal = 1;endelsebeginequal = 0;endendmodule分频器module half_clkreset, clk_in, clk_out; input clk_in, reset;output clk_out;reg clk_out;always posedge clk_inbeginifreset clk_out = 0;else clk_out = ~clk_out;endendmodule10M时钟分频为500Kmodule fdivision RESET, MB, KB;input MB, RESET;output KB;reg KB;reg 7:0 j;always posedge MBif RESETbeginKB <= 0;j <= 0;endelsebeginif j == 19begin j <= 0;KB <= ~KB;endelsej <= j+1;endendmodule译码电路`define plus 3'd0`define minus 3'd1`define band 3'd2`define bor 3'd3`define unegate 3'd4module aluout, opcode, a, b;output7:0 out;reg7:0 out;input2:0 opcode;input7:0 a,b;always opcode or a or bbegincaseopcode`plus: out = a + b;`minus: out = a - b;`band: out = a & b;`bor: out = a | b;`unegate: out = ~a;default: out = 8'hx;endcaseendendmodule八路数据选择器module selecting8addr, in1, in2, in3, in4, in5, in6, in7, in8, dataout, reset; input 2:0 addr;input 3:0 in1,in2,in3,in4,in5,in6,in7,in8;input reset;output 3:0 dataout;reg 3:0 dataout;always addr or in1 or in2 or in3 or in4 or in5 or in6 or in7 or in8 or reset beginifresetcaseaddr3'b000: dataout = in1;3'b001: dataout = in2;3'b010: dataout = in3;3'b011: dataout = in4;3'b100: dataout = in5;3'b101: dataout = in6;3'b110: dataout = in7;3'b111: dataout = in8;endcaseelsedataout = 0;endendmodule逻辑运算电路module tryfunctclk, n, result, reset;output31:0 result;input3:0 n;input reset, clk;reg31:0 result;always posedge clkbeginif resetresult <=0;elsebeginresult <= nfactorialn/n2+1;endendfunction 31:0 factorial;input 3:0 operand;reg 3:0 index;beginfactorial = operand 1:0;for index = 2; index <= operand; index = index + 1 factorial = index factorial;endendfunctionendmodulemodule tryfunctclk, n, result, reset;output31:0 result;input3:0 n;input reset, clk;reg31:0 result;always posedge clkbeginif resetresult <=0;elsebeginresult <= nfactorialn/n2+1;endendfunction 31:0 factorial;input 3:0 operand;reg 3:0 index;beginfactorial = operand 1:0;for index = 2; index <= operand; index = index + 1 factorial = index factorial;endendfunctionendmodule高速排序组合逻辑module sort4ra, rb, rc, rd, a, b, c, d;output3:0 ra, rb, rc, rd;input3:0 a, b, c, d;reg3:0 ra, rb, rc, rd;reg3:0 va, vb, vc, vd;always a or b or c or dbegin{va, vb, vc, vd} = {a, b, c, d};sort2va, vc;sort2vb, vd;sort2va, vb;sort2vc, vd;sort2vb, vc;{ra, rb, rc, rd} = {va, vb, vc, vd};endtask sort2;input3:0x, y;reg3:0 tmp;if x > ybegintmp = x;x = y;y = tmp;endendtaskendmodule检测5位二进制序列10010module seqdetx, z, clk, rst, state;input x, clk, rst;output z;output2:0 state;reg2:0 state;wire z;parameter IDLE = 'd0, A = 'd1, B = 'd2, C = 'd3, D = 'd4, E = 'd5, F = 'd6, G = 'd7; assign z = state == E && x == 0 1:0;always posedge clkif rstbeginstate <= IDLE;endelsecase stateIDLE:if x == 1beginstate <= A;endA:if x == 0beginstate <= B;endB:if x == 0beginstate <= C;endelsebeginstate <= F;endC:if x == 1beginstate <= D;endelsebeginstate <= G;endD:if x == 0beginstate <= E;endelsebeginstate <= A;endE:if x == 0beginstate <= C;endelsebeginstate = A;endF:if x == 1beginstate <= A;endelsebeginstate <= B;endG:if x == 1beginstate <= F;enddefault:state = IDLE;endcaseendmodule模拟电路部分1.目前,集成电路最常用的材料是单晶硅;2.集成电路的生产由设计、制造、封装三部分组成;3.集成电路中基片主要制作工艺为:光刻、扩散、注入、刻蚀、键合;4.集成电路中基片的制造步骤为:光刻、扩散、注入、刻蚀;5.衡量集成电路产业水平的两个主要参数为:硅晶圆片直径和光刻精度特征尺寸;这两个参数在业界达到的水平为:硅晶圆片直径12英寸300mm,光刻精度0.13um;主流水平为:硅晶圆片直径200mm,光刻精度0.18um;6.模拟电路中常用的仿真算法是SPICE,英文全名为Simulation Program with IntegratedCircuit Emphasis;7.世界上设计EDA软件实力最强的两个公司为Cadence和Synopsys;其中,Cadence的优势为电路布局布线,Synopsys的优势为逻辑综合仿真;8.WorkBench是加拿大IIT公司推出的电子线路仿真软件;它可以对模拟、数字和模拟/数字混合电路进行仿真,克服了传统电子产品的设计受实验室客观条件限制的局限性,用虚拟的元件搭接各种电路,用虚拟的仪表进行各种参数和性能指标的测试;特点如下:1系统集成度高,界面直观,操作方便;2具备模拟、数字及模拟/数字混合电路仿真;3提供较为丰富的元器件库;4电路分析手段完备;5输出方式灵活;6兼容性好;9.SPICE语言举例:EXAMPLE 文件名任意名都可以但必须要有VCC 8 0 12 电源正极接于节点8 负极接于0 电压为12VVEE 0 9 12 电源正极接于节点0,负接接于节点9,电压为12V;VIN 1 0 AC 1 SIN0 0.1 5MEG 信号源VIN 接于1 和接点0;交流1V 进行交流分析同时加一个正弦信号直流偏置为0,振幅为0.1V频率为5M的交流信号源,进行瞬态分析; RC1 8 4 10K 电阻RC1 分别接于节点8 节点4;阻值为10K;RC2 8 5 10K 电阻RC2 分别接于节点8 节点5;阻值为10K;RS 2 1 1K 电阻RS 分别接于节点 1 节点0;阻值为1K;RS1 8 7 20K 电阻RS1 分别接于节点8 节点7 阻值为20K;RS2 3 0 1K 电阻RS2 分别接于节点3 节点0 阻值为1K;Q1 4 2 6 MOD1 三极管Q1 CBE 分别接于节点 4 2 6 模型为MOD1Q2 5 3 6 MOD1 三极管Q2 CBE 分别接于节点 5 3 6 模型为MOD1Q3 6 7 9 MOD1 三极管Q3 CBE 分别接于节点 6 7 9 模型为MOD1Q4 7 7 9 MOD1 三极管Q4 CBE 分别接于节点 7 7 9 模型为MOD1.OP 求出直流工作点.本电路共有9个节点;温度值为27度;.DC VIN -.15 .15 .01 DC为直流分析语句,分析输入电压从-0.15V 到0.15V扫描特性,每0.1V作一次分析;.PRINT DC V4 V5 .PRINT 为打印语句,其中DC是打印直流内容,这里规定打印节点4和5上的电位,既相对地参考点的电压随输入的变化关系;.PLOT DC V4 V5 .PLOT为绘图语句,其中DC表示绘制直流分析的传输特性,说明是绘制V4 V5的输出电压和VIN关系曲线;.TF V5 VIN .TF是转移函数分析语句,该句表示计算直流分析时,小信号输出电压V5和输入电压VIN的转移函数值,输入电阻和输出电阻;.AC DEC 10 25K 250MEG .AC是交流分析语句,是在规定的频率范围内从25K到250M进行频域分析DEC表示按数量级变化,10表示每一数量级中取的分析点数目; .PRINT AC VM5 VP5 打印AC分析VM5VP5的取点数;.PLOT AC VM5 VP5 绘制AC分析VM5VP5的取点数;.TRAN 4N 100N 1N .TRAN是瞬态分析语句,并规定了打印或绘图时间增量为4N秒,计算终止时间为100N秒,打印或绘图开始时间1NS;.PRINT TRAN V5 V4 .打印出4.5点的电压随时间变化;.PLOT TRAN V5 V4 .绘图出节点4.5的电压随时间变化;.END 结束语句...一定要有;。
EDA仿真功能及应用介绍1、仿真的目的:在软件环境下,验证电路的行为和设想中的是否一致。
2、仿真的分类:a) 功能仿真:在RTL层进行的仿真,其特点是不考虑构成电路的逻辑和门的时间延迟,着重考虑电路在理想环境下的行为和设计构想的一致性;b) 时序仿真:又称为后仿真,是在电路已经映射到特定的工艺环境后,将电路的路径延迟和门延迟考虑进对电路行为的影响后,来比较电路的行为是否还能够在一定条件下满足设计构想。
3、功能仿真的目的:a) 设计出能工作的电路:因此功能仿真不是一个孤立的过程,其和综合、时序分析等形成一个反馈工作过程,只有这个过程收敛,各个环节才有意义。
而孤立的功能仿真通过是没有意义的,如果在时序分析过程中发现时序不满足需要更改代码,则功能仿真必须从新进行。
因此正确的工作流程是:b)代码排错:功能仿真是代码排错的最重要的手段之一。
4、 modelsim的高级功能:Code Coveragea) 代码覆盖率是验证激励是否完备,检验代码质量的一个重要手段。
测试激励的代码覆盖率至少要达到95%以上,才能基本认为代码在逻辑上是通过质量控制的,才能进入综合步骤;b) 代码覆盖率是保证高质量代码的必要条件,但却不是充分条件。
即便代码行覆盖和分支覆盖都能够达到100%,也不能肯定的说代码已经得到100%的验证。
除非所有的分支覆盖都能够进行组合遍历。
c) 在大的设计中,如果想通过一个激励就验证完一个设计或者模块是不现实的。
一方面是从逻辑功能上很难做到;另外一方面是因为如果在一个激励中包括了各种情况,整个仿真过程的速度会随着计算机内存的消耗而成线性下降,效率低下。
d) 通常的做法是每一个激励只验证电路功能的某个方面。
整个电路的功能验证由数个激励共同完成。
在这种验证方法中代码覆盖率更显重要,因为可以通过代码覆盖率来控制激励对功能的覆盖程度。
e) modelsim的Code coverage不但能记录各个激励对代码的“行覆盖”和“分支覆盖”,而且能够将各个激励的覆盖记录进行合并,做到对覆盖率的全面监测。