当前位置:文档之家› EDA技术与VHDL_汇总

EDA技术与VHDL_汇总


数据对象
信号与变量赋值语句功能的比较
顺序语句
VHDL有6类基本顺序语句 有 类基本顺序语句 •赋值 赋值 •流程控制 流程控制 •等待 等待 •子程序调用 子程序调用 •返回 返回 •空操作 空操作
顺序语句
CASE语句 (顺序语句,须放在进程中) CASE <表达式> IS When <选择值或标识符> => <顺序语句>; ... ; <顺序语句> ; When <选择值或标识符> => <顺序语句>; ... ; <顺序语句> ; ... WHEN OTHERS => <顺序语句>; END CASE ;Fra bibliotek顺序语句
LOOP语句
(1) 单个 单个LOOP语句,其语法格式如下: 语句, 语句 其语法格式如下: [ LOOP标号:] LOOP 顺序语句 END LOOP [ LOOP标号]; (2) FOR_LOOP语句,语法格式如下: [LOOP标号:] FOR 循环变量,IN 循环次数范围 LOOP 顺序语句 END LOOP [LOOP标号];
数据对象
信号
SIGNAL 信号名: 数据类型:= 初始值; 目标信号名<= 表达式 表达式AFTER 时间量 时间量; 目标信号名 SIGNAL a,b,c,y,z: INTEGER ; ... PROCESS (a,b,c) BEGIN y <= a + b ; z <= c – a ; y <= b ; END PROCESS ;
检测信号跳变
注:不完整条件语句——时序电路结构的必要条件和关键所在 不完整条件语句 时序电路结构的必要条件和关键所在 完整电路只能构成组合逻辑电路
VHDL 基本语法
须注明位宽) 标准逻辑矢量数据类型 STD_LOGIC_VECTOR (须注明位宽)
B <= "01100010" ; -- B(7)为'0‘ B(4 DOWNTO 1) <= "1101" ; -- B(4)为'1‘ B(7 DOWNTO 4) <= A ; -- B(6)等于A(2) SIGNAL C :BIT_VECTOR(3 DOWNTO 0);
VHDL语句结构与语法小节
文件存盘: VHDL设计文件必须存于指定为工程的目录中,此目录将被设定为 WORK库,WORK库的路径即为此目录的路径。 VHDL库:LIBRARY语句打开VHDL库:IEEE库、标准库STD、工作库WORK . . 程序包: USE 语句声明使用程序包: STD_LOGIC_1164、 STD_LOGIC_UNSIGNED、STANDARD等程序。 数据对象:信号:SIGNAL,变量:VERIABLE,常数:CONSTANT 信号属性函数:信号属性函数EVENT、LAST_VALUE。 时钟检测: 时钟检测上升沿检测表式: CLK'EVENT AND CLK='1'、 RISING_EDGE()、FALLING_EDGE()等。 时序电路:不完整条件语句产生时序电路:IF … THEN … END IF,IF … THEN … ELSIF … THEN …END IF 真值表表达:表达方法之一是用CASE_WHEN语句,但要注意OTHERS的应用 。 并置操作符:并置操作符&可用于合并两个或多个逻辑矢量,构建成新的数组。 元件例化:由元件调用声明语句COMPONENT和映射语句PORT MAP( )构成。 运算符重载概念:当进行非整数类型数据运算操作时需要调用运算符重载函数, 这可以打开程序包STD_LOGIC_UNSIGNED。
VHDL 基本语法
并置操作符& 并置操作符 SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ; SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ; ... a <= '1'&'0'&d(1)&'1' ; -- 元素与元素并置,并置后的数组长度为4 ... IF a & d = "101011" THEN ... –- 在IF条件句中可以使用并置符
VHDL 基本语法
实体表达
实体名
ENTITY e_name IS
端口语句和端口信号名
PORT ( p_name : port_m data_type; ... p_namei : port_mi data_type ); END ENTITY e_name;
端口模式
端口模式
数据类型
“IN”、“OUT”、“INOUT”、“BUFFER” 、 、 、
数据对象
变量
注:局部量,只在进程和子程序使用,赋值没有延时
VARIABLE 变量名: 数据类型:= 初始值;
VARIABLE a : INTEGER RANGE 0 TO 15 ; --变量a定义为常数,取值范围是0到5 VARIABLE d : STD_LOGIC := ‘1’ ; --变量a定义为标准逻辑位数据类型, 初始值是1
数据对象
变量 目标变量名:= 表达式; 目标变量名 表达式
VARIABLE x,y : INTEGER RANGE 15 DOWNTO 0 ; --分别定义变量x和y为整数类型 VARIABLE a,b : STD_LOGIC_VECTOR(7 DOWNTO 0) ; x := 11 ; y := 2 + x ; -- 运算表达式赋值,y 也是实数变量 a := b --b向a赋值 a(0 TO 5) := b(2 TO 7) ;
VHDL 语言
VHDL语句结构与语法小节
实体:以ENTITY. . .END ENTITY e_name描述器件的端口特性。 结构体: 以ARCHITECTURE ... END ARCHITECTURE 给出器件的逻辑功能和行为。 端口定义: 以PORT()语句定义器件端口及其数据类型。 端口模式: IN、OUT、INOUT、BUFFER描述端口数据的流向特征。 数据类型: 数据对象承载数据的类别:INTEGER、BOOLEAN、STD_LOGIC、 BIT、STD_LOGIC_VECTOR。 信号赋值符:“<=”,用于信号数据的传输,仿真传输延时最短为一个δ。 “ 条件比较符: “=”,在条件语句表式中用于比较待测数据的关系。 δ 延时: 模拟器最小分辨时间δ,或称延时δ 。 逻辑操作符: AND、OR、NOT、NAND、XOR、XNOR。 IF条件语句:IF_THEN_ELSE语句作为顺序语句。 并行条件语句:WHEN_ELSE条件信号赋值语句。 进程语句: 以PROCESS ...END PROCESS引导的语句结构。 顺序语句: 由进程语句引导的,以顺序方式执行的语句。 并行语句: 在结构体中以并行方式执行的语句。 文件取名: 建议文件名与VHDL设计的实体名一致,后缀是.vhd。
文件取名和存盘
关键词和文件名都不区分大小写,推荐文件名用小写,特别是后缀 关键词和文件名都不区分大小写,推荐文件名用小写,特别是后缀.vhd
3.8 进程语句归纳
3.8.3 进程要点 1. PROCESS为一无限循环语句 为一无限循环语句 2. PROCESS中的顺序语句具有明显的顺序 并行运行双重性 中的顺序语句具有明显的顺序/并行运行双重性 中的顺序语句具有明显的顺序 3. 进程必须由敏感信号的变化来启动 (或WAIT) ) 4. 进程语句本身是并行语句 5. 信号是多个进程间的通信线 6. 一个进程中只允许描述对应于一个时钟信号的同步时序逻辑
END ARCHITECTURE arch_name ;
VHDL 基本语法
PROCESS (a,b,s) BEGIN IF s = '0' THEN y <= a ; ELSE y <= b ; END IF; END PROCESS; 敏感表
进程语句
顺序语句
赋值语句 进程启动语句 子程序调用语句 顺序描述语句 进程跳出语句
Q : BUFFER NATURAL RANGE 15 DOWNTO 0; NATURAL是INTEGER的子集,包含零和正整数
数据对象
常数
注:具有全局性
CONSTANT 常数名:数据类型:= 表达式;
CONSTANT FBT : STD_LOGIC_VECTOR := "010110" ; -- 标准位矢类型 CONSTANT DATAIN : INTEGER := 15 ; -- 整数类型
顺序语句
语句执行中进行转向控制。 种格式: (3)用于 )用于LOOP语句执行中进行转向控制。有3种格式: 语句执行中进行转向控制 种格式
NEXT; -- 第一种语句格式,无条件终止当前循环转向起点,开始下一次循环 NEXT LOOP 标号 -- 第二种语句格式,与一类似,但可以跳转到指定的循环 标号; NEXT LOOP 标号 WHEN 条件表达式; -- 第三种语句格式,当条件成立时,执 行跳转
数据类型 “INTEGER”、“BOOLEAN”、“STD_LOGIC”、”BIT“ 、 、 、
VHDL 基本语法
结构体表达
ARCHITECTURE arch_name OF e_name IS [说明语句] BEGIN (功能描述语句)
电路功能描述,并行语句 说明数据对象、类型、调用声明,并非必须
VHDL 基本语法
1、BIT数据类型定义: 、 TYPE BIT IS(‘0’,‘1’); --只有两种取值 2、STD_LOGIC数据类型定义: 、 TYPE STD_LOGIC IS ('U','X','0','1','Z','W','L','H','-'); 弱 强 强 强 高 弱 未 弱
相关主题