- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 VHDL设计进阶;第5章 VHDL设计进阶;第5章 VHDL设计进阶 ;标识符是VHDL语言中各种成分的名称,这些成分包括常量、变量、信号、端口、子程序或参数等。定义标识符需要遵循以下规则:
l???????? 有效的字符:包括26个大小写英文字母,数字0~9以及下划线“_”。
l???????? 任何标识符必须以英文字母开头。
l???????? 必须是单一下划线“_”,且其前后都必须有英文字母或数字。
l???????? 标识符中的英文字母不分大小写。
l???????? 允许包含图形符号(如回车符、换行符等),也允许包含空格符。
l???????? VHDL的保留字不能用于作为标识符使用。
;以下是几种合法和非法标识符的示例。
合法的标识符:Decoder_1,FFT,abc123。
非法的标识符:
_Decoder_1 --起始为非英文字母
2 FET --起始为数字
Not-RST --符号“-”不能作为标识符的构成
RyY_RST_ --标识符的最后不能是下划线
Data_ _BUS --标识符中不能有双下划线
Begin --关键词不能作为标识符
resΩ --使用了无效字符“Ω”;下标名用于指示数组型变量或信号的某一元素,而下标段名则用于指示数组型变量或信号的某一段元素,其语句格式如下:
数组类型信号名或变量名(表达式l[TO/DOWNTO 表达式2]);
下面是下标名及下标段名使用示例:
SIGNAL a, b, c:BIT_VECTOR(0 TO 7);
SIGNAL m: INTEGER RANGE 0 TO 3;
SIGNAL y,z:BIT;
y<=a(m);--m是不可计算型下标表示
z<=b(3); --3是可计算型下标表示
c(0 TO 3)<=a(4 TO 7);--以段的方式进行赋值
c(4 TO 7)<= a(0 TO 3);--以段的方式进行赋值 ;常量的定义形式如下:
CONSTANT 常量名:数据类型[:=表达式];
例如:
CONSTANT fbt:STD_LOGIC_VECTOR :=“010110”; --标准位矢类型
CONSTANT vcc:REAL:=5.0; --实数类型
CONSTANT dely:TIME:=25ns; --时间类型
常量定义语句所允许的设计单元有实体、结构体、程序包、块、进程和子程序。 ;定义变量的语法格式如下:
VARIABLE 变量名:数据类型[:=初始值];
例如:
VARIABLE a :INTEGER RANGE 0 TO 15;
VARIABLE b,c : INTEGER:=2;
VARIABLE d :STD_LOGIC;
变量赋值的一般表达式如下:
目标变量名:=表达式;
变量作为局部量,其适用范围仅限于定义了变量的进程或子程序的顺序语句中 ;数据类型的转换
函数转换法(P114:例5-1);在VHDL语言中的类型标记转换法是直接使用类型名进行数据类型的转换,这与高级语言中的强制类型转换类似。其语句格式如下:
数据类型标志符(表达式);
下面几个语句说明了标记类型转换的例子。
VARIABLE a:INTEGER;
VARIABLE b:REAL;
a:=INTEGER(b);
b:=REAL(a);
(常数转换法)
数据类型限定(P115);4、VHDL操作符 ;SRL
;?
?
?
关系操作符
;逻辑操作符
?
;表5-3 VHDL操作符优先级
;例5-2: 逻辑运算VHDL描述(p118);变量赋值语句和信号赋值语句的语法格式如下:
变量赋值目标 :=赋值源;
信号赋值目标 〈=赋值源; ;例5-6:…
SIGNAL s1,s2:STD_LOGIC;
SIGNAL svec:STD_LOGIC_VECTOR(0 TO 3);
…
PROCESS(s1,s2)
VARIABLE v1,v2:STD_LOGIC;
BEGIN
v1:=’1’;
--立即将变量v1置位为1
v2:=’1’;
--立即将变量v2置位为1
s1=’1’;
--信号s1被赋值为1
s2=’1’;
--由于在本进程中,这里的s2不是最后一个赋值语句故不作任何赋值操作
原创力文档


文档评论(0)