VHDL结构及语言要素.ppt
《VHDL结构及语言要素.ppt》由会员分享,可在线阅读,更多相关《VHDL结构及语言要素.ppt(58页珍藏版)》请在三一办公上搜索。
1、-邹云海-,1,第九讲 VHDL结构及语言要素(1),文字规则数据对象数据类型操作符,2006-10,2,一.VHDL文字规则1、数字型文字(1)整数文字:十进制整数 如:5,678,156E2(=15600),45_234_287(=45234287)(2)实数文字:带小数的十进制数 如:23.34,2.0,44.99E-2(=0.4499)88_67_551.23_909(8867551.23909)注:_用以提高数字可读性;数字间不允许空格,2006-10,3,(3)以数制基数表示的文字 格式:基数#数字文字#E指数(5部分组成)如:10#170#(=170)2#1111_1110#(=
2、254)16#E#E1(=2#1110_0000#=224)或:(=1416=224)16#F.01#E+2(=(15+1/(16 16)16 16=3841.00),2006-10,4,(4)物理量文字 如:60 s、100 m、177 A 注:整数可综合实现;实数一般不可综合实现;物理量不可综合实现;,2006-10,5,2、字符串型文字 按字符个数多少分为:字符:用单引号引起来的ASCII字符,可以是 数值,也可以是符号或字母。如:A,*,Z 字符串:用双引号引起来的一维字符数组,2006-10,6,字符串分为:(1)文字字符串:“文字”如:“ERROR”,“XXXXXXXX”,“ZZZ
3、ZZZZZ”,“X”,“BOTH S AND Q EQUAL TO L”,,2006-10,7,(2)数位字符串:(由双引号引起来的数字序列)称为位矢量,代表二进制、八进制、十六进 制的数组。其位矢量的长度为等值的二进制数的 位数。格式:其中基数符号有三种:B:二进制基数符号。O:八进制基数符号,每一个八进制数一个 3位的二进制数。X:十六进制基数符号,每一个十六进制数 代表 一个4位的二进制数。,基数符号“数值”,B“1_1101_1110”二进制数数组,长度为9 O“34”八进制数数组,长度为6 X“1AB”十六进制数数组,长度为12,2006-10,8,3、标识符 定义常数、变量、信号、
4、端口、子程序或 参数的名字。基本标识符的要求(87标准):以英文字母开头;不连续使用下划线“_”;不以下划线“_”结尾;由26个大小写英文字母、数字09及 下划线“_”组成的字符串。,2006-10,9,基本标识符中的英文字母不分大小写;VHDL的保留字不能作为标识符使用。合法标识符如下:my_counter、Decoder_1、FFT、Sig_N、Not_Ack、State0,非法标识符如下:_Decoder_1、2FFT、Sig_#N、Not-Ack、ALL_RST_、data_BUS、return、entity,2006-10,10,扩展标识符(93标准):以反斜杠来界定,免去了87标准
5、中基本标识符的一些限制。使描述更加直观、方便 可以以数字打头,允许包含图形符号,允许使用VHDL保留字,区分字母大小写等。如:74LS163、Sig_#N、entity、ENTITY,有些VHDL工具并不支持扩展标识符,2006-10,11,4、下标名及下标段名 下标名:用于指示数组型变量或信号的某一个 元素。格式:标识符(表达式)下标段名(段名):用于指示数组型变量或信号的某一 段元素。格式:标识符(表达式 to/downto 表达式)to:下标序列由低到高;downto:下标序列由高到低如:a:std_logic_vector(7 downto 0)a(7),a(6)a(0)a(7 dow
6、nto 0),a(7 downto 4),a(5 downto 3),2006-10,12,5.注释用以提高程序可读性以-开头,直至本行结尾注释在程序段中以特征颜色标记显示,不参与程序编译如:-定义了器件的端口名称及类型,2006-10,13,二.数据对象(page59-unit4.2)三种对象:常量(Constant)变量(Variable)信号(Signal)三种对象的物理含义:常量代表数字电路中的电源、地、恒定逻辑值等常数;变量代表暂存某些值的载体,常用于描述算法;信号代表物理设计中的某一条硬件连接线,包括输入、输出端口。,2006-10,14,三种对象的特点及说明场合:信号:全局量,可
7、设置传输延迟,作模块间的信息载体。用于architecture、package、entitiy。变量:局部量,不可设置传输延迟,最后靠信号传递信息。用于process、function、procedure。常量:全局量,可用于上面两种场合。使实体中某些量易于修改和阅读。,2006-10,15,1、常量说明常量说明:对某一个常量名赋予一个固定的值。格式:例:constant data:bit_vector(3 downto 0):=“1010”constant width:integer:=8;constant x:new_bit:=x;常量数据类型必须与表达式的数据类型一致。,constant
8、 常数名:数据类型:=表达式;,2006-10,16,常量的可视性(作用范围):,库、程序包,实体(Entity),结构体1,进 程1,结构体2,进 程2,常量是全局量,其作用范围取决于常量被定义的位置。,2006-10,17,2、变量说明 变量是一个局部量,只能在进程和子程序中定义、使用。其作用范围仅限于定义了变量的进程和子程序中。定义变量格式:例:variable a,b:bit;variable count:integer range 0 to 255:=10;变量的初值可用于仿真,但综合时被忽略。变量赋值语句格式:目标变量名:=表达式如:a:=1;b:=not a;,variable
9、变量名:数据类型:=初始值;,2006-10,18,3、信号说明 电子硬件系统运行的基本特性:各部分电路工作的并行特性;信号传输过程中的延时特性;多驱动源的总线特性;时序电路中触发器的记忆特性等。信号是电子系统内部硬件连接和硬件特性的抽象表示。用来描述硬件系统的基本特性。信号定义格式:信号赋值格式:目标信号名=表达式;,signal 信号名:数据类型 约束条件:表达式;,2006-10,19,例:signal a,b:bit;signal init:integer:=-1;signal s1:std_logic:=0;signal s2:std_logic_vector(15 downto 0
10、);注:a.综合时初值被忽略。b.信号是全局量。可在结构体、实体、块中说明和使用信号。可容纳当前值,也可保留历史值(对应触发器的记忆功能)c.在进程和子程序中只能使用信号,不能说明(定义)信号。,2006-10,20,例:进程中信号与变量的使用,2006-10,21,信号与端口的区别:除没有方向说明外,信号与 实体的“端口(PORT)”概念相似。端口是一种隐形的信号。entity exam is port(signal a,b:in std_logic;signal c:out std_logic);end entity exam;端口是一种有方向的信号。即输出端口不能读出数据,只能写入数据;
11、输入端口不能写入数据,只能读出数据。信号本身无方向,可读可写。,2006-10,22,三.VHDL数据类型(page65unit4.3)VHDL是一种强数据类型语言。要求设计实体中的每一个常数、信号、变量、函数以及设定的各种参量都必须具有确定的数据类型,并且相同数据类型的量才能互相传递和作用。VHDL数据类型分为四大类:标量类型(SCALAR TYPE)复合类型(COMPOSITE TYPE)存取类型(ACCESS TYPE)文件类型(FILES TYPE),2006-10,23,数据类型又分为:预定义数据类型 用户自定义数据类型1、VHDL的预定义数据类型1)布尔量(boolean)布尔量具
12、有两种状态:false 和 true 常用于逻辑函数,如相等(=)、比较()等中作逻辑比较。只能参与关系运算,无算术运算。如:bit 值转化成boolean 值:boolean_var:=(bit_var=1);,2006-10,24,2)位(bit)bit 表示一位的信号值。放在单引号中,如 0 或 1。3)位矢量(bit_vector)使用时需注明位宽 bit_vector 是用双引号括起来的一组位数据。如:“001100”X“00B10B”4)字符(character)用单引号将字符括起来。variable character_var:character;.Character_var:=
13、A;,2006-10,25,5)整数(integer)integer 表示所有正的和负的整数。硬件实现时,利用32位的位矢量来表示。可实现的整数范围为:-(231-1)to(231-1)VHDL综合器要求对具体的整数作出范围限定,否则无法综合成硬件电路。如:signal s:integer range 0 to 15;使用range子句,从而确定综合后的二进制位数 信号 s 的取值范围是015,可用4位二进制数表示,因此 s 将被综合成由四条信号线构成的信号。,2006-10,26,6)自然数(natural)和正整数(positive)natural 是 integer类型的子类型,表示非负
14、整数。positive 是 integer 类型的子类型,表示正整数。定义如下:subtype natural is integer range 0 to integerhigh;subtype positive is integer range 1 to integerhigh;,2006-10,27,7)实数(REAL)或称浮点数 取值范围:-1.0E38+1.0E38 实数类型仅能用于VHDL仿真器,一般综合器不支持。8)字符串(string)string 是 character 类型的一个非限定数组。用双引号将一串字符括起来。如:variable string_var:string(1
15、 to 7);string_var:=“Rosebud”;,2006-10,28,9)时间(TIME)由整数和物理单位组成 如:55 ms,20 ns10)错误等级(SEVERITY_LEVEL)仿真中用来指示系统的工作状态,共有四种:NOTE(注意)WARNING(警告)ERROR(出错)FAILURE(失败),2006-10,29,2、IEEE预定义标准逻辑位与矢量1)std_logic 类型 是标准bit数据类型的扩展 由 ieee 库中的std_logic_1164 程序包定义,为9值逻辑系统,如下:(U,X,0,1,Z,W,L,H,-)U:未初始化的,X:强未知的,0:强0,1:强1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 结构 语言 要素
链接地址:https://www.31ppt.com/p-5452202.html