第五章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语句和进程语句.
结构描述语句包括元件例化语句、配置语句、生成语句和块语句.
GigsGigsCloud是一家成立于2015年老牌国外主机商,提供VPS主机和独立服务器租用,数据中心包括美国洛杉矶、中国香港、新加坡、马来西亚和日本等。商家VPS主机基于KVM架构,绝大部分系列产品中国访问速度不错,比如洛杉矶机房有CN2 GIA、AS9929及高防线路等。目前Los Angeles - SimpleCloud with Premium China DDOS Protectio...
Sharktech荷兰10G带宽的独立服务器月付319美元起,10Gbps共享带宽,不限制流量,自带5个IPv4,免费60Gbps的 DDoS防御,可加到100G防御。CPU内存HDD价格购买地址E3-1270v216G2T$319/月链接E3-1270v516G2T$329/月链接2*E5-2670v232G2T$389/月链接2*E5-2678v364G2T$409/月链接这里我们需要注意,默...
妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款,超过2天不退款 物...