第5章-Verilog HDL语法规范(第12讲)-5.12.pdf

第5章-Verilog HDL语法规范(第12讲)-5.12.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Verilog HDL语言规范 Verilog HDL层次化结构 Verilog HDL支持通过将一个模块嵌入到其它模块的层次 化描述结构。 高层次模块创建低层次模块的例化,并且通过input、output和 inout端口进行通信。 这些模块的端口为标量或者矢量。 Verilog HDL层次化结构 --模块和模块例化 在Verilog HDL的描述中对模块和模块例化的方法进行了 简单的说明。下面介绍模块例化中涉及到一些其它问题。 Verilog HDL层次化结构 --覆盖模块参数值 Verilog HDL提供了两种定义参数的方法。 一个模块声明中可以包含一个或多个类型的参数定义 或者不包含参数定义。 Verilog HDL层次化结构 --覆盖模块参数值 模块参数可以有一个类型说明和一个范围说明。根据下面 的规则,确定参数对一个参数类型和范围覆盖的结果: 默认地,对于一个没有类型和参数说明的参数说明,由最终参数 值的值确定参数值的类型和范围。 一个带有范围说明,但没有类型说明的参数声明,其范围参数声 明的范围,类型是无符号的。一个覆盖的值将转换到参数的类型 和范围。 Verilog HDL层次化结构 --覆盖模块参数值 一个带有类型说明,但没有范围说明的参数声明,其类型是参数 声明的类型。一个覆盖的值将转换到参数的类型。一个有符号的 参数将默认到分配给参数最终覆盖值的范围。 一个带有有符号类型说明和范围说明的参数声明,其类型是有符 号的,范围是参数声明的范围。一个覆盖的值将最终转换到参数 的类型和范围。 Verilog HDL层次化结构 --覆盖模块参数值 参数的Verilog HDL描述的例子 module generic_fifo #(parameter MSB=3, LSB=0, DEPTH=4) //可以覆盖这些参数 (input [MSB:LSB] in, input clk, read, write, reset, output [MSB:LSB] out, output full, empty ); localparam FIFO_MSB = DEPTH*MSB; localparam FIFO_LSB = LSB; // 这些参数是本地的,不能被覆盖 // 通过修改上面的参数,影响它们,模块将正常的工作。 Verilog HDL层次化结构 --覆盖模块参数值 reg [FIFO_MSB:FIFO_LSB] fifo; reg [LOG2(DEPTH):0] depth; always @(posedge clk or reset) begin casex ({read,write,reset}) // 实现fifo endcase end endmodule Verilog HDL层次化结构 --覆盖模块参数值 Verilog HDL提供了两种方法,用于修改非本地参数值: defparam语句 允许使用层次化的名字,给参数分配值。 模块例化参数值分配 允许在模块例化行内,给参数分配值。通过列表的顺序或者名字 , 分配模块例化参数的值。 注:如果defparam分配和模块例化参数冲突时,模块内的参数将使用 defparam指定的值。 Verilog HDL层次化结构 --覆盖模块参数值 defparam分配参数值 参数定义对分配值类型和范围影响的Verilog HDL描述的 例子。 module foo(a,b); real r1,

文档评论(0)

恬淡虚无 + 关注
实名认证
内容提供者

学高为师,身正为范.师者,传道授业解惑也。做一个有理想,有道德,有思想,有文化,有信念的人。 学无止境:活到老,学到老!有缘学习更多关注桃报:奉献教育,点店铺。

1亿VIP精品文档

相关文档