如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第4章VHDL设计进阶4.1属性(attribute)1、类型(TYPES)的属性例:TYPEnumberISINTEGER0TO9;i:=number′LEFT;i:=number′RIGHT;i:=number′HIGH;i:=number′LOW;2、数组的属性3、信号的属性s′EVENT若在当前模拟周期内,该信号发生了某个事件(信号值发生了变化),则返回TRUE,否则返回FALSE。s′ACTIVE若在当前模拟周期内,该信号发生了事件处理,则返回TRUE,否则返回FALSE。s′LAST_EVENT该信号前一个事件发生到现在所经过的时间。s′LAST_VALUE该信号在最近一个事件发生以前的值。例:(1)表示一个上升沿时钟clk:clk′EVENTANDclk=‘1’;NOTclk′STABLEANDclk=‘1’;(2)表示一个下降沿时钟clk:clk′EVENTANDclk='0';4.2寄存器描述及其VHDL语言现象不完整条件语句与时序电路图4-5例4-7的电路图(Synplify综合)4.2.3实现时序电路的VHDL不同表述【例4-11】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDFF3ISPORT(CLK,D:INSTD_LOGIC;Q:OUTSTD_LOGIC);END;ARCHITECTUREbhvOFDFF3ISSIGNALQ1:STD_LOGIC;BEGINPROCESS(CLK)BEGINIFrising_edge(CLK)THENQ1<=D;ENDIF;ENDPROCESS;Q<=Q1;END;【例4-12】...PROCESSBEGINwaituntilCLK='1';--利用wait语句Q<=D;ENDPROCESS;【例4-14】PROCESS(CLK,D)BEGINIFCLK='1'--电平触发型寄存器THENQ<=D;ENDIF;ENDPROCESS;4.2.4异步时序电路设计图4-9例4-15综合后的电路(Synplify综合)4.3一般加法计数器设计IFEN=‘1’THENIFCQI<9THENCQI:=CQI+1;ELSECQI:=(OTHERS=>‘0’);ENDIF;ENDIF;ENDIF;IFCQI=9THENCOUT<='1';ELSECOUT<='0';ENDIF;CQ<=CQI;ENDPROCESS;ENDbehav;图4-15:例4-22的工作时序KX康芯科技图4-16:例4-23的工作时序例:CONSTANTFBUS﹕BIT_VECTOR:=“010115”;CONSTANTVCC﹕REAL:=5.0;CONSTANTDELY﹕TIME:=25ns;常量的使用范围取决于它被定义的位置。在程序包中定义的常量具有最大全局化特征,可以用在调用此程序包的所有设计实体中;定义在设计实体中的常量,其有效范围为这个实体定义的所有的结构体;定义在设计实体的某一结构体中的常量,则只能用于此结构体;定义在结构体的某一单元的常量,则这个常量只能用在这一单元中。用于进程之间的通信,用于说明电路内部的连线信号,是一个全局量。信号通常在结构体、程序包和实体中说明。定义格式:SIGNAL信号名:数据类型约束条件:=表达式赋值格式为:[信号名]<=[表达式][AFTER[时间表达式]];例:SIGNAS1:STD_LOGIG:=0;--定义了一个标准位的单值信号S1,初始值为低电平SIGNAS2,S3:BIT;--定义了两个为BIT的信号S2和S3SIGNAS4:STD_LOGIC_VECTOR(15DOWNTO0);--定义了一个标准位矢的位矢量(数组、总--线)信号,共有16个信号元素3.变量4.三者的使用比较(1)从硬件电路系统来看,常量相当于电路中的恒定电平,而信号和变量则相当于组合电路系统中门与门间的连接及其连线上的信号值。(2)从行为仿真和VHDL语句功能上看,信号和变量的区别主要表现在接受和保持信息的方式、信息保持与传递的区域大小上。(3)变量在硬件电路钟没有直接的对应物,只是临时存储,表示需要立即改变的行为,最后还是要将变量赋给信号。(4)信号能够作为进程的敏感信号,而变量不能。例:比较信号和变量的区别ARCHITECTURESIG_ARCHOFxorISSIGNALD:STD_LOGIC;BEGINSIG:PROCESS(A,B,C)BEGIND<=A;X<=CXOR