如何使用变量值定义寄存器宽度 [英] how can we define register width with variable value

查看:22
本文介绍了如何使用变量值定义寄存器宽度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在初始块中获取了一个计数器变量‘n’,我计算了一些值。在计算之后,我想用这个作为一些‘reg a’的宽度。 所以我可以声明可以注册为reg[n:0]a吗? 当我尝试这样做时,它给出了一个错误,r不是常量...有什么方法可以解决这个问题

推荐答案

不,您不能这样做。Verilog描述意味着要转换成某种类型的电子电路,而这些电路不能动态更改其总线的位数。

您所能做的就是用将使用的最大宽度定义a,然后使用n值相应的位数

您可以做的另一件事(但我认为它在这里没有用到)是使用参数化宽度定义reg。这与定义具有可变宽度的reg不同,因为参数的值必须在编译时已知。

这篇关于如何使用变量值定义寄存器宽度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆