版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VHDL中的资源:库和包集合Library库编译后数据的集合,存放包集合定义、实体定义、构造体定义和配置定义,其功能相当于其他操作系统中的目录,经过说明后,设计中就可以使用库中的数据,实现共享;VHDL中的资源:库和包集合Library库库的使用当使用库时,需要说明使用的库名称,同时需要说明库中包集合的名称及范围;每个实体都应独立进行库的说明;库的说明应该在实体之前;经过说明后,实体和结构体就可以自动调用库中的资源;库的使用当使用库时,需要说明使用的库名称,同时需要说明库中包库的使用库说明语句格式library库名;use库名.包集合名.范围(或项目名);例:
libraryieee;
useieee.std_logic_1164.all;库的使用库说明语句格式库的主要种类ieee库
std库
work库用户定义库ASIC库库的主要种类ieee库std库ieee库含有IEEE的标准包集合“std_logic_1164”以及一些大公司提供的包集合;使用前必须进行说明;例:
libraryieee;ieee库含有IEEE的标准包集合“std_logic_11ieee库中的重要包集合std_logic_1164:定义了std_logic数据类型及相应运算;std_logic_arith:定义了signed和unsigned数据类型、相应运算和相关类型转换函数;std_logic_signed与std_logic_unsigned:定义了一些函数,可以使std_logic_vector类型被当作符号数或无符号数一样进行运算。ieee库中的重要包集合std_logic_1164:std库VHDL标准所含的资源库,含有“standard”包集合和“textio”包集合,对所有预定义的数据类型、运算规则、函数和语法进行表达;使用standard”包集合时无需说明;std库VHDL标准所含的资源库,含有“standard”包work库与用户定义库work库:work库为当前设计文件的保存目录;work库使用时通常无须说明;但在结构设计中进行元件的宏调用时需要说明;例:usework.all;用户定义库:由用户自定义生成,使用时需说明(指定库所在的路径);work库与用户定义库work库:ASIC库由各公司提供,存放与逻辑门一一对应的实体,用于ASIC设计的门级仿真,使用时需加以说明;例:libraryaltera;usealtera.maxplus2.all;librarylpm;uselpm.lpm_components.all;ASIC库由各公司提供,存放与逻辑门一一对应的实体,用于AS包集合:
package用于保存VHDL语言中经常使用的类型定义、信号定义、常数定义、元件定义、函数定义和过程定义等(类似于C语言中的include语句),方便不同模块的设计中公共定义的共享;包集合在使用前必须采用use语句进行说明(在设计程序的最前面);包集合内容可以由用户自行定义;包集合:package用于保存VHDL语言中经常使用的类型包集合的定义与结构package包集合名
is说明语句;(只有名称)end包集合名;packagebody包集合名
is说明语句;
(完整定义)end包集合名;包集合的定义与结构package包集合名is包集合的简单定义libraryieee;useieee.std_logic_1164.all;packgeupacisconstantk:integer:=4;subtypecpu_busisstd_logic_vector(k-1downto0);endupac;包集合的简单定义libraryieee;包集合的详细定义libraryieee;useieee.std_logic_1164.all;packgeupacisconstantk:integer:=4;subtypecpu_busisstd_logic_vector(k-1downto0);functionconv_integer(x:std_logic_vector)returninteger;endupac;包集合的详细定义libraryieee;包集合的详细定义packgebodyupacisfunctionconv_integer(x:std_logic_vector)returnintegerisvariableresult:integer;beginresult:=0;forIinx'rangeloopresult:=result*2;casex(i)iswhen'0'|'L'=>null;when'1'|'H'=>result:=result+1;whenothers=>null;endcase;endloop;returnresult;endconv_integer;endupac;包集合的详细定义packgebodyupacis包集合的存放与调用用户自行编写的包集合将自动存放于WORK库中,使用时可采用下列语句调用:
usework.upac.all;也可以选择特定的用户库进行存放和调用。包集合的存放与调用用户自行编写的包集合将自动存放于WORK库包集合的程序实例:说明部分packageand_pkgisprocedurep_and(a,b:inbit;signalc:outbit);
--过程说明functionf_and(a,b:bit)returnbit;--函数说明end;
包集合的程序实例:说明部分packageand_pkgi包集合的程序实例:执行部分packagebodyand_pkgis--过程的完整编程procedurep_and(a,b:inbit;signalc:outbit)isbeginc<=aandb;end;--函数的完整编程functionf_and(a,b:bit)returnbitisbeginreturn(aandb);end;end;
包集合的程序实例:执行部分packagebodyand_包集合的程序实例:调用方式entityfisport(x,y:inbit;s,z:outbit:='0');end;usework.and_pkg.all;
--包集合的调用architecturestroffisbeginu1:p_and(x,y,s);--过程调用z<=f_and(x,y);--函数调用endstr;包集合的程序实例:调用方式entityfisport(配置:configuration在一个实体内可以编写多种不同的构造体,通过配置语句来进行选择;配置语句格式:configuration配置名
of实体名
isfor选择的构造体名endfor;end配置名;此语句可以为设计增加更大的灵活性,可以对不同构造体进行比较。配置:configuration在一个实体内可以编写多种不同关于配置使用的一个例子entityan2isport(a1,a2:inbit;y:outbit);end;architecturedatofan2isbeginy<=a1anda2;end;
entityxr2isport(x1,x2:inbit;y:outbit);end;architecturedatofxr2isbeginy<=x1xorx2;end;
--上述程序分别定义了2个2输入的器件;关于配置使用的一个例子entityan2isport关于配置使用的一个例子entityhalf_adderisport(x,y:inbit;sum,cout:outbit);end;architecturenetlistofhalf_adderisusework.all;
componentmxport(a,b:inbit;z:outbit);
endcomponent;--可以采用元件的抽象定义;
componentmaport(a,b:inbit;z:outbit);end
component;forg1:mxuseentityxr2(dat)port(x1=>a,x2=>b,y=>z);--对mx,采用xr2元件;end;--程序中使用了2个2输入器件,mx采用xr2,ma未指定;关于配置使用的一个例子entityhalf_adderi关于配置使用的一个例子beging1:mxportmap(x,y,sum);--已经有具体元件定义;g2:maportmap(x,y,cout);--仍然为抽象元件定义;end;关于配置使用的一个例子begin关于配置使用的一个例子configurationc1ofhalf_adderisusework.all;fornetlistforg2:mauseentityan2(dat)
port(a1=>a,a2=>b,y=>z);--为ma补充定义,采用an2元件;endfor;endfor;end;关于配置使用的一个例子configurationc1ofVHDL的属性语句属性语句可以从一个信号或变量中提取相关信息,可以针对类型、信号、函数、数值和范围得出相应的结果;属性语句通常在程序中用于过程执行的判断;主要在程序的仿真调试中使用,多数属性语句不可综合;VHDL的属性语句属性语句可以从一个信号或变量中提取相关信息VHDL的典型属性语句s'event检测信号发生变化时给出true;s'active检测信号有效时给出true;s'last_value给出信号上一次变化之前的值;t'left提取类型最左边的元素;t'high提取类型中最大的元素;a'left提取数组最左边的元素;a'length给出数组的长度;VHDL的典型属性语句s'event检测信号发生变化时自定义属性语句可以通过下述方式自行定义属性:attribute属性名称
:属性的数据类型
;attribute属性名称
of数据对象
:对象类型
is对象值
;例:attributesyn:boolean;attributesynofclk:signalistrue;p<=clk'syn;
--将属性取值赋值给信号量;自定义属性语句可以通过下述方式自行定义属性:仿真调试过程使用的典型语句断言与报告语句:assert/report用于将仿真调试中的问题表现出来,不可综合,不消耗硬件资源。语法格式:assertconditionrepo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购房补充协议书的法律效力
- 购销合同中的国际通信技术与网络合作
- 购销合同管材的交付与验收
- 赞助商资金赞助协议
- 足球场草坪材料购销
- 轮胎购销业务协议
- 载人货梯采购合同
- 造价咨询招标文件的编制
- 通讯设备采购协议
- 配电工程招标文件答疑处理常见问题
- 人教版新起点二年级英语上册全册教案
- 1.2《水沸腾了》课件
- 安全生产法律法规、标准规范、规章制度、操作规程的执行情况和适用情况检查记录
- 小学数学六年级下册思维导图:图形的运动
- DB32/T 4443-2023 罐区内在役危险化学品(常低压)储罐管理规范
- 高中英语-what's in a name教学课件设计
- 5 国家机构有哪些 第一课时(说课稿)部编版道德与法治六年级上册
- 【高中语文】【高中语文】《乡土中国》之《礼治秩序》《无讼》课件38张+统编版必修上册
- 小学儿童心理学全套教学课件
- 工业气体充装站建站项目建设申请建设可研报告
- 物流科运输时效表XXXX第一
评论
0/150
提交评论