当一个模块引用另外一个模块时,高层模块可以改变低层模块用parameter定义的参数值,改变低层模块的参数值可采用以下两种方式:

  1)defparam 重定义参数

  语法:defparam path_name = value ;

  低层模块的参数可以通过层次路径名重新定义,如下例:

module top ( .....)
input....;
output....;
defparam U1 . Para1 = 10 ;
M1 U1 (..........);
endmodule
module M1(....);
parameter para1 = 5 ;
input...;
output...;
......
endmodule

  在上例中,模块M1参数 para1 的缺省值为5,而模块top实例了M1后将参数的值改为10。

  2) 实例化时传递参数

  在这种方法中,实例化时把参数传递进去,如下例所示:

module top ( .....)
input....;
output....;
M1 #( 10 ) U1 (..........);
endmodule

  在该例中,用#( 10 )修改了上例中的参数para1,当有多个参数时,用逗号隔开,如#( 10 , 5 ,

  3 )传递了3个参数值。

  模块参数的方法使得模块的重用性更强,当需要在同一个设计中多次实例化同样的模块,只是参数值不同时,就可以采用模块参数的方式,而不必只因为参数不同产生了多个文件。

引用:

利用defparam定义参数声明语句!
defparam 例化模块名.参数名1 = 常数表达式,
例化模块名.参数名2 = 常数表达式, ……;
格式
defparam语句在编译时可重新定义参数值.
可综合性问题:一般情况下是不可综合的.
提示:不要使用defparam语句!在模块的实例引用时可用"#"号后跟参数的语法来重新定义参数.

[例]
module mod ( out, ina, inb);

parameter cycle = 8, real_constant = 2.039,
file = "/user1/jmdong/design/mem_file.dat";

endmodule
module test;

mod mk(out,ina,inb); // 对模块mod的实例引用
defparam mk.cycle = 6, mk.file = "../my_mem.dat"; // 参数的传递

endmodule

5 模块实例引用时参数的传递——方法之二:利用特殊符号"#"
[例]
module mod ( out, ina, inb);

parameter cycle = 8, real_constant = 2.039,
file = "/user1/jmdong/design/mem_file.dat";

endmodule
module test;

mod # (5, 3.20, "../my_mem.dat") mk(out,ina,inb); // 对模块mod的实例引用

endmodule
被引用模块
参数的传递
必须与被引用模块中的参数一一对应!
建议用此方法!
被引用模块名 # (参数1,参数2,…)例化模块名(端口列表);

defparam的语法相关推荐

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

    引言 采用parameter可以让程序变得可维护性,所以在verlog中,尽量在有数据可能发生变动的地方,设置为parameter,以免以后又从头开始更改. parameter经常用于定义数据位宽,定 ...

  2. Verilog基本语法初学

    一.语言要素 (一)概述 1.空白符(White Space) 空格.换行.换页.Tab等: 是代码错落有致,提高可读性. 2.注释(Comment) 单行注释:" // ": 多 ...

  3. 【正点原子FPGA连载】 第七章 Verilog HDL语法 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

    1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=692450874670 3)全套实验源码+手册+视频下载地址: h ...

  4. verilog always语法_Verilog 最全经验总结(建议收藏)

    关注.星标公众号,直达精彩内容 公众号:ZYNQ ID :FreeZynq 1.不使用初始化语句: 2.不使用延时语句: 3.不使用循环次数不确定的语句,如:forever,while等: 4.尽量采 ...

  5. Verilog语法中parameter与localparam

    Verilog语法中parameter与localparam 对读者的假设 已经掌握: .可编程逻辑基础 .Verilog HDL基础 .使用Verilog设计的Quartus II入门指南 .使用V ...

  6. Verilog HDL语法提纲

    转载博客 1.模块的端口定义 module 模块名(口1,口2,口3,口4, ---);   2.(数据类型及其常量.变量) 数字 整数: <位宽><进制><数字> ...

  7. Verilog_HDL的基本语法

    Verilog HDL的基本语法 前言 Verilog HDL是一种用于数字逻辑电路设计的语言.用Verilog HDL描述的电路设计就是该电路的Verilog HDL模型.Verilog HDL既是 ...

  8. ZYNQ之FPGA学习----Verilog HDL语法(2)

    5 Verilog 高级知识点(二) 5.1 Verilog 语句块 Verilog 语句块提供了将两条或更多条语句组成语法结构上相当于一条一句的机制.主要包括两种类型:顺序块和并行块. 顺序块 顺序 ...

  9. 【JavaScript总结】JavaScript语法基础:BOM

    DOM是文档对象模型,操作对象是文档 window.document,和浏览器没有直接关系 DOM常用事件: onload,onbeforeunload, onunload onclick,ondbl ...

最新文章

  1. 比特币的价格今年会达到10万美元吗?有人用蒙特卡罗方法预测了一下
  2. C++ size_t 与 size_type区别
  3. centos7 以上和以下版本设置
  4. openresty开发系列14--lua基础语法3函数
  5. SAP Cloud for Customer upselling的前台实现
  6. superhot预告片下载_预告片:裸指关节SOA
  7. LeetCode MySQL 1322. 广告效果
  8. GTK显示GIF、GTK动画(图片连续播放)
  9. 图形学opengl实验二-桌子的矩阵变换
  10. 多线程占用修改同一excel文件冲突_漫谈Excel报表移动化的逐级解决方案
  11. office 高效办公智慧树_精品网课office,让工作学习更轻松
  12. nginx服务器怎么配置文件,nginx服务器搭建和配置(nginx怎么搭配配置服务器)
  13. 最新最全 VSCODE 插件推荐(2022版)
  14. 【浏览器】解决QQ浏览器背景页面变成全黑(类似底片反色)
  15. beamer插入参考文献并引用(BibTex)
  16. ios 纯代码怎么适配ipad_iOS开发中iPhone和iPad的布局适配(工具篇)
  17. windows10下用PowerShell命令(Get-FileHash)校验文件的Hash值(MD5、SHA1、SHA256等)
  18. 使用定时器完成每日发送多个邮件(发邮件,支持多人发送)
  19. 解决无法通过UEFI安装深度系统deepin 15.10.1的方法
  20. 新大气模型有助宜居星球探索

热门文章

  1. boost::multiprecision模块debug_adaptor相关的测试程序
  2. boost::astar_search用法的测试程序
  3. boost::format模块一些真实的、简单的测试
  4. GDCM:gdcm::Fragment的测试程序
  5. GDCM:压缩DICOM影像文件的测试程序
  6. boost::container_hash模块实现哈希图
  7. 基于Boost::beast模块的同步HTTP客户端
  8. Boost:path的测试程序
  9. ITK:轮廓空间对象
  10. VTK:Points之PowercrustExtractSurface