《微电子学》PPT课件

上传人:muw****50 文档编号:245125948 上传时间:2024-10-07 格式:PPT 页数:98 大小:221KB
返回 下载 相关 举报
《微电子学》PPT课件_第1页
第1页 / 共98页
《微电子学》PPT课件_第2页
第2页 / 共98页
《微电子学》PPT课件_第3页
第3页 / 共98页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第五章 微电子系统设计,微电子系统设计,就是将算法理论、体系结构、电路物理实现自上而下的集成到一个芯片上的过程。,高级语言的行为级描述,系统仿真,逻辑综合,物理层设计,(版图设计),网表提取、仿真,投片试制,流程:,电子系统芯片,微电子系统设计,把电子系统集中到一个芯片,包括软件和硬件,。,微电子系统中物理层设计,逻辑单元,电路单元,双极型集成电路单元和,MOS数字电路单元,逻辑电路-,完成各种逻辑运算和变换的电路,组成逻辑电路的基本单元是各种,门电路,晶体管-晶体管逻辑电路(,TTL,),集成注入逻辑电路(,I,2,L,),发射极耦合逻辑电路(,ECL,),双极数字电路单元设计,用数字信号完成对数字量进行算术运算和逻辑,运算的电路称为数字电路,1、TTL电路:,基本单元:,与非门,特点:,扇出系数较大,典型电路:,74系列集成电路(民品),54系列集成电路(军品),相同的电路结构、逻辑功能,不同的工作环境温度和电源工作允许的范围。,2、ECL电路:,基本单元:,或非门、或门,特点:,速度快、逻辑功能、强扇出能力大,典型电路:,高速和超高速集成电路,缺点:,功耗大、抗干扰能力差,3、I,2,L电路:,基本单元:,非门,特点:,集成度高、功耗低、成本低,典型电路:,VLSI,缺点:,速度较低,二、MOS数字电路单元设计,1、NMOS电路:,基本单元:,非门,特点:,功耗低、速度快,典型电路:,LSI和VLSI,2、CMOS电路:,特点:,输入电阻高、功耗低、速度快、抗噪,声能力强,第六章 集成电路计算机辅助设计,ICCAD,就是将由人为主导,根据集成电路的指标要求进行总体设计,借助计算机帮助人工迅速而准确地完成设计任务。,ICCAD系统概述,ICCAD系统的发展,第一代,:60年代末:版图编辑和检查,第二代,:80年代初:原理图输入、逻辑模拟,第三代,:从RTL级输入,到包括行为仿真、行为综合、逻辑综合等功能,流行的CAD系统,:Cadence, Mentor Graphics, Viewlogic, Compass,Panda等,ICCAD系统的理想作用,:实现完全的自动化设计,设计出各种各样的电路,ICCAD系统的实际作用,设计信息输入,:,语言输入编辑工具,高层次描述的图形输入工具:VHDL功能图输入、逻辑图/电路图输入编辑、版图输入编辑,设计实现,:综合器,设计验证,:验证系统(电路)功能、性能要求及设计规则要求,模拟器进行模拟(仿真)分析,设计规则的检查,整个设计过程就是把,高层次,的抽象描述,逐级向下,进行综合、验证、实现,直到物理级的低层次描述,即掩膜版图。,各设计阶段相互联系,,例如,寄存器传输级描述是逻辑综合的输入,逻辑综合的输出又可以是逻辑模拟和自动版图设计的输入,版图设计的结果则是版图验证的输入。,ICCAD系统介入了包括系统功能设计、逻辑和电路设计以及版图设计等在内的集成电路设计的各个环节。,系统描述与模拟:VHDL语言,VHDL语言出现背景,一种硬件描述语言(,hardware description language),广义地说,描述电子实体的语言:逻辑图,电路图。,大规模电路的出现: 逻辑图、布尔方程不太适用,需要在更高层次上描述系统,出现多种HDL语言,为便于信息交换和维护,出现工业标准。,通常指高层次设计阶段描述硬件,HDL语言的特点,抽象地进行行为描述,结构化语言:可以描述电子实体的结构,多层次混合描述,既可被模拟,又可被综合,能提供VHDL模拟器的公司,:Cadence、Mentor Graphics、Viewlogic、Synopsys等大型EDA公司和CLSI、Model-Technology、Vantage等专门公司,VHDL语言,基本概念,:描述硬件电路,可以抽象地表示电路的行为和结构(完成什么功能,怎样组成),作用,:,对IC设计,支持从系统级到门和器件级的电路描述,并具有在不同设计层次上的模拟验证机制,可作为综合软件的输入语言,支持电路描述由高层向低层的转换,VHDL语言的建模机制,一个硬件单元在VHDL中看作一个设计实体。,实体外观,实体说明:实体命名,实体与外部环境的接口描述,未涉及其内部行为及结构。,实体功能,在,结构体,中实现,结构体:实体的输入-输出关系,实体的结构和行为描述。,对应一个实体说明可以有多个结构体,不同的实现方案。,ENTITY count IS,-设计实体count,GENERIC (tpd : Time:=10ns);,PORT(clock : IN Bit; q1,q0: OUT Bit);,END ENTITY count,;,ARCHITECTURE arch of count IS,- count实体的结构体,BEGIN,count_up : PROCESS(clock),-进程体count_up,VARIABLE count_value: Natural : =0;,BEGIN,IF clock=1 THEN,Count_value :=(count_value+1) MOD 4;,q1 =bitVal(count_value/2) AFTER tpd;,q0 S S S S S S S S S S S S S S S S =0000000;,END CASE;,END PROCESS;,END behave;,用VHDL编辑的七段译码器仿真波形,VHDL基础,一个完整的VHDL程序,或者说设计实体,通常要求最低能为VHDL综合器所支持,并能作为一个独立的设计单元,即元件的形式而存在的VHDL程序。在VHDL程序中,通常包含实体(ENTITY)、结构体(ARCHITECTURE)、配置(CONFIGURATION)、包集合(PACKAGE)和库(LIBRARY)5个部分。其中实体和结构体这两个基本结构是必需的,他们可以构成最简单的VHDL程序。,1、实体,设计实体是VHDL语言设计的基本单元,简单的可以是一个与门,复杂的可以是一个微处理器或一个数字系统,其结构基本是一致的,都是由实体说明和结构体两部分组成。实体说明是对这个设计实体与外部电路进行接口的描述,它规定了设计单元的输入输出接口信号或引脚,是设计实体对外的一个通信界面。结构体用于描述此设计实体的逻辑结构和逻辑功能。,实体语句结构如下:,ENTITY 实体名 IS,GENERIC(类属表);,PORT(端口表);,END ENTITY 实体名;,例:,ENTITY or2 IS,PORT(a,b:IN STD_LOGIC;,C: OUT STD_LOGIC);,END ENTITY or2;,注意:实体应以语句“,ENTITY 实体名 IS,”开始,语句“,END ENTITY 实体名;,”结束。,在层次化系统设计中,实体说明是整个模块或整个系统的输入输出(I/O)接口;在一个器件级的设计中,实体说明是一个芯片的输入输出(I/O)。,端口说明(PORT),端口为设计实体和其外部环境提供动态通信的通道,是对基本设计单元与外部接口的描述,其功能相当电路图符号的外部引脚。端口可以被赋值,也可以当做逻辑变量用在逻辑表达式中。,其一般书写格式为:,PORT (端口名 :端口模式 数据类型;,端口名 :端口模式 数据类型;, );,其中端口名是设计者为实体的每一个对外通道所取的名字,通常为英文字母加数字,名字的定义有一定的惯例,如clk 表示时钟,D开头的端口名表示数据,A开头的端口名表示地址。端口模式是指这些通道上的数据流动的方式,如输入或输出等。,端口模式有以下几种类型:,( 1 )输入(IN),允许信号进入实体,主要用于时钟输入、控制输入(如load、reset、enable、clk)和单向的数据输入(如地址数据信号address)等。,(2)输出(OUT),输出模式只允许信号离开实体,常用于计数输出、单向数据输出、被设计实体产生的控制其他实体的信号等。注意:输出模式不能用于被设计实体的内部反馈,因为输出端口在实体内不能看做是可读的。,(3)双向模式(INOUT),双向模式允许信号双向传输(既可以进入实体,也可以离开实体),双向模式端口允许引入内部反馈。,(4)缓冲(BUFFER),缓冲模式允许信号输出到实体外部,但同时也可以在实体内部引用该端口的信号。缓冲端口既能用于输出也能用于反馈。缓冲模式用于在实体内部建立一个可读的输出端口,例如计数器输出、计数器的现态用来决定计数器的次态。,端口模式可用下图说明,图中方框代表一个设计实体或模块。,在VHDL设计中,通常将输入信号端口指定为输入模式,输出信号端口指定为输出模式,而双向数据通信信号,如计算机PCI总线的地址/数据复用总线,DMA控制器数据总线等纯双向的信号采用双向端口模式。从端口的名称、模式就能一目了然地指导信号的用途、性质、来源和去向。,2 结构体,结构体也叫构造体,结构体描述了基本设计单元(实体)的结构、行为、元件及内部连接关系,也就是说它定义了设计实体的功能,规定了设计实体的数据流程,制定了实体内部元件的连接关系,。结构体对其基本设计单元的输入和输出关系可用以下三种方式进行描述,即行为描述(基本设计单元的数学模型描述)、寄存器传输描述(数据流描述)和结构描述(逻辑元件连接描述)。,结构体是对实体功能的具体描述,因此它一定要跟在实体的后面 。,结构体一般由两大部分组成:,I对数据类型、常数、信号、子程序和元件等因素进行说明的部分;,II描述实体的逻辑行为、以各种不同的描述风格表达的功能描述语句,包括各种顺序语句和并行语句。,结构体的语句格式为:,ARCHITECTURE 结构体名 OF 实体名 IS,定义语句,BEGIN,功能描述语句,END 结构体名;,(1)结构体名,结构体名由设计者自行定义,OF后面的实体名指明了该结构体所对应的是哪个实体。有些设计实体有多个结构体,这些结构体的结构体名不可相同,通常用dataflow(数据流)、behavior(行为)、structural(结构)命名。这3个名称体现了3种不同结构体的描述方式,使得阅读VHDL语言程序时,能直接了解设计者采用的描述方式。,(2),结构体信号定义语句,结构体信号定义语句必须放在关键词ARCHITECTURE和BEGIN之间,用于对结构体内部将要使用的信号、常数、数据类型、元件、函数和过程加以说明。需要注意的是实体说明中定义的信号是外部信号,而结构体定义的信号为该结构体的内部信号,它只能用于这个结构体中。,结构体中的信号定义和端口说明一样,应有信号名称和数据类型定义。因为它是内部连接用的信号,因此不需要方向说明。,例:结构体的信号定义实例。,ARCHITECTURE rtl OF muj IS,SIGNAL s1:BIT,SIGNAL s2,s3:STD_LOGIC_VECTOR (0 TO 3);,BEGIN,END rtl;,实体名,结构体名,功能描述语句,结构体信号定义语句,(3) 结构体功能描述语句,结构体功能描述语句位于BEGIN和END之间,具体地描述了构造体的行为及其连接关系。结构体的功能描述语句可以含有5种不同类型的并行语句,如图所示。每一语句结构内部可以使用并行语句,也可以是顺序语句。,结构体构造图:,图中5种功能描述语句的基本组成和功能分别是:,块语句,是由一系列并行语句构成的组合体,它的功能是将结构体中的并行语句组成一个或多个子模块。,进程语句,定义顺序语句模块,用以将从外部获得的信号值或内部运算数据向其他的信号进行赋值。,信号赋值语句,将设计实体内的处理结果向定义的信号或界面端口进行赋值。,子程序调用语句,可以调用进程或参数,并将获得的结果赋值于信号。,元件例化语句,对其他的设计实体做元件调用说明,并将此元件的端口与其他元件、信号或高层实体的界面端口进行连接。,例:,2,选,1,数据选择器,ENTITY mux2 IS,PORT,(,d0,,,d1,:,IN BIT,;,sel,:,IN BIT,;,s,:,OUT BIT,);,END mux2,;,ARCHITECTURE dataflow OF mux2 IS,SIGNAL sig,:,BIT,;,BEGIN,Sig = (d0 AND sel) OR (NOT sel AND d1),;,S=sig,;,END dataflow;,功能描述语句,信号定义语句(内部信号,无方向),3 块、子程序和进程,(1)块语句(BLOCK),在较大规模的电子系统设计中,传统的硬件电路设计通常包括一张系统总电路原理图和若干张子原理图。在VHDL程序设计中,结构体是由多个BLOCK块构成的,如果将结构体比做总电路原理图,那么,每个BLOCK块则相当于一张子原理图。,BLOCK块语句的结构:,块标号:BLOCK,接口说明,类属说明,BEGIN,并行块语句,END BLOCK(块标号);,例:,B1,:,BLOCK,SIGNAL s1,:,BIT,;,BEGIN,s1 = a AND b;,B2,:,BLOCK,SIGNAL s2,:,BIT,;,BEGIN,s2= c AND d;,B3,:,BLOCK,BEGIN,Z = s2;,END BLOCK B3;,END BLOCK B2;,y= s1;,END BLOCK B1;,(2)进程(PROCESS),PROCESS结构是最能体现VHDL语言特色的语句。与BLOCK语句一样,利用PROCESS语句结构可以描述一个功能独立的电路。与BLOCK语句不同之处是,在系统仿真时,PROCESS结构中的语句是按顺序逐条向下执行的,而不像BLOCK语句那样并发执行。一个结构体中可以有多个并行运行的进程结构,每一个进程内部是由一系列顺序语句来构成的。,PROCESS语句的结构,进程标号 PROCESS (敏感信号表) IS,进程说明语句,BEGIN,顺序描述语句,END PROCESS 进程标号;,注意:在多个进程的结构体描述中,进程标号是区分各个进程的标志。但是进程标号并不是必需的。单进程以PROCESS开始,以END PROCESS结束。,例:两输入或非门,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY nor2_v2 IS,PORT(a,b: IN STD_LOGIC;,y: OUT STD_LOGIC);,END nor2_v2;,ARCHITECTURE behave OF nor2_v2 IS,BEGIN,PROCESS (a,b),VARIABLE comb :,STD_LOGIC_VECTOR(1 DOWNTO 0);,- y y y y y y b) THEN,tmp := a;,ELSE,tmp := b;,END IF;,RETURN tmp;,END;,END bpac;,4 库和程序包,库和程序包用来描述和保留元件、类型说明函数、子程序等,以便在其它设计中可以随时引用这些信息,提高设计效率。,(1)库(LIBRARY),库是经编译后的数据的集合,它存放包集合定义、实体定义、结构定义和配置定义。,库语句的格式为:,LIBRARY 库名;,USE语句指明库中的程序包。一旦说明了库和程序包,整个设计实体都可以进入访问或调用,但其作用范围仅限于所说明的设计实体。USE语句的使用将使所说明的程序包对本设计实体部分或全部开放。,USE语句有以下两种常用的格式:,USE,库名,.,程序包名,.,项目名,;,USE,库名,.,程序包名,.,ALL,;,第一种语句格式的作用是向本设计实体开放指定库中的特定程序包内的所选定的项目。,第二种语句格式的作用是向本设计实体开放指定库中的特定程序包内的所有内容。,例如:,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,USE IEEE.STD_LOGIC_1164.STD_ULOGIC;,此例中,第一个USE语句表明打开IEEE库中的STD_LOGIC_1164程序包,并使程序包中的所有公共资源对本语句后面的VHDL设计实体程序全部开放,关键词ALL代表程序包中的所有资源。第二个USE语句开放了程序包STD_LOGIC_1164中的STD_ULOGIC数据类型。,STD_ULOGIC,:可枚举数据类型,注意:库说明语句的作用范围从一个实体说明开始到它所属的结构体、配置为止,当一个源程序中出现两个以上实体时,两条作为使用库的说明语句应在每个设计实体说明语句前重复书写。,例:,LIBRARY IEEE,;,-,库使用说明,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY and IS,END and,;,ARCHITECTURE dataflow OF and IS,END dataflow;,CONFIGURATION c1 OF and IS -,(配置),AND c1;,LIBRARY IEEE,;,-,库使用说明,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY or IS,CONFIGURATION c2 OF and IS,AND c2;,(2) 程序包,程序包也叫包集合,主要用来存放各个设计都能共享的数据类型、子程序说明、属性说明和元件说明等部分。设计者使用时只要用USE子句进行说明即可。,程序包由两部分组成:程序包首和程序包体。,程序包的一般书写格式如下:,PACKAGE 程序包名 IS,END PACKAGE 程序包名; -程序包首,PACKAGE BODY 程序包名 IS, -程序包体,END PACKAGE BODY 程序包名;,例:,;,PACKAGE math IS,TYPE tw16 IS ARRAY,(,0 TO 15,),OF T_WLOGIC,;,FUNCTION add,(,a,,,b,:,IN tw16,),RETURN tw16,;,FUNCTION sub,(,a,,,b,:,IN tw16,),RETURN tw16,;,END math,;,PACKAGE BODY math IS,FUNCTION vect_to_int,(,s,:,tw16,);,RETURN INTEGER IS,VARIBLE result:INTEGER :=0;,BEGIN,FOR i IN 0 TO 7 LOOP,result := result*2;,IF s(i)=1THEN,result := result+1,END IF;,END LOOP;,RETURN result;,END vect_to_int;,FUNCTION int_to_tw16(s:INTEGER);,RETURN tw16 IS,VARIBLE result: tw16;,VARIBLE digit: INTEGER:=2*15;,VARIBLE local: INTEGER;,BEGIN,local := s;,FOR i IN 15 DOWNTO 0 LOOP,IF local/ digit=1 THEN,Local := local- digit;,ELSE,result (i) :=0;,END IF;,digit := digit/2;,END LOOP;,RETURN result;,END int_to_tw16;,FUNCTION add(a,b:IN tw16);,RETURN tw16 IS,VARIBLE result: INTEGER;,BEGIN,result := vect_to_int (a)+ vect_to_int (b);,RETURN int_to_tw16(result);,END add;,FUNCTION sub(a,b:IN tw16);,RETURN tw16 IS,VARIBLE result: INTEGER;,BEGIN,result := vect_to_int (a)+ vect_to_int (b);,RETURN int_to_tw16(result);,END sub;,END math;,此例的程序包是由程序包首和程序包体两部分组成。程序包首定义了数据类型和函数的调用说明,程序包体中才具体描述实现该函数功能的语句和数据的赋值。这种分开描述的好处是,当函数的功能需要做某些调整或数据赋值需要变化时,只要改变程序包体的相关语句就可以了,而无需改变程序包首的说明,这样就使得需要重新编译的单元数目尽可能的减少了。,5 配置,在用VHDL描述硬件电路时,常常采用结构描述方式和混合描述方式。在这两种描述方式中,常常需要将其他设计实体作为元件进行引用,这时就需要将不同元件通过配置安装到不同的设计实体中。VHDL提供了配置语句用于描述各种设计实体和元件之间连接关系以及设计实体和结构体之间的连接关系。,(1) 默认配置,默认配置语句的基本格式为:,CONFIGURATION 配置名 OF 实体名 IS,FOR 选配结构体名,END FOR,END 配置名;,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY example_v IS,PORT (a : IN STD_LOGIC;,b : IN STD_LOGIC;,y : OUT STD_LOGIC);,END example_v;,ARCHITECTURE and2_arc OF example_v IS,BEGIN,y = a AND b;,END and2_arc;,例:,与、或、与非、或非、异或,5个结构体共用一个实体。,ARCHITECTURE or2_arc OF example_v IS,BEGIN,y = a OR b;,END or2_arc;,ARCHITECTURE nand2_arc OF example_v IS,BEGIN,y = NOT(a AND b);,END nand2_arc;,ARCHITECTURE nor2_arc OF example_v IS,BEGIN,y = NOT(a OR b);,END nor2_arc;,ARCHITECTURE xor2_arc OF example_v IS,BEGIN,y = a XOR b;,END xor2_arc;,CONFIGURATION cfg1 OF example_v IS,FOR and2_arc,END FOR;,END cfg1;,CONFIGURATION cfg2 OF example_v IS,FOR or2_arc,END FOR;,END cfg2;,CONFIGURATION cfg3 OF example_v IS,FOR nand2_arc,END FOR;,END cfg3;,CONFIGURATION cfg4 OF example_v IS,FOR nor2_arc,END FOR;,END cfg4;,CONFIGURATION cfg5 OF example_v IS,FOR xor2_arc,END FOR;,END cfg5;,在上例( example_v)中,有5个不同的结构体,分别用来完成二输入的逻辑与、或、与非、或非和逻辑异或的运算操作。在程序中使用了5个默认配置语句来指明设计实体example_v和哪个结构体一起组成一个完整的设计:配置语句cfg1将与逻辑结构体配置给实体;cfg2将或逻辑结构体配置给实体;cfg3将与非逻辑结构体配置给实体;cfg4将或非逻辑结构体配置给实体;cfg5将异或逻辑结构体配置给实体。在进行模拟的时候,将根据所编译的是上面的哪个配置来决定要进行模拟的结构体,也就是说最后一个被编译的结构体(异或逻辑)将被模拟,下图就是异或逻辑的仿真波形。,异或门仿真波形,(2) 结构体的配置,结构体的配置主要是用来对结构体中引用的元件进行配置。,结构体的配置的书写格式:,FOR :USE ENTITY .;,以1位全加器的构成为例说明结构体的配置的用法:,将两输入与门、或门、异或门设置成通用例化元件由结构体引用。,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY and2_v IS,PORT(a: IN STD_LOGIC;,b: IN STD_LOGIC;,y: OUT STD_LOGIC);,END and2_v;,ARCHITECTURE and2_arc OF and2_v IS,BEGIN,y = a AND b;,END and2_arc;,CONFIGURATION and2_cfg OF and2_v IS,FOR and2_arc,END for;,END and2_cfg;,二输入与门源代码:,与门and2_v仿真波形,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY or2_v IS,PORT(a: IN STD_LOGIC;,b: IN STD_LOGIC;,y: OUT STD_LOGIC);,END or2_v;,ARCHITECTURE or2_arc OF or2_v IS,BEGIN,y = a OR b;,END or2_arc;,CONFIGURATION or2_cfg OF or2_v IS,FOR or2_arc,END for;,END or2_cfg;,二输入或门源代码:,或门or2_v仿真波形,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY xor2_v IS,PORT(a: IN STD_LOGIC;,b: IN STD_LOGIC;,y: OUT STD_LOGIC);,END xor2_v;,ARCHITECTURE xor2_arc OF xor2_v IS,BEGIN,y = a XOR b;,END xor2_arc;,CONFIGURATION xor2_cfg OF xor2_v IS,FOR xor2_arc,END for;,END xor2_cfg;,异或门源代码:,异或门xor2_v仿真波形,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY add1_v IS,PORT(A : IN STD_LOGIC;,B : IN STD_LOGIC;,Cin : IN STD_LOGIC;,Co : OUT STD_LOGIC;,S : OUT STD_LOGIC);,END add1_v;,ARCHITECTURE structure OF add1_v IS,COMPONENT and2_v,PORT(a : IN STD_LOGIC;,b : IN STD_LOGIC;,y : OUT STD_LOGIC);,END COMPONENT;,全加器源代码:,COMPONENT or2_v,PORT(a : IN STD_LOGIC;,b : IN STD_LOGIC;,y : OUT STD_LOGIC);,END COMPONENT;,COMPONENT xor2_v,PORT(a : IN STD_LOGIC;,b : IN STD_LOGIC;,y : OUT STD_LOGIC);,END COMPONENT;,SIGNAL tmp1,tmp2,tmp3 : STD_LOGIC;,FOR U1,U2 : xor2_v USE ENTITY work.xor2_v( xor2_arc);,FOR U3,U4 : and2_v USE ENTITY work.and2_v( and2_arc);,FOR U5 : or2_v USE ENTITY work.or2_v( or2_arc);,BEGIN,U1 : xor2_v PORT MAP(A,B,tmp1);,U2 : xor2_v PORT MAP(tmp1,Cin,S);,U3 : and2_v PORT MAP(tmp1,Cin,tmp2);,U4 : and2_v PORT MAP(A,B,tmp3);,U5 : or2_v PORT MAP(tmp2,tmp3,Co);,END structure;,全加器add1_v仿真波形,实际上如果仅仅要构成1位全加器,采用行为描述方式只需几条逻辑语句即可。,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,ENTITY add1_v IS,PORT(A : IN STD_LOGIC;,B : IN STD_LOGIC;,Cin : IN STD_LOGIC;,Co : OUT STD_LOGIC;,S : OUT STD_LOGIC);,END add1_v;,ARCHITECTURE structure OF add1_v IS,BEGIN,S = A XOR B XOR Cin;,Co = (A XOR B) AND Cin OR (A AND B);,END structure;,全加器add1_v仿真波形,MAXPLUSII基本操作,电路模拟,以SPICE为例,电路模拟的基本功能,软件基本结构,电路描述,电路模拟的基本功能,可处理的元器件,:电阻、电容、电感、互感、独立电流源、电压源、传输线、四种受控源、四种器件(二极管、双极管、结型场效应管、MOS)等,可完成的分析功能,:,直流分析,:典型的是求解直流转移特性(.DC),输入加扫描电压或电流,求输出和其他节点(元件连接处)电压或支路电流;还有 .TF、.OP、.SENSE,交流分析(.AC),:以频率为变量,在不同的频率上求出稳态下输出和其他节点电压或支路电流的幅值和相位。噪声分析和失真分析,瞬态分析(.TRAN),:以时间为变量,输入加随时间变化的信号,计算输出和其节点电压或支路电流的瞬态值。,温度特性分析(.TEMP),:不同温度下进行上述分析,求出电路的温度特性,电路模拟软件的基本结构,五部分组成:输入处理、元器件模型处理、建立电路方程、方程求解和输出处理,电路模拟软件的基本结构,输入处理,:主要完成对输入文件进行编译,词法语法检查、存储输入数据、其他(元件预处理等),模型处理,:元器件的数学模型:用数学公式描述器件的电流电压特性、与物理参数和工艺参数的关系,主要是非线性元件的模型:如MOS、BJT、二极管等,这些模型编入模型库,可调用;也可自行定义后加,入模型库,电路模拟软件的基本结构(续),建立电路方程,根据电路结构、元件参数、分析要求,建立方程,依据的基本原理是欧姆定律和基尔霍夫定律(解释),建立的方法很多,以节点法为例,方程求解,数值解法,:,线性代数方程组解法、非线性方程组解法、常微分方程组解法,线性电路的直流分析,:选主元的高斯消去法或LU分解法,非线性电路的直流分析,:对非线性元件进行线性化处理,迭代方法,交流分析,:线性电路、非线性电路,处理同上,瞬态分析,:常微分方程组,通过数值积分转换,输出处理,:选择输出内容和输出方式(表格和曲线),电路描述,较大规模电路,一般用电路图输入,相应的编译程序转换为电路描述语言再进行模拟。,电路描述语言,:描述电路结构、元件参数、器件模型、电路运行环境、分析类型和输出要求等,电路描述前首先要画好电路图,节点编号(接地节点零号,其他正整数),SPICE的描述语言:,电路拓扑(网表),采用模型(元件属性),仿真内容控制,电路描述举例,CMOS INVERTER DC TRANS. CHARACTERISTICS,VCC 2 0 5,VIN 1 0,M1 3 1 2 2 MOD1 L=2U W=18U,M2 3 1 0 0 MOD2 L=2U W=10U,.MODEL MOD1 PMOS LEVEL=3 VTO=,1 NSUB=2E15 UO=166,.MODEL MOD2 NMOS LEVEL=3 VTO=1 NSUB=2E15 UO=550,.DC VIN 0 5 0.1,.PLOT DC V(3),.END,元件语句:,元件名 与之相连的节点号(D,G,S,G) 元件参数(模型名,模型语句与元件语句分开),
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!