求助如何判断verilog的parameter的值
时间:10-02
整理:3721RD
点击:
各位前辈,现在的项目中遇到了一个问题。
要求我做的模块在IC中例化多次,分别需要支持不同的指标A。
而这个指标A又能直接决定模块内的信号线宽和使用的RAM大小。
我的想法是将指标A定义为parameter,模块例化时将这个parameter赋不同的值,传到模块内部。
但是如何去判断parameter的值,进而将信号位宽define的宏赋不同的值呢?
或者有其他好的方法,请指教!
如果是特殊的运算关系,比如FIFO的深度为A, 读写指针位宽为log2A,那就增加一个常量B,值设定为log2A,同时传递A,B这两个常量。
要求我做的模块在IC中例化多次,分别需要支持不同的指标A。
而这个指标A又能直接决定模块内的信号线宽和使用的RAM大小。
我的想法是将指标A定义为parameter,模块例化时将这个parameter赋不同的值,传到模块内部。
但是如何去判断parameter的值,进而将信号位宽define的宏赋不同的值呢?
或者有其他好的方法,请指教!
可以通过parameter参数传递实现。
- test #(.A(your_define)) test_u0(...);
如果是特殊的运算关系,比如FIFO的深度为A, 读写指针位宽为log2A,那就增加一个常量B,值设定为log2A,同时传递A,B这两个常量。
你可以在你的代码内部定义参数, 然后在例化的时候使用强制赋值的方式
那请问例化时的模块名能用parameter代替吗?RAM模块名里有宽度深度等信息,不同大小的RAM名字不一样,只想用一份代码,而且不让用define,所以希望例化RAM模块时,用的模块名也是个parameter。
那请问例化时的模块名能用parameter代替吗?RAM模块名里有宽度深度等信息,不同大小的RAM名字不一样,只想用一份代码,而且不让用define,所以希望例化RAM模块时,用的模块名也是个parameter。
不知道小编的问题怎么解决的?求指教。
Dataout_W 根据Fs_Flag(外部输入) 的变化而变化,
parameter Dataout_W = Fs_Flag ? 7'D60 : 7'D50;如何修改?
