第4章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文档。上传文档
查看更多
第4章VHDL语言基础剖析

Std_logic_1164:包含了一些标准逻辑电平所需数据类型和函数的定义。内含数据类型: STD_LOGIC和STD_LOGIC_VECTOR。 Std_logic_Arith :扩展了三个数据类型 UNSIGNED,SIGNED和SMALL_INT,并为其定义了相关的算术运算符和转换函数。 Std_logic_signed 和 Std_logic_Unsigned : 重载了可用于INTEGER型和STD_LOGIC及STD_LOGIC_VECTOR型混合运算的运算符,并定义了不同数据类型间的转换函数。 IEEE库程序包 Type STD_LOGIC: (‘U’, ‘X’, ‘0’, ‘1’, ‘Z’, ‘W’, ‘L’, ‘H’, ‘-’) ? ‘W’, ‘L’, ‘H” 弱值(综合中不支持) ? ‘X’ –强未知 ? ‘Z’ –高阻态 ? ‘-’ 忽略 ? ‘U’ – 未初始化 九值逻辑 STD库 STD 库(默认库)库中程序包为:standard, TEXTIO,STD库符合VHDL语言标准,是默认库,在应用中不必象IEEE库那样显示表达出来。 定义最基本的数据类型: Bit,bit_vector ,Boolean,Integer,Real,Time 并支持这些数据类型的所有运算符函数 注:Type BIT:2 logic value system (‘0’, ‘1’) WORK库 WORK库:是用户的VHDL设计的现行工作库; 用于存放用户设计和定义的一些设计单元和程序包; 满足VHDL语言标准,在实际调用中不必以显式说明。 用户定义库 用户为自身设计需要,所开发的程序包和实体等,也可以汇集在一起定义成一个库。 这就是用户定义库或称用户库,在使用时同时要首先说明库名。 库的使用 库的说明语句总是放在实体单元前面,而且库语言一般必须与USE语言同用。 一般,在使用库时先要用两条语句对库进行说明,如: LIBRARY 库名; USE 库名.程序包.项目名; 或 USE 库名.程序包名.ALL; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ UNSIGNED.CONV_INTEGER; 上例表明,要使用IEEE库中STD_LOGIC_1164包 集合中的所有过程和函数,这里项目名为ALL, 表示包集合中的所有项目都要用。 库调用举例 程序包(Package):将已定义的常数、数据类型、元件语句、子程序等收集起来组成一个集合,以便被更多的VHDL设计实体进行访问和共享。 五、程序包(包集合)Package 程序包结构: 程序包说明(包首) 程序包主体(包体) 包声明项可由以下语句组成: use 语句(用来包括其它程序包); 类型说明;子类型说明;常量说明; 信号说明;子程序说明;元件说明。 package 程序包名 is { 包说明项 } end 程序包名; 1、程序包说明(包首) 语法: 包首说明 包体说明项可含: use 语句; 子程序说明; 子程序主体; 类型说明; 子类型说明; 常量说明。 package body 程序包名 is { 包体说明项 } end 程序包名; 2、程序包包体 程序包的内容:子程序的实现算法。 程序包体并非必须,只有在程序包中要说明子程序时,程序包体才是必须的。 程序包首可以独立定义和使用。 包首与包体关系 package seven is subtype segments is bit_vector(0 to 6); type bcd is range 0 to 9; end seven; library work; use work.seven.all; entity decoder is port(input: in bcd; drive: out segments); end decoder; architecture art of decoder is begin 程序包 with input select drive=B

文档评论(0)

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

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

1亿VIP精品文档

相关文档