VHDL结构及语言要素

合集下载

VHDL语言的基本要素(大全)

VHDL语言的基本要素(大全)

VHDL语言的基本要素一、数据对象VHDL语言的主要数据对象有信号,变量,常量。

信号—信号是电路中的物理量,对应于电路的连线、节点;信号说明全局量,用于描述中的构造体(Architecture), 实体(Intity),程序包(package)。

变量—变量是程序运算中的中间量,并不对应电路中的物理量。

变量说明局部量,用于进程语句(process), 函数(Function), 过程(procedure)。

常量—常数也不对应电路中的物理量,当常量说明全局量,在构造体(Architecture), 实体(Intity),程序包(package),进程语句(process), 函数(Function), 过程(procedure)中均可使用。

数据对象的定义格式:signal 信号名:数据类型,约束条件,表达式Variable 变量名:数据类型,约束条件:=表达式Constant 常量名:数据类型,约束条件:=表达式例如:Variable count:INTEGER RANGE 0 TO 255:=10Constant Daly:Time:=100ns信号代入和变量赋值的区别:两者形式不同,操作过程也不相同。

变量赋值符“:=”,信号的代入符“<=”。

在变量的赋值语句中,该语句一当执行,其值立即将赋予变量;而信号的代入,其语句执行后不会立即使信号发生代入,在下条语句执行时,仍使用原来的信号值,如进程语句中的敏感表的信号代入就是如此。

二、数据类型VHDL语言中的数据类型,一般而言可分为:标量类型和组合类型。

在实际使用中,也可分成予定义类型和用户定义类型。

VHDL语言是强类型的语言,主要可按如下分类和变换处理。

①标准数据类型⑴整数⑵实数(浮点数)-1.0E+38~+1.0E38 ⑶位bit(0,1)⑷位矢量⑸布尔量,“假”,“真”⑹字符(ASCⅡ)字符⑺时间⑻错误等级⑼自然数(大于等于0的整数)⑽字符串(字符矢量)②用户定义的数据类型TYPE 数据类型名{数据类型名} 数据类型定义⑴枚举类型⑵整数类型⑶实数类型⑷数组类型⑸存取类型⑹文件类型⑺记录类型⑻时间类型③用户定义子类型SUBTUPE 子类型名IS 数据类型名[范围]例:SUBTYPE digit is INTEGER RANGE 0 TO 9④数据类型转换数据类型的变换函数通常由“STD_LOGIC_1164”,“STD_LOGIC_ARITH”,“STD_LOGIC_UNSIGNED”的程序包提供例如,在STD_LOGIC_1164程序包中,TO_STD LOGIC VECTOR(A) 由BIT_VECTOR转换为STD_LOGIC_VECTORTO_BITVECTOR(A) 由STO_LOGIC_VECTOR转为BIT_VECTORTO_STDLOGIC(A) 由BIT转换为STD_LOGICTO_BIT(A) 由STD_LOGIC转换成BIT signal a: BIT_VECTOR(11 DOWNTO 0)signal b: STD_LOGIC_VECTOR(11 DOWNTO 0)a<=X”A8” 十六进制值可赋予位矢量b<=X”A8” 语法错,十六进制不能赋予.STD 矢量b<=TO_STDLOGICVECTOR(X“AF7”)b<=TO_STDLOGICVECTOR(O“5177”)八进制变换b<=TO_STDLOGICVECTCR(B“1010_1111_0111”)下表中也给出一些典型的类型变换函数三、运算符运算符的优先级如下表所示:运算符的优先级例如,并置运算符的使用:tmp_b<=b AND (en&en&en&en) y <= a & tmp_b第一个语句表示b 的4位位矢量由en 进行选择 得到一个4位位矢量输出第二个语句表示4位位矢量a 和4位位矢量b 再 次连接(并置)构成8位的位矢量y 输出 右图所示为并置运算符操作的电路示意。

EDA 第9章 VHDL结构与要素

EDA 第9章 VHDL结构与要素
9.7.2 字符串
“B”、 “X”
“O ” 、
9.7 VHDL文字规则
9.7.3 标识符及其表述规则
9.7 VHDL文字规则
9.7.4 下标名
9.8 数 据 类 型
● 标量型(Scalar Type):包括实数类型、整数类型、枚举类 型、时间类型。 ● 复合类型(Composite Type):可以由小的数据类型复合而 成,如可由标量型复合而成。复合类型主要有数组型(Array) 和记录型(Record)。 ● 存取类型(Access Type):为给定的数据类型的数据对象 提供存取方式。 ● 文件类型(Files Type):用于提供多值存取类型。
7. 字符串类型
8. 时间类型
9.8 数 据 类 型
9.8.1 VHDL预定义数据类型
9. 文件类型
9.8 数 据 类 型
9.8.2 IEEE预定义标准逻辑位与矢量
1. 标准逻辑位数据类型
2. 标准逻辑矢量数据类型
9.8 数 据 类 型
9.8.3 其他预定义标准数据类型
1. 无符号数据类型
9.8 数 据 类 型


9-10 判断下列VHDL标识符是否合法,如果有误则指出原因: 16#0FA#, 10#12F#, 8#789#, 8#356#, 2# 0101010# 74HC245 , \74HC574\, CLR/RESET, \IN 4/SCLK\, D100% 9-11 数据类型BIT、INTEGER和BOOLEAN分别定义在哪个库中?哪 些库和程序包总是可见的? 9-12 函数与过程的设计与功能有什么区别?调用上有什么区别?
3. 功能描述语句结构 ● 进程语句 ● 信号赋值语句 ● 子程序调用语句 ● 元件例化语句

第1章VHDL语言基础

第1章VHDL语言基础
(Bit)、位矢量型(Bit-vector)和整数型(Integer)等。 ➢ 在实用中,端口描述中的数据类型主要有两类:位(BIT)和
位矢量(BIT_VECTOR)。若端口定义为BIT,则其信号值 是一个1位的二进制数,取值只能是0或1;若端口定义为 BIT_VECTOR,则其信号值是一组二进制数。
➢ 在电路中,如果实体代表一个器件符号,则结构体描述了 这个符号的内部行为。当把这个符号例化成一个实际的器 件安装到电路上时,则需用配置语句为这个例化的器件指 定一个结构体(即指定一种实现方案),或由编译器自动选一 个结构体。
1. 结构体的一般语句格式 ARCHITECTURE 结构体名 OF 实体名 IS [说明语句;] BEGIN [功能描述语句;] END [ARCHITECTURE] [结构体名];
1.1 VHDL程序基本结构
一、VHDL程序设计约定 ➢ 语句结构描述中方括号“[ ]”内的内容为可选内容。 ➢ 对于VHDL的编译器和综合器来说,程序文字的大小写是不
加区分的。 ➢ 程序中的注释使用双横线“- -”。 ➢ 源程序命名与实体同名(MAX+plus Ⅱ要求)。
二、VHDL程序设计引例( 74LS00的设计 )
③ 信号赋值语句将设计实体内的处理结果向定义的信号或界面 端口进行赋值。
④ 子程序调用语句用于调用一个已设计好的子程序。
⑤ 元件例化语句对其他的设计实体作元件调用说明,并将此元 件的端口与其他的元件、信号或高层次实体的界面端口进行 连接。
A
A NAND2
Y
Y
B
B
(a)
A1
A NAND2
U1 Y
Y1
B1
B
A2
A NAND2

第九讲VHDL结构及语言要素

第九讲VHDL结构及语言要素

2006-10
26
7)实数(REAL) 或称浮点数
取值范围:-1.0E38 ~ +1.0E38 实数类型仅能用于VHDL仿真器,一般综合器 不支持。
8)字符串(string) string 是 character 类型的一个非限定数组。用
双引号将一串字符括起来。如:
variable string_var : string(1 to 7);
2006-10
14
1、常量说明
常量说明:对某一个常量名赋予一个固定的值。 格式:
constant 常数名:数据类型:= 表达式;
例: constant data: bit_vector(3 downto 0):=“1010”
constant width: integer: = 8; constant x: new_bit: = ‘x’; 常量数据类型必须与表达式的数据类型一致。
b:=not a;
2006-10
17
3、信号说明
电子硬件系统运行的基本特性:
各部分电路工作的并行特性;
信号传输过程中的延时特性;
多驱动源的总线特性;
时序电路中触发器的记忆特性等。
信号是电子系统内部硬件连接和硬件特性的抽 象表示。用来描述硬件系统的基本特性。
信号定义格式:
signal 信号名:数据类型 约束条件:= 表达式;
注:‘_’用以提高数字可读性;数字间不允许空

2006-10
2
2、字符串型文字
按字符个数多少分为: 字符:用单引号引起来的ASCII字符,可以是
数值,也可以是符号或字母。 如:‘A’,‘*’,‘Z’ 字符串:用双引号引起来的一维字符数组
2006-10

第五章 VHDL语言的语言要素

第五章 VHDL语言的语言要素

3.信号(SIGNAL)
信号赋值语句:
目标信号名<=表达式; 例如: x<=9;
y<=x;
z<=x AFTER 5ns;
25
VHDL语言的语言要素
3.信号(SIGNAL)
信号与变量的区别:
① 使用场合不同 变量在进程、函数和过程中说明; 信号在结构体中说明。 ② 赋值符号不同 变量用“:=”号赋值, 其值被立即使用(无时间延时); 信号用“<=”赋值,其值可以附加延时。
VHDL语言的语言要素
5 VHDL语言的语言要素
语言要素是组成编程语句的基本单元,主要有:
■ 数据对象(Object)
■ 数据类型(Type)
■ 操作数(Operands)
■ 运算操作符(Operator)
1
VHDL语言的语言要素
5.1 VHDL语言的文字规则
任何一种程序设计语言都有自己的一套书写符 1.数字型文字 号和语法规则,这些符号和语法规则构成了程序设 数字型文字有多种表达方式,包括: 计语言的文字规则。 ● 整数型文字 ● 实数型文字 ● 数制基数型文字 ● 物理量型文字
2
VHDL语言的语言要素
1.数字型文字 (1)整数型文字 整数型文字都是十进制数,由数字和下划线组成。
例如:
0,6,876,516E2,23_456_789
156E2 = 15600
23_456_789 = 23 456 789
3
VHDL语言的语言要素
1.数字型文字 (2)实数型文字 也是十进制数,但必须带小数点,由数字、小数
;等效B“001010”,长度为6
X“BC6”;等效B“101111000110”,长度为12
9
VHDL语言的语言要素

第八章VHDL结构与要素

第八章VHDL结构与要素

FUNCTION max (a,b : IN STD-LOGIC-VECTOR )函数首 RETURN STD-LOGIC-VECTOR ; FUNCTION max (a,b : IN BIT-VECTOR ) RETURN BIT-VECTOR; FUNCTION max (a,b : IN INTEGER ) RETURN INTEGER; END; 函数首 函数首
(3) 例 ENTITY MCU1 IS GENERIC(addrwidth:INTEGER:=16); PORT(add_bus:OUT STD_LOGIC_VECTOR( addrwidth-1 DOWNTO 0); …
(4) 特点 A、 与常数不同,类属的值可以由设计体 外部提供,常数只能从实体内部得到 赋值 B、 在一个实体中定义的、来自外部赋入 类属的值可以在实体内部或与之相应 的结构体中读到 C、 数据类型通常取INTEGER或TIME等类 型,但是VHDL综合器只支持数据类型 为整数的类属值
8-3 子程序
顺序语句定义和完成算法的程序模块; 定义和完成算法的程序模块 用顺序语句定义和完成算法的程序模块; 可以在三个不同的位置定义:程序包、结构体、进程; 可以在三个不同的位置定义:程序包、结构体、进程; 具有可重载性,每一次调用将在综合后的硬件中产生相应的模块; 具有可重载性,每一次调用将在综合后的硬件中产生相应的模块; 可重载性 有过程和函数两种类型 8-3-1 函数 自定义函数 预定义函数 函数的表达格式——由函数首和函数体组成 由函数首和函数体组成 函数的表达格式 FUNCTION 函数名 (参数表) RETURN 数据类型 参数表) 函数首 函数体
程序包(体) 定义函数体
结束FUNCTION语句 结束PACKAGE BODY语句

第五讲 VHDL语言程序的基本结构

第五讲 VHDL语言程序的基本结构

端口说明
端口说明是对基本设计实体(单元)与外部接口的描 述,也可以说是对外部引脚信号的名称,数据类型和 输入,输出方向的描述; 其一般书写格式为: PORT(端口名{,端口名}:方向 数据类型名; 端口名{,端口名}:方向 数据类型名); 举例: PORT(d0,d1,sel : IN BIT; q : OUT BIT; bus : OUT BIT_VECTOR(7 DOWNTO 0) );
敏感信号: 只要有一个发 生变化(如由 "0"变成"1" 或由"1"变为 "0")都将启 动PROCESS语 句.
PROCESS语句的特点
(1) 进程内部的所有语句都是顺序执行的. (2) 多进程之间,是并行执行的,并可访问构 造体或实体中所定义的信号. (3) 进程的启动是由进程标识符Process后的 敏感信号来触发,也可用WAIT语句等待一个 触发条件的成立. (4) 各进程之间的通信是由信号来传递的.
第2章 VHDL语言程序的基本结构 章 语言程序的基本结构
主要内容
VHDL语言设计的基本单元及其构成 : 语言
实体 + 构造体
VHDL语言构造体的子结构描述 : 语言
块,进程,子程序
包集合, 包集合,库及配置
一个完整的VHDL语言程序 通常包含5个部分:
必 备 部 分
库,包集合 实体(Entity)
构造体:描述系统内部的结构和行为;
包集合:存放各种设计模块都能共享的数据类型, 常数和子程序等; 库: 存放已经编译的实体,构造体,包集合和 配置.
前四种是可分别编译的源设计单元
2.1 VHDL语言设计的基本单元及其构成 语言 实体+构造体 构造体) (实体 构造体)

VHDL简介

VHDL简介

VHDL简介——王春桃内容提要VHDL程序结构VHDL基本语法总结 VHDL语言要素VHDL设计常见错误VHDL程序结构第二章VHDL程序的基本结构一个完整的VHDL语言程序通常包含实体(Entity)、结构体(Architecture)、配置(Configuration)、)包集合(Package)、库(Library)5个部分。

VHDL基本结构实体和结构体是最基本的两个组成部分,两者配合可以组成简单的VHDL文件。

一个可综合的VHDL描述的的最小和最基本的逻辑结构中,IEEE标准库说明、实体和结构体是最基本的和不可缺少的三个部分,其他的结构层次可根据需要选用。

VHDL 基本结构VHDL 设计VHDL 文件程序包(Packages )声明在设计或实体中将用到的常数数据类型声明在设计或实体中将用到的常数,数据类型,元件及子程序等实体(Entities )声明到其他实体及其结构体A hit t 他设计的接口,即定义本设计的输入/出端口(Architectures )定义了实体的实现。

即本设计的输出端电路的具体描述一、实体(Entity)实体(VHDL表达的所有设计均与实体有关,实体是设计中最基本的模块。

设计的最顶层是顶层实体。

如果设计分层次,那么在顶级实体中将包含较低级别的实体那么在顶级实体中将包含较低级别的实体。

实体中定义了该设计所需的输入/输出信号,信号的输入输出类型被称为端模式,同时,/类型被称为端口模式,同时,实体中还定义他们的数据类型。

实体(Entity)实体作为个实体的组部分其功能这个实体作为一个设计实体的组成部分,其功能是对这个设计实体与外部电路进行接口描述实体是设计实体的表层设计单元,实体说明部分规定了设计单元的输入输出接口信号或引脚,它是设计实体对外的一个通信界面。

就个设计实体而言外界所看到的仅仅是它的界面上的 就一个设计实体而言,外界所看到的仅仅是它的界面上的各种接口。

设计实体可以拥有一个或多个结构体,用于描述此设计实体的逻辑结构和逻辑功能。

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

2006-10
\entity\、\ENTITY\h
10
4、下标名及下标段名
下标名:用于指示数组型变量或信号的某一个 元素。
格式: 标识符(表达式) 下标段名(段名):用于指示数组型变量或信号 的某一 段元素。 格式:标识符(表达式 to/downto 表达式) to:下标序列由低到高;downto:下标序列由高到低 如: a : std_logic_vector(7 downto 0)
h 2006-10
8
基本标识符中的英文字母不分大小写; VHDL的保留字不能作为标识符使用。
合法标识符如下: my_counter、 Decoder_1、 FFT、 Sig_N、 Not_Ack、 State0
2006-10
非法标识符如下:
_Decoder_1、
2FFT、
Sig_#N、
Not-Ack、
O“34” 八进X:制十数六数进组制,基长数度符为号6 ,每一个十六进制数
2X00“6-110AB” 十六进代制表数一数个组4位,h的长二度进为制12数。
7
3、标识符
定义常数、变量、信号、端口、子程序或 参数的名字。
基本标识符的要求(87标准): 以英文字母开头; 不连续使用下划线“_”; 不以下划线“_”结尾; 由26个大小写英文字母、数字0~9及 下划线“_”组成的字符串。
h 2006-10
12
二. 数据对象 (page59 --unit4.2)
三种对象:常量(Constant) 变量(Variable) 信号(Signal)
三种对象的物理含义: 常量代表数字电路中的电源、地、恒定逻辑值等
常数; 变量代表暂存某些值的载体,常用于描述算法; 信号代表物理设计中的某一条硬件连接线,包括
h 2006-10
15
常量的可视性(作用范围):
2006-10
库、程序包 实体(Entity)
结构体1 进 程1
结构体2 进 程2
h
常量是全局 量,其作用 范围取决于 常量被定义 的位置。
16
2、变量说明
变量是一个局部量,只能在进程和子程序中 定义、使用。其作用范围仅限于定义了变量的进 程和子程序中。
或:(=14×16=224)
16#F.01#E+2
(=(15+1/(16 × 16)×16 ×16=3841.00)
h 2006-10
3
(4)物理量文字 如:60 s、100 m、 177 A
注:整数可综合实现; 实数一般不可综合实现; 物理量不可综合实现;
h 2006-10
4
2、字符串型文字
按字符个数多少分为: 字符:用单引号引起来的ASCII字符,可以是
第九讲 VHDL结构及语言要素(1)
1. 文字规则
2. 数据对象
3. 数据类型
4一. VHDL文字规则
1、数字型文字
(1)整数文字:十进制整数
如:5,678,156E2(=15600),
45_234_287 (=45234287)
(2)实数文字:带小数的十进制数
如:23.34,2.0,44.99E-2(=0.4499)
定义变量格式: variable 变量名:数据类型 := 初始值;
例: variable a, b : bit;
variable count : integer range 0 to 255 := 10;
变量的初值可用于仿真,但综合时被忽略。
变量赋值语句格式: 目标变量名:=表达式
h 2006-10
14
1、常量说明
常量说明:对某一个常量名赋予一个固定的值。 格式:
constant 常数名:数据类型:= 表达式;
例: constant data: bit_vector(3 downto 0):=“1010”
constant width: integer: = 8; constant x: new_bit: = ‘x’; 常量数据类型必须与表达式的数据类型一致。
ALL_RST_、
data__BUS、
return、
h
entity
9
扩展标识符(93标准):
以反斜杠来界定,免去了87标准中基本标
识符的一些限制。使描述更加直观、方便
可以以数字打头, 允许包含图形符号, 允许使用VHDL保留字,
有些VHDL工 具并不支持扩 展标识符
区分字母大小写等。
如:\74LS163\、 \Sig_#N\、
输入、输出端口。
h 2006-10
13
三种对象的特点及说明场合:
信号:全局量,可设置传输延迟,作模块间的 信息载体。用于architecture、package、entitiy。
变量:局部量,不可设置传输延迟,最后靠信 号传递信息。用于process、function、procedure。
常量:全局量,可用于上面两种场合。使实体 中某些量易于修改和阅读。
a(7), a(6)… a(0) 2006-10 a(7 downto 0), a(7 dowh nto 4), a(5 downto 3)… 11
5. 注释
用以提高程序可读性 以‘- -’开头,直至本行结尾 注释在程序段中以特征颜色标记显示,不参与 程序编译 如: --定义了器件的端口名称及类型
数值,也可以是符号或字母。 如:‘A’,‘*’,‘Z’ 字符串:用双引号引起来的一维字符数组
h 2006-10
5
字符串分为: (1)文字字符串:“文字”
如:“ERROR”, “XXXXXXXX”, “ZZZZZZZZ”, “X”, “BOTH S AND Q EQUAL TO L”,
h 2006-10
88_67_551.23_909(8867551.23909)
注:‘_’用以提高数字可读性;数字间不允许空

h 2006-10
2
(3)以数制基数表示的文字
格式: 基数#数字文字#E指数 (5部分组成)
如:10#170#
(=170)
2#1111_1110# (=254)
16#E#E1
(=2#1110_0000# =224)
6
(2)数位字符串: (由双引号引起来的数字序列)
称为位矢量,代表二进制、八进制、十六进
制的数组。其位矢量的长度为等值的二进制数的
位数。 格式: 基数符号 “数值”
其中基数符号有三种:
B:二进制基数符号。
O:八进制基数符号,每一个八进制数一个
B“1_1101_1110”3位二的进二制进数制数数组。,长度为9
相关文档
最新文档