EDA技术实用教程第8章VHDL设计深入第8章VHDL设计深入8.1、数据对象?8.2、含高阻输出的电路设计?8.3、顺序 语句8.4、并行赋值语句讨论8.5、IF语句概述8.6、仿真延时8.7、VHDL的描述风格8.3顺序语句归纳8.3.1进 程语句格式结构体中,允许放置任意多个进程语句结构,而每一进程的内部是由一系列顺序语句来构成的。VHDL中描述时序逻辑时必须使用进 程语句。PROCESS语句结构的一般表达格式如下[进程标号:]PROCESS[(敏感信号参数表)][IS][进程 说明部分]BEGIN顺序描述语句ENDPROCESS[进程标号];进程说明部分数据类型、常数、变量、属性、子程序赋值 语句、进程启动语句、子程序调用语句、顺序描述语句、进程跳出语句顺序描述语句部分敏感信号参数表进程对各自的敏感信号敏感8.3 进程语句归纳8.3.2进程结构组成8.3进程语句归纳8.2.3进程要点1.PROCESS为一无限循环语句 2.PROCESS中的顺序语句具有明显的顺序/并行运行双重性PROCESS(abc)BEGINCASEabcISWH EN"0000"=>so<="010";WHEN"0001"=>so<="111";WHEN"0010"= >so<="101";...WHEN"1110"=>so<="100";WHEN"1111"=>so <="000";WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;8.3进程语句归 纳8.3.3进程要点3.进程必须由敏感信号的变化来启动4.进程语句本身是并行语句进程内部为顺序语句,但作为整体, 与其他进程间是并行关系。8.3进程语句归纳8.3.3进程要点5.信号是多个进程间的通信线在不同进程内不可对同一个信 号赋值,即不可多重赋值!进程内信号赋值和变量赋值的效果是不同的!6.一个进程中只允许描述对应于一个时钟信号的同步时序逻辑在 一个进程内,不可在一个if语句中同时捕捉时钟的上升沿和下降沿。8.4并行语句例解【例8-13】ARCHITECTUREd ataflowOFmuxISSIGNALseiect:INTEGERRANGE15DOWNTO0;BEGINS elect<=0WHENs0=’0’ANDs1=’0’ELSE1WHENs0=’1’ANDs1=’0’E LSE2WHENs0=’0’ANDs1=’1’ELSE3;x<=aWHENselect=0ELSE bWHENselect=1ELSEcWHENselect=2ELSEd;...8.5IF语句概述 (2)IF条件句Then顺序语句ELSE顺序语句ENDIF;(1)IF条件句Then顺序语 句ENDIF;(4)IF条件句Then顺序语句ELSIF条件句Then顺序语句...ELSE顺序语句E NDIF(3)IF条件句ThenIF条件句Then...ENDIFENDIFVHDL常用 顺序语句、并行语句归纳常用的并行语句有:(1)并行信号赋值语句,用“<=”运算符(2)条件赋值语句,WHEN-ELSE (3)选择信号赋值语句,WITH-SELECT(4)进程语句,PROCESS常用的顺序语句有:(1)信号赋值语句和变量 赋值语句(2)IF-ELSE语句(3)CASE-WHEN语句(4)FOR-LOOP8.6仿真延时8.6.1 固有延时z<=xXORyAFTER5ns;z<=xXORy;B<=AAFTER20 ns;--固有延时模型8.6仿真延时8.6.2传输延时B<=TRANSPORTAAFTER20ns; --传输延时模型图8-9固有延时输入输出波形图8-10传输延时输入输出波形8.6仿真延时8.6.3仿真? VHDL仿真器和综合器将自动为系统中的信号赋值配置一足够小而又能满足逻辑排序的延时量,即仿真软件的最小分辩时间,这个延时量就称为仿 真?(SimulationDelta),或称?延时,从而使并行语句和顺序语句中的并列赋值逻辑得以正确执行。由此可见,在行为仿真、功能仿真乃至综合中,引入?延时是必需的。仿真中,?延时的引入由EDA工具自动完成,无需设计者介入。 |
|