Verilog 参数化设计

        为了提高模块的重复利用,关键就在于避免硬编码(hard literal),使模块参数化。参数化建模的好处是可以使代码清晰,便于后续维护和修改。只需要修改参数,不用修改其他代码就可以适用于不同的环境中。具体的参数化建模方法有 3 种:

  • `define 宏定义
  • parameter,localparam 模块参数化
  • `ifdef 等条件编译

使用define,parameter和localparam的指导原则:

1 宏定义应该只用于定义系统内全局常量。

2 应该把所有的宏定义仿真一个definition.vh文件中。

3 模块内的常量用localparam.

4 在实例化时会改变的参数,使用parameter,以达到模块可配置和可移植。

5 在定义常量时,如果一个常量依赖于其他常量,那么在定义该常量时就直接用表达式表示出来这种关系。

 

注:Verilog-2001 中添加了一个新的关键字 localparam,用来定义模块内部的、不能被其他模块修改的局部常量,概念类似于 C++ 中 class 的 protect 成员。

 

参考文献:

[1] Verilog 中的参数化建模.

http://guqian110.github.io/pages/2014/07/09/parameterization_modeling_in_veriog.html

[2] 魏家明. Verilog编程艺术. 电子工业出版社. 2014.01.

原文地址:https://www.cnblogs.com/dpc525/p/5281691.html