欢迎来到天天文库
浏览记录
ID:61461068
大小:301.50 KB
页数:43页
时间:2021-02-02
《第5章VHDL语言基础.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章VHDL语言基础5.1VHDL的数据类型和操作符5.1.1VHDL标识符(1)标识符只能由字母(a~z或A~Z)、数字(0~9)和下划线(_)组成;(2)标识符必须以字母开头,且结尾不能是下划线;(3)不能有连续的两个下划线,每个下划线两边必须有字母或数字;(4)标识符中的字母不分大小写;(5)标识符最长为32个字符;(6)用户定义的标识符不能与VHDL的保留字重名;例如:clock、Enable、A_Reg、A1、B23等均为合法的标识符。扩展标识符(7)扩展标识符以反斜杠来界定,可以以数字开头,也可以有空格等其它特殊字符;(8)扩展标识符允许多
2、个下划线相邻;(9)扩展标识符区分字母的大小写;(10)两个反斜杠间可以数字开头;例如:74HC244,AandB等都是合法的扩展标识符。5.1.2VHDL数据对象可以赋予数据值的客体称为对象,包括:常量(CONSTANT)信号(SIGNAL)变量(VARIABLE)文件(FILE)一、常量常量是设计中一个被赋予了固定值的标识符,它的数据部分不会被改变,这样可以提高程序的阅读性和维护性。常量声明的语法格式CONSTANT常量名(列表):数据类型:=表达式;CONSTANTWidth,Height:INTEGER:=8;CONSTANTDelay:
3、TIME:=10ns;注意只能在常量声明中修改常量。常量必须在程序包、实体、结构体或进程的说明部分进行声明,必须赋初值。在程序包中声明的常量可由任何实体和结构体使用。在实体中声明的常量只能在本实体(包括其结构体等)内使用,在进程中声明的常量只能在进程中使用。二、变量变量只局限于进程(process)或函数语句中,用来说明局部量。主要作用是在进程中作为临时的数据存储单元。VARIABLEx,y:INTEGER;VARIABLEcount:INTEGERRANGE0TO10:=0;变量声明的语法格式VARIABLE变量名(列表):数据类型约束条件[:=表达式
4、];注意变量的初值可以不设置。变量赋值与初始化都用“:=”符号。变量不能直接对应于硬件连线。仿真时,变量用于高层次的建模;系统综合时,变量用于计算、数据暂存和数组索引。在进程中声明的变量只能在进程内使用。指定约束条件可以缩短字长。定义设计中各元件间的连线。信号在元件之间起互连作用,可以赋值给外部信号。三、信号信号声明的语法格式SIGNAL信号名(列表):数据类型约束条件[:=表达式]SIGNALcount:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALs1:INTEGER:=0;SIGNALcnt:INTEGERRANGE0TO102
5、3;注意信号赋初值用“:=”符号,表示不产生延时。信号间的值传递是通过“<=”符号进行的。信号间的代入赋值不是即时的,要到下一个时钟的有效触发后才能生效。赋初值可以保证在仿真时信号有设定的初值,而在硬件电路实现时,信号赋初值是无效的。例:libraryieee;useieee.std_logic_1164.all;entitytestisport(IP:instd_logic;CP:instd_logic;OP:outstd_logic);endtest;信号和变量的赋值差别--将D定义为信号architecturebehaveoftestissigna
6、lD:std_logic:=‘0’;beginprocess(CP,IP)beginif(CP’eventandCP=‘1’)thenD<=IP;OP<=D;endif;endprocess;endbehave;--将D定义为变量architecturebehaveoftestisbeginprocess(CP,IP)variableD:Std-logic:=‘0’;beginif(CP’eventandCP=‘1’)thenD:=IP;OP<=D;endif;endprocess;endbehave;D<=IP;OP<=D;D:=IP;OP<=D;文件
7、用于传输大量的数据,文件数据对象主要用于仿真测试。四、文件文件声明的语法格式FILE文件名:数据类型IS[模式]“Filename”;FILEfi:TEXTISIN“test.in”;5.1.3VHDL数据类型对所赋的值的类型有很强的约束性;VHDL标准的STD库中定义了10种数据类型;允许用户自定义数据类型;STD库中定义的数据类型,不用任何库声明语句就可以使用。IEEE库中定义的数据类型,要用库声明语句才可以使用。一、整数类型(INTEGER)与数学中定义的整数相同;范围:-231--231-1;只能用于算术运算,不能用于逻辑运算;可用RANGE…T
8、O来限定数值范围VARIABLEAddr:INTEGERRANGE0TO255整
此文档下载收益归作者所有