




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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转换成BITsignal 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”)下表中也给出一些典型的类型变换函数函数名功能STD_LOGIC_1164包集合 TO_STDLOGICVECTOR(A) TO_BITVECTOR(A) TO_STDLOGIC(A) TO_BIT(A)由BIT.VECTOR转换为STD_LOGIC_VECTOR由STD_LOGIC_VECTOR转换为BIT_VECTOR由BIT转换成STD_LOGIC由STD_LOGIC转换成BITSTD_LOGIC_ARITH包集合 CONV_STD_LOGIC_VECTOR(A,位长) CONV_INTEGER(A)由INTEGER,UNSDGNED,SIGNED转换成SED_LOGIC_VECTOR由UNSIGNED,SIGNED转换成INTFGERSTD_LOGIC_UNSIGNED包集合 CONV_INTGER(A)由STD_LOGIC_VECTOR转换乘INTEGER三、 运算符运算符的优先级如下表所示:运算符的优先级优先级顺序运算操作类型操作符功能低高逻辑运算符LogicalAND逻辑与OR逻辑或NAND逻辑与非NOR逻辑或非XOR逻辑异或关系运算符Relational=等号/=不等号大于=大于等于加、减、Arithmetic并置Concatenation运算符+加-减&并置正、负运算符+正-负乘法运算符*乘/除MOD求模REM取余* *指数ABS取绝对值NOT取反y(4)enb(0)b(1)b(2)b(3)y(0)y(2)y(3)y(5)y(6)y(7)y(1)a(0)a(1)a(2)a(3)例如,并置运算符的使用:tmp_b=b AND (en&en&en&en)y = a & tmp_b第一个语句表示b的4位位矢量由en进行选择得到一个4位位矢量输出第二个语句表示4位位矢量a和4位位矢量b再次连接(并置)构成8位的位矢量y输出 右图所示为并置运算符操作的电路示意。VHDL语言程序的基本结构 实体(Entity) 实体主要由实体说明和构造体组成;实体说明描述电路的外部特征,构造体描述的是电路内部的逻辑。实体说明主要包括类属参数说明端口说明构造体主要包括 名称命名 定义语句 并行处理语句等 定义语句是对其内部使用的信号、常数、数据类型、函数定义 构造体的子结构 构造体的子结构主要可由如下语句结构组成Block语句结构 Process语句结构 过程(procedure) SUBPROGRAMS结构 函数(Function) 程序包、库、配置 库IEEE库、STD库、WORK库、用户定义库、面向ASIC库例如:LEBRARY IEEE Use IEEE STD_LOGIC_1164.ALL 程序包:是一个可编译的设计单元,也是库结构中的一个层次,用来单位罗列所要用到的信号定义、常数定义、数据类型、元件结构、函数定义、过程定义 程序包标题 集程序包体配置描述层与层之间的连接关系以及实体与结构之间的连接关系 设计者可以利用配置语句来选择不同的构造体,使其与要设计的实体相对应。在仿真某个实体时,可利用配置来选择不同的构造体,进行性能对比试验以得到性能最佳的实体。 例如:CONTIGURATION配置名 OF 实体名 IS 语句说明 END 配置名 最简单的缺省配置格式: CONFIGURATION 配置名 OF 实体名 IS FOR 选配构造体名 END FOR END 配置名重载运算符(overloaded operators):和其他运算符一样,关系运算符也可以重载。重载运算符允许多种类型使用运算符(这些
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天猫国际考试题及答案
- wip在制品管理办法
- 营销公关费用管理办法
- 网格化贷款管理办法
- 上海土壤评估管理办法
- 电特许经营管理办法
- 专职科研师资管理办法
- 《业余团校管理办法》
- 行政车辆采购管理办法
- 营销薪资分配管理办法
- 2025年水面渔业养殖承包合同范本:水产养殖合作协议
- 2025年有害生物防治员初级理论知识考核试题及答案
- 新版2026统编版小学道德与法治三年级上册 第4课《 科技力量大》第1课时 科技改变生活和科技改变观念 教案设计(教案)
- 智慧校园建设“十五五”发展规划
- DBJ15 31-2016建筑地基基础设计规范(广东省标准)
- 圆形二沉池专项施工方案
- 焊接和切割作业的防火、防爆措施
- 人事任命书红头文件模板
- 探讨恶性肿瘤患者化疗后口腔溃疡治疗及护理的有效措施
- 癌症治疗功能评估-乳腺癌(FACT-B)[版本4]
- (最新)手机连锁门店销售管理规定(精品干货)
评论
0/150
提交评论