书签 分享 收藏 举报 版权申诉 / 48
上传文档赚钱

类型VHDL主要描述语句课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4989585
  • 上传时间:2023-01-31
  • 格式:PPT
  • 页数:48
  • 大小:1.50MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《VHDL主要描述语句课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    VHDL 主要 描述 语句 课件
    资源描述:

    1、图5.1 结构体中并行语句间的关系生成语句元件例化语句进程语句并行信号赋值语句并行过程调用语句块语句条件信号赋值语句END ARCHITECTUREARCHITECTURE信号信号信号信号信号信号标识符、数组元素目标的赋值语句示例如下:SIGNAL s1,s2:STD_LOGIC;SIGNAL array 1:STD_LOGIC_VECTOR(0 TO 3);PROCESS(s1)VARIABLE v1,v2:STD_LOGIC;BEGINV1:=0;V2:=1;S1=s1 AND s2;S2=s1 OR s2;array 1(0)=V1;array 1(1)=V2;array 1(2)=S1

    2、;array 1(3)=S2;END PROCESS;例5.1 四位并行加法器的数据流描述。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL ENTITY ADD4 IS PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);B:IN STD_LOGIC_VECTOR(3 DOWNTO 0);CIN :IN STD_LOGIC;SUM :OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END ADD4;ARCHITEC

    3、TURE ADD4_concurnt OF ADD4 IS-定义包含有进位的SUM信号SIGNAL SUMINT:STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINSUMINT=(0&A)+(0&B)+(0000&CIN)AFTER 10 ns;COUT=SUMINT(4)AFTER 15 ns;SUM=SUMINT(3 DOWNTO 0)AFTER 15 ns;END ADD4_concurnt;例5.2 3选1多路选择器的行为描述。例5.2 3选1多路选择器的行为描述。LIBRARY IEEE;USE IEEE.STD_LOGIC 1164.ALL;ENTITY mux3

    4、1 ISPORT(a,b,c :IN STD_LOGIC;en1,en2 :IN STD_LOGIC;z :OUT STD_LOGIC);END mux31;ARCHITECTURE behavioral OF mux31 ISBEGINZ=a WHEN en2=1 ELSE b WHEN en1=1 ELSE c;END behavioral;例5.3 简易的指令译码器设计。例5.3 简易的指令译码器设计。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECODER ISPORT(A,B,C :IN STD_LOGIC;data1,data2

    5、:IN STD_LOGIC;data_out :OUT STD_LOGIC);END DECODER;ARCHITECTURE behavioral OF DECODER ISSIGNAL instruction:STD_LOGIC_VECTOR(0 TO 2);BEGINInstruction=A&B&C;WITH instruction SELECTdata_out=NOT data1 WHEN 000,data1 AND data2 WHEN 001,data1 OR data2 WHEN 010,data1 NAND data2 WHEN 011,data1 NOR data2 WHE

    6、N 100,data1 XOR data2 WHEN 101,data1 XNOR data2 WHEN 110,Z WHEN OTHERS;END behavioral;第一种形式:IF 条件 THEN-顺序语句;ELSE-顺序语句;END IF;第二种形式:IF 条件 THEN-顺序语句;END IF;第三种形式:IF 条件 THEN-顺序语句;ELSIF 条件 THEN-顺序语句;ELSE-顺序语句;END IF;第四种形式:IF 条件 THEN-顺序语句;ELSIF 条件 THEN-顺序语句;END IF;例5.4 采用两种不同IF语句结构实现同一结构和功能的数据选择器。ENTITY

    7、if_statement ISPORT(A,B,C,X:IN BIT_VECTOR(3 DOWNTO 0);Z:OUT BIT_VECTOR(3 DOWNTO 0);END if_statement;ARCHITECTURE example1 OF if_statement ISBEGINPROCESS(A,B,C,X)BEGINZ=A;IF(X=1111)THENZ1000)THENZ=C;END IF;END PROCESS;END example1;例5.4 采用两种不同IF语句结构实现同一结构和功能的数据选择器。ARCHITECTURE example2 OF if_statement

    8、 ISBEGINPROCESS(A,B,C,X)BEGIN IF(X=1111)THENZ1000)THENZ=C;ELSEZ=A;END IF;END PROCESS;END example2;A3.0B3.0OUTA3.0B3.0OUTSELABOUT0MUX21SELABOUT0MUX21B3.0C3.0Z3.0Equal04 hF Z3.0Z7.4LessThan04 h8 A3.0X3.0图5.4 例5.4 的RTL图例5.5 利用IF语句的多分支嵌套实现四选一多路选择器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX_41 I

    9、SPORT(S1,S0,A,B,C,D:IN STD_LOGIC;Z:OUT STD_LOGIC);END MUX_41;ARCHITECTURE BEHAV_MUX41 OF MUX_41 ISBEGINP1:PROCESS(S1,S0,A,B,C,D)BEGIN IF S1=0 AND S0=0 THENZ=A;ELSIF S1=0 AND S0=1 THENZ=B;ELSIF S1=1 AND S0=0 THENZ=C;ELSEZ=D;END IF;END PROCESS P1;END BEHAV_MUX41;例5.6 利用IF语句的多分支嵌套实现四选一多路选择器的错误示例。P1:PRO

    10、CESS(S1,S0,A,B,C,D)BEGIN IF S1=0 AND S0=0 THENZ=A;ELSIF S1=0 AND S0=1 THENZ=B;ELSIF S1=1 AND S0=0 THENZ=C;ELSIF S1=1 AND S0=1 THENZ 顺序语句;WHEN 选择值_2|选择值_3=顺序语句;WHEN 选择值_4 TO选择值_N=顺序语句;WHEN OTHERS=顺序语句;END CASE;选择值可以有四种不同的表达方式:单个普通数值,如选择值_1;并列数值,如选择值_2|选择值_3,表示取值为选择值_2或者选择值_3;数值选择范围,如选择值_4 TO 选择值_N,表示

    11、取值可以是该范围中的任意一个;混合方式,以上三种方式的混合。例5.7 CASE 语句描述的8线-3线编码器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY encoder_83 ISPORT(s:IN STD_LOGIC_VECTOR(7 DOWNTO 0);z:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END encoder_83;ARCHITECTURE behavioral OF encoder_83 ISBEGINPROCESS(s)BEGINCASE s ISWHEN 11111110=z z z z z z z

    12、 z z Z Z Z Z Z Z Z Z=0;END CASE;END PROCESS;END example;FOR LOOP的语句格式如下:LOOP 标号:FOR 循环变量 IN 循环次数范围 LOOP顺序语句END LOOP LOOP 标号;WHILE LOOP的语句格式如下:LOOP标号:WHILE 循环控制条件 LOOP顺序语句END LOOP LOOP 标号;例5.10 FOR LOOP语句使用示例。ENTITY for_loop ISPORT(A:IN INTEGER RANGE 0 TO 3;Z:OUT BIT_VECTOR(3 DOWNTO 0);END for_loop;A

    13、RCHITECTURE example OF for_loop ISBEGINPROCESS(A)BEGINZ=0000;FOR i IN 0 TO 3 LOOPIF(A=i)THENZ(i)=1;END IF;END LOOP;END PROCESS;END example;例5.11 利用LOOP语句将向量转化为整数输出。ENTITY conv_int ISPORT(vect:IN BIT_VECTOR(7 DOWNTO 0);result:OUT INTEGER);END conv_int;ARCHITECTURE A OF conv_int ISBEGIN PROCESS(vect)V

    14、ARIABLE tmp:INTEGER;BEGINtmp:=0;FOR i IN 7 DOWNTO 0 LOOPIF(vect(i)=1)THENtmp:=tmp+2*i;END IF;END LOOP;result=vect low)LOOPIF(vect(i)=1)THEN tmp:=tmp+2*i;END IF;i:=i-1;-修改循环变量END LOOP;result=tmp;END PROCESS;END B;NEXT的语句四种形式:NEXT;NEXT LOOP标号;NEXT WHEN 条件表达式;NEXT LOOP标号 WHEN 条件表达式;EXIT语句四种形式:EXIT;EXIT

    15、 LOOP标号;EXIT WHEN 条件表达式;EXIT LOOP标号 WHEN 条件表达式;例5.12 NULL语句的应用示例。ENTITY EX_WAIT ISPORT(CNTL:IN INTEGER RANGE 0 TO 31;A,B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);Z:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END EX_WAIT;ARCHITECTURE arch_wait OF EX_WAIT ISBEGINP_WAIT:PROCESS(CNTL)BEGIN Z Z NULL;END CASE;END PROCESS P_W

    16、AIT;END arch_wait;例5.13 利用WAIT语句描述的D触发器模块。ENTITY FF ISPORT(D,CLK:IN BIT;Q:OUT BIT);END FF;ARCHITECTURE BEH_1 OF FF ISBEGINPROCESSBEGINWAIT UNTIL CLK=1;Q=D;END PROCESS;END BEH_1;例5.14 进程中敏感信号参数表和IF语句的使用。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY comp_list ISPORT(A,B,SEL:IN STD_LOGIC;Z:OUT STD_LO

    17、GIC);END comp_list;ARCHITECTURE RTL OF comp_list ISBEGINPROCESS(A,B,SEL)BEGINIF SEL=1 THENZ=A;ELSE Z=9)THENcount=0;ELSE count=count+1;END IF;END IF;END PROCESS;Q=count;END A;例5.16 带异步复位、置位端的D触发器描述。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ASYNC_FF ISPORT(D,CLK,SET,RST:IN STD_LOGIC;Q:OUT STD_LO

    18、GIC);END ASYNC_FF;ARCHITECTURE A OF ASYNC_FF ISBEGINPROCESS(CLK,RST,SET)BEGINIF(RST=1)THEN Q=0;ELSIF SET=1 THEN Q=1;ELSIF(CLK EVENT AND CLK=1)THEN Q=D;END IF;END PROCESS;END A;END counter;例5.17 移位寄存器的描述。-基本移位寄存器的描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY basic_shift_register ISGENERIC(num_sta

    19、ges:NATURAL:=16);PORT(clk:IN STD_LOGIC;enable:IN STD_LOGIC;sr_in:IN STD_LOGIC;sr_out:OUT STD_LOGIC);END ENTITY;例5.17 移位寄存器的描述。ARCHITECTURE rtl OF basic_shift_register IS-为基本移位寄存器构造一个数组类型TYPE sr_length IS ARRAY(num_stages-1)DOWNTO 0)OF STD_LOGIC;-声明移位寄存器内部信号SIGNAL sr:sr_length;BEGINPROCESS(clk)BEGIN

    20、IF(clk EVENT and clk=1)THEN IF(enable=1)THEN -左移一位,且最高位数据丢失 sr(num_stages-1)DOWNTO 1)=sr(num_stages-2)DOWNTO 0);sr(0)=sr_in;-装载最低位的新数据 END IF;END IF;END PROCESS;-在最高位数据丢失前将其输出sr_out=sr(num_stages-1);END rtl;例5.17 移位寄存器的描述。类属说明语句的一般书写格式如下:GENERIC(常数名:数据类型:设定值;常数名:数据类型:设定值 );图5.8 例5.17的时序仿真图例5.18 二进制加

    21、法/减法计数器的描述。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.NUMERIC_STD.ALL;ENTITY binary_up_down_counter IS GENERIC(min_count :NATURAL:=0;max_count :NATURAL:=255);PORT(clk :IN STD_LOGIC;reset :IN STD_LOGIC;enable :IN STD_LOGIC;updown :IN STD_LOGIC;q :OUT INTEGER RANGE min_count TO max_count);END E

    22、NTITY;例5.18 二进制加法/减法计数器的描述。ARCHITECTURE rtl OF binary_up_down_counter ISSIGNAL direction:INTEGER;-定义计数方向信号BEGINProc1:PROCESS(updown)BEGINIF(updown=1)THEN direction=1;ELSEdirection=-1;END IF;END PROCESS Proc1;Proc2:PROCESS(clk)VARIABLE cnt:INTEGER RANGE min_count TO max_count;BEGIN IF(clk EVENT and c

    23、lk=1)THENIF reset=1 THENcnt:=0;-计数器复位ELSIF enable=1 THEN cnt:=cnt+direction;-加法/减法计数END IF;END IF;q clk,reset=reset,enable=enable,q=out_q);END inst;例5.22 16进制加法计数器的描述例5.22的时序仿真图CONFIGURATION 配置名 OF 实体名 ISFOR 选配结构体名配置说明END FOR;END 配置名;例5.23 一位全加器中配置语句的使用。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTIT

    24、Y fulladder_cfg ISPORT(a,b,ci:IN STD_LOGIC;S,co:OUT STD_LOGIC);END fulladder_cfg;例5.23 一位全加器中配置语句的使用。ARCHITECTURE behavioral OF fulladder_cfg IS -以下是一位全加器结构体行为描述BEGIN S=1 WHEN(a=0 AND b=1 AND ci=0)ELSE 1 WHEN(a=1 AND b=0 AND ci=0)ELSE 1 WHEN(a=0 AND b=0 AND ci=1)ELSE 1 WHEN(a=1 AND b=1 AND ci=1)ELSE

    25、 0;co=1 WHEN(a=1 AND b=1 AND ci=0)ELSE 1 WHEN(a=0 AND b=1 AND ci=1)ELSE 1 WHEN(a=1 AND b=0 AND ci=1)ELSE 1 WHEN(a=1 AND b=1 AND ci=1)ELSE 0;END behavioral;ARCHITECTURE Dataflow OF fulladder_cfg IS -以下是一位全加器结构体数据流描述BEGINS=a XOR b XOR ci;co ain(0),b=bin(0),ci=cin,s=sum(0),co=carry(1);u2:fulladder_cfg

    26、PORT MAP(a=ain(1),b=bin(1),ci=carry(1),s=sum(1),co=carry(2);u3:fulladder_cfg PORT MAP(a=ain(2),b=bin(2),ci=carry(2),s=sum(2),co=carry(3);u4:fulladder_cfg PORT MAP(a=ain(3),b=bin(3),ci=carry(3),s=sum(3),co=count);END inst;例5.24 四位串行加法器的结构描述。-以下是一位全加器的结构体配置CONFIGURATION sel OF fulladder_4 ISFOR instFO

    27、R u1,u2:fulladder_cfgUSE ENTITY WORK.fulladder_cfg(behavioral);END FOR;FOR OTHERS:fulladder_cfg -本例中为u3、u4USE ENTITY WORK.fulladder_cfg(Dataflow);END FOR;END FOR;END sel;abciScoabciScoabciScoabciScofulladder_cfg:u4countsum3.0fulladder_cfg:u3fulladder_cfg:u2cinain3.0bin3.0fulladder_cfg:u1图5.13 例5.24的

    28、RTL图生成语句的语句格式有如下两种形式:标号:FOR 循环变量 取值范围 GENERATE说明语句BEGIN并行语句END GENERATE 标号;标号:IF 条件 GENERATE说明语句BEGIN并行语句END GENERATE 标号;例5.25 带异步复位、置位端的4位D触发器的描述。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;-4位D触发器的实体描述ENTITY ASYNC_FF_4 IS PORT(D,SET :IN STD_LOGIC_VECTOR(3 DOWNTO 0);CLK,RST:IN STD_LOGIC;Q:OUT STD_LOGI

    29、C_VECTOR(3 DOWNTO 0);END ASYNC_FF_4;-4位D触发器的结构体描述ARCHITECTURE GENER OF ASYNC_FF_4 IS COMPONENT ASYNC_FF -需要确定ASYNC_FF已在work库中PORT(D,CLK,SET,RST:IN STD_LOGIC;Q:OUT STD_LOGIC);END COMPONENT;例5.25 带异步复位、置位端的4位D触发器的描述。BEGINlable:FOR i IN 3 DOWNTO 0 GENERATE BEGIN U1:ASYNC_FF PORT MAP(D=D(i),CLK=CLK,SET=

    30、SET(i),RST=RST,Q=Q(i);END GENERATE lable;END GENER;块语句应用只是一种将结构体中的并行描述语句进行组合的方法,它的主要目的是改善并行语句及其结构的可读性。块标号:BLOCK接口说明类属说明BEGIN并行语句END BLOCK 块标号;例5.27 块语句应用示例1。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY block_test ISPORT(a,b:IN STD_LOGIC;s,c:OUT STD_LOGIC);END;ARCHITECTURE example OF block_test ISBEGINrr1:BLOCK -块定义PORT(a1,b1:IN STD_LOGIC;-块中的端口定义 s1:OUT STD_LOGIC;c1:OUT STD_LOGIC);PORT MAP(a1=a,b1=b,s1=s,c1=c);-端口映射说明BEGINp1:PROCESS(a1,b1)-使用的是块定义的局部变量BEGINs1=a1 XOR b1;END PROCESS p1;p2:PROCESS(a1,b1)BEGINc1=a1 AND b1;END PROCESS p2;END BLOCK rr1;END ARCHITECTURE example;

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:VHDL主要描述语句课件.ppt
    链接地址:https://www.163wenku.com/p-4989585.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库