VHDL语法简单总结

VHDL语法简单总结

ID:42186216

大小:91.01 KB

页数:19页

时间:2019-09-10

VHDL语法简单总结_第1页
VHDL语法简单总结_第2页
VHDL语法简单总结_第3页
VHDL语法简单总结_第4页
VHDL语法简单总结_第5页
资源描述:

《VHDL语法简单总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、VHDL语法简单总结一个VHDL程序代码包含实体(entity)、结构体(architecture)、配置(configuration)、程序包(package)、库(library)等。  一、        数据类型1.用户自定义数据类型使用关键字TYPE,例如:TYPEmy_integerISRANGE-32TO32;–用户自定义的整数类型的子集TYPEstudent_gradeISRANGE0TO100;–用户自定义的自然数类型的子集TYPEstateIS(idle,forward,backward,stop);–枚举数据类型,常用于

2、有限状态机的状态定义一般来说,枚举类型的数据自动按顺序依次编码。2.子类型在原有已定义数据类型上加一些约束条件,可以定义该数据类型的子类型。VHDL不允许不同类型的数据直接进行操作运算,而某个数据类型的子类型则可以和原有类型数据直接进行操作运算。子类型定义使用SUBTYPE关键字。3.数组(ARRAY)ARRAY是将相同数据类型的数据集合在一起形成的一种新的数据类型。TYPEtype_nameISARRAY(specification)OFdata_type;–定义新的数组类型语法结构SIGNALsignal_name:type_name[:

3、=initial_value];–使用新的数组类型对SIGNAL,CONSTANT,VARIABLE进行声明例如:TYPEdelay_linesISARRAY(L-2DOWNTO0)OFSIGNED(W_IN-1DOWNTO0);–滤波器输入延迟链类型定义TYPEcoeffsISARRAY(L-1DOWNTO0)OFSIGNED(W_COEF-1DOWNTO0);–滤波器系数类型定义SIGNALdelay_regs:delay_lines;  –信号延迟寄存器声明CONSTANTcoef:coeffs:=(    );–常量系数声明并赋初值4

4、.端口数组在定义电路的输入/输出端口时,有时需把端口定义为矢量阵列,而在ENTITY中不允许使用TYPE进行类型定义,所以必须在包集(PACKAGE)中根据端口的具体信号特征建立用户自定义的数据类型,该数据类型可以供包括ENTITY在内的整个设计使用。—————————————PACKAGE———————————-libraryieee;useieee.std_logic_1164.all;——————————————PACKAGEmy_data_typesIS     TYPEvector_arrayISARRAY(naturalrange

5、<>)OFSTD_LOGIC_VECTOR(7DOWNTO0);–声明8位的数组ENDmy_data_types;———————————–MainCode—————————————libraryieee;useieee.std_logic_1164.all;usework.my_data_types.all;–用户自定义包集——————————————————————ENTITYmuxISPORT(inp:INvector_array(0to3);ENDmux;——————————————————————————-5.有符号数和无符号数要使用

6、SIGNED和UNSIGNED类型数据,必须在代码开始部分声明ieee库中的包集std_logic_arith。它们支持算术运算但不支持逻辑运算。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;……SIGNALa:INSIGNED(7DOWNTO0);SIGNALb:INSIGNED(7DOWNTO0);SIGNALx:INSIGNED(7DOWNTO0);……v<=a+b;w<=aANDb;  –非法(不支持逻辑运算)———————————————————

7、———————-STD_LOGIC_VECTOR类型的数据不能直接进行算术运算,只有声明了std_logic_signed和std_logic_unsigned两个包集后才可以像SIGNED和UNSIGNED类型的数据一样进行算术运算。6.数据类型转换在ieee库的std_logic_arith包集中提供了许多数据类型转换函数:1.conv_integer(p):将数据类型为INTEGER,UNSIGNED,SIGNED,STD_ULOGIC或STD_LOGIC的操作数p转换成INTEGER类型。不包含STD_LOGIC_VECTOR。2.c

8、onv_unsigned(p,b):将数据类型为INTEGER,UNSIGNED,SIGNED或STD_ULOGIC的操作数p转换成位宽为b的UNSIGNED类型数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。