一种VHDL语言代码重用方法.docVIP

  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语言代码重用方法

一种VHDL语言代码重用的方法   【摘 要】代码重用是提高软件设计效率和质量的重要手段,VHDL的库文件能够实现高效代码分割、代码共享及代码重用。本文介绍了库的基本结构,及其的基本构件单元元件、函数、过程的建立和调用的语法结构,从而实现结构化设计及代码重用。   【关键词】代码重用;VHDL;软件设计   0 引言   随着可编程逻辑器件技术的发展,芯片的性能越来越强、规模越来越大、开发的周期越来越长,使得器件应用正面临一系列新的问题:设计质量难以控制,设计成本也越来越高。IP(Intelligence Property)技术解决了当今芯片设计业所面临的难题。设计者可以重复使用已经设计并经过验证的IP核,将精力集中于系统顶层及关键功能模块的设计上,从而提高产品整体性能和个性化特性,加快了设计效率。   如何才能提高IP核的重复使用率,使设计资源更好地集中起来加以利用,是可编程逻辑器件应用面临的另一个问题。在VHDL(VHSIC Hardware Description Language)语言中,库(LIBRARY)文件很好地解决了这个问题。库文件是专门用于存放预先编译好的程序包(PACKAGE)和数据集合体,这些设计单元可用作其他VHDL描述的资源。用户编写的设计单元既可以访问多个设计库,又可以加入到设计库中,被其他单元所访问。此外,库的使用能够实现层次化设计和功能模块化设计方法,有利于使复杂设计具有更清晰的结构。   1 库组成   在VHDL中,常用的库有IEEE、STD、WORK、用户库等。库文件常用的语句为元件(COMPONENT)和子程序(过程和函数),为了使程序包能够被编译,元件和子程序必须被添加到被称为包集合的程序包中。用户库是用户定义库的简称,是由用户自己创建并定义的库。设计者可以把自己开发的非标准包集合和实体等汇集成在一起定义成一个库,作为对VHDL标准库的补充。用户将需要重复使用的代码以元件和子程序的形式放到包集合中,编译到目标库中,生成用户库,供其它设计单元调用。在设计中要使用某个程序包中的内容时,用USE语句即可打开该程序包。   2 库构件说明   2.1 包集合   在用户库中,包集合放置的是用户自己定义的元件、函数、过程。包集合包括包头和包体两部分。包头用来声明包中的类型、元件和子程序;而包体则用来存放说明中的元件源代码和子程序。程序包声明单元的语法格式为:   PACKAGE 程序包名 IS   说明语句   END [程序包名];   其中说明语句为:USE语句、类型定义、常量定义、元件声明、子程序声明及信号声明等。程序包体单元的的语法格式为:   PACKAGE BODY程序包名 IS   说明语句   END [程序包名];   2.2 元件   用户库通过元件定义的方式,将一些设计好的电路单元纳入,其他设计体则通过元件实例化的方法调用这些元件,使得元件与其他设计实体中的端口相连接,从而为当前设计实体引入低一级的设计层次设计。   2.2.1 元件定义   元件定义语句放在包集合的包头中,指出包集合所包含的具体元件,元件源代码可以独立编译,不需要纳入包集合中。元器件定义语句的语法格式为:   COMPONENT元件名IS   GENERIC(常量、参数列表);   PORT(元件端口列表);   END COMPONET;   其中,常量、参数列表与元件源代码实体中的GENERIC部分相同;元件端口列表,与元件源代码实体中的PORT部分相同。   2.2.2 元件调用   元件调用称为元件实例化,在元件实例化过程中有位置映射和名称映射两种方法可以实现。   位置映射中参数、端口信号名称在顺序、端口状态和数据类型上必须和元件源代码保持一致,各个参数、端口意义取决于它的位置。位置映射元件实例化语句的语法格式为:   COMPONENT元件名(   GENERIC MAP (常量、参数列表)   PORT MAP(元件端口列表));   名称映射用符号“=”连接元件参数、端口和结构体之间的参数、端口。名称映射元件实例化语句的语法格式为:   COMPONENT元件名(   GENERIC MAP(元件源程序常量列表=常量值)   元件源程序参数列表=参数量值)   PORT MAP(元件端口列表=信号名称));   其中,左边列出元件源代码中参数、端口名称,右边列出调用代码中对应的参数值、端口信号名称。左右两边的数值、信号名称可以不相同,语句中位置顺序可以任意。   2.3 子程序   VHDL中的子程序有过程(PROCEDURE)及函数(FUNCTION)两类,主程序和子程序之间通过端口参数列表位置关联方式进行

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档