archivetemp第三章 VHDL语言基础.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VHDL的数据对象 变量: 变量是定义进程或子程序(包括函数和过程)中的变化量。 VARIABLE 变量名:数据类型:=初始值 使用格式 用途: 用于计算或暂存中间数据,是一个局部量 VARIABLE time::integer RANGE 0 TO 6 --进程中代表次数的变量 Example 注意:变量的赋值是立即生效的。 VHDL的数据对象 信号: 信号对应着硬件内部实实在在的连线 使用格式 用途: 在元件间起着互联作用,或作为一种数据容器,以保留历史值和当前值 SIGNAL 信号名:数据类型:=表达式 “:=”表示对信号的赋初值,一般不产生延时。 “=”表示信号的代入赋值,有延时。 注意: VHDL的数据对象 使用变量和信号的比较 信号是实体间动态交换数据的手段,用信号对象把实体连接在一起形成模块;实体说明,结构体说明都能说明信号。 变量用于进程语句和子程序中中间的数据存储。 信号赋值有延迟;而变量赋值没有延迟。 信号除当前值外有许多信息(历史信息,波形值);而变量只有当前值。 进程对信号敏感,对变量不敏感。信号可以是多个进程的全局信号;而变量只在定义它的进程中可见。 信号是硬件中连线的抽象描述,功能是保存变化的数据值和连接子元件,信号在原件的端口连接元件;变量在硬件中没有对应关系,而是用于硬件特性的高层次建模所需要的计算中。 在描述中,信号的赋值不会立即生效,而是要等待一个delta延迟后才会变化,否则该信号的值在delta延迟之前仍是原来的值。 VHDL的数据对象 使用变量和信号的比较 ——六分频器 library ieee; use ieee.std_logic_1164.all; entity frequencies is port(clk:in std_logic; q:out std_logic); end frequencies; architecture behav of frequencies is begin process (clk) variable time:integer range 0 to 6; begin if rising_edge(clk) then time:=time+1; if time=6 then q=1; time:=0; else q=0; end if; end if; end process; end behav; 此例为6分频器,其中time为变量。由于变量赋值是马上生效的,因此从例子中可以看出time置零是在time为6时发生的。 VHDL的数据对象 使用变量和信号的比较 ——六分频器 此例也为6分频器。其中time为信号。由于信号赋值是具有一定的延时性,因此从例子中比较time和5的大小时,语句time=time+1还未生效,time的值是上次进程结束时的结果。 library ieee; use ieee.std_logic_1164.all; entity frequencies is port(clk:in std_logic; q:out std_logic); end frequencies; architecture behav of frequencies is signal time:integer range 0 to 5; begin process (clk) begin if rising_edge(clk) then time=time+1; if time=5 then q=1; time=0; else q=0; end if; end if; end process; end behav; VHDL的数据对象 使用变量和信号的比较——六分频器的仿真 time 为变量: time为信号 可以看出两种方法是等价的。 VHDL的数据对象——小结 变量常定义在进程与子程序中,用于保存运算的中间临时数 据,或作为循环语句中的循环变量,其赋值立即发生。(:=) 常量用于保存静态的数据(:=)。 信号有明显的连线或容器的对应关系,具有输出波形,对其 赋值需要延迟时间(=), 在进程间或子程序间具有信息传递功 能。 注意对象定义的所在位置及适用区域的对应关系 VHDL基本语句 VHDL基本语句 VHDL语言与高级程序语言最大的不同就是VHDL语言是并发执行的,但是VHDL的基本语句包括顺序语句和并行语句。 顺序语句不能直接用在结构体中,需要用process进行“封装”

文档评论(0)

huangqiaoling1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档