VHDL语言的顺序语句.

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IS
Y<=input (0); Y<=input (1); Y<=input (2); Y<=input (3);
IF语句不仅可用于选择器设计,还可用于比较 器,译码器等进行条件控制的逻辑设计。IF语句 中至少应有一个条件句,条件句必须由布尔表达 式构成,条件表达式中能使用关系运算操作及逻 辑运算操作的组合表达式。 IF语句颠倒条件判别次序,会引起在综合时逻辑 功能的变化,即IF语句判别条件不可颠倒。 IF语句中,先处理最起始的条件;如果不满足, 再处理下一个条件。一般把条件约束最多的作为 起始条件。
c<=b END IF; 例 : IF (sel=’1’) THEN
c<=a;
ELSE
c<=b;
END IF;

用IF语句描述一个四选一电路
LIBRARY IEEE;
USE
IEEE. STE_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);
条件句
THEN
顺序语句;
END IF; IF 条件句 THEN 顺序语句;
第二种
ELSE
顺序语句;
END IF;
IF
条件句1
THEN
THEN
顺序语句1;
顺序语句2;
ELSIF 条件2 … 第三种 ELSIF 条件n ELSE END IF;
THEN
顺序语句n;
顺序语句n+1;
例 :IF (SET=’1’) THEN
五、VHDL语言的顺序语句
顺序语句和并行语句是VHDL程序设计中 两大基本描述语句系列。 顺序语句 (Sequential Statements)用来 实现模型的算法描 述。 并行语句 (Concurrent Statements)用来 表示各模型算法描 述之间的连接关系。
这些语句从多侧面完整地描述数字系统的硬件结构 和基本逻辑功能,其中包括通信的方式、信号的赋值、 多层次的元件例化以及系统行为等。
END mux4;
ARCHITECTURE rt1 OF mux4 BEGIN PROCESS (input, sel) BEGIN IF (sel=”00”) THEN ELSIF (Sel=”01”) THEN ELSIF (Sel=”10”) THEN ELSE END IF; END PROCESS; END rt1;
ARCHITECTURE ART OF MUX41 IS
SIGNA S :STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN S<=S1 & S2;
PROCESS(S,A,B,C,D) IS
BEGIN CASE S IS
WHEN "00"=>Z<=A;
WHEN "01"=>Z<=B; WHEN "10"=>Z<=C;

用CASE语句描述4选1多路选择器。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY MUX41 IS PORT(S1,S2: IN STD_LOGIC; A,B,C,D:IN STD_LOGIC; Z: OUT STD_LOGIC);
END ENTITY MUX41;
WHEN "11"=>Z<=D;
WHEN OTHERS =>Z<='X'; END CASE;
END PROCESS;
END ARCHITECTURE ART;
使用CASE语句需注意以下几点: (1) 条件句中的选择值必须在表达式的取值范围内。 (2) 除非所有条件句中的选择值能完整覆盖 CASE语句中 表达式的取值,否则最末一个条件句中的选择必须用 “OTHERS”表示。 (3) CASE语句中每一条语句的选择只能出现一次,不能 有相同选择值的条件语句出现。
[理解]
顺序语句是相对于并行语句而言的,其特点 是每一条顺序语句的执行(指仿真执行)顺序是与 它们的书写顺序基本一致的, 顺序语句只能出现在 进程(PROCESS) 过程(PROCEDURE) 函数(FUNCTION) 中,其它都是并行语句。 一个进程是由一系列顺序语句构成的,而进 程本身属并行语句。也就是说,在同一设计实体 中,所有的进程是并行执行的,每个进程内部是 顺序执行的。
B、CASE 语句
CASE 表达式 IS When 选择值 => 顺序语句; When 选择值 => 顺序语句; ... [When OTHERS =>顺序语句;] END CASE ;
选择值可以有四种不同的表达方式: 单个普通数值,如6。 数值选择范围,如(2 TO 4),表示取值为2、3或4。 并列数值,如35,表示取值为3或者5。 混合方式,以上三种方式的混合。
目的变量 := 表达式;
例:x:=15; 变量的说明和赋值限定在顺序区域内,即只能在 进程或子程序中使用,它无法传递到进程之外。
B、信号赋值语句
目的信号 <= 表达式;
例:y<=‘Biblioteka Baidu’;
信号赋值可以在顺序区域内作顺序语句,也可以 在结构体中当作并行语句使用。
2、流程控制语句
A、IF 语句
第一种
IF
(4) CASE语句执行中必须选中,且只能选中所列条件语
句中的一条。这表明CASE语句中至少要包含一个条件语句。
CASE语句常用来描写总线行为、编码器和译码器的结构。CASE语句 与IF语句功能相似但CASE语句的可读性好,非常简洁。
C、LOOP 语句
(1)单个LOOP语句,其语法格式如下: [标号:] LOOP 顺序语句; END LOOP [标号 ]; 用法示例: L2 :LOOP a := a+1; EXIT L2 WHEN a >10 ; -- 当a大于10时跳出循环 END LOOP L2; ... (2)FOR… LOOP语句,语法格式如下: [标号:] FOR 循环变量 IN 循环次数范围 LOOP 顺序语句; END LOOP [标号];
VHDL有如下六类基本顺序语句: 1、赋值语句 2、流程控制语句
信号赋值语句 变量赋值语句 IF语句 CASE语句 LOOP语句 NEXT语句 EXIT语句
3、等待语句
4、子程序调用语句
WAIT语句
过程调用 函数调用 RETURN语句 NULL语句
5、返回语句
6、空操作语句
1、赋值语句
A、变量赋值语句
相关文档
最新文档