- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
vhdl硬件描述语言与数字系统开发(第4章)
* * 硬件描述语言与数字系统开发 第4章 VHDL语言要素 ? VHDL 的标识符 VHDL 的数据对象 VHDL的数据类型 VHDL的运算操作符 VHDL的关键字 第4章 VHDL语言要素 一、标识符 标识符(identifiers): 可用来为设计实体、构造体、端口及内部信号、变量、常量等参数命名,由英文字母、数字、下划线组成。 书写规则: 标识符中首字母必须是英文字母。 标识符中末字母不能是下划线。 标识符中不允许出现两个连续的下划线。 VHDL语言中的关键保留字不能用作标识符。 标识符中不区分字母、数字的大小写。 VHDL语言中的注释符由双横线“--”构成。 数据对象(Data Objects): VHDL语言中的数据对象是一个可以赋值的客体,类似于一种容器,可以接受各种数据类型的赋值。 常用的数据对象有常量、变量、信号三大类。 顾名思义,常量用来存放仿真/综合过程中的不变值。 变量位于进程和子程序内部,主要用来暂时存放中间数据,即对中间计算结果或临时数据进行局部贮存。变量只在进程内部是可视的。 信号是VHDL中最具硬件特色语言要素,是内部硬件相互连接的主要机制,它表示把元件的装配端口连在一起的互连线,信号在整个实体内部存放数据、传递信息。 二、数据对象 VHDL语言要素: 数据对象----常量 常量(关键字constant) 常量在设计描述中保持某一规定类型的特定值不变 常量必须在实体、构造体或进程的说明区域加以说明 常量在定义时赋初值,赋值符号为“:=” 常量说明、赋值语句的一般格式: 关键字 constant 常量名 name : 数据类型 : = 值 value; 例: constant allis1: std_logic_vector(2 downto 0):=“111”; constant buswidth: integer:=8; 变量(关键字variable) 仅用于进程和子程序 变量的赋值符号为“:=” 必须在进程和子程序的说明性区域说明 不能表达连线和存储元件 变量说明、赋值语句的一般格式: 关键字 variable 变量名 name : 数据类型 ; 变量名 name : = 值 value; 例: variable vabc: std_logic_vector(2 downto 0); vabc:=“000”; VHDL语言要素: 数据对象----变量 变量赋值 整体赋值:temp := ;temp := x”AA” ; (1076-1993) 逐位赋值:temp(7) := ‘1’; 多位赋值temp (7 downto 4) := “1010”; 逐位赋值用单引号 多位赋值用双引号 赋值标志 信号(关键字signal) 信号用于声明内部信号,而非外部信号(in, out, inout, buffer) 信号在元件之间起互联作用,可代表连线。 信号赋值符号为“=”。 信号说明、赋值语句的一般格式: 关键字 signal 信号名 name : 数据类型 ; 信号名 name = 值 value; 例: signal halfsum: std_logic_vector(7 downto 0); Halfsum =; VHDL语言要素: 数据对象----信号 信号赋值 SIGNAL temp : STD_LOGIC_VECTOR (7 downto 0); 整体赋值:temp = ;temp = x”AA” ; 逐位赋值:temp(7) = ‘1’; 多位赋值: temp (7 downto 4) = “1010”; X:十六进制 O:十进制 逐位赋值用单引号 多位赋值用双引号 赋值标志 注意: 信号与变量的赋值符号是不同的。 信号与变量的作用范围是不同的。 例如: VHDL语言要素: 数据对象 信号和变量的作用范围 ARCHITECTURE {SIGNAL 描述} label1: PROCESS1 {VARIABLE 描述} label2: PROCESS2 {VARIABLE 描述} 在进程内部说明,作用范围为进程内 在进程的外面声明,作用范围为全局
文档评论(0)