第四章VHDL顺序语句_第1页
第四章VHDL顺序语句_第2页
第四章VHDL顺序语句_第3页
第四章VHDL顺序语句_第4页
第四章VHDL顺序语句_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编辑ppt1lProcess,Function,Procedure中的语句都是顺序执行,以Process为例lProcess与Process之间,与其他并行语句之间都是并行的关系编辑ppt2l1. 顺序信号赋值语句顺序信号赋值语句l 信号名信号名 =赋值源;赋值源;l赋值符号左边必须是信号名,但不能是端口声明赋值符号左边必须是信号名,但不能是端口声明中指定为中指定为in的信号。右边表达式中可以出现任意对象的信号。右边表达式中可以出现任意对象类,但不能出现端口声明中指定为类,但不能出现端口声明中指定为out的信号。的信号。例:例:B = A;l- 惯性延迟,无时间延迟子句,即惯性延迟,无时间延迟

2、子句,即延迟延迟D = C after 5 ns; l - 传输延迟,指定延迟时间传输延迟,指定延迟时间编辑ppt3l变量赋值的含义是:用计算赋值符号右边的表达式所得新值取代变量原来的值。变量赋值的语法形式为:变量名 := 表达式;编辑ppt4la:=1;lC1:=“1100”;lG(2)=y;lH(I)=z;lF(1 to 4):=“1001”;编辑ppt5lSIGNAL a,b,c,d : STD_LOGIC;lSIGNAL S : STD_LOGIC_VECTOR(1 TO 4);llVARIABLE e, f : STD_LOGIC;lVARIABLE g : STD_LOGIC_VE

3、CTOR(1 TO 2);lVARIABLE h : STD_LOGIC_VECTOR(1 TO 4);lS =(0, 1, 0 , 0);l(a, b, c, d) = s;l-a=0; b=1; c=0; de, 4=f, 2=g(1), 1=g(2) ):=h;l-g(2) :=h(1) ; g(1) :=h(2) ; e :=h(3) ; f :=h(4) ;编辑ppt6 VHDL为用户提供了若干控制进程内部执行为用户提供了若干控制进程内部执行流的结构,可分为条件控制和循环控制两种。流的结构,可分为条件控制和循环控制两种。 IF语句 CASE语句 LOOP语句 NEXT语句 EXIT语

4、句l 编辑ppt7lif 条件表达式 then l 顺序语句end if;编辑ppt8lif 条件表达式 thenl 顺序语句 else l 顺序语句lend if;编辑ppt9lif 条件表达式 then l 顺序语句l elsif 条件表达式 then l 顺序语句l else l 顺序语句 end if;编辑ppt10 BEGIN IF (ab) THEN y=b; ELSE y=a; END IF; END max;编辑ppt11B用VHDL设计一个D触发器ddf1引进内部节点信号进程和敏感信号进程和敏感信号检测检测CLK上升沿上升沿将数据输出端口将数据输出端口顺序语句编辑ppt12P

5、ROCESS (clock, clear)BEGINIF clear = 0 THENq = 0;ELSIF clockEVENT and clock = 1 THENq = d;END IF;END PROCESS;编辑ppt13Process(clk)begin if(clkevent and clk=1) then if(t = 1) then q = not(q); else q = q; end if; end if;end process;编辑ppt14ENTITY mux ISPORT (a, b, sel : IN BIT; data_out : OUT BIT);END mu

6、x;ARCHITECTURE ex OF mux ISSIGNAL temp: BIT;BEGINprocess_a: PROCESS (a, b, selx)BEGINIF (sel = 0) THENtemp = a;ELSE temp = b;END IF; data_out 语句;when 选择值= 语句;l when others = 语句;lend case; l lcase语句选择项的要求:选择唯一,覆盖全集。2、case语句编辑ppt16l单个普通数值 8l数值选择范围 (2 to 4)l并列数值 3 | 5 | 8 l混合方式编辑ppt17lLIBRARY ieee;lUSE

7、 ieee.std_logic_1164.all;lENTITY mux41 islPORT(s1,s2,a,b,c,d : IN STD_LOGIC;l z : OUT STD_LOGIC);lEND mux41;lARCHITECTURE activ OF mux41 ISl SIGNAL s : STD_LOGIC_VECTOR( 1 DOWNTO 0);l BEGINl s z z z zz Out1 Out1 Out1 Out1 10;end loop loop2; l 编辑ppt22loop标号标号: f or 循环变量循环变量 in 循环次数范围循环次数范围 loop 顺序语句;

8、顺序语句;end loop loop标号标号;循环变量由循环次数范围确定其类型,循环变量由循环次数范围确定其类型,无无需声明需声明。循环变量可用在循环体中,但一旦循。循环变量可用在循环体中,但一旦循环结束,循环变量不再起作用,即不能把循环环结束,循环变量不再起作用,即不能把循环变量的值带到循环体外。变量的值带到循环体外。编辑ppt23l8位奇偶校验电路位奇偶校验电路lENTITY p_check islPORT (a : IN STD_LOGIC_VECTOR(7 DOWNTO 0);l Y : OUT STD_LOGIC);lEND p_check ;lARCHITECTURE opt OF

9、 p_check ISl SIGNAL tmp : STD_LOGIC;l BEGINl PROCESS (a)l BEGINl tmp= 0;l for n in 0 to 7 looptmp= tmp XOR a(n); end loop;l y = tmp;l END PROCESS;lEND opt;编辑ppt24 标号:标号:while 循环控制条件循环控制条件 loop语句;语句;end loop 标号;标号; 循环控制条件是布尔类型。每次执行完循循环控制条件是布尔类型。每次执行完循环体之后,都要检测条件表达式的值是真还是环体之后,都要检测条件表达式的值是真还是假。只要其值为真,就

10、要在执行一次循环体内假。只要其值为真,就要在执行一次循环体内的语句。在条件为假时结束循环。的语句。在条件为假时结束循环。编辑ppt25lprocess (inputx)variable n : Integer := 1;beginL1: while n = 8 loopoutputx(n) = inputx(n+8);l n := n +1 ;end loop L1;end process;编辑ppt26l 该语句控制循环提前进入下一次循环,即该语句控制循环提前进入下一次循环,即跳过该语句后面的语句执行指定标号的下跳过该语句后面的语句执行指定标号的下一个循环一个循环next ;l next l

11、oop标号标号;l next loop标号标号 when 条件表达式条件表达式 ;编辑ppt27 loop2: loop B := B+1; next loop2 when B10; . .end loop loop2; l 编辑ppt28lexit语句使得从循环标号所标明的循环中退出。语句使得从循环标号所标明的循环中退出。 exit ;l exit loop标号标号;l exit loop标号标号 when 条件表达式条件表达式 l如果指定条件,必须要在所绐条件为真的前提如果指定条件,必须要在所绐条件为真的前提下,才从循环标号所标明的循环中退出。下,才从循环标号所标明的循环中退出。l 两种情

12、况下的循环标号都是可选项。如果语句两种情况下的循环标号都是可选项。如果语句中末给出循环标号,则从当前循环中退出。中末给出循环标号,则从当前循环中退出。编辑ppt29 signal a , b : std_logic_vector(1 downto 0);l signal a_less_then_b :BOOLEAN;l a_less_then_b =false; for i in 1 downto 0 loop IF (a(i)=1 AND b(i)=0 THEN l a_less_then_b =false;l EXIT ;l Elsif (a(i)=0 AND b(i)=1 THEN l

13、a_less_then_b 实参表达式实参表达式 ,形数名形数名= 实参表达式实参表达式);编辑ppt35lPACKAGE data_type ISlsubtype data_element is integer range 0 to 3 ;ltype data_array is array (1 to 3) of data_element;lend data_type;编辑ppt36luse work.data_type.all;lENTITY sort islPORT (in_array : in data_array ;l out_array : out data_array ;lEND

14、 sort ;lARCHITECTURE exmp OF sort ISlBEGIN PROCESS (in_array) procedure swap(data : inout data_array; low,high: in integer) is variable temp: data_element; BEGIN if (data(low) data(high) thenl tmp:= data(low);l data(low):=data(high);l data(high):= temp;l end if;lEnd swap;lVarible my_array :data_array; 编辑ppt37lBeginl my_array := in_array;lSwap(my_array ,1,2);lSwap(my_array ,2,3);lSwap(my_array ,1,2);lOut_array b) THEN tmp:=a; ELSE tmp:=b; END IF; RETURN tmp; END max; 函数的参数均为输入参数。函数的参数均为输入参数。 函数调用返回一个指定数据类型的值。函数调用返回一个指定数据类型的值。编辑ppt40ARCHITECTURE rtl OF dpeak IS SIGNAL peak : S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论