- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(EDA复习资料
VHDL程序基本结构
库(Library)、程序包(Package)
实体(Entity)
结构体(Architecture)
配置(Configuration)
算术操作符分类表
3.1求和操作符
VHDL中的求和操作符包括加减操作符和并置操作符。
加减操作符的运算规则与常规的加减法一样,在VHDL中,规定它们的操作数的数据类型是整数
3.2并置操作符“&”(P83)
用来完成一维数组的位扩展,即将操作数或数组组合并起来形成新的数组。可以将一个元素并置于一个数组中形成更长的数组,也可以将两个数组并置形成一个新的数组。并置操作前后的数组长度应一致。如:“VH”&“DL”的结果为“VHDL”,‘0’&‘1’‘1’的结果为“011”
3.3求积操作符:
求积操作符包括*(乘),/(除),MOD(取模),REM(取余)。在VHDL中,乘与除的数据类型规定为整数和实数。MOD和REM的操作数的数据类型只能是整数,运算结果也是整数。
取余运算(a REM b)的符号与a相同,其绝对值小于b的绝对值;
3.4混合操作符
混合操作符有**(乘方)和ABS(取绝对值)两种。它们的操作数数据类型一般为整数类型。 **(乘方)运算的左边可以是整数或浮点数,但右边必须为整数,而且只有在左边为浮点时,其右边才可以为负数。
3.5移位操作符
移位操作符有六种:SLL、SRL、SLA、SRA、ROL、ROR。
移位操作符是VHDL’93标准新增的运算符。规定移位操作符作用的操作数的数据类型应是一维数组,并要求数组中的元素必须是BIT或BOOLEAN的数据类型,移位的位数则是整数。在EDA工具所附的程序包中重载的移位操作符已支持STD_LOGIC_VECTOR及INTEGER等类型。移位操作符左边可以是支持的类型,右边则必定是整数类型。如果操作符右边是整数类型常数,移位操作符实现起来比较节省硬件资源。
SLL/SRL(逻辑左/右移):将位矢向左/右移,右/左边跟进的位补零。
ROL/ROR(逻辑循环左/右移): 与SLL/SRL相似,只是它们移出的位将用于依次填补移空的位,执行的是自循环式的移位。
SLA/SRA (算术左/右移) :是算术移位操作符,其移空位用最初的首位来填补。
移位操作符的语句格式为:
标识符 移位操作符 移位位数
3.6符号操作符
符号操作符“+”和“-”的操作数只有一个,操作数的数据类型为整数,操作符“+”对操作数不作任何改变,操作符“-”作用于操作数后的返回值是对原操作数取负,在实际使用中,取负操作数需加括号,如:
z :=x*(-y)
VHDL的数据对象-P73、P127
VHDL数据对象是指用来存放各种类型数据的容器。包括:
常数(Constant)
变量(Variable)
信号(Signal)
在VHDL中,被定义的标识符必须确定为某类数据对象,同时还必须被定义为某种数据类型。前者(数据对象)规定了标识符的行为方式和功能特点;后者(数据类型)限定了标识符的取值范围。
1常数(Constant)(P127)
常数的声明和设置主要是为了使设计实体中的常数更容易阅读和修改。常数一般在程序前部声明,在程序中,常数是一个恒定不变的值,一旦做了数据类型和赋值定义后,在程序中不能再改变,因而具有全局性意义。常数声明格式为:
CONSTANT 常数名:数据类型:=初值;
如:
CONSTANT delay : TIME:=25ns
DATAIN :INTEGER :=15
FBT : STD_LOGIC_VECTOR :=“010110”
VHDL要求所定义的常量数据类型必须与表达式的数据类型一致。
常量定义语句所允许的设计单元有实体、结构体、程序包、块、进程和子程序。常量具有可视性,即常量的使用范围取决于它被定义的位置。
2 变量(Variable) (P128、P89)
在VHDL语法规则中,变量是一个局部量,只能在进程(PROCESS)、子程序(函数和过程)中声明和使用。变量的作用是在进程中作为临时的数据存储单元。
变量声明的语法格式为:
VARIABLE 变量名:数据类型[:=初始值]
变量在声明时,可以赋初值,也可不赋初值,到使用时才用变量赋值语句赋值。变量的赋值是一种理想化的数据传输,是立即发生的,不存在任何的延时。
变量赋值语句的语法格式为:
目标变量名:=表达式
赋值语句右边的“表达式”必须是一个与“目标变量名”具有相同数据类型的数值。
3 信号(Signal)(P127、P73)
您可能关注的文档
最近下载
- 装饰装修工程投标文件技术部分.docx VIP
- 废水污染源在线监测仪器培训.ppt VIP
- 初中七年级上《综合实践》活动课程课件.pptx VIP
- 中华商业文化 课程标准.docx VIP
- 2025算法备案-算法安全自评估报告模板.docx VIP
- 三年级下册数学每日计算小纸条(含答案).pdf VIP
- T∕ZZB 1752-2020 热熔型压敏胶卷筒标签.docx VIP
- 一年级传统文化教学计划.docx VIP
- 关于《混凝土强度检验评定标准》(GB/T50107—2010)的解析.pdf VIP
- GB_T 17888.4-2020机械安全 接近机械的固定设施 第 4 部分 固定式直梯.docx VIP
文档评论(0)