《第10讲-组合逻辑电路的VHDL描述、竞争与冒险.ppt》由会员分享,可在线阅读,更多相关《第10讲-组合逻辑电路的VHDL描述、竞争与冒险.ppt(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1第九讲组合逻辑电路分析与设计1、VHDL语言介绍2、组合逻辑电路VHDL描述3、组合逻辑电路中的竞争与冒险2第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍VHDL:VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage,即,即超高速超高速集成电路硬件描述语言集成电路硬件描述语言。VHDL作作为为IEEE标标准准的的硬硬件件描描述述语语言言和和EDA的的重重要要组组成成部部分分,经经过过几几十十年年的的发发展展、应应用用和和完完善善,以以其其强强大大的的系系统统描描述述能能力力、规规范范的的程程序序设设计计结结构构、灵灵活
2、活的的语语言言表表达达风风格格和和多多层层次次的的仿仿真真测测试试手手段段,在在电电子子设设计计领领域域受受到到了了普普遍遍的的认认同同和和广广泛泛的的接接受受,成成为为现现代代EDA领领域域的的首首选选硬硬件件设设计计语语言言。专专家家认认为为,在在新新世世纪纪中中,VHDL与与Verilog语语言言将将承承担担起起几几乎乎全全部的数字系统设计任务。部的数字系统设计任务。3第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍结构体结构体(ARCHITECTURE)进程进程或其它并行结构或其它并行结构实体(实体(ENTITY)配置(配置(CONFIGURATION)库、程序包库、程序包设
3、设计计实实体体库库(LIBRARYLIBRARY)存存放放预预先先设设计计好好的的程程序序包包和和数数据据的的集合体。集合体。程程序序包包(PACKAGEPACKAGE)将将已已定定义义的的数数据据类类型型、元元件件调调用用说说明明及及子子程程序序收收集集在在一一起起,供供VHDLVHDL设设计计实实体体共共享享和调用,若干个包则形成库。和调用,若干个包则形成库。IEEE库包括:库包括:STD_LOGIC_1164STD_LOGIC_ARITH是是SYNOPSYS公公司司加加入入IEEE库程序包,包括:库程序包,包括:STD_LOGIC_SIGNED(有符号数)(有符号数)STD_LOGIC_
4、UNSIGNED(无符号数)(无符号数)1、库、程序包、库、程序包4第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍STD_LOGIC_SMALL_INT(小整型数小整型数)VHDL87版本使用版本使用IEEESTD1076-1987语法标准语法标准VHDL93版本使用版本使用IEEESTD1076-1993语法标准语法标准例:例:LIBRARYIEEEUSEIEEE.STD_LOGIC_1164.ALL描描述述器器件件的的输输入入、输输出出端端口口数数据据类类型型中中将将要要用用到到的的IEEE的标准库中的的标准库中的STD_LOGIC_1164程序包。程序包。5第十讲 组合逻辑电
5、路的VHDL描述、竞争与冒险VHDL介绍格式格式:ENTITY实体名实体名IS类属参数说明类属参数说明端口说明端口说明END实体名;实体名;规规则则:(1)类类属属参参数数说说明明必必须须放放在在端端口口说说明明之之前前,用于指定如矢量位数、延迟时间等参数。例如用于指定如矢量位数、延迟时间等参数。例如GENERIC(m:TIME:=1ns);-说说明明m是是一个值为一个值为1ns的时间参数的时间参数则则程程序序语语句句:tmp1=d0ANDse1AFTERm;-表表示示d0ANDse1经经1ns延迟后才送到延迟后才送到tem1。2、实体、实体(ENTITY)说明)说明6第十讲 组合逻辑电路的V
6、HDL描述、竞争与冒险VHDL介绍(2)端端口口说说明明是是描描述述器器件件的的外外部部接接口口信信号号的的说说明明,相当于器件的引脚说明。其格式为:相当于器件的引脚说明。其格式为:PORT(端口名(端口名,端口名,端口名:方向:方向数据类型名;数据类型名;:端口端口名名,端口名,端口名:方向:方向数据类型名);数据类型名);例如:例如:PORT(a,b:INSTD_LOGIC;s:INSTD_LOGIC;y:OUTSTD_LOGIC););7第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍端口方向包括:端口方向包括:IN;-输入,输入,符号:符号:OUT;-输出,输出,符号:符号:
7、INOUT;-双向,双向,符号:符号:BUFFER;-具有读功能的输出,符号:具有读功能的输出,符号:DQBUFFER端口端口8第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍9例:用例:用VHDL语言编写的实体语言编写的实体声明:声明:libraryieee;useieee.std_logic_1164.all;entityor_gateisport(a:inbit;b:inbit;c:outbit);endor_gate;上面的实体声明描述了一个或门单元,它有三上面的实体声明描述了一个或门单元,它有三个引脚个引脚a、b、c。给出。给出了三个引脚了三个引脚a、b、c的参的参数;数;
8、in和和out数据类型是数据类型是bit。基本基本设计单元的实体,用于指明设计基本单元的行为、设计单元的实体,用于指明设计基本单元的行为、元件及内部连接关系,即定义设计单元的功能。元件及内部连接关系,即定义设计单元的功能。结构体的结构:结构体的结构:ARCHITECTURE结构体名结构体名OF实体名实体名IS说说明明语语句句;-为为内内部部信信号号、常常数数、数数据据类类型型、函函数数定义定义BEGIN功能描述语句功能描述语句ENDARCHITECTURE结构体名;结构体名;3、结构体(、结构体(ARCHITECTURE)10第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍例如:或门
9、的结构体例如:或门的结构体ARCHITECTUREor1OFtemp1ISSIGNALy:STD_LOGIC;BEGINy=aORb;ENDARCHITECTUREor1;11第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍12第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍4、进程进程(PROCESS)进程语句属于并行语句,它在进程语句属于并行语句,它在VHDL中使用最频繁、中使用最频繁、最能体现最能体现VHDL风格。风格。进程语句格式:进程语句格式:进程标号:进程标号:PROCESS(敏感信号参数表)(敏感信号参数表)IS进程说明部分进程说明部分BEGIN顺序描述语句顺
10、序描述语句ENDPROCESS进程标号进程标号;进程语句是并行处理语句,即各个进程是同时处理的,在一个结构体中多个Process语句是同时并发运行的。Process语句的特点:语句的特点:进程结构内部的所有语句都是顺序执行的。进程结构内部的所有语句都是顺序执行的。多进程之间,是并行执行的,并可访问构造多进程之间,是并行执行的,并可访问构造体或实体中所定义的信号。体或实体中所定义的信号。进程的启动是由进程标识符进程的启动是由进程标识符process后的信号后的信号敏感表所标明的信号来触发进程的活动,也敏感表所标明的信号来触发进程的活动,也可以用可以用WAIT语句等待一个触发条件的成立。语句等待一
11、个触发条件的成立。各进程之间的通信是由信号来传递的。各进程之间的通信是由信号来传递的。13第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍例 不含信号敏感表的进程语句ARCHITECTURE multiple_wait OF tests ISSIGNAL a,b:bit:=0;BEGINP1:PROCESS BEGIN WAIT ON a;WAIT ON b;WAIT FOR 0ns;WAIT;END PROCESS p1;END ACHITECTURE multiple_wait;14第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍例含信号敏感表和WAIT语句的错误程序A
12、RCHITECTUREsensitivity_list OF tests IS SIGNAL a,b:bit:=0;BEGIN p1:PROCESS(a)BEGIN WAIT ON b;WAIT FOR 0ns;WAIT;END PROCESS p1;END ARCHITECTURE sensitivity_list;15第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍例利用进程语句设计的半加器ARCHITECTUTEbehav OF half_adder ISBEGINPadder:PROCESS(a,b)BEGIN sum=a XOR b AFTER 5ns;carry=a AN
13、D b AFTER 5ns;ENDPROCESS Padder;END behav;16第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍进程是一个无限循环的硬件行为的描述。当进程执行完最后一个语句时,在敏感信号的触发下,又开始重复执行,这个模块就这样永无修止地工作。但是如果没有敏感信号的变化,这个进程就不会工作。17第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍把把特特定定的的结结构构体体关关联联(指指定定给给)一一个个确确定定的的实实体体,为为大型系统的设计提供管理和工程组织。大型系统的设计提供管理和工程组织。5、配置(配置(CONFIGURATION)18第十讲 组合
14、逻辑电路的VHDL描述、竞争与冒险VHDL介绍configuration configuration 配置名配置名 of of 实体名实体名 isis for for 选配结构体名选配结构体名 end for end for;end end 配置名;配置名;配置:从某个实体的多种结构体描述方式中选择配置:从某个实体的多种结构体描述方式中选择 特定的一个。特定的一个。19VHDL语言的基本语句语言的基本语句n顺序语句(顺序语句(SequentialStatements)n并行语句(并行语句(ConcurrentStatements)第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍顺序语
15、句特征:顺序语句只能出现在进程或子程序、块中顺序语句描述的系统行为有时序流、控制流、条件分支和迭代算法等顺序语句用于定义进程、子程序等的算法顺序语句的功能操作有算术、逻辑运算,信号、变量的赋值,子程序调用等20第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍顺序语句 WAIT语句;断言语句;信号代入语句;变量赋值语句;IF语句;CASE语句;LOOP语句;NEXT语句;EXIT语句;过程调用语句;NULL语句。21第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍并行语句进程语句并发信号代入语句条件信号代入语句选择信号代入语句并发过程调用语句块语句并行断言语句Generate
16、 生成语句元件例化语句22第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍23第十讲 组合逻辑电路的VHDL描述、竞争与冒险VHDL介绍libraryieee;-使用的库使用的库useieee.std_logic_1164.all;-使用的包使用的包entityand_entis-名名为为and_ent的实体的实体port(a,b:instd_logic;-输入信号为输入信号为a,by:outstd_logic);-输出信号为输出信号为yendand_ent;architectureand_strofand_entis实实体体and_ent的结构体,该结构体名称为的结构体,该结构体名
17、称为and_strbeginy=aandb;-逻辑表达式逻辑表达式endand_str;例例:用用VHDL描述描述2输入端与门电路。输入端与门电路。LIBRARYIEEE;USEIEEE.STDLOGIC1164.ALLENTITYor1ISPORT(a,b:INSTD_LOGIC;y:OUTSTDLOGIC););ENDor1;ARCHITECTUREexample1OFor1ISBEGINy=aORb;ENDexample1;24第十讲 组合逻辑电路的VHDL描述、竞争与冒险用VHDL描述基本逻辑器件【例例】两输入端或门两输入端或门的描述的描述LIBRARYIEEE;USEIEEE.STD
18、_LOGIC_1164.ALL;ENTITYh_adderISPORT(a,b:INSTD_LOGIC;so,co:OUTSTD_LOGIC);ENDh_adder;ARCHITECTUREexample2OFh_adderISBEGINso=aXORb;co=aANDb;ENDexample2;absoco25第十讲 组合逻辑电路的VHDL描述、竞争与冒险用VHDL描述基本逻辑器件【例例】半加器的描述半加器的描述LIBRARYIEEE;USEIEEE.STDLOGIC1164.ALLENTITYmux21ISPORT(a,b:INSTDLOGIC;s:INSTDLOGIC;y:OUTSTDL
19、OGIC););ENDmux21;ARCHITECTUREexample3OFmux21ISBEGINy=aWHENs=0ELSEb;ENDARCHITECTUREexample3;absy26第十讲 组合逻辑电路的VHDL描述、竞争与冒险用VHDL描述基本逻辑器件【例例】2选选1数据选择器的描述数据选择器的描述27第十讲 组合逻辑电路的VHDL描述、竞争与冒险用VHDL描述基本逻辑器件例例:四选一电路四选一电路LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux4ISPORT(input:INSTD_LOGIC_VECTOR(3DOWNTO0);s
20、el:INSTD_LOGIC_VECTOR(1DOWNTO0);y:OUTSTD_LOGIC);ENDmux4;ARCHITECTURErtlOFmux4ISBEGINPROCESS(input,sel)BEGINIF(sel=00)THENy=input(0);ELSIF(sel=01)THENy=input(1);ELSIF(sel=10)THENy=input(2);ELSEy=input(3);ENDIF;ENDPROCESS;ENDrtl;第十讲 组合逻辑电路的VHDL描述、竞争与冒险组合逻辑电路的竞争与冒险竞争竞争(Race)Race)由于电路中各个信号通过的路径不同,当加到某个门
21、电路的两个信号同时向相反方向变化时:(1)变化时间有微小差异。(2)信号边沿变化时间存在差异。这就是组合电路的竞争现象。28第十讲 组合逻辑电路的VHDL描述、竞争与冒险组合逻辑电路的竞争与冒险冒险冒险由于存在竞争,使电路的输出出现瞬间的逻辑错误称为冒险。工程上也称为毛刺。ABF“0”想理ABF&29第十讲 组合逻辑电路的VHDL描述、竞争与冒险组合逻辑电路的竞争与冒险有竞争无冒险有竞争有冒险ABF30第十讲 组合逻辑电路的VHDL描述、竞争与冒险组合逻辑电路的竞争与冒险冒险的类别冒险的类别因为信号经不同路径传输后,到达电路中某一会因为信号经不同路径传输后,到达电路中某一会合点的时间差异产生的
22、合点的时间差异产生的冒险称为冒险称为逻辑冒险逻辑冒险。31第十讲 组合逻辑电路的VHDL描述、竞争与冒险组合逻辑电路的竞争与冒险因为多个信号同时变化时因为过渡过程产生的差因为多个信号同时变化时因为过渡过程产生的差异而出现的异而出现的冒险称为冒险称为功能冒险功能冒险。32第十讲 组合逻辑电路的VHDL描述、竞争与冒险组合逻辑电路的竞争与冒险怎样判定有无险象怎样判定有无险象若出现若出现 或或 则有险。则有险。及该变量的非及该变量的非(如如 )以外的其它变量为以外的其它变量为某恒定某恒定值,值,1 1、在逻辑表达式,令除了某个逻辑变量、在逻辑表达式,令除了某个逻辑变量(如变量如变量A)A)例例:理论
23、上理论上 ,下面看实际情况:下面看实际情况:令令 B=C=1B=C=1,则则 有有险险33第十讲 组合逻辑电路的VHDL描述、竞争与冒险组合逻辑电路的竞争与冒险AAAAF险象34第十讲 组合逻辑电路的VHDL描述、竞争与冒险组合逻辑电路的竞争与冒险同的卡诺圈,而两个卡诺圈相切,即会产生险象。从图中可见,m3和m7这两个相邻最小项分属两不2、卡诺图判断法将上例的 填入卡诺图ABC00 01 11 100101011001F35加到输入端的信号波形应包含输入变量加到输入端的信号波形应包含输入变量所有可能发生的状态变化。所有可能发生的状态变化。3.实验观测波形实验观测波形(功能冒险)(功能冒险)第十讲 组合逻辑电路的VHDL描述、竞争与冒险组合逻辑电路的竞争与冒险36第十讲 组合逻辑电路的VHDL描述、竞争与冒险组合逻辑电路的竞争与冒险冒险的消除或减弱冒险的消除或减弱1.增加冗余增加冗余项(修改逻辑设计)项(修改逻辑设计)F=AB+ACABC00 01 11 100101011001FF=AB+AC+BC37第十讲 组合逻辑电路的VHDL描述、竞争与冒险组合逻辑电路的竞争与冒险2.引入选通脉冲,使电路稳定后输出引入选通脉冲,使电路稳定后输出3.加滤波电容加滤波电容SCAFBCAF38