版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 1 第第7章章 VHDL基本描述语句基本描述语句 7.1 顺序描述语句顺序描述语句 7.2 并发描述语句并发描述语句 7.3 顺并描述语句顺并描述语句 7.4 属性描述语句属性描述语句 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 2 7.1 顺序描述语句顺序描述语句(Sequential) 顺序描述语句像在一般的软件语言中一样,其顺序描述语句像在一般的软件语言中一样,其 语句是按出现的次序加以执行的。语句是按出现的次序加以执行的。 顺序描述语句只能出现在进程或子程序(过程顺序描述语句只能出现在进程或子程序(过程 和函数
2、)中,由它定义进程或子程序所执行的算和函数)中,由它定义进程或子程序所执行的算 法。法。 顺序描述语句所涉及到的系统行为有时序流、顺序描述语句所涉及到的系统行为有时序流、 条件、控制和迭代等;条件、控制和迭代等; 顺序描述语句的功能操作有算术、逻辑运算,顺序描述语句的功能操作有算术、逻辑运算, 信号和变量的赋值,子程序调用等。信号和变量的赋值,子程序调用等。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 3 VHDL语言中顺序描述语句主要有:语言中顺序描述语句主要有: u变量赋值语句;变量赋值语句; uIF语句;语句; uCASE语句;语句; uLOOP语句;语句; uNEXT语
3、句;语句; uEXIT语句;语句; uWAIT语句;语句; u断言语句;断言语句; uNULL语句;语句; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 4 7.1.1 变量赋值语句变量赋值语句 目的变量目的变量:=表达式;表达式; 执行该语句时,目的变量的值将由表达式所表达的新值执行该语句时,目的变量的值将由表达式所表达的新值 代替;代替; 表达式的数据类型、长度与目标变量必须一致;表达式的数据类型、长度与目标变量必须一致; 表达式可以是变量、信号或字符。表达式可以是变量、信号或字符。 变量赋值语句只能在进程或子程序中使用;变量赋值语句只能在进程或子程序中使用; 变量赋值语句立
4、即生效变量赋值语句立即生效 变量赋值语句是对变量进行赋值的语句。变量赋值语句是对变量进行赋值的语句。 变量赋值语句的格式:变量赋值语句的格式: 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 5 7.1.2 IF语句语句 1. 单分支操作单分支操作IF语句语句 IF 分支条件表达式分支条件表达式 THEN 顺序处理语句;顺序处理语句;-分支操作分支操作 END IF; IF (a=1) THEN c=b; END IF; 当程序执行到该当程序执行到该IF语句时,就要判断语句时,就要判断IF语句所指定的条语句所指定的条 件是否成立。如果条件成立,则件是否成立。如果条件成立,则IF语句
5、所包含的顺序处语句所包含的顺序处 理语句将被执行;如果条件不成立,程序跳过理语句将被执行;如果条件不成立,程序跳过IF语句所语句所 包含的顺序处理语句,而执行包含的顺序处理语句,而执行IF语句后面的语句。语句后面的语句。 IF (clkEVENT AND clk=1) THEN q=d; END IF; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 6 2. 双重分支操作双重分支操作IF语句语句 IF 分支条件表达式分支条件表达式 THEN 顺序处理语句顺序处理语句;-分支分支1 ELSE 顺序处理语句;顺序处理语句;-分支分支2 END IF; 在这种格式的在这种格式的IF语句
6、中,当语句中,当IF语句所指定的条件满足时,语句所指定的条件满足时, 将执行将执行THEN和和ELSE之间所界定的顺序语句。当条件不之间所界定的顺序语句。当条件不 满足时,将执行满足时,将执行ELSE和和END IF之间所界定的顺序处理之间所界定的顺序处理 语句。语句。 ARCHITECTURE rtl OF mux IS BEGIN PROCESS (a,b,sel) IS BEGIN IF (sel=1 ) THEN c=a; ELSE c=b; END IF; END PROCESS; END ARCHITECTURE rtl; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句
7、 7 3. 多重分支操作多重分支操作IF语句语句 IF 分支条件表达式分支条件表达式1 THEN 顺序处理语句顺序处理语句; -分支分支1 ELSIF 分支条件表达式分支条件表达式2 THEN 顺序处理语句;顺序处理语句;-分支分支2 ELSIF分支条件表达式分支条件表达式N THEN 顺序处理语句;顺序处理语句;-分支分支N ELSE 顺序处理语句;顺序处理语句;-分支分支N+1 END IF; 在这种多选择控制的在这种多选择控制的 IF语句中,设置了多个条语句中,设置了多个条 件,当满足所设置的多个件,当满足所设置的多个 条件之一时,就执行该条条件之一时,就执行该条 件后跟的顺序处理语句。
8、件后跟的顺序处理语句。 如果所有设置的条件都不如果所有设置的条件都不 满足,则执行满足,则执行ELSE和和END IF之间的顺序处理语句。之间的顺序处理语句。 格式格式1: 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 8 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux4 IS PORT ( input :IN STD_LOGIC_VECTOR(3 DOWNTO 0); sel: IN STD_LOGIC_VECTOR(1 DOWNTO 0); y:OUT STD_LOGIC); END ENTITY mux4; ARC
9、HITECTURE rtl OF mux4 IS BEGIN PROCESS (input,sel) IS BEGIN IF (sel=“00”) THEN y=input(0); ELSIF (sel=“01”) THEN y=input(1); ELSIF (sel=“10”) THEN y=input(2); ELSE y 顺序描述语句;顺序描述语句; WHEN 条件表达式取值条件表达式取值2 = 顺序描述语句;顺序描述语句; WHEN 条件表达式取值条件表达式取值N = 顺序描述语句;顺序描述语句; END CASE; CASE语句用来描述总线或编码、译码的行为,从语句用来描述总线或编
10、码、译码的行为,从 许多不同语句的序列中选择其中之一执行。许多不同语句的序列中选择其中之一执行。 格式:格式: 当当CASE和和IS之间的表达式的取值满足之间的表达式的取值满足WHEN指定指定 的条件表达式的值时,程序将执行后跟的,由符号的条件表达式的值时,程序将执行后跟的,由符号=所所 指的顺序处理语句。指的顺序处理语句。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 13 7.1.3 CASE 语句语句 条件表达式条件表达式 4种不同表示形式:种不同表示形式: 1) WHEN 值值 =顺序处理语句;顺序处理语句; 2) WHEN 值值| 值值|值值|=顺序处理语句;顺序处理语
11、句; 3) WHEN 值值 TO 值值 =顺序处理语句;顺序处理语句; 4) WHEN OTHERS= 顺序处理语句;顺序处理语句; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 14 CASE sel IS WHEN 0 = q q q q y y y y y y y y y y y y y y y y y y= XXX; END CASE; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 19 BUF (DC) 0 SEL3.0 DATA15.0 OUT MUX SEL3.0 DATA15.0 OUT MUX SEL3.0 DATA15.0 OUT MUX BUF
12、 (DC) comb0 Mux0 3 h3 - 1 h1 - 1 h1 - Mux1 3 h3 - 1 h1 - 1 h1 - Mux2 3 h3 - 1 h1 - 1 h1 - node32.1 32 h00000000 - a7.0 y2.0 y=“XXX”; 3个4-input LUT 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 20 SEL7.0 DATA255.0 OUT MUX SEL7.0 DATA255.0 OUT MUX SEL7.0 DATA255.0 OUT MUX Mux2 256 hB7FF7FFFFFFFFFFF7FFFFFFFFFFFFFFFFFF
13、FFFFFFFFFFFFFFFFFFFFFFFFFFFFF - a7.0 y2.0 Mux0 256 h977FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - Mux1 256 h9FFF7FFF7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - y=“111”; 6个4-input LUT 2个2-input LUT 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 21 PROCESS(input) IS BEGIN IF input(0
14、)=0 THEN y=“111”; ELSIF input(1)=0 THEN y=“110”; ELSIF input(2)=0 THEN y=“101”; ELSIF input(3)=0 THEN y=“100”; ELSIF input(4)=0 THEN y=“011”; ELSIF input(5)=0 THEN y=“010”; ELSIF input(6)=0 THEN y=“001”; ELSE y=“000”; END IF; END PROCESS; 优先级编码器真值表 inputoutput 7 6 5 4 3 2 1 0 2 1 0 -0 1 1 1 -0 1 1 1
15、 0 -0 1 1 1 0 1 -0 1 1 1 1 0 0 -0 1 1 1 1 0 1 1 -0 1 1 1 1 1 0 1 0 -0 1 1 1 1 1 1 0 0 1 -1 1 1 1 1 1 1 0 0 0 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 22 LOOP 语句的书写格式一般有两种语句的书写格式一般有两种 : 1. FOR -LOOP 7.1.4 LOOP语句语句 LOOP语句使程序能语句使程序能 进行有规则的循环,循环的次数受进行有规则的循环,循环的次数受 迭代算法控制。迭代算法控制。 标号标号: FOR 循环变量循环变量 IN 取值取值范围范围 LOOP
16、 顺序顺序处处理语句理语句 ; END LOOP 标号标号; LOOP语句中的循环变量的值在每次循环中都将发生变语句中的循环变量的值在每次循环中都将发生变 化化 , 而而IN后跟的离散范围则表示循环变量在循环过程中后跟的离散范围则表示循环变量在循环过程中 依次取值的范围。依次取值的范围。 ASUM:FOR i IN 1 TO 9 LOOP sum:=i+sum;-sum初始值为0 END LOOP ASUM; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 23 LIBRARY IEEE; USE IEEE. STD_LOGIC_1l64. ALL; ENTITY parity_c
17、heck IS PORT(a: IN STD_LOGIC-VECTOR(7 DOWNTO 0); y:OUT STD_LOGIC); END ENTITY parity_check; ARCHITECTURE rtl OF parity_check IS BEGIN PROCESS(a) IS VARIABLE tmp:STD_LOGIC ; BEGIN tmp:=0 ; F0R i IN 0 TO 7 LOOP tmp: =tmp XOR a(i); END LOOP; y=tmp; END PROCESS; END ARCHITECTURE rtl; 华北电力大学科技学院电子设计自 动化7
18、VHDL基本描述语句 24 2. WHILE-LOOP 标号标号: WHILE 条件条件 LOOP 顺序处理语句顺序处理语句; END LOOP 标号标号 ; 在该在该LOOP语句中语句中,如果条件为如果条件为真真,则进行循环则进行循环; 如果条如果条 件为件为假假,则结束循环。则结束循环。 i:=1; sum:=0; sbcd:WHILE (i10) LOOP sum:=i+sum; i:=i+1; END LOOP sbcd; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 25 FOR-LOOP与与WHILE-LOOP的区别举例:的区别举例: 华北电力大学科技学院电子设计自
19、动化7VHDL基本描述语句 26 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 27 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 28 7.1.5 NEXT 语句语句 NEXT 标号标号 WHEN条件条件; NEXT语句用在语句用在LOOP语句中,实现语句中,实现 LOOP语句的内语句的内 部循环控制。部循环控制。 NEXT语句执行时,将停止当前的迭代,而转入下一语句执行时,将停止当前的迭代,而转入下一 次新的迭代。次新的迭代。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 29 7.1.5 NEXT 语句语句 “标号标号”表明下一次迭代的起始位置;
20、表明下一次迭代的起始位置; “WHEN 条件条件”表明表明NEXT语句的执行条件;语句的执行条件; 如果如果NEXT语句后面语句后面 “标号标号”和和“WHEN条件条件”都没都没 有,则只要执行到该语句就立即无条件跳出本次循环,有,则只要执行到该语句就立即无条件跳出本次循环, 从从LOOP语句的起始位置进入下一次循环。语句的起始位置进入下一次循环。 LOOP 语句嵌套时,通常语句嵌套时,通常NEXT语句应标有语句应标有“标号标号” 和和“WHEN条件条件”。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 30 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 31 如果
21、如果EXIT后面没有跟后面没有跟标号标号和和WHEN条件条件,则程序执则程序执 行到该语句时就无条件地从行到该语句时就无条件地从LOOP语句中跳出语句中跳出,结束循环结束循环 状态状态,继续执行继续执行LOOP 语句后继的语句语句后继的语句, 7. 1. 6 EXIT语句语句 EXIT语句是语句是LOOP语句中使用的循环控制语句,执行语句中使用的循环控制语句,执行 EXIT语句将结束循环状态,即从语句将结束循环状态,即从LOOP语句中跳出,结语句中跳出,结 束束LOOP语句的正常执行。而语句的正常执行。而NEXT语句不结束语句不结束LOOP语语 句的执行,只是结束一次循环。句的执行,只是结束一
22、次循环。 EXIT 标号标号 WHEN条件条件; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 32 EXIT语句具有语句具有3种基本书写格式种基本书写格式: 1)EXIT语句没有语句没有“循环标号循环标号”或或“WHEN条件条件” 当条件为当条件为“真真”执行执行EXIT语句时,程序将按如下顺序语句时,程序将按如下顺序 执行:执行执行:执行EXIT,程序将从仅仅当前所属的,程序将从仅仅当前所属的LOOP语句语句 中退出。如果中退出。如果EXIT语句位于一个内循环语句位于一个内循环LOOP语句中,语句中, 执行执行EXIT语句,程序仅仅退出内循环,而仍然留在外语句,程序仅仅退出内
23、循环,而仍然留在外 循环的循环的LOOP语句中。语句中。 2)EXIT语句后跟语句后跟LOOP语句的标号语句的标号 此时,执行此时,执行EXIT语句时,程序将跳至所说明的标号。语句时,程序将跳至所说明的标号。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 33 3)EXIT语句后跟语句后跟“WHEN条件条件”语句语句 当程序执行到该语句时,只有所说明的当程序执行到该语句时,只有所说明的”WHEN 条件条件”为为“真真”时,才跳出循环的时,才跳出循环的LOOP语句。此时语句。此时 不管不管EXIT语句是否有标号说明,都将执行下一条语句。语句是否有标号说明,都将执行下一条语句。 如果
24、有标号说明,下一条要执行的语句将是标号所说如果有标号说明,下一条要执行的语句将是标号所说 明的语句。如果无标号说明,下一条要执行的语句是明的语句。如果无标号说明,下一条要执行的语句是 循环外的下一条语句。循环外的下一条语句。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 34 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 35 7.1.7 WAIT语句语句 WAIT语句的语句的5种格式:种格式: WAIT -无限等待无限等待 WAIT ON - 敏感信号量变化敏感信号量变化 WAIT UNTIL -条件满足条件满足 WAIT FOR -时间到时间到 多条件多条件WA
25、IT语句语句 -满足所有条件中的一个或多个条件满足所有条件中的一个或多个条件 进程在仿真运行中总是处于下述两种状态之一:执行和进程在仿真运行中总是处于下述两种状态之一:执行和 挂起。挂起。 进程状态的变化受进程状态的变化受WAIT语句的控制,当进程执行到语句的控制,当进程执行到 WAIT语句时,就将被挂起,并设置好再次执行的条件。语句时,就将被挂起,并设置好再次执行的条件。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 36 1. WAIT ON 标号标号: WAIT ON 敏感信号列表;敏感信号列表; 例如:例如:WAIT ON a,b; WAIT ON 后面的信号只要有一个发
26、生变化,进程将后面的信号只要有一个发生变化,进程将 被执行。被执行。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 37 Process(a,b) IS Begin y=a and b; End process; Process Begin y=a and b; wait on a,b; End process; WAIT ON语句与进程敏感信号列表的关系语句与进程敏感信号列表的关系 Process(a,b) IS Begin y=a and b; wait on a,b; -错误语句错误语句 End process; 如果如果PROCESS 语句已含有敏感语句已含有敏感 信号量
27、说明,则信号量说明,则 进程中不能再使进程中不能再使 用用WAIT ON语语 句。句。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 38 2. WAIT UNTIL WAIT UNTIL 布尔表达式布尔表达式; 表达式为布尔表达式,当进程执行到该语句时将被挂表达式为布尔表达式,当进程执行到该语句时将被挂 起,直到表达式的值为起,直到表达式的值为“真真”,进程才被再次启动。,进程才被再次启动。 该语句在表达式中将建立一个隐式的敏感信号表,当该语句在表达式中将建立一个隐式的敏感信号表,当 表中的任何一个信号量发生变化时,就立即对表达式进表中的任何一个信号量发生变化时,就立即对表达式
28、进 行一次评估。如果评估的结果使表达式返回一个行一次评估。如果评估的结果使表达式返回一个“真真” 值,则进程脱离挂起状态,继续执行下一个语句。值,则进程脱离挂起状态,继续执行下一个语句。 例如:例如:WAIT UNTIL(x*10)100); 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 39 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 40 3. WAIT FOR WAIT FOR 时间表达式时间表达式; 表达式为时间表达式,当进程执行到该语句时将被挂表达式为时间表达式,当进程执行到该语句时将被挂 起,直到指定的等待时间到时,进程再开始执行起,直到指定的等待时间
29、到时,进程再开始执行WAIT FOR 语句后面的语句。语句后面的语句。 例如:例如:WAIT FOR 20 ns; WAIT FOR (a*(b+c); 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 41 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 42 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 43 4. 多条件多条件WAIT 语句语句 WAIT ON nmi, interrupt UNTIL (nmi=TRUE) OR (interrupt=TRUE) FOR 5s; 1.信号量信号量nmi和和interrupt任何一个有一次新的变化;任何一
30、个有一次新的变化; 2.信号量信号量nmi和和interrupt任何一个取值为真;任何一个取值为真; 3.该语句已等待该语句已等待5s; 只要上述只要上述3个条件中一个或多个满足,进程将再次启动,个条件中一个或多个满足,进程将再次启动, 继续执行继续执行WAIT语句的后继语句。语句的后继语句。 在多条件等待时,表达式的值至少应包含一个信号量的在多条件等待时,表达式的值至少应包含一个信号量的 值;只有信号量的变化才能引起等待语句表达式的一次值;只有信号量的变化才能引起等待语句表达式的一次 新的评价和计算。新的评价和计算。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 44 ARCH
31、ITECTURE wait_timeout OF wait_example IS SIGNAL senda:STD_LOGIC:=0; SIGNAL sendb:STD_LOGIC; BEGIN A: PRCOESS BEGIN WAIT UNTIL sendb=1; senda=1 after 10 ns; WAIT UNTIL sendb=0; senda=0 after 10 ns; END PROCESS A; B: PRCOESS BEGIN WAIT UNTIL senda=0; sendb=0 after 10 ns; WAIT UNTIL senda=1; sendb=1 af
32、ter 10 ns; END PROCESS B; END ARCHITECTURE wait_timeout; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 45 A: PRCOESS BEGIN WAIT UNTIL (sendb=1) FOR 1 us; ASSERT (sendb=1) REPORT”sendb timed out at 1” SEVERITY ERROR; senda=1 after 10 ns; WAIT UNTIL (sendb=0) FOR 1 us; ASSERT (sendb=0) REPORT”sendb timed out at 0” SE
33、VERITY ERROR; senda=0 after 10 ns; END PROCESS A; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 46 7. 1.8 NULL语句语句 NULL语句用来表示一种只占位置的空操作,该语句不语句用来表示一种只占位置的空操作,该语句不 执行任何操作。执行任何操作。 NULL; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 47 7.2 并发(并发(Concurrent)描述语句)描述语句 在在VHDL语言中能进行并发处理的语句有:语言中能进行并发处理的语句有: 1、进程、进程(PROCESS)语句语句 2、块、块(BLOCK
34、)语句)语句 3、选择信号号代入、选择信号号代入(Selective Signal Assignment )语句)语句 4、条件信号代入、条件信号代入(Conditional Signal Assignment)语句语句 5、COMPONENT语句和语句和PORT MAP语句语句 6、GENERATE语句语句 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 48 进程语句是一种并发处理语句进程语句是一种并发处理语句,在一个构造在一个构造 体中多个体中多个PROCESS语句可以同时并发运行。语句可以同时并发运行。 PROCESS语句是语句是VHDL语言中描述硬件系统并语言中描述硬件系
35、统并 发行为的最基本的语句。发行为的最基本的语句。 7.2.1 进程进程(PROCESS)语句语句 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 49 PROCESS语句归纳起来有如下几个特点语句归纳起来有如下几个特点: (1 1)可以与同一构造体内的其它进程并发执行)可以与同一构造体内的其它进程并发执行 (2 2)可使用构造体内或实体内定义的信号)可使用构造体内或实体内定义的信号 (3 3)进程内部的语句是顺序执行的)进程内部的语句是顺序执行的 (4 4)进程的状态有)进程的状态有2 2个,执行和等待个,执行和等待 (5 5)进程执行的条件是敏感信号列表中的信号)进程执行的条件
36、是敏感信号列表中的信号 发生变化或者发生变化或者WAITWAIT语句满足条件语句满足条件 (6 6)进程之间的通信通过信号进行传递)进程之间的通信通过信号进行传递 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 50 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 51 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 52 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 53 7.2.2 块块(BLOCK)语句语句 BLOCK语句是一个并发语句,而且它所包语句是一个并发语句,而且它所包 含的一系列语句也是并发语句,因此块语句中的含的一系列语句也是
37、并发语句,因此块语句中的 并发语句的执行与次序无关。并发语句的执行与次序无关。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 54 块名:块名: BLOCK 卫式布尔表达式卫式布尔表达式 IS 类属参数说明类属参数说明 类属参数映射类属参数映射 端口说明端口说明 端口映射端口映射 说明语句说明语句 BEGIN 并发描述语句;并发描述语句; END BLOCK 块名块名; BLOCK语句的书写格式一般为语句的书写格式一般为: 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 55 BLOCK语句的特点:语句的特点: (1)块名是必须要有的,不能省略。)块名是必须要有的,不
38、能省略。 (2)BLOCK语句是一个独立的子结构,可以包含语句是一个独立的子结构,可以包含 PORT和和GENERIC语句。在构造体的结构描述方式中实语句。在构造体的结构描述方式中实 现高层次设计与低层次模块的连接。现高层次设计与低层次模块的连接。 (3)说明语句可以是子程序声明或定义、类型定义、常)说明语句可以是子程序声明或定义、类型定义、常 数定义、信号定义、数定义、信号定义、COMPONENT元件声明等元件声明等 (4)BLOCK内部语句是并发描述语句内部语句是并发描述语句 (5)卫式布尔表达式说明了)卫式布尔表达式说明了BLOCK语句的执行条件,语句的执行条件, 只有条件为只有条件为“
39、真真”时,时,BLOCK语句才执行。采用卫式语句才执行。采用卫式 布尔表达式的布尔表达式的BLOCK语句内部需要使用关键词语句内部需要使用关键词 GUARDED控制赋值语句的执行控制赋值语句的执行 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 56 一位全加器的一位全加器的BLOCK的描述的描述 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 57 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 58 D触发器的触发器的BLOCK的描述的描述 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 59 华北电力大学科技学院电子设计自 动化7VHDL基
40、本描述语句 60 7.2.3 选择信号赋值语句选择信号赋值语句 (Selective Signal Assignment) WITH 表达式表达式 SELECT 目的信号量目的信号量=表达式表达式1 WHEN 条件条件1, 表达式表达式2 WHEN 条件条件2, 表达式表达式n WHEN条件条件n; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 61 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 62 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 63 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 64 7.2.4 条件信号赋值条件信号赋
41、值(Conditional Signal Assignment)语句语句 条件信号赋值语句也是并发描述语句条件信号赋值语句也是并发描述语句,它可以根据不它可以根据不 同条件将不同的多个表达式之一的值代入信号量。同条件将不同的多个表达式之一的值代入信号量。 目的信号量目的信号量= 表达式表达式1 WHEN 条件条件1 ELSE 表达式表达式2 WHEN 条件条件2 ELSE 表达式表达式3 WHEN 条件条件3 ELSE ELSE 表达式表达式n; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 65 ARCHITECTURE rtl OF mux4 IS SIGNAL sel: S
42、TD_LOGIC_VECTOR( l DOWNTO 0); BEGIN sel=b q=i0 WHEN sel= 00 ELSE il WHEN sel= 01 ELSE i2 WHEN sel= 10 ELSE i3 WHEN sel= 11 ELSE X; END ARCHITECTURE rtl; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 66 注意几点:注意几点: 1、条件信号赋值语句与、条件信号赋值语句与IF语句的不同之处在于语句的不同之处在于,后后 者只能在进程内部使用者只能在进程内部使用(因因 为它们是顺序语句为它们是顺序语句)。 2、与、与IF语句相比语句相比
43、,条件信号赋值语句中的条件信号赋值语句中的ELSE是是 一定要有的一定要有的, 而而IF语句则可以有也可以没有。语句则可以有也可以没有。 3、与、与IF语句不同的是语句不同的是,条件信号赋值语句不能进行条件信号赋值语句不能进行 嵌套。嵌套。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 67 LIBRARY IEEE; USE IEEE. STD_LOGIC_1164. ALL; ENTITY mux IS PORT(il,i2,i3,a,b: IN STD_LOGIC; q:OUT STD_LOGIC); END ENTITY mux; ARCHITECTURE behav O
44、F mux IS SIGNAL sel: INTEGER; BEGIN WITH sel SELECT q=i0 WHEN 0, il WHEN 1, i2 WHEN 2, i3 WHEN 3, X WHEN OTHERS; sel=0 WHEN a=0 AND b=0 ELSE 1 WHEN a=1 AND b=0 ELSE 2 WHEN a=0 AND b=1 ELSE 3 WHEN a=1 AND b=1 ELSE 4; END ARCHITECTURE behav; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 68 LIBRARY IEEE; USE IEEE. STD
45、_LOGIC_1164. ALL; ENTITY mux IS PORT(il,i2,i3,a,b: IN STD_LOGIC; q:OUT STD_LOGIC); END ENTITY mux; ARCHITECTURE behav OF mux IS SIGNAL sel: STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN sel = a WITH sel SELECT q q q q qq=X; END CASE; END PROCESS; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 69 7.2.5 COMPONENT 语句及语句及PORT MAP
46、 语句语句 COMPONENNT 元件名元件名 IS GENERIC 语句;语句; - 参数说明参数说明 PORT (端口列表);(端口列表); -端口说明端口说明 END COMPONENT 元件名元件名; 在构造体的结构描述中,在构造体的结构描述中,COMPONENT语句是基语句是基 本描述语句。该语句指定了本构造体中所调用的是哪一本描述语句。该语句指定了本构造体中所调用的是哪一 个现成的逻辑描述模块。个现成的逻辑描述模块。 元件标号名:元件名元件标号名:元件名 GENERIC MAP(参数映射列表)(参数映射列表) PORT MAP (端口映射列表)(端口映射列表); 华北电力大学科技学
47、院电子设计自 动化7VHDL基本描述语句 70 元件标号名加在元件名的前面,在该构造体的说明中该元件标号名加在元件名的前面,在该构造体的说明中该 标号名一定是唯一的。标号名一定是唯一的。 低层元件的端口信号与高层的实际连接信号低层元件的端口信号与高层的实际连接信号PORT MAP 的映射关系联系起来。的映射关系联系起来。 7.2.5 COMPONENT 语句及语句及PORT MAP 语句语句 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 71 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 72 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 73 华北电
48、力大学科技学院电子设计自 动化7VHDL基本描述语句 74 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 75 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 76 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 77 7.2.6 GENERATE语句语句 GENERATE语句用来产生多个相同的结构,语句用来产生多个相同的结构, 有有FORGENERATE和和IFGENERATE两种形式:两种形式: 标号:标号:FOR 变量变量 IN 不连续区间不连续区间 GENERATE ; END GENERATE 标号名标号名; 标号:标号:IF 条件条件 GENE
49、RATE ; END GENERATE 标号名标号名; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 78 7.2.6 GENERATE语句语句 lFORGENERATE和和FORLOOP语句不同,前者的结构中采语句不同,前者的结构中采 用并发处理语句,后者是顺序处理语句。所以用并发处理语句,后者是顺序处理语句。所以FORGENERATE 结构中不能使用结构中不能使用EXIT和和NEXT语句。语句。 lIFGENERATE语句在条件为语句在条件为“真真”时才执行结构内部的语句,时才执行结构内部的语句, 语句同样是并发处理的,该结构中没有语句同样是并发处理的,该结构中没有ELSE项
50、。项。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 79 GENERATE语句的典型应用场合是生成存储器阵列和寄存器语句的典型应用场合是生成存储器阵列和寄存器 阵列等,另一种应用用于仿真状态编译机。阵列等,另一种应用用于仿真状态编译机。 d q clk d q clk d q clk d q clk clk a Z(0) DFF X(0)DFF X(1)DFF X(2)DFF X(3) Z(1)Z(2)Z(3)Z(4) b 4位移位寄存器原理框图 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 80 LIBRARY IEEE; USE IEEE.STD_LOGIC_
51、1164.ALL; ENTITY shift IS PORT (a,clk: IN STD_LOGIC; b: OUT STD_LOGIC); END ENTITY shift; ARCHITECTURE gen_shift OF shift IS COMPONENT dff IS PORT(d,clk: IN STD_LOGIC; q: OUT STD_LOGIC); END COMPONENT dff; SIGNAL z:STD_LOGIC_VECTOR(0 to 4); BEGIN z(0)=a; g1:FOR i in 0 TO 3 GENERATE dffx: dff PORT MA
52、P (z(i),clk,z(i+1); END GENERATE; b=z(4); END ARCHITECTURE gen_shift; dff1: dff PORT MAP (z(0),clk,z(1); dff2: dff PORT MAP (z(1),clk,z(2); dff3: dff PORT MAP (z(2),clk,z(3); dff4: dff PORT MAP (z(3),clk,z(4); 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 81 从上例可以发现,在移位寄存器的输入端和输从上例可以发现,在移位寄存器的输入端和输 出端的信号连接无法用出端的信号连
53、接无法用FORGENERATE语句来语句来 实现,只能用两条信号代入语句来完成。也就是实现,只能用两条信号代入语句来完成。也就是 说,说, FORGENERATE语句只能处理规则的构语句只能处理规则的构 造体。为了解决不规则电路的统一描述方法,就造体。为了解决不规则电路的统一描述方法,就 可以采用可以采用IFGENERATE语句语句。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 82 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY shift IS GENERIC(len:INTEGER:=4); PORT (a,clk: I
54、N STD_LOGIC; b: OUT STD_LOGIC); END ENTITY shift; ARCHITECTURE if_shift OF shift IS COMPONENT dff IS PORT(d,clk: IN STD_LOGIC; q: OUT STD_LOGIC); END COMPONENT dff; SIGNAL z:STD_LOGIC_VECTOR(1 to (len-1); BEGIN 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 83 g1:FOR i in 0 TO (len-1) GENERATE g2:IF i=0 GENERATE dff
55、x: dff PORT MAP (a,clk,z(i+1); END GENERATE; g3:IF i=(len-1) GENERATE dffx: dff PORT MAP (z(i),clk,b); END GENERATE; g4:IF (i/=0) AND (i/=len-1) GENERATE dffx: dff PORT MAP (z(i),clk,z(i+1); END GENERATE; END GENERATE; END ARCHITECTURE if_shift; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 84 D ENA Q PRE CLR D ENA
56、 Q PRE CLR D ENA Q PRE CLR D ENA Q PRE CLR g1:0:g2:dffxg1:1:g4:dffxg1:2:g4:dffxg1:3:g3:dffx a clk b 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 85 在在VHDL语言中存在一类语句,根据不同的使用场语言中存在一类语句,根据不同的使用场 合,即可以作为顺序执行语句,又可作为并发执行语合,即可以作为顺序执行语句,又可作为并发执行语 句,在本教材中将该类语句称为顺并描述语句。句,在本教材中将该类语句称为顺并描述语句。 VHDL语言中顺并描述语句主要有:语言中顺并描述语句主要有: u信号
57、赋值语句;信号赋值语句; u过程调用语句;过程调用语句; u断言语句断言语句 u报告语句报告语句 7.3 顺并描述语句顺并描述语句 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 86 7.3.1 信号赋值语句信号赋值语句 目的信号目的信号=表达式;表达式; 信号赋值语句可以在进程中内部使用,此时它作为顺信号赋值语句可以在进程中内部使用,此时它作为顺 序语句形式出现;信号赋值语句也可以在构造体的进程序语句形式出现;信号赋值语句也可以在构造体的进程 之外使用,此时它作为并发语句出现。之外使用,此时它作为并发语句出现。 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 87
58、一个并发信号代入语句实际上是一个进程的缩写;一个并发信号代入语句实际上是一个进程的缩写; ARCHITECTURE beh OF a_var IS BEGIN output=a(i); END ARCHITECUTRE beh; ARCHITECTURE beh OF a_var IS BEGIN PROCESS(a,i) IS BEGIN output=a(i); END PROCESS; END ARCHITECTURRE beh; 7.3.1 信号赋值语句信号赋值语句 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 88 7.3.2 过程调用语句(过程调用语句( Proced
59、ure Call) PROCEDURE 过程名(参数过程名(参数1;参数;参数2; )IS 定义语句定义语句; (变量等定义)变量等定义) BEGIN 顺序处理语句顺序处理语句; (过程的语句)(过程的语句) END PROCEDURE 过程名;过程名; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 89 在构造体或在构造体或BLOCK语句中的过程调用语句语句中的过程调用语句 为并发过程调用语句。如果过程调用语句在进为并发过程调用语句。如果过程调用语句在进 程内,则为顺序过程调用语句。程内,则为顺序过程调用语句。 过程名(实际参数表);过程名(实际参数表); 过程语句的调用格式:
60、过程语句的调用格式: 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 90 并发过程调用语句实际上是一个过程调用进程的简写。并发过程调用语句实际上是一个过程调用进程的简写。 ARCHITECTURE BEGIN vector_to_int (z,x_flag,q);); END ARCHITECUTURE ; ARCHITECTURE BEGIN PROCESS(z,q)IS BEGIN vector_to_int (z,x_flag,q);); END PROCESS; END ARCHITECTURE ; 华北电力大学科技学院电子设计自 动化7VHDL基本描述语句 91 华北电
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陇南地区武都县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 凉山彝族自治州冕宁县2025-2026学年第二学期四年级语文第六单元测试卷(部编版含答案)
- 洛阳市洛宁县2025-2026学年第二学期四年级语文期中考试卷(部编版含答案)
- 邢台市平乡县2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 枣庄市薛城区2025-2026学年第二学期六年级语文第五单元测试卷部编版含答案
- 公司年中会议策划方案
- 深度解析(2026)《CBT 4430.2-2019船舶螺旋桨用铸造铝铍钴青铜化学分析方法 第2部分:铍量的测定铬天青S光度法和重量法》
- 深度解析(2026)《AQT 2010-2006金属非金属矿山安全生产管理人员安全生产培训大纲》
- 2026-2027年人工智能(AI)在职业高尔夫球手训练中通过挥杆数据分析提供个性化技术调整建议获高端体育科技投资
- 5 草船借箭 表格式公开课一等奖创新教案
- 2026江苏省国有资本投资运营集团有限公司招聘笔试历年备考题库附带答案详解
- 种类繁多的植物(课件)五年级下册科学冀人版
- 输变电工程技术标书【实用文档】doc
- 恋爱合同协议书可
- 人教版七年级下册数学平行线证明题专题训练(含答案)
- 第四章非晶态结构课件
- 公司环保考核细则
- 导管手术室(DSA)医院感染管理SOP
- 风生水起博主的投资周记
- 爱莲说-王崧舟
- 人教版数学四年级下册第一二单元测试卷及答案
评论
0/150
提交评论