如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
ARCHITECTURE并行语句的使用结构ARCHITECTURE结构体名OF实体名IS说明语句BEGIN并行语句ENDARCHITECTURE结构体名1.简单信号赋值语句格式:赋值目标<=表达式;例如:output1<=aANDb;规则:赋值目标必须是信号,而且出现在结构体或块语句中2.条件信号赋值语句格式:赋值目标<=表达式WHEN赋值条件ELSE表达式WHEN赋值条件ELSE…表达式;例如:对4选1多路选择器的描述…z<=aWHENs=”00”ELSEbWHENs=”01”ELSEcWHENs=”10”ELSEd;…3.选择信号赋值语句格式:WITH选择表达式SELECT赋值目标信号<=表达式WHEN选择值,--以“,”号结束表达式WHEN选择值,…表达式WHEN选择值;--以“;”号结束例如:对4选1多路选择器的描述WITHselSELECTq<=i0AFTER10nsWHEN0,i1AFTER10nsWHEN1,i2AFTER10nsWHEN2,i3AFTER10nsWHEN3,‘X’AFTER10nsWHENOTHERS;特点:1、进程与进程,或其它并发语句之间的并发性;2、进程内部的顺序性;3、进程的启动与挂起;4、进程与进程,或其它并发语句之间的通信。进程语句process敏感信号表:进程内要读取的所有敏感信号(包括端口)的列表。每一个敏感信号的变化,都将启动进程。格式:敏感信号表的特点:1、同步进程的敏感信号表中只有时钟信号。如:process(clk)beginif(clk’eventandclk=‘1’)thenifreset=‘1’thendata<=“00”;elsedata<=in_data;endif;endif;endprocess;2、异步进程敏感信号表中除时钟信号外,还有其它信号。例:process(clk,reset)beginifreset=‘1’thendata<=“00”;elsif(clk’eventandclk=‘1’)thendata<=in_data;endif;endprocess;3、如果有wait语句,则不允许有敏感信号表。【例】异步清除十进制加法计数器的描述BEGINPROCESS(clr,clk)BEGINIFclr='0'THENcnt<=0;ELSIFclk'EVENTANDclk='1'THENIF(cnt=9)THENcnt<=0;ELSEcnt<=cnt+1;ENDIF;ENDIF;ENDPROCESS;ENDexample9;功能:将一个大系统程序分解为若干子系统(块)编写,便于程序的编写、调试和查错。【例3.10】假设CPU芯片由算术逻辑运算单元ALU和寄存器组REG8组成,REG8又由8个REG1、REG2、…子块构成,其程序结构为:LIBRARYIEEE;USEIEEE.STDLOGIC1164.ALLENTITYCPUISPORT(clk,RESET:INSTDLOGIC;ADDERS:OUTSTDLOGIC_VECTOR(31DOWNTO0);DATA:INOUTSTDLOGICVECTOR(7DOWNTO0);ENDCPU;ARCHITECTURECPU_ALU_REG8OFCPUISSIGANLibus,dbus:STD_LOGIC_VECTOR(31DOWNTO0);--定义全局量BEGINALU:BLOCKSIGNALQbus:STD_LOGIC_VECTOR(31DOWNTO0);--定义局域量BEGIN--ALU块行为描述语句ENDALU;REG8BLOCKSIGNALZbus:STD_LOGIC_VECTOR(31DOWNTO0);--定义局域量BEGINREG1BLOCKSIGNALZbus1:STD_LOGIC_VECTOR(31DOWNTO0);--定义子局域量BEGIN--REG1子块行为描述语句ENDREG1…ENDREG8ENDCPU_ALU_REG8说明:在结构体中定义的全局量可以在各块结构中使用;块结构中定义局域量只能在本块及所属的子块中使用;子块中定义子局域量只能在子块中使用。四、过程(PROCEDURE)语句过程调用前需要将过程的实质内容装入程序包(Package)中,过程分为过程首和过程体两部分。过程首是过程的索引,相当于一本书目录,便于快速地检索到相应过