verilog基础—规范化参数定义parameter

采用parameter可以让程序变得可维护性,所以在verlog中,尽量在有数据可能发生变动的地方,设置为parameter,以免以后又从头开始更改。

parameter经常用于定义数据位宽,定义时间延迟,在模块和实例引用时,可以通过参数传递,改变被引用的模块。因此我们尽量把所有的可能变动的参数设置在顶层,一眼明了,方便日后维护。

端口参数与模块内部参数

26e778ac96ce4c7b286dc55701bce3e8.png

本module内有效的定义,可用于参数传递;

如果在模块内部定义时无法进行参数传递,

参数传递

参数传递经常用于顶层的参数传递给子模块,这样我们只需要关注顶层实体的内容,把子模块的内容当做一个黑箱子即可,这也是非常实用的。

5572524277dec78bc9b885bf6dd9e5ca.png

可以看到参数传递和例化是非常继续相似的,

bc72af0a3ed85723a7aac11b6893da2a.png

众说parameter、define、localparam的区别

85332cdd432d1e6b2444028a8512a44e.png

defparam

defparam这个单独拿出来说一下,其实这个参数,个人觉得意义不大,因为你用parameter参数实例化就可以很好的解决问题,defparam用于重定义参数的数,可以通过

defparam 顶层.子模块名1.子模块名2=XXX

这样的语法格式更改,从而实现专门针对某一个子模块更改,这样有助于例化了多个相同的子模块,但我只更改一个子模块的问题。!

我们来一起看看官方文档IEEE verilog 2005

defparam的语法我们就去亲自查阅官方语法!这样才能有收货。

421aeb202cad57c5bf61bdf8d7a40528.png

这段说了,defparam适用于改变指定层次模块下的参数,不影响其他模块的参数。

dbdb54b2ae8cf7afe85ac840c7289f8b.png

这段话也再次说明了,即使是使用相同的子模块实例化生成的模块,也不会受影响,defparam只针对指定路径下的参数更改。

defparam目前所有综合工具都不支持综合,所以仅仅用于仿真。

ae1cf1a07cbb3c0a94a2bdcb8dea0569.png

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Verilog是一门用于电子系统设计的硬件描述语言,它可以被用来描述数字电路、模拟电路或系统级设计。Verilog格式配置可以用于定义模块的接口及内部的信号互联关系。模块是一个可以独立使用的功能组件,包括输入端口、输出端口和可在该模块内部使用的其他常规信号。在正确配置Verilog格式之前,您需要创建模块并确保其功能和接口都是按照预期工作的。 在Verilog格式配置中,您需要包括以下内容: 模块定义:模块定义是最基本的Verilog格式配置。它需要定义模块名称、输入输出端口及其方向,以及内部信号。例如,以下代码表示对4位全加器的描述: module adder4bit(input [3:0] a, input [3:0] b, input cin, output [3:0] sum, output cout); 端口方向:每个端口可以是输入、输出或双向的。端口方向可通过“input”、“output”和“inout”关键字来指定。例如,以下代码中,端口A和B是输入端口,S和Cout是输出端口,而Cin是一个双向端口: module adder(input A, input B, input [3:0] Cin, output [3:0] S, output Cout); 参数配置:您可以使用参数定义来使模块更具可配置性。参数可以在模块内部使用,也可以通过实例化该模块时进行修改。例如, module adder #(parameter WIDTH = 16) (input [WIDTH-1:0] A, input [WIDTH-1:0] B, output [WIDTH-1:0] S); 注释:注释可用于您的代码中,以向其他开发人员解释您的代码。例如,您可以使用“//”来定义单行注释,或使用“/*”和“*/”来定义多行注释。例如, // This is a comment /*This is a multi-line comment*/ 以上是Verilog格式配置的一些基本内容。您可以根据需要定义其他信号和参数,并根据需要使用条件语句、循环语句等来实现您的设计。在配置Verilog格式的过程中,请确保您遵循了编码规范和最佳实践,以便使代码易于理解和维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值