当前位置: 首页 > >

EDA第4章 VHDL基础文字规则与操作符(43-44)

发布时间:

4.3 VHDL的数据及文字规则 ? 4.3.1 VHDL文字规则 ? VHDL文字(Literal)主要包括数值和标识符。数值型文字 主要有数字型、字符串型和位串型等。 (3) 以数制基数表示的文字:用这种方式表示的数由五个部 分组成。第一部分,用十进制数标明数*坏幕坏诙 部分,数制隔离符号“#”;第三部分,表达的文字;第四 部分,指数隔离符号“#”;第五部分,用十进制表示的指 数部分,这一部分的数如果是 0 可以省去不写。现举例如下: 10#170# --(十进制数表示,等于170) 2#1111_1110# --(二进制数表示,等于254) 16#FE# --(十六进制数表示,等于254) 16#F.01#E+2 --(十六进制数表示,等于3841.00) (4) 物理量文字(VHDL综合器不接受此类文字)。如: 60s(60秒),100m(100米),kΩ (千欧姆),177A(177安培) 2. 字符串型文字 字符是用单引号引起来的 ASCII 字符,可以是数 值,也可以是符号或字母,如:‘R’,‘A’,‘*’, ‘Z’。而字符串则是一维的字符数组,须放在双引号 中。 VHDL 中有两种类型的字符串:文字字符串和数位 字符串。 (1) 文字字符串:文字字符串是用双引号引起来的一 串文字,如: “ERROR”,“BOTH S AND Q EQUA TO L”,“X”, “BB$CC” (2) 数位字符串:数位字符串也称位矢量,是预定 义的数据类型BIT的一维数组,它们所代表的是二进制、 八进制或十六进制的数组,其位矢量的长度即为等值 的二进制数的位数。 数位字符串的表示首先要有计算基数,然后将该 基数表示的值放在双引号中,基数符以“B”、“O” 和“X”表示,并放在字符串的前面。它们的含义分别 是: ? B:二进制基数符号,表示二进制数位0或1,在字 符串中每一个位表示一个BIT。 ? O:八进制基数符号,在字符串中的每一个数代表 一个八进制数,即代表一个3位(BIT)的二进制数。 ? X:十六进制基数符号(0~F),字符串中的每一位代 表一个十六进制数,即代表一个4位的二进制数。 ? 例如: B“1_1101_1110” --二进制数数组,位矢数组长度是9 O“15” -- 八进制数数组,位矢数组长度是6 X“AD0” --十六进制数数组,位矢数组长度是12 3.标识符 用来定义常数、变量、信号、端口、子程序或参数的名字。 规则: ? 有效的字符:包括26个大小写英文字母,数字包括0~9 以及下划线“_”。 ? 任何标识符必须以英文字母开头。 ? 必须是单一下划线“_”,且其前后都必须有英文字母或 数字。 ? 标识符中的英语字母不分大小写。 ? VHDL的保留字不能用于作为标识符使用。 标识符举例 例: ? _Decoder F ? 2fft ,sig_#n, data_ _bus, return ? FFT, sig_n, state0, return1 ? VHDL‘93版支持扩展标识符。 4.下标名 指示数组型变量或信号的某一元素。表达形式: 语句格式:标识符(表达式) 如: Signal a, b: bit_vector(0 to 3); Signal m: integer range 0 to 3; ? Signal x, y :bit ? y <= a(m) ; -- 不可计算型下标表示 ? z <= b(3) ; -- 可计算型下标表示 5.段名 对应数组中某一段元素,是多个下标名的组合。表达形式: 标识符(表达式 方向 表达式) 方向----To 由低到高 DOWNTO 由高到低 如:signal a, z: bit_vector(0 to 7) ;-- 8位位矢量 z(0 to 3)<=a(4 to 7); --以段的方式进行赋值 z(4 to 7)<=a(0 to 3); --以段的方式进行赋值 ? 4.3.2 VHDL数据对象 在VHDL中,数据对象(Data Objects)类似于一种容 器,它接受不同数据类型的赋值。数据对象有四种,即 常量(CONSTANT)、变量(VARIABLE)、信号(SIGNAL)和文 件(FILE)。 ? VHDL 要求所定义的常量数据类型必须与表达式的 数据类型一致。常量的数据类型可以是标量类型或复 合 类 型 , 但 不 能 是 文 件 类 型 (File) 或 存 取 类 型 (Access)。 ? 常量定义语句所允许的设计单元有 实体、结构体、 程序包、块、进程和子程序 。在程序包中定义的常量 可以暂不设具体数值,它可以在程序包体中设定。 ? 常量的可视性,即常量的使用范围取决于它被定 义的位置。在程序包中定义的常量具有最大全局化特 征,可以用在调用此程序包的所有设计实体中;定义 在设计实体中的常量,其有效范围为这个实体定义的 所有的结构体;定义在设计实体的某一结构体中的常 量,则只能用于此结构体;定义在结构体的某一单元 的常量,如一个进程中,则这个常量只能用在这一进 程中。 变量的使用规则如下: (1)变量赋值和初始化赋值都用“:=”表示。 (2)变量赋的初值不是预设的,某一时刻只能有一个值。 (3)变量不能用于在进程间传递数据。 (4)变量不能用于硬件连线和存储元件。 (5)仿真时,变量用于建模;综合时,变量充当数据的暂存。 ? 3. 信号(SIGNAL) 信号是描述硬件系统的基本数据对象,它类似于 连接线。信号可以作为设计实体中并行语句模块间的 信息交流通道。在VHDL中,信号及其相关的信号赋值 语句、决断函数、延时语句等很好地描述了硬件系统 的许多基本特征。如硬件系统运行的并行性;信号传 输过程中的惯性延时特性;多驱动源的总线行为等。 ? 以下是信号的定义示例: ? SIGNAL S1:STD_LOGIG:=0; --定义了一个标准位的单值信



友情链接: