引言

采用parameter可以让程序变得可维护性,所以在verlog中,尽量在有数据可能发生变动的地方,设置为parameter,以免以后又从头开始更改。
parameter经常用于定义数据位宽,定义时间延迟,在模块和实例引用时,可以通过参数传递,改变被引用的模块。因此我们尽量把所有的可能变动的参数设置在顶层,一眼明了,方便日后维护。

端口参数与模块内部参数


本module内有效的定义,可用于参数传递;
如果在模块内部定义时无法进行参数传递,

参数传递

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

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

   顶层模块名# (.子模块参数( 顶层参数)) 子模块名(
子端口1(顶层端口1)
子端口2(顶层端口2)
。
。
子端口n(顶层端口n));

众说parameter、define、localparam的区别

`define:           作用 -> 常用于定义常量可以跨模块、跨文件;范围 -> 整个工程;
parameter:         作用 -> 常用于模块间参数传递;范围 -> 本module内有效的定义;
localparam          作用 -> 常用于状态机的参数定义;范围 -> 本module内有效的定义,不可用于参数传递;localparam cannot be used within the module port parameter list.

defparam

defparam这个单独拿出来说一下,其实这个参数,个人觉得意义不大,因为你用parameter参数实例化就可以很好的解决问题,defparam用于重定义参数的数,可以通过
defparam 顶层.子模块名1.子模块名2=XXX
这样的语法格式更改,从而实现专门针对某一个子模块更改,这样有助于例化了多个相同的子模块,但我只更改一个子模块的问题。!
我们来一起看看官方文档IEEE verilog 2005
defparam的语法我们就去亲自查阅官方语法!这样才能有收货。


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




这段话也再次说明了,即使是使用相同的子模块实例化生成的模块,也不会受影响,defparam只针对指定路径下的参数更改。
/------------------------------------------------------------------------------------------------------------------------------------------------------/
defparam目前所有综合工具都不支持综合,所以仅仅用于仿真。

verilog基础—规范化参数定义parameter相关推荐

  1. 【Verilog HDL】参数(Parameter)的作用案例

    我在学习Verilog HDL的时候并没有系统的去学,只是大致的了解了下,然后就用一些常用的语法去设计简单常见的硬件电路,这样做的好处是节省时间,也不会感觉重新学习一门语言很累,但是也会遇到一些问题, ...

  2. (14)Verilog HDL参数:parameter

    (14)Verilog HDL参数:parameter 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)Verilog HDL参数:parameter 5)结语 1.2 ...

  3. verilog中参数传递与参数定义中#的作用(二)

    一.module内部有效的定义 用parameter来定义一个标志符代表一个常量,称作符号常量,他可以提高程序的可读性和可维护性.parameter是参数型数据的关键字,在每一个赋值语句的右边都必须是 ...

  4. Verilog基础模块总结

    verilog基础模块 verilog基础模块包括数据类型,运算符,组合逻辑和时序逻辑四个部分.数据类型包括常量和变量,在常量中有整数,X和Z以及参数.X代表不定制,Z代表高阻值.下划线不具有任何意义 ...

  5. Verilog基础学习二

    Verilog基础学习二 文章目录 Verilog基础学习二 一.always 块 1.阻塞性赋值和非阻塞性赋值 二.条件语句 1.if 语句 基本用法 2.避免引入锁存器 3.case 语句 4.c ...

  6. Verilog基础入门

    Verilog简介 一.Verilog语法知识简介 1.模块结构 (1)模块声明 (2)端口定义 (3)信号类型声明 (4)逻辑功能定义 2.行为语句 (1)过程语句 (2)块语句 (3)赋值语句 ( ...

  7. 【Verilog】二、Verilog基础语法

    文章目录 前言 一.简单的Verilog知识 1.1.Verilog端口定义 1.2.Verilog的标识符 1.3.Verilog的逻辑值 1.4.Verilog的数字进制 1.5.Verilog的 ...

  8. (92)FPGA模块例化传递参数(parameter)

    (92)FPGA模块例化传递参数(parameter) 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA模块例化传递参数(parameter) 5)结语 1.2 ...

  9. 1. verilog 基础语法

    1 模块结构     端口: module 模块名(端口1, 端口2, 端口3)     内容:         I/O说明:             input 端口名;             o ...

最新文章

  1. RStudio配置R程序包的默认下载源
  2. jenkins配置邮箱服务器发送构建结果
  3. CDH6.3.2界面配置hbase-site.xml的方法
  4. Bind 9.5安装入门指南
  5. 微软推行 Windows 10 更新政策 往后不会太强硬要求升级!
  6. delphi 执行长时间存储过程 显示进度_项目管理_十大管理体系之「项目进度管理」知识整理及心得分享...
  7. Python基础项目实践之:面向对象方法实现模拟银行管理系统
  8. python数据分析常用类库(1.1)
  9. SK海力士与电装四巨头论半导体供给
  10. Anders Hejlsberg语录
  11. java--DBUtils和连接池
  12. [UE4]关于分支Sequence和条件分支的组合用法
  13. 白话使用zookeeper作为注册中心搭建微服务
  14. HTTP性能测试工具siege
  15. mysql免安装版教程视频_MySQL免安装版安装教程
  16. C语言嵌入式系统编程修炼之道
  17. 适合小白的 Asyncio 教程!
  18. Variable(变量)、Constant(常量)
  19. 小米Note标配版 双网通刷原生安卓7.0教程(详细)
  20. 数据统计分析软件介绍

热门文章

  1. Kudu安装前的建议说明(博主推荐)
  2. webform 跨窗体传值
  3. PAT-乙级-1021. 个位数统计 (15)
  4. 安装dos2unix
  5. python处理html的table标签
  6. android 退出程序提示是否退出对话框
  7. 在程序中设置最小化、最大化、关闭按钮
  8. [知识图谱]利用py2neo从Neo4j数据库获取数据
  9. php--理解PHP的依赖注入和laravel的服务容器
  10. 【React自制全家桶】一、Webstrom+React+Ant Design+echarts搭建react项目