vhdl中的generic.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中的generic

VHDL语言中generic(类属) 类属 GENERIC 参量是一种端口界面常数,常以一种说明的形式放在实体或块结构体前的说明部分。类属为所说明的环境提供了一种静态信息通道,类属与常数不同,常数只能从设计实体的内部得到赋值且不能再改变,而类属的值可以由设计实体外部提供。因此设计者可以从外面通过类属参量的重新设定而容易地改变一个设计实体或一个元件的内部电路结构和规模。 类属参量以关键词 GENERIC 引导一个类属参量表,在表中提供时间参数或总线宽度等静态信息。类属表说明用于设计实体和其外部环境通信的参数,传递静态的信息。类属在所定义的环境中的地位与常数十分接近,但却能从环境,如设计实体,外部动态地接受赋值,其行为又有点类似于端口 PORT,因此常如以上的实体定义语句那样将类属说明放在其中,且放在端口说明语句的前面。 在一个实体中定义的来自外部赋入类属的值可以在实体内部或与之相应的结构体中读到,对于同一个设计实体,可以通过 GENERIC 参数类属的说明,为它创建多个行为不同的逻辑结构,比较常见的情况是利用类属来动态规定一个实体的端口的大小,或设计实体的物理特性,或结构体中的总线宽度,或设计实体中底层中同种元件的例化数量等等。 一般在结构体中,类属的应用与常数是一样的,例如:当用实体例化一个设计实体的器件时,可以用类属表中的参数项定制这个器件,如可以将一个实体的传输延迟,上升和下降延时等参数加到类属参数表中,然后根据这些参数进行定制,这对于系统仿真控制是十分方便的。其中的常数名是由设计者确定的类属常数名,数据类型通常取 INTEGER 或TIME 等类型,设定值即为常数名所代表的数值,但需注意 VHDL 综合器仅支持数据类型为整数的类属值。 程序3-2和3-3是两个使用了类属说明的实例描述 程序3-2 ENTITY mcu1 IS GENERIC (addrwidth : INTEGER := 16); PORT( add_bus : OUT STD_LOGIC_VECTOR(addrwidth-1 DOWNTO 0) ); ... 在这里 GENERIC 语句对实体 mcu1 作为地址总线的端口 add_bus 的数据类型和宽 度作了定义 即定义 add_bus 为一个 16 位的标准位矢量 定义 addrwidth 的数据类型是 整数INTEGER 其中 常数名addrwidth减 1 即为 15 所以这类似于将上例端口表写成 PORT (add_bus : OUT STD_LOGIC_VECTOR (15 DOWNTO 0)); 由程序 3-2 可见 对于类属值 addrwidth 的改变将对结构体中所有相关的总线的 定义同时作了改变 由此将改变整个设计实体的硬件结构 程序3-3 2输入与门的实体描述VHDL实用教程 22 ENTITY PGAND2 IS GENERIC ( trise : TIME := 1 ns; tfall : TIME := 1 ns ) ; PORT ( a1 : IN STD_LOGIC ; a0 : IN STD_LOGIC ; z0 : OUT STD_LOGIC ); END ENTITY PGAND2; 这是一个准备作为 2 输入与门的设计实体的实体描述 在类属说明中定义参数 trise 为 上沿宽度 tfall为下沿宽度 它们分别为1ns 这两个参数用于仿真模块的设计 以下的程序 3-5 是一个顶层设计文件 它在例化语句中调用了程序 3-4 读者应注 意到 在程序 3-4 中的类属变量 n 并没有如程序 3-2 那样明确规定了它的取值 n 的具 体取值是在程序 3-5 中的类属映射语句 GENERIC MAP ( )中指定的 并在两个不同的 类属映射语句中作了不同的赋值 程序 3-4 和 3-5 给出了类属语句的一种典型应用。显然,类属语句的应用,为方便而迅速地改变电路的结构和规模提供了极便利的条件。 程序3-4 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY andn IS GENERIC ( n : INTEGER ); PORT(a : IN STD_LOGIC_VECTOR(n-1 DOWNTO 0); c : OUT STD_LOGIC); END; ARCHITECTURE behav OF andn IS BEGIN P

文档评论(0)

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

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

1亿VIP精品文档

相关文档