VHDL主要描述语句课件.ppt
- 【下载声明】
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
展开阅读全文