在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6522|回复: 5

[求助] 求助如何判断verilog的parameter的值

[复制链接]
发表于 2014-3-26 20:22:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
各位前辈,现在的项目中遇到了一个问题。
要求我做的模块在IC中例化多次,分别需要支持不同的指标A。
而这个指标A又能直接决定模块内的信号线宽和使用的RAM大小。

我的想法是将指标A定义为parameter,模块例化时将这个parameter赋不同的值,传到模块内部。
但是如何去判断parameter的值,进而将信号位宽define的宏赋不同的值呢?

或者有其他好的方法,请指教!
发表于 2014-3-27 09:30:43 | 显示全部楼层
本帖最后由 rvnistelrooy 于 2014-3-27 09:32 编辑

回复 1# zsftm


    可以通过parameter参数传递实现。



  1. test #(.A(your_define)) test_u0(...);


复制代码

    如果是特殊的运算关系,比如FIFO的深度为A, 读写指针位宽为log2A,那就增加一个常量B,值设定为log2A,同时传递A,B这两个常量。
发表于 2014-3-27 11:01:46 | 显示全部楼层
你可以在你的代码内部定义参数, 然后在例化的时候使用强制赋值的方式
 楼主| 发表于 2014-3-27 14:32:19 | 显示全部楼层
回复 2# rvnistelrooy


    那请问例化时的模块名能用parameter代替吗?RAM模块名里有宽度深度等信息,不同大小的RAM名字不一样,只想用一份代码,而且不让用define,所以希望例化RAM模块时,用的模块名也是个parameter。
 楼主| 发表于 2014-3-27 14:33:15 | 显示全部楼层
回复 3# rainc6100


    那请问例化时的模块名能用parameter代替吗?RAM模块名里有宽度深度等信息,不同大小的RAM名字不一样,只想用一份代码,而且不让用define,所以希望例化RAM模块时,用的模块名也是个parameter。
发表于 2015-1-28 17:30:29 | 显示全部楼层

不知道楼主的问题怎么解决的?求指教。

本帖最后由 zsk_nuaa 于 2015-1-28 17:33 编辑

Dataout_W 根据Fs_Flag(外部输入) 的变化而变化,
parameter Dataout_W = Fs_Flag ? 7'D60 : 7'D50;如何修改?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-25 03:46 , Processed in 0.022850 second(s), 11 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表