资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,数字集成电路的设计流程,设计输入:以电路图或,HDL,语言的形式形成,电,电路文件;输入,的,的文件经过编译,后,后,可以形成对,电,电路逻辑模型的,标,标准描述;,逻辑仿真(功能,仿,仿真):对如上形成的,逻,逻辑描述加入输,入,入测试信号,检,查,查输出信号是否,满,满足设计要求;,在,在此没有考虑任,何,何时间关系,只,是,是检测逻辑是否,有,有错;,数字集成电路的,设,设计流程,系统分割(设计,综,综合):采用特定的设,计,计方法分解实现,电,电路模型,得到,电,电路实际采用的,逻,逻辑单元及其相,互,互连接形式;在,GA,设计时,电路会,分,分割为,2-3,输入的逻辑单元,,,,在,FPGA,设计中,分割为,4,输入逻辑单元,而采用,CPLD,设计时,则分割,为,为更大的逻辑单,元,元。,数字集成电路的,设,设计流程,前仿真:采用综合出的,电,电路结构,对每,个,个逻辑单元添加,上,上对应的时间延,迟,迟信息;在此基,础,础上进行仿真,,检,检测电路是否存,在,在逻辑或时序错,误,误;,电路的布局,定,位,位与布线:对于通过前仿,真,真的电路系统,,从,从全局到局部,,进,进行每个单元的,定,定位以及相关的,连,连线安排;,数字集成电路的,设,设计流程,电路参数提取:根据连线的具,体,体长度和负载程,度,度,提取每一根,连,连线的电阻,/,电容参数,得到,相,相应的时间延迟,信,信息;,后仿真:将提取的连线,参,参数代入到电路,中,中,在此基础上,进,进行仿真,检测,电,电路是否存在逻,辑,辑或时序错误;,数字集成电路的,设,设计流程,CAD,阶段,(20,世纪,60-80,年代初期,),利用计算机辅助,进,进行,IC,版图编辑、,PCB,布局布线,取代,手,手工操作。出现,大,大量的软件工具,产,产品。,由于各公司独立,开,开发,设计各阶,段,段的软件彼此独,立,立,不能进行系,统,统级的仿真与综,合,合,不利于复杂,系,系统设计。,电子系统设计的,自,自动化过程,CAE,阶段,(80,年代到,90,年代初期,),各种设计工具,,如,如原理图输入、,编,编译与链接、逻,辑,辑模拟、测试码,生,生成、版图自动,布,布局以及各种单,元,元库均已齐全。,可,可以由,RTL,级开始,实现从,设,设计输入到版图,输,输出的全过程设,计,计自动化。,各种底层文本设,计,计语言开始涌现,。,。,电子系统设计的,自,自动化过程,EDA,阶段,(20,世纪,90,年代以后,),开始追求贯彻整,个,个设计过程的自,动,动化,,硬件描述语言,(HDL),已经成为广泛使,用,用的标准,设计,的,的工具也已经相,对,对成熟,从设计,输,输入、逻辑综合,到,到各层次的仿真,工,工具都已具备比,较,较完善的性能。,设,设计者可将精力,集,集中于创造性的,方,方案与概念的构,思,思上。,电子系统设计的,自,自动化过程,在逻辑设计阶段,,,,针对设计的输,入,入编辑、仿真和,综,综合过程,需要,使,使用必要的软件,工,工具进行支持;,这种设计工具主,要,要可以分为两类,:,:,一类是由,PLD,的制造商推出的,针,针对特定器件的,设,设计工具;另一,类,类是由专业软件,公,公司推出的针对,特,特定用途的设计,工,工具。,数字集成电路的,设,设计工具,由,PLD,的制造商推出,,例,例如,Altera,公司的,MaxplusII,Quartus II,,,Xilinx,公司的,ISE,等。这类工具的,优,优点是从设计输,入,入直到器件下载,,,,设计的全过程,都,都能在一个工具,中,中实现,使用非,常,常简单方便;缺,点,点是该类工具以,器,器件综合为目标,,,,对于不能实现,直,直接综合的电路,的,的行为设计不能,支,支持。,针对特定器件,的,的设计工具,由专业的工具,设,设计者推出,,例,例如,Synplicity,公司的综合工,具,具,Synplify,ModelTechnology,公司的仿真工,具,具,ModelSim,等。这类工具,通,通常专业性比,较,较强,包容性,好,好,可以最大,限,限度地兼容,HDL,语言的各种描,述,述,适应从抽,象,象到具体的各,种,种设计方式。,缺,缺点是其专用,性,性比较强,使,用,用的简便性不,及,及第一类。,针对特定用途,的,的设计工具,仿真工具,ModelSim,综合工具,Synplify,设计工具,Maxplus II,Quartus,关于设计工具,的,的简单介绍,电路仿真的要,点,点,使用输入向量,对,对电路模型进,行,行测试;,仿真失败表明,该,该模型存在错,误,误(不能工作,),);,仿真成功不能,证,证明该模型正,确,确,!,仿真可以从高,级,级别到低级别,分,分为很多层次,,,,高级别比较,抽,抽象,低级别,比,比较详细。,行为仿真,(,功能仿真),对于行为模型,进,进行仿真:,根据输入的变,化,化或指定的时,间,间,开始一个,仿,仿真循环,执,行,行所有进程;,每个进程启动,执,执行到其中止,为,为止;,模型中的有效,信,信号更新时,,会,会产生一个事,件,件;,如果在本仿真,循,循环中有信号,产,产生了事件,,则,则仿真将重新,执,执行一遍;,仿真循环的执,行,行时间为,delta,时间。,结构仿真(前,仿,仿真),对于电路逻辑,结,结构模型进行,仿,仿真:,结构仿真可以,根,根据使用器件,的,的情况,为不,同,同的元件添加,不,不同的延迟时,间,间,所以能够,在,在一定程度上,反,反映出电路的,时,时间性能,并,分,分析影响电路,速,速度的关键因,素,素,便于对电,路,路进行修改。,电路仿真(后,仿,仿真),对于布局布线,后,后的电路模型,进,进行仿真:,电路仿真可以,根,根据器件的布,局,局和连接情况,,,,通过从电路,中,中提取连线物,理,理参数,估算,出,出连线延迟,,从,从而为电路中,信,信号的传递附,加,加传输延迟,,能,能够更准确地,反,反映出电路的,时,时间性能,便,于,于进行电路的,时,时序设计修改,。,。,仿真工具用于,对,对,HDL,程序进行仿真,,,,采用软件运,算,算形式对电路,功,功能进行验证,;,;该仿真工具,全,全面支持,IEEE,常见的各种硬,件,件描述语言标,准,准,支持语言,中,中的各种抽象,行,行为描述,可,以,以用于对电路,设,设计各阶段的,仿,仿真。,HDL,仿真工具:,Modelsim,软件安装;,点击图标,打,开,开程序;,建立项目(,Project,),:File/New/Project,为项目命名,并确定路径和,工,工作库;,建立源文件:,File/New/Source/VHDL,;,例:设计一个,全,全加器,Modelsim SE5.5e,使用要点,ENTITYfa IS,PORT(,a,b,ci:INbit;,co,s:OUT bit);,END fa;,ARCHITECTURErtl OF fa IS,BEGIN,s=a xor b xor ci;,co=(aand b)or(a andci)or(b and ci);,end rtl;,Modelsim SE5.5e,使用要点,进行编辑,保,存,存文件:命名,/,指定路径;,在源程序编辑,窗,窗口中对已保,存,存的文件进行,编,编译,结果可,以,以在项目窗口,中,中看到;,编译完成后,,在,在项目窗口中,将,将文件添加到,项,项目中:,Project/AddFile to Project,;,在其他工具中,编,编译的文件也,可,可以直接添加,到,到项目中。,Modelsim SE5.5e,使用要点,在项目窗口中,,,,装载设计项,目,目:,vsim fa,;,打开仿真波形,窗,窗口:,add wave*,;,对各输入信号,进,进行设置:,force-repeat 20 ns a 00 ns,1 10 ns,force-repeat 40 ns b 00 ns,1 20 ns,force-repeat 80 ns ci 00 ns,1 40ns,Modelsim SE5.5e,使用要点,设置完毕后,,在,在波形窗口中,进,进行仿真并观,察,察结果;,仿真完毕后,,可,可以执行,quit sim,命令退出仿真,;,;,Modelsim SE5.5e,使用要点,Modelsim SE5.5e,使用要点,在上述仿真中,,,,没有考虑延,迟,迟时间,输入,变,变化与输出变,化,化发生在同一,时,时刻,这属于,逻,逻辑仿真。,如果考虑器件,的,的时间延迟,,可,可以将源程序,中,中的信号赋值,语,语句改为如下,形,形式:,s=a xor b xor ciafter7 ns;,co=(aand b)or(a andci)or(b and ci)after4 ns;,Modelsim SE5.5e,使用要点,Modelsim SE5.5e,使用要点,仿真测试文件,:,:,testbench,testbench,相当于一块电,路,路板,将,HDL,程序描述的电,路,路块安装在上,面,面;,该电路块与外,界,界没有任何接,口,口,其功能仅,仅,仅是对电路块,进,进行仿真测试,,,,将各种驱动,信,信号和输出信,号,号在波形窗口,中,中表达出来;,HDL,程序以元件例,化,化的形式被,testbench,程序调用;,仿真测试文件,:,:,testbench,library ieee;,use ieee.std_logic_1164.all;,entityfa_testbench is,end fa_testbench;,architecturebeh of fa_testbench is,component fa,port(a,b,ci:in std_logic;,s,co:out std_logic);,end component;,signalxt,yt,zt,st,cot:std_logic;,begin,u1:faportmap(xt,yt,zt,st,cot);,process,begin,xt=0;yt=0;zt=0;waitfor 10ns;,xt=0;yt=0;zt=1;waitfor 10ns;,xt=0;yt=1;zt=0;waitfor 10ns;,xt=0;yt=1;zt=1;waitfor 10ns;,xt=1;yt=0;zt=0;waitfor 10ns;,xt=1;yt=0;zt=1;waitfor 10ns;,xt=1;yt=1;zt=0;waitfor 10ns;,xt=1;yt=1;zt=1;waitfor 10ns;,xt=0;yt=0;zt=0;waitfor 10ns;,end process;,end beh;,仿真测试文件,:,:,testbench,先分别将源程,序,序和,testbench,程序添加到项,目,目中;,先编辑编译源,程,程序,再编辑,编,编译,testbench,程序;,装载已编译的,testbench,程序:,vsim mytestbench,将设计的信号,添,添加到波形窗,口,口中:,add wave*,直接在波形窗,口,口中执行“,run,”命令进行仿,真,真;,
展开阅读全文