第五章VHDL主要描述语句主要内容概述行为描述语句结构描述语句5.
1概述VHDL中的描述语句了分为顺序语句(SequentialStatements)和并行语句(ConcurrentStatements)两大基本系列.
5.
2行为描述语句5.
2.
1赋值语句赋值语句有两种,即信号赋值语句和变量赋值语句.
每一种赋值语句都有三个基本组成部分,即赋值目标、赋值符号和赋值源.
信号赋值语句和变量赋值语句的语法格式如下:信号赋值目标"1000")THENZ"1000")THENZ顺序语句;WHEN选择值_2|选择值_3=>顺序语句;WHEN选择值_4TO选择值_N=>顺序语句;WHENOTHERS=>顺序语句;ENDCASE;选择值可以有四种不同的表达方式:单个普通数值,如选择值_1;并列数值,如选择值_2|选择值_3,表示取值为选择值_2或者选择值_3;数值选择范围,如选择值_4TO选择值_N,表示取值可以是该范围中的任意一个;混合方式,以上三种方式的混合.
2.
CASE语句(续1)例5.
7CASE语句描述的8线-3线编码器.
LIBRARYIEEE;USEIEEE.
STD_LOGIC_1164.
ALL;ENTITYencoder_83ISPORT(s:INSTD_LOGIC_VECTOR(7DOWNTO0)z:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDencoder_83;ARCHITECTUREbehavioralOFencoder_83ISBEGINPROCESS(s)BEGINCASEsISWHEN"11111110"=>zzzzzzzzzZZZZZZZZ=vect'low)LOOPIF(vect(i)='1')THENtmp:=tmp+2**i;ENDIF;i:=i-1;--修改循环变量ENDLOOP;resultZNULL;ENDCASE;ENDPROCESSP_WAIT;ENDarch_wait;5.
2.
5WAIT语句WAIT语句的语句格式有如下四种形式:WAITUNTIL条件表达式;WAITFOR时间表达式;WAITON信号列表;WAIT;例5.
13利用WAIT语句描述的D触发器模块.
ENTITYFFISPORT(D,CLK:INBIT;Q:OUTBIT);ENDFF;ARCHITECTUREBEH_1OFFFISBEGINPROCESSBEGINWAITUNTILCLK='1';Q=9)THENcount端口映射表);5.
3.
1元件例化语句(续1)例5.
2216进制加法计数器的描述LIBRARYIEEE;USEIEEE.
STD_LOGIC_1164.
ALL;USEIEEE.
NUMERIC_STD.
ALL;ENTITYcounter_16ISPORT(Clk:INSTD_LOGIC;reset:INSTD_LOGIC;enable:INSTD_LOGIC;out_q:OUTINTEGERRANGE0TO16);ENDENTITY;5.
3.
1元件例化语句(续2)例5.
2216进制加法计数器的描述ARCHITECTUREinstOFcounter_16ISCOMPONENTbinary_up_down_counterISGENERIC(min_count:NATURAL:=0;max_count:NATURAL:=16--更改了最大计数值);PORT(clk:INSTD_LOGIC;reset:INSTD_LOGIC;enable:INSTD_LOGIC;updown:INSTD_LOGIC:='1';--只保留加法计数q:OUTINTEGERRANGEmin_countTOmax_count);ENDCOMPONENTbinary_up_down_counter;BEGINu1:binary_up_down_counterPORTMAP(clk=>clk,reset=>reset,enable=>enable,q=>out_q);ENDinst;5.
3.
1元件例化语句(续3)例5.
2216进制加法计数器的描述例5.
22的时序仿真图5.
3.
2配置语句CONFIGURATION配置名OF实体名ISFOR选配结构体名配置说明ENDFOR;END配置名;例5.
23一位全加器中配置语句的使用.
LIBRARYIEEE;USEIEEE.
STD_LOGIC_1164.
ALL;ENTITYfulladder_cfgISPORT(a,b,ci:INSTD_LOGIC;S,co:OUTSTD_LOGIC);ENDfulladder_cfg;5.
3.
2配置语句(续1)例5.
23一位全加器中配置语句的使用.
ARCHITECTUREbehavioralOFfulladder_cfgIS--以下是一位全加器结构体行为描述BEGINSain(0),b=>bin(0),ci=>cin,s=>sum(0),co=>carry(1));u2:fulladder_cfgPORTMAP(a=>ain(1),b=>bin(1),ci=>carry(1),s=>sum(1),co=>carry(2));u3:fulladder_cfgPORTMAP(a=>ain(2),b=>bin(2),ci=>carry(2),s=>sum(2),co=>carry(3));u4:fulladder_cfgPORTMAP(a=>ain(3),b=>bin(3),ci=>carry(3),s=>sum(3),co=>count);ENDinst;5.
3.
2配置语句(续3)例5.
24四位串行加法器的结构描述.
--以下是一位全加器的结构体配置CONFIGURATIONselOFfulladder_4ISFORinstFORu1,u2:fulladder_cfgUSEENTITYWORK.
fulladder_cfg(behavioral);ENDFOR;FOROTHERS:fulladder_cfg--本例中为u3、u4USEENTITYWORK.
fulladder_cfg(Dataflow);ENDFOR;ENDFOR;ENDsel;5.
3.
3生成语句生成语句的语句格式有如下两种形式:标号:FOR循环变量取值范围GENERATE说明语句BEGIN并行语句ENDGENERATE标号;标号:IF条件GENERATE说明语句BEGIN并行语句ENDGENERATE标号;5.
3.
3生成语句(续1)例5.
25带异步复位、置位端的4位D触发器的描述.
LIBRARYIEEE;USEIEEE.
STD_LOGIC_1164.
ALL;--4位D触发器的实体描述ENTITYASYNC_FF_4ISPORT(D,SET:INSTD_LOGIC_VECTOR(3DOWNTO0);CLK,RST:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDASYNC_FF_4;--4位D触发器的结构体描述ARCHITECTUREGENEROFASYNC_FF_4ISCOMPONENTASYNC_FF--需要确定ASYNC_FF已在work库中PORT(D,CLK,SET,RST:INSTD_LOGIC;Q:OUTSTD_LOGIC)ENDCOMPONENT;5.
3.
3生成语句(续2)例5.
25带异步复位、置位端的4位D触发器的描述.
BEGINlable:FORiIN3DOWNTO0GENERATEBEGINU1:ASYNC_FFPORTMAP(D=>D(i),CLK=>CLK,SET=>SET(i),RST=>RST,Q=>Q(i));ENDGENERATElable;ENDGENER;5.
3.
4块语句块语句应用只是一种将结构体中的并行描述语句进行组合的方法,它的主要目的是改善并行语句及其结构的可读性.
块标号:BLOCK接口说明类属说明BEGIN并行语句ENDBLOCK块标号;5.
3.
4块语句(续)例5.
27块语句应用示例1.
LIBRARYIEEE;USEIEEE.
STD_LOGIC_1164.
ALL;ENTITYblock_testISPORT(a,b:INSTD_LOGIC;s,c:OUTSTD_LOGIC);END;ARCHITECTUREexampleOFblock_testISBEGINrr1:BLOCK--块定义PORT(a1,b1:INSTD_LOGIC;--块中的端口定义s1:OUTSTD_LOGIC;c1:OUTSTD_LOGIC);PORTMAP(a1=>a,b1=>b,s1=>s,c1=>c);--端口映射说明BEGINp1:PROCESS(a1,b1)--使用的是块定义的局部变量BEGINs1<=a1XORb1;ENDPROCESSp1;p2:PROCESS(a1,b1)BEGINc1<=a1ANDb1;ENDPROCESSp2;ENDBLOCKrr1;ENDARCHITECTUREexample;本章小结结构体描述语句分为顺序语句和并行语句两大基本系列,其中顺序语句是按照代码的书写顺序一条一条顺序执行的,描述的是硬件电路中各支路信号传输的特性;而并行语句具有多进程并发性,各并行语句是同时执行的,与其书写顺序无关,很好地描述了硬件电路中各分支电路同时并行工作的特性.
结构体的描述有行为描述、数据流描述和结构描述三种方式.
行为描述语句包括赋值语句、并行信号赋值语句、顺序控制语句、NULL语句、WAIT语句和进程语句.
结构描述语句包括元件例化语句、配置语句、生成语句和块语句.
官方网站:点击访问亚州云活动官网活动方案:地区:美国CERA(联通)CPU:1核(可加)内存:1G(可加)硬盘:40G系统盘+20G数据盘架构:KVM流量:无限制带宽:100Mbps(可加)IPv4:1个价格:¥128/年(年付为4折)购买:直达订购链接测试IP:45.145.7.3Tips:不满意三天无理由退回充值账户!地区:枣庄电信高防防御:100GCPU:8核(可加)内存:4G(可加)硬盘:...
LightNode是一家位于香港的VPS服务商.提供基于KVM虚拟化技术的VPS.在提供全球常见节点的同时,还具备东南亚地区、中国香港等边缘节点.满足开发者建站,游戏应用,外贸电商等应用场景的需求。新用户注册充值就送,最高可获得20美元的奖励金!成为LightNode的注册用户后,还可以获得属于自己的邀请链接。通过你的邀请链接带来的注册用户,你将直接获得该用户的消费的10%返佣,永久有效!平台目前...
今天CloudCone发布了最新的消息,推送了几款特价独立服务器/杜甫产品,美国洛杉矶MC机房,分配100Mbps带宽不限流量,可以选择G口限制流量计划方案,存储分配的比较大,选择HDD硬盘的话2TB起,MC机房到大陆地区线路还不错,有需要美国特价独立服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2...