《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 其他 > 教学:verilog基础之规范化参数定义parameter

教学:verilog基础之规范化参数定义parameter

2022-08-30
来源:FPGA设计论坛

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

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

  端口参数与模块内部参数

a7718238-2810-11ed-ba43-dac502259ad0.png

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

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

  参数传递

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

 a783621e-2810-11ed-ba43-dac502259ad0.png

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

  

a79598ee-2810-11ed-ba43-dac502259ad0.png

  众说parameter、define、localparam的区别

  a7ac12b8-2810-11ed-ba43-dac502259ad0.png

  defparam

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

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

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

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

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

 

a7bfb980-2810-11ed-ba43-dac502259ad0 (1).png

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

 a7e3b38a-2810-11ed-ba43-dac502259ad0.png

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

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

a8053dfc-2810-11ed-ba43-dac502259ad0.png



更多信息可以来这里获取==>>电子技术应用-AET<<

mmexport1621241704608.jpg

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。