- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VHDL语法简单总结
VHDL语法简单总结
一个VHDL程序代码包含实体(entity)、结构体(architecture)、配置(configuration)、程序包(package)、库(library)等。
?
?
一、????????数据类型
1.用户自定义数据类型
使用关键字TYPE,例如:
TYPE my_integer IS RANGE -32 TO 32;
–用户自定义的整数类型的子集
TYPE student_grade IS RANGE 0 TO 100;
–用户自定义的自然数类型的子集
TYPE state IS (idle, forward, backward, stop);
–枚举数据类型,常用于有限状态机的状态定义
一般来说,枚举类型的数据自动按顺序依次编码。
2.子类型
在原有已定义数据类型上加一些约束条件,可以定义该数据类型的子类型。VHDL不允许不同类型的数据直接进行操作运算,而某个数据类型的子类型则可以和原有类型数据直接进行操作运算。
子类型定义使用SUBTYPE关键字。
3.数组(ARRAY)
ARRAY是将相同数据类型的数据集合在一起形成的一种新的数据类型。
TYPE type_name IS ARRAY (specification) OF data_type;
–定义新的数组类型语法结构
SIGNAL signal_name: type_name [:= initial_value];
–使用新的数组类型对SIGNAL,CONSTANT, VARIABLE进行声明
例如:
TYPE delay_lines IS ARRAY (L-2 DOWNTO 0) OF SIGNED (W_IN-1 DOWNTO 0);
–滤波器输入延迟链类型定义
TYPE coeffs IS ARRAY (L-1 DOWNTO 0) OF SIGNED (W_COEF-1 DOWNTO 0);
–滤波器系数类型定义
SIGNAL delay_regs: delay_lines;??– 信号延迟寄存器声明
CONSTANT coef: coeffs := (????); –常量系数声明并赋初值
4.端口数组
在定义电路的输入/输出端口时,有时需把端口定义为矢量阵列,而在ENTITY中不允许使用TYPE进行类型定义,所以必须在包集(PACKAGE)中根据端口的具体信号特征建立用户自定义的数据类型,该数据类型可以供包括ENTITY在内的整个设计使用。
—————————————PACKAGE———————————-
library ieee;
use ieee.std_logic_1164.all;
——————————————
PACKAGE my_data_types IS
?????TYPE vector_array IS ARRAY (natural range ) OF STD_LOGIC_VECTOR(7 DOWNTO 0); –声明8位的数组
END my_data_types;
———————————–Main Code—————————————
library ieee;
use ieee.std_logic_1164.all;
use work.my_data_types.all; –用户自定义包集
——————————————————————
ENTITY mux IS
PORT (inp: IN vector_array(0 to 3);
END mux;
——————————————————————————-
5.有符号数和无符号数
要使用SIGNED和UNSIGNED类型数据,必须在代码开始部分声明ieee库中的包集std_logic_arith。它们支持算术运算但不支持逻辑运算。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
……
SIGNAL a: IN SIGNED (7 DOWNTO 0);
SIGNAL b: IN SIGNED (7 DOWNTO 0);
SIGNAL x: IN SIGNED (7 DOWNTO 0);
……
v = a + b;
w = a AND b;??–非法(不支持逻辑运算)
——————————————————————————-
STD_LOGIC_VECTOR类型的数据不能直接进行算术运算,只有声明了std_logic_signed和std_logic_unsigned两个包集后才可以像SIGNED和UNSIGNED类型的数据一样进行算术运算。
6.数据类型转换
在ieee库的std_logic_arith包集中提供了许多数据类型转换函数:
1. conv_intege
您可能关注的文档
- The-devil-wears-prada中英对照.doc
- TheDeclarationofIndependence.doc
- ThinkPHP学习笔记.doc
- TL431特性及应用.doc
- TSG_D0001-2009_压力管道安全技术监察规程工业管道(高清晰版).doc
- TriCaster便携式网络视频直播系统.doc
- TSG特种设备安全技术规范.doc
- THIS4系统维护手册.doc
- TWY突出危险预报仪.doc
- UG中3D立体尺寸标注方法.doc
- 《中国通史》文字稿第12集春秋争霸.docx
- java教程--类与对象-讲义课件(演讲稿).ppt
- Vue应用程序开发-(1).pptx
- 东北师大版社劳动实践与评价指导手册一年级上册主题二活动一寻找五彩的树叶课时课件.pptx
- 外研版英语四年级上册 Module 4 Unit 2 How much is it单元教学设计.docx
- 外研版英语四年级上册Module 4 单元整体教学设计.docx
- 6《上课之前》课件 鄂科技版 心理健康教育一年级.pptx
- 《1~5的认识》说课课件(共25张PPT)人教版一年级上册数学.pptx
- 六《解决问题(1)》说课课件 人教版 三年级上册数学.pptx
- 七《解决问题》说课课件 人教版 二年级上册数学.pptx
文档评论(0)