第五章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语句和进程语句.
结构描述语句包括元件例化语句、配置语句、生成语句和块语句.
RAKsmart怎么样?RAKsmart发布了2021年中促销,促销时间,7月1日~7月31日!,具体促销优惠整理如下:1)美国西海岸的圣何塞、洛杉矶独立物理服务器低至$30/月(续费不涨价)!2)中国香港大带宽物理机,新品热卖!!!,$269.23 美元/月,3)站群服务器、香港站群、日本站群、美国站群,低至177美元/月,4)美国圣何塞,洛杉矶10G口服务器,不限流量,惊爆价:$999.00,...
官方网站:点击访问华纳云活动官网活动方案:一、香港云服务器此次推出八种配置的香港云服务器,满足不同行业不同业务规模的客户需求,同时每种配置的云服务都有不同的带宽选择,灵活性更高,可用性更强,性价比更优质。配置带宽月付6折季付5.5折半年付5折年付4.5折2年付4折3年付3折购买1H1G2M/99180324576648直达购买5M/17331556710081134直达购买2H2G2M892444...
收到10gbiz发来的7月份优惠方案,中国香港、美国洛杉矶机房VPS主机4折优惠码,优惠后洛杉矶VPS月付2.36美元起,香港VPS月付2.75美元起。这是一家2020年成立的主机商,提供的产品包括独立服务器租用和VPS主机等,数据中心在美国洛杉矶、圣何塞和中国香港。商家VPS主机基于KVM架构,支持使用PayPal或者支付宝付款。洛杉矶VPS架构CPU内存硬盘带宽系统价格单核512MB10GB1...