- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA 技术实用教程 第 9 章 VHDL结构与要素 9.1 实体 9.2 结构体 9.3 子程序 9.3 子程序 9.4 VHDL库 是经编译后的数据的集合,它存放包集合定义,实体定义,构造体定义和配置定义。(是用来存储预先完成的程序包和数据集合体的仓库) 注意:库说明放在设计单元的最前面: library 库名; 1、库的种类: 1)IEEE库: STD_LOGIC_1164---定义了常用的数据类型和函数及一些常 用的数据类型转换函数。 STD_LOGIC_ARITH---定义了运算符和一些常用的数据类型转 换函数。 STD_LOGIC_UNSIGNED---定义了有符号数函数及一些转换函 数 2)STD库:默认打开的库,不需再调用。 STANDARD---定义了若干类型、子类型和函数 TEXTIO----定义了若干支持ASCⅡ I/O操作的数据类型和子程序 3)面向ASIC的库: 逻辑门库 该库中存放着与逻辑门一一对应的实体 4)work库:现行作业库 设计者所描述的VHDL语句不需要任何说明,都将存放在 work库中(包括硬盘的所有分区,如C、D、E、F等) 5) VITAL库 P242 6)用户定义库: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY and1 IS . END and1; ARCHTECTURE rt1 of and1 IS . END rt1; CONFIGURATION s1 OF and1 IS . END s1; LIBRARY IEEE; USB IEEE.STD_LOGIC_1164.ALL; ENTITY or1 IS . . CONFIGURATION s2 OF or1 IS . END s2; 注意: 只要加上以下几行,即可在主程序中大胆使用一般的运算功能: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;---调用1164定义程序包的所有组件 USE IEEE.STD_LOGIC_ARITH.ALL; ;---调用ARITH定义程序包的所有组件 USE IEEE.STD_LOGIC_UNSIGNED.ALL; ;---调用UNSIGNED定义程序包的 所有组件 (或加上 USE WORK.XXX(包集合名).ALL; ---开启设计者自行设计的组件与定义) P243 9.5 程序包 例: LIBRARY STD; USE STD.STD_LOGIC.ALL; PACKAGE math IS ------------包集合标题 TYPE tw16 IS ARRAY(0 TO 15)OF T_WLOGIC; FUNCTION add(a,b: IN tw16) RETURN tw16; FUNCTION sub(a,b: IN tw16) RETURN tw16; END math; PACKAGE BODY math IS ----------包集合体 FUNCTION add(a,b: IN tw16) -------定义add函数 RETURN tw16 IS VARIABLE result: INTEGER; BEGIN result:=vect_to_int(a)+vect_to_int(b); RETURN int_to_tw16(result); END add; FUNCTION sub(a,b: IN tw16) -------定义sub函数 RETURN tw16 IS VARIABLE result: INTEGER; BEGIN result:=vect_to_int(a)-vect_to_int(b); RETURN int_to_tw16(result); END sub; END ma
文档评论(0)