Verilog语言中parameter、localparam和符号常量的深度解析

1.parameter常量(符号常量)

用parameter来定义一个标示符,代表一个常量,称为符号常量

  • 格式:
  • parameter 参数名1 = 表达式, 参数名2 = 表达式;
  • parameter 参数型数据的确认符,后边的为赋值语句表

每个赋值语句的右边必须为常数表达式,且只能包含数字或先前定义过的符号常量

parameter addrwidth =16; //合法

parameter addrwidth = addrwidth * 2 //非法

常用参数来定义延时时间和变量宽度

可用字符串表示的任何地方,都可用定义的参数来代替;

参数是本地的,其定义只在本模块有效;

在模块或实例例化时,可通过参数传递改变在被引用模块或实例中已定义的参数。

2. localparam 符号常量:

  • 格式:
  • localparam 参数名1 = 表达式, 参数名2 = 表达式;
  • localparam 参数型数据的确认符,后边的为赋值语句表

parameter可作为在顶层模块中例化底层模块时传递参数的接口;

localparam的作用域仅仅限于当前module,不能作为参数传递的接口;

实例:

module mod (out, ina, inb);
...
parameter cycle = 8, real_cinstant = 2.039;
...
endmodule 


module test;
...
mod #(6,3.19) mk(out,ain,bin); //对mod模块的实例引用及参数的传递
...
endmodule

为了区分括号内是参数还是端口信号,所以再参数的前面加了一个#号来进行标记

相关推荐

  1. Stable Diffusion用术语

    2024-03-27 21:08:01       26 阅读
  2. C++ 判断语句深入

    2024-03-27 21:08:01       24 阅读
  3. PythonNone用法深度

    2024-03-27 21:08:01       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-27 21:08:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 21:08:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 21:08:01       82 阅读
  4. Python语言-面向对象

    2024-03-27 21:08:01       91 阅读

热门阅读

  1. 一些关于网络的笔记

    2024-03-27 21:08:01       32 阅读
  2. C#实现简单同步Echo服务端和客户端

    2024-03-27 21:08:01       41 阅读
  3. day5-QT

    day5-QT

    2024-03-27 21:08:01      30 阅读
  4. reactive和ref的异同、toRef和toRefs的使用

    2024-03-27 21:08:01       35 阅读
  5. Unity运行中加载特效AB包并且对象池管理

    2024-03-27 21:08:01       36 阅读
  6. 自动化测试理论基础(超详细)

    2024-03-27 21:08:01       40 阅读
  7. 态势感知平台简单介绍

    2024-03-27 21:08:01       43 阅读