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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 6736|回复: 5

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

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

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

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

×
各位前辈,现在的项目中遇到了一个问题。
要求我做的模块在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 下一条


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

GMT+8, 2025-9-14 05:46 , Processed in 0.020851 second(s), 5 queries , Gzip On, Redis On.

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