第十二讲 VHDL语言语言主要描述语句
第6章 VHDL语言的主要描述语句
1、IF语句的门闩控制
格式: IF 条件 THEN
顺序处理语句; END IF;
当程序执行到该 IF 语句时,就要判断 IF 语句所指定 的条件是否成立。如果条件成立,则执行顺序处理 语句;不成立则跳过 IF 语句所包含的顺序处理语句, 而向下执行 IF 语句的后续语句。这里的条件起到门 闩的控制作用。
wait until clk'event and clk='1';
q <= d; end process; end rtl;
3、WAIT FOR
WAIT FOR 语句的完整书写格式为: WAIT FOR 时间表达式; WAIT FOR 语句后面跟着的是时间表达式,当进程执 行到该语句时将被挂起,直到指定的等待时间到时, 进程再开始执行WAIT FOR 语句后继的语句。 例如: WAIT FOR 20ns; 这个语句中时间表达式是一个常数值20ns,当进程执行 到该语句时将等待20ns。一旦20ns时间到,进程将执行 WAIT FOR 语句的后继语句。
6.1 顺序描述语句
执行顺序与书写顺序一致,与传统软件设计语言的特 点相似。顺序语句只能用在进程与子程序中。 在VHDL语言中顺序描述语句有以下几种: * WAIT语句; * 变量赋值语句; * LOOP语句; * 过程调用语句; * 断言语句; * 信号代入语句; * IF语句; * CASE语句; * NEXT语句; * EXIT 语句; * NULL语句
2、WAIT UNTIL
WAIT UNTIL 语句的完整书写格式为:
WAIT UNTIL 表达式; 当表达式的值为“真”时,进程被启动,否则进 程被挂起。 该语句在表达式中将建立一个隐式的敏感信号量 表,当表中的任何一个信号量发生变化时,就立即对 表达式进行一次评估。如果评估结果使表达式返回一 个“真”值,则进程脱离等待状态,继续执行下一个 语句。例如:
VHDL的基本描述语句第六七八九十一二讲
END CASE;
选择值可以有四种不同的表达方式:
多条件选择值的一般表达式为:
单个普通数值,如6。 数值选择范围,如(2 TO 4),表示取值为
选择值 [ |选择值 ]
2、3或4。 并列数值,如35,表示取值为3或者5。
混合方式,以上三种方式的混合。
Case 语句的选择项必须是一个静态值! --example of a legal case statement
A modulo-16 counter
entity counter is port ( clk : in bit; count : out natural );
end entity counter; -------------------------------------------------architecture behavior of counter is begin
end entity thermostat; -------------------------------------------------architecture example of thermostat is begin
controller : process (desired_temp, actual_temp) is begin
3.4 VHDL的基本描述语句
3.4.1 顺序语句
一、顺序赋值语句 二、IF 语句 三、CASE语句 四、LOOP语句 五、NEXT语句 六、EXIT语句
七、WAIT语句 八、子程序调用语句 九、返回语句(RETURN) 十、空操作语句(NULL) 十一、断言(ASSERT)语句 十二、REPORT语句
【例】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;
第五章_VHDL语言的主要描述语句
例:
library ieee; use ieee.std_logic_1164.all; entity kdec24 is port(a:in std_logic_vector (1 downto 0); en:in std_logic; f:out std_logic_vector (3
architecture d of kdec24 is begin
执行到该语句等待20ns以后,再继续执行下一条指令。
wait for( a*(b+c));
若a=2,b=50ns,c=70ns, 则执行到该语句时,就要等待2*(50+70)=240ns后, 再继续执行后续语句。
2016/3/23 20
例:利用wait for构成输入信号波形
process entity inhibittestbench is begin end entity inhibittestbench; xt<='0';yt<='0'; architecture beh of wait for 10 ns; inhibittestbench is xt<='0';yt<='1'; component inhibit is wait for 10 ns; port (x,y:in bit;z: out bit); xt<='1';yt<='0'; end component inhibit; wait for 10 ns; signal xt,yt,zt:bit; xt<='1';yt<='1'; begin wait; --进入无限期等待, u1: inhibit port map (xt, yt, 避免进入无限期循环; zt); end process; end architecture beh;
VHDL程序的主要描述语句
端口方向(端口类型)
结构体的语法格式:
• architecture 结构体名称 of 实体 名称 is • 说明语句 • 内部信号、常数、数据类型、子程序 (函数、过程)、元件等的说明; • begin • 功能描述语句; • end [architecture] 结构体名称;
vhdl中的主要描述语句分为两 类:描述行为和描述结构。
• (1)赋值情况:当被选择的信号发生变化时, 启动执行,满足哪一个条件,就将其对应的表 达式代入目标信号。 • (2)选择型语句中各行结尾均未“,”,只 有最后一行用“;”,不能有重叠的条件分支, 最后条件可为 others,若最后条件不为 others,则其它条件必须包含表达式的所有 可能值。 • (3)执行:选择型信号赋值语句无优先级顺 序,与进程中的 case 语句等价。
例:用选择型语句设计一个四 选一的数据选择器
例:用选择型语句设计一个四 选一的数据选择器
练习:用选择型语句设计一个 八选一的数据选择器
三种并行信号赋值语句的共同特点:
• (1)赋值目标必须时信号,与其他并行 语句同时执行,与书写顺序无关; • (2)每一个信号赋值语句等效于一个进 程语句,所有输入信号的变化都将启动 该语句的执行。 • c<= a xor b;
(1)基本型
• • • • • • 格式: 信号名<=敏感信号量表达式 after 时间表达式 例:s<=x xor y; sum<=s xor cin after 1ns; 说明:若未注明延时表示延时很小,δ延时。 延时可分为两类:传输延时与惯性延时
• 传输延时:模拟信号在连线(或传输线) 上的延时。 • 格式:b<=transport a after 20ns;
VHDL主要描述语句――CASE语句
使能端G 使能端
I0 I1 I2 I3
四 选 一 数 据 选 择 器
Q
公共通道
(同一时间内只可允许一个信号通过)
信 号 传 输 目 的 地
信号选择控制端AB 信号选择控制端
VHDL主要描述语句 主要描述语句――CASE语句 主要描述语句 语句
一、复习 1.IF语句的三种书写格式: 语句的三种书写格式: 语句的三种书写格式 IF 条件 THEN 顺序处理语句 ; END IF ;
IF 条件 THEN 顺序处理语句1 ; ELSE 顺序处理语句2 ; END IF ;
IF 条件1 THEN 顺序处理语句1 ; ELSIF 条件2 THEN 顺序处理语句2 ; …… ELSIF 条件N THEN 顺序处理语句N ; ELSE 顺序处理语句0 ; END IF ;
(同一时间内只可允许一个信号通过)
信 号 传 输 目 的 地
信号选择控制端AB 信号选择控制端
LIBRARY IEEE; USE IEEE.STD-LOGIC-1164.ALL; ENTITY 4SEL IS PORT ( I0,I1,I2,I3: IN STD-LOGIC ; , , , A,B:IN STD-LOGIC ; , : Q:OUT STD-LOGIC ) ; END 4SEL ; ARCHITECTURE A OF 4SEL IS SIGNAL D : STD-LOGIC-VECTOR(2 DOWNTO 0); D<=A & B ; PROCESS( D ) CASE D IS WHEN “00” => Q <= I0 ; WHEN “01” => Q <= I1 ; WHEN “10” => Q <= I2 ; WHEN “11” => Q <= I3 ; WHEN OTHER => NULL ; END CASE ; END A;
VHDL语言的主要描述语句
VHDL语言的主要描述语句按照语句的执行顺序对VHDL语言进行分类,包含两类语句:●并行描述语句该语句的执行与书写顺序无关,总是同时被执行●顺序描述语句从仿真的角度,该语句是顺序执行的进程语句(PROCESS)是最典型的并行语句,一个构造体内可以有几个进程语句同时存在,而且并发执行。
但是进程内部的所有语句都是顺序语句。
一、顺序描述语句顺序描述语句只能用在进程和子程序中,它和其他高级语言一样,其语句是按照语句的出现的顺序加以执行的。
如下分别介绍有关的顺序描述语句.1.WAIT语句进程在执行过程中总是处于两种状态:执行或挂起,进程的状态变化受等待语句的控制,当进程执行到等待语句,就被挂起,并等待再次执行进程.等待语句的格式:*WAIT 无限等待*WAIT ON 敏感信号变化*WAIT UNTIL 条件满足*WAIT FOR 时间到(1)WAIT ON格式:WAIT ON 信号[,信号]例5-1PROCESS(a,b)BEGINy<=a AND b;END PROCESS;该例中的进程与下例中进程相同:例5-1PROCESSBEGINy<=a AND b;WAIT ON a,b;END PROCESS;例5-2PROCESS(a,b)BEGINy<=a AND b;WAIT ON a,b;END PROCESS;(2)WAIT UNTIL 直到条件满足格式: WAIT UNTIL 布尔表达式当进程执行到该语句时,被挂起;若布尔表达式为真时,进程将被启动.例: WAIT UNTIL ((x*10)<100)(3)WAIT FOR 等到时间到格式: WAIT FOR 时间表达式当进程执行到该语句时,被挂起;等待一定的时间后,进程将被启动.例: WAIT FOR 20 ns;WAIT FOR (a*(b+c);(4)多条件WAIT 语句例: WAIT ON nmi,interrupt UNTIL ((nmi=TRUE) OR (interrupt=TRUE)) FOR 5 us 该等待有三个条件:第一,信号nmi和interrupt 任何一个有一次刷新动作第二, 信号nmi和interrupt 任何一个为真第三, 已等待5 us只要一个以上的条件被满足,进程就被启动.*注意:多条件等待时,表达式的值至少应包含一个信号量的值。
VHDL语言的主要描述语句
VHDL语言的主要描述语句按照语句的执行顺序对VHDL语言进行分类,包含两类语句:并行描述语句该语句的执行与书写顺序无关,总是同时被执行顺序描述语句从仿真的角度,该语句是顺序执行的进程语句(PROCESS)是最典型的并行语句,一个构造体内可以有几个进程语句同时存在,而且并发执行。
但是进程内部的所有语句都是顺序语句。
一、顺序描述语句顺序描述语句只能用在进程和子程序中,它和其他高级语言一样,其语句是按照语句的出现的顺序加以执行的。
如下分别介绍有关的顺序描述语句.1.WAIT语句进程在执行过程中总是处于两种状态:执行或挂起,进程的状态变化受等待语句的控制,当进程执行到等待语句,就被挂起,并等待再次执行进程.等待语句的格式:*WAIT 无限等待*WAIT ON 敏感信号变化*WAIT UNTIL 条件满足*WAIT FOR 时间到(1)WAIT ON格式:WAIT ON 信号[,信号]例5-1PROCESS(a,b)BEGINy<=a AND b;END PROCESS;该例中的进程与下例中进程相同:例5-1PROCESSBEGINy<=a AND b;WAIT ON a,b;END PROCESS;例5-2PROCESS(a,b)BEGINy<=a AND b;WAIT ON a,b;END PROCESS;(2)WAIT UNTIL 直到条件满足格式: WAIT UNTIL 布尔表达式当进程执行到该语句时,被挂起;若布尔表达式为真时,进程将被启动.例: WAIT UNTIL ((x*10)<100)(3)WAIT FOR等到时间到格式: WAIT FOR 时间表达式当进程执行到该语句时,被挂起;等待一定的时间后,进程将被启动.例: WAIT FOR 20 ns;WAIT FOR (a*(b+c);(4)多条件WAIT 语句例: WAIT ON nmi,interrupt UNTIL ((nmi=TRUE) OR (interrupt=TRUE)) FOR 5 us 该等待有三个条件:第一,信号nmi和interrupt 任何一个有一次刷新动作第二, 信号nmi和interrupt 任何一个为真第三, 已等待5 us只要一个以上的条件被满足,进程就被启动.*注意:多条件等待时,表达式的值至少应包含一个信号量的值。
VHDL语言描述语句PPT课件
按照语句的执行方式特点分为:
并行语句:
按动作特点:语句执行顺序与书写顺序无关;
使用范围 实际应用
:进程语句外部的语句都是并行的; :对应于各自独立运行的逻辑电路;
顺序语句:
按动作特点:照语句书写顺序执行;
使用范围
:进程、函数和最新过课程件内部出现;
3
VHDL顺序语句
黑龙江大学电子工程学院/EDA教研室
最新课件
4
基本的VHDL顺序语句
VHDL中的顺序语句用于描述进程或子程序的内部功能,且只能出现在 PROCESS、FUNCTION、PROCEDURE等语句中。
可以用来设计 时序电路、组合电路。 主要作用:时序流控制、程序控制、条件和迭代等,行为描述代码。 常用的顺序语句见下表。
顺序语句
语句作用
数据 交流通过全局信号。
d) 顺序语句:
进程内部语句顺序执行。
最新课件
8
例1:进程语句例程——带异步复位的D触发器
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
ENTITY cydff IS
PORT ( d,clk,rst : IN STD_LOGIC ;
q : OUT STD_LOGIC ) ;
q<=d;
END IF ;
END PROCESS cydff_inst ;
END ARCHITECTURE behave ;
最新课件
9
语法说明:
时钟沿的VHDL描述方法总结(3种):
上升沿描述1:
clk’event and clk=‘1’ ;
下降沿描述1:
clk’event and clk=‘0’ ;
VHDL主要描述语句――CASE语句
使能端G 使能端
I0 I1 I2 I3
四 选 一 数 据 选 择 器
Q
公共通道
(同一时间内只可允许一个信号通过)
信 号 传 输 目 的 地
信号选择控制端AB 信号选择控制端
A 0 0 1 1
B 0 1 0 1
C 0 0 0 1
;
该程序可以实现二输入与 门的功能
ELSIF
END IF ;
二、新授 在用VHDL语言进行逻辑设计时 有些操作是根据某表达式的值来进行的 这时常 语言进行逻辑设计时,有些操作是根据某表达式的值来进行的 在用 语言进行逻辑设计时 有些操作是根据某表达式的值来进行的,这时常 常会用到CASE语句 语句. 常会用到 语句 CASE 条件表达式 WHEN 条件表达式的值 => 顺序处理语句 ; 条件表达式的值1 顺序处理语句1 WHEN 条件表达式的值 => 顺序处理语句 ; 条件表达式的值2 顺序处理语句2 ...... WHEN 条件表达式的值 => 顺序处理语句N ; 条件表达式的值N 顺序处理语句 WHEN OTHERS => 顺序处理语句 0 ; END CASE ;
VHDL主要描述语句 主要描述语句――CASE语句 主要描述语句 语句
一、复习 1.IF语句的三种书写格式: 语句的三种书写格式: 语句的三种书写格式 IF 条件 THEN 顺序处理语句 ; END IF ;
IF 条件 THEN 顺序处理语句1 ; ELSE 顺序处理语句2 ; END IF ;
IF 条件1 THEN 顺序处理语句1 ; ELSIF 条件2 THEN 顺序处理语句2 ; …… ELSIF 条件N THEN 顺序处理语句N ; ELSE 顺序处理语句0 ; END IF ;
VHDL的主要描述语句
--适合4选1数据选择器
WHEN “11”=> c <= f; WHEN OTHERS => NULL;
--无效
END CASE;
例[2] CASE语句使用
CASE sel IS
WHEN 1TO 9 => c <= 1;
WHEN 11/12 => c <= 2;
WHEN OTHERS => c <= 3;
注意,这里的顺序是从仿真软件的运行和顺应VHDL语法的编 程逻辑思路而言的,其相应的硬件逻辑工作方式未必如此。应 该注意区分VHDL语言的软件行为与描述综合后的硬件行为的 差异。
第1页/共121页
VHDL顺序语句主要包括:
·变量赋值语句(Variable Evaluate)
·信号赋值语句(Signal Evaluate)
第11页/共121页
4.1.4 IF语句
在VHDL语言中,IF语句的作用是根据指定的条件来确定语句的执行 顺序。IF语句可用于选择器、比较器、编码器、译码器、状态机等的设计, 是VHDL语言中最常用的语句之一。IF语句按其书写格式可分为以下3种。
1.门闩控制语句
这类语句书写格式为: IF 条件 THEN 顺序语句
END CASE;
在例[2]中,第一个WHEN语句的意思是当sel 的值是从1到9 中任意一个数值时,信号c 的值取1;第二个WHEN语句的意思是当sel 的值为11或12两者之一时,信号 c 的取值为 2;第三个WHEN语句的意思是当sel 的值不为前面两种情况时,信号c 的取值为3。
y:OUT STD_LOGIC); END mux4;
第17页/共121页
ARCHITECTURE rtl OF mux4 IS
EDA教程之第四章VHDL语言的主要描述语句
Y <= tmp;
END Process P1;
LOOP语句
循环变量(i)在信号说明、变量说明中不能出现,信号、 变量不能代入到循环变量中。
局部变量(tmp)仅能在进程中出现。 全局变量、信号可以将局部变量的值带ential statement
BEGIN
Indata <= S3 & S2 & S1 & S0;
P1:PROCESS (Indata, G1,G2)
IF( G1='0' AND G2='0') THEN
CASE indata IS
WHEN "0000"=> y <="01 11 11 11 11 11 11 11";
WHEN "0001"=> y <="10 11 11 11 11 11 11 11";
功能wait语句使系统暂时挂起(等同于end process),此时,信号值开始更新。条件满足后, 系统将继续运行。
顺序执行语句sequential statement
顺序执行语句sequential statement
顺序执行语句sequential statement
顺序执行语句sequential statement
并行处理语句concurrent statement
并行处理语句concurrent statement
并行处理语句concurrent statement
顺序执行语句和并行处理语句总结
1、顺序执行语句wait、assert、if -else 、 case、for-loop、while语句只能用在 process、function 和procedure 中; 2、并行处理语句(条件信号带入和选择信 号带入)只能用在architecture、block中;
VHDL语言描述语句课件
BEGIN
IF(SELX='0') THEN temp<=a;
ELSE temp<=b;
END IF;
END PROCESS p_a;
p_b: PROCESS(temp,c,sely)
BEGIN
IF(SELy='0') THEN data_out<=temp;
ELSE temp<=c;
END IF;
学习交)语句
语法说明: 1、Process为过程语句,定义如下:
[进程标号: ] Process [ 触发信号1,触发信号 2,…… ] [ 定义区 ]
Begin 顺序语句 ……
End Process [ 进程标号] ;
注: 方括号内容可以省略;触发信号将决定该过程是
否执行;一个结构体当中可以有多个过程;多个
进程语句之间是并行学执习交行流PP,T 进程内部属于顺序执
7
2.进程语句——语法说明
a) 进程标号:用于标识进程,可选。多个进程时, 提高程序可读性;
a) 敏感信号列表:敏感信号发生变化(上升沿或者 下降沿),进程被
从而执行内部顺序语句。
激活,
注意:可以有多个敏感信号,用逗号隔开, 任何一个变化都激活进
q<=d;
END IF ; 学习交流PPT
9
• 语法说明:
• 时钟沿的VHDL描述方法总结(3种):
上升沿描述1: 下降沿描述1:
clk’event and clk=‘1’ ; clk’event and clk=‘0’ ;
上升cl沿k描'L述AS2T:_VALUE='0‘
下降沿描述2:
clk'LAST_VALUE=‘1‘
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢用来描述复杂的逻辑关系及逻辑运算。
常用的顺序处理语句有: 信号代入语句 变量赋值语句 CASE语句 IF语句 LOOP语句
VHDL顺序语句
1、信号代入语句
格式:
目的信号量<=信号量表达式; 目的信号量<=信号量表达式 AFTER N ns;
避免出错。 进程结束时,变量的结果只能由信号带出。
VHDL顺序语句
注意变 量定义 的位置
例:
architecture abc of example is begin
PROCESS(a,b) variable tmp:std_logic;
begin tmp:=a and b; out<=tmp;
end process; end abc;
VHDL并行语句
例:
4选1数据选择器 architecture abc of example is begin
sel<=a & b; with sel select
f <=i0 when “00”, i1 when “01”, i2 when “10”, i3 when “11”, ‘x’ when others;
VHDL并行语句
3、条件信号代入语句
格式: 目的信号量<=表达式1 WHEN 条件1 ELSE 表达式 2 WHEN 条件2 ELSE …… 表达式n;
注意: 条件信号代入语句的功能与进程中的IF语句相同; ELSE不能省略,只有最后语句才有分号; 有优先级关系,第一句优先级最高; 允许有重叠现象。
begin tmp:=‘0’; i:=0; WHILE (i<8) LOOP tmp:=tmp XOR a(i); i:=i+1; END LOOP; Y<=tmp;
end process; end abc;
VHDL并行语句
➢并行语句是在结构体中执行的语句; ➢语句的执行与程序书写的顺序无关,故可以颠 倒书写顺序,不影响程序设计功能;
语
?
when “01” => f<=i1;
句
when “10” => f<=i2;
when “11” => f<=i3;
when others => null;
end case;
end process;
end abc;
VHDL顺序语句
4、IF语句
格式1: IF 条件 THEN 顺序处理语句; END IF;
例:
architecture abc of example is begin
a1:BLOCK signal x:std_logic;
begin x<=a and b; c<=x; end BLOCK a1;
b1:BLOCK signal y:std_logic;
begin y<=a or c; end BLOCK b1; end abc;
格式2: IF 条件 THEN 顺序处理语句; ELSE 顺序处理语句; END IF;
格式3: IF 条件1 THEN 顺序处理语句; ELSIF 条件2 THEN 顺序处理语句; …… ELSE 顺序处理语句; END IF;
注意:IF 语句隐含有优先级的关系,可用来设计具有优 先权的电路 。
例:
VHDL并行语句
并发 信号 代入 语句
信号 代入 语句
例:
architecture abc of example is signal c :STD_LOGIC; begin
x<= a or b; y<= a xnor b;
JC1:PROCESS(a,b) begin
c<=a and b after 10 ns; end process JC1; end abc;
四选一数据选择器
architecture abc of example is
V
signal sel:std_logic_vector(1 downto 0);
H
begin
D
sel<=b &a;
L
顺
不需穷
序
尽所有
语
情况
process(sel) begin
IF sel=“00” then f<=i0; ELSIF sel=“01”then f<=i1; ELSIF sel=“10”then f<=i2;
JC2:PROCESS(c) begin if (c=‘1’ ) then d<=‘1’; else d<=‘0’; end process JC2;
end abc;
VHDL并行语句
2、信号代入语句
格式:
目的信号量<=信号量表达式; 目的信号量<=信号量表达式 AFTER N ns;
注意: 进程中出现的代入语句称为信号代入语句; 结构体中出现的代入语句称为并发信号代入语句。
PROCESS(a,b) begin
c<=a and b after 10 ns; a<=‘1’; b<=‘1’; b<=‘0’; out<=c; end process; end abc;
VHDL顺序语句
2、变量代入语句
格式:
变量:=表达式;
注意: 变量是局部量,只能在所定义的进程、过程、和函
数中使用。 变量赋值是立即发生,不能加延时。 在进程中描述逻辑关系及算法时最好使用变量,以
VHDL顺序语句
3、CASE语句
格式:
Case 表达式 Is WHEN 选择值 =>顺序处理语句;
…… WHEN 选择值 =>顺序处理语句; WHEN OTHERS =>顺序处理语句; End case;
注意: CASE语句至少包含一个条件句; CASE语句中条件表达式的值必须列举穷尽,但不
能重复; 无法穷举,用OTHERS表达。
begin tmp:=‘0’; FOR i IN 0 to 7 LOOP tmp:=tmp XOR a(i); END LOOP; Y<=tmp;
end process; end abc;
VHDL顺序语句
5、LOOP语句—WHILE循环
格式: 标号:WHILE 循环控制条件 LOOP 顺序处理语句; …… END LOOP;
系。 进程之间通过信号传递信息。
VHDL并行语句
例:
两进程 通过信 号C传 递信息
architecture abc of example is signal c :STD_LOGIC; begin
JC1:PROCESS(a,b) begin
c<=a and b after 10 ns; end process JC1;
在系统可编程技术
第12讲 VHDL语言语言主要描述
语句
VHDL主要描述语句
并行处理语句
在结构体 (ARCHITECTURE)
中
执行的语句
顺序处理语句
在进程(PROCESS) 函数(FUNCTION) 过程(PROCEDURE)
中执行的语句
硬件 描述 的特
点
高级 语言 的特
点
VHDL顺序语句
➢顺序语句只能出现在进程(Process)、函数 (Function)和过程(Procedure)中;
VHDL并行语句
例:
8-3优先权编码器 architecture abc of example is begin
out<= “000” when input(0)=‘1’ else “001” when input(1)=‘1’ else “010” when input(2)=‘1’ else “011” when input(3)=‘1’ else “100” when input(4)=‘1’ else “101” when input(5)=‘1’ else “110” when input(6)=‘1’ else “111” when input(7)=‘1’ else “XXX”;
➢它体现了硬件电路的运行特点。
常用的顺序处理语句有: 进程语句 并发信号代入语句 条件信号代入语句 选择信号代入语句 BLOCK语句
VHDL并行语句
1、进程语句(PROCESS)语句
格式:
标号:PROCESS(信号1,信号2,……) BEGIN
…… END PROCESS 标号;
注意: 进程语句本身是并行语句,进程的内部才是顺序执行; 同一结构体中,可以有多个进程,它们之间是并行关
例:ecture abc of example is
V
signal sel:std_logic_vector(1 downto 0);
H
begin
D
sel<=b &a;
L 顺
为什么 还要
process(sel) begin
case sel is
序
others
when “00” => f<=i0;
end abc;
VHDL并行语句
5、BLOCK(块)语句
格式: 标号:BLOCK BEGIN 并行处理语句; END BLOCK 标号;
注意: 块语句可以看成是结构体的子模块; 块语句可以使结构体层次鲜明,结构明确; 块内定义的数据类型、数据对象(信号、变量、常
量)、子程序等都是局部的;
VHDL并行语句
注意: 循环控制条件没有直接给出循环次数,可以是任何
条件表达式,条件为“真”,进行循环,条件为“假”, 退出循环。
条件表达式需初始化。