第五章 VHDL主要描述语句
第五章 VHDL主要描述语句
主要内容 ·概述 ·行为描述语句 ·结构描述语句
主要内容 • 概 述 • 行为描述语句 • 结构描述语句
5.1概述 VHDL中的述语句了分为顺序语句(Sequential Statements)和并行语句(Concurrent Statements)两大基 本系列。 ARCHITECTURE 条 0 信号 信号 信号 生 信号 信号 信号赋值语句 成 灌信号 块 化语句 语 赋 并行过程调用语句 句 END ARCHITECTURE 图5.1结构体中并行语句间的关系
5.1 概 述 VHDL中的描述语句了分为顺序语句(Sequential Statements)和并行语句 (Concurrent Statements)两大基 本系列。 图5.1 结构体中并行语句间的关系 生 成 语 句 元 件 例 化 语 句 进 程 语 句 并 行 信 号 赋 值 语 句 并 行 过 程 调 用 语 句 块 语 句 条 件 信 号 赋 值 语 句 END ARCHITECTURE ARCHITECTURE 信号 信号 信号 信号 信号 信号
5.2行为描述语句 5.2.1赋值语句 赋值语句有两种,即信号赋值语句和变量赋值语句。每一种赋值语 句都有三个基本组成部分,即赋值目标、赋值符号和赋值源。信号赋值 语句和变量赋值语句的语法格式如下: 信号赋值目标<=赋值源: 变量赋值目标:三赋值源; 标识符、数组元素目标的赋值语句示例如下: V1:=0'g V2:=1'9 SIGNAL s1,s2:STD_LOGIC; S1 <s1 AND s2; SIGNAL array.1:STD_LOGIC_VECTOR(0 S2<=s10Rs2; T03): aray.1(0)<=V1; PROCESS(s1) aray.1(1)<=V2; VARIABLE v1,v2:STD_LOGIC; aray1(2)<=S1; BEGIN array..1(3)<=S2; END PROCESS;
5.2 行为描述语句 5.2.1 赋值语句 赋值语句有两种,即信号赋值语句和变量赋值语句。每一种赋值语 句都有三个基本组成部分,即赋值目标、赋值符号和赋值源。信号赋值 语句和变量赋值语句的语法格式如下 : 信号赋值目标 <= 赋值源; 变量赋值目标 := 赋值源; 标识符、数组元素目标的赋值语句示例如下: SIGNAL s1, s2: STD_LOGIC; SIGNAL array 1: STD_LOGIC_VECTOR(0 TO 3); PROCESS(s1) VARIABLE v1, v2: STD_LOGIC; BEGIN V1 := ‘0’; V2 := ‘1’; S1 <= s1 AND s2; S2 <= s1 OR s2; array 1(0) <= V1; array 1(1) <= V2; array 1(2) <= S1; array 1(3) <= S2; END PROCESS;
5.2.2并行信号赋值语句 1.一般信号赋值语句 信号赋值目标<=延迟选项表达式延迟表达式: 例5.1四位并行加法器的数据流描述。 LIBRARY IEEE; ARCHITECTURE ADD4 concumt OF ADD4 IS USE IEEE.STD LOGIC 1164.ALL; -定义包含有进位的SUM信号 USE IEEE.STD LOGIC UNSIGNED.ALL SIGNAL SUMINT:STD LOGIC_VECTOR( ENTITY ADD4 IS 4 DOWNTO 0); PORT( BEGIN A:IN STD LOGIC VECTOR(3 DOWNTO 0); SUMINT<=('0'&A)+(0'&B)+ B:IN STD_LOGIC_VECTOR(3 DOWNTO 0);("0000"&CIN)AFTER 10 ns; CIN IN STD LOGIC; COUT <SUMINT(4)AFTER 15 ns; SUM OUT STD LOGIC_VECTOR( SUM <SUMINT(3 DOWNTO 0)AFTER 3 DOWNTO 0); 15ns; COUT OUT STD LOGIC END ADD4_concurnt; END ADD4;
5.2.2 并行信号赋值语句 1.一般信号赋值语句 信号赋值目标 <= 延迟选项 表达式 延迟表达式; 例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; ARCHITECTURE ADD4_concurnt OF ADD4 IS -- 定义包含有进位的SUM信号 SIGNAL SUMINT: STD_LOGIC_VECTOR( 4 DOWNTO 0); BEGIN SUMINT <= ('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;