VHDL结构及语言要素
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