繁体   English   中英

如何在生成的 Verilog 中使用 chisel Vector 中所选元素的 val 名称

[英]How to to use the val name of selected element in a chisel Vector in the generated Verilog

我试图在生成的 Verilog 中保留信号的 Val 名称。 Val 是从凿子 Vector(Vec) 中动态选择的元素。 下面是我的测试用例代码:

val myVec    = Reg(Vec(10,UInt(32.W)))
val selected = myVec(io.sel).suggestedName("selected")

我可以在生成的 verilog 中看到从 myVec 中获取所选元素的 Mux。 但是,它有一个随机名称_T 的东西。 suggestName()没有帮助。 我也试过@chiselName没有任何改进。 我希望这个信号有一个有意义的名字的原因是为了调试目的(功能上它是正确的)

这是一个已知的错误,很抱歉让您感到困惑/沮丧。 忽略一些细节,Chisel 很难区分动态索引作为右手值(阅读)与左手值(写作)之间的区别,这使得难以命名。

您可以通过将动态索引的输出连接到Wire来解决此问题:

val myVec    = Reg(Vec(10,UInt(32.W)))
val selected = WireInit(myVec(io.sel))

Wire将通过正常机制命名,因此@chiselNamesuggestName或标准反射命名将起作用。

使用 Chisel v3.3.2 的可执行示例: https ://scastie.scala-lang.org/UWYCtq37ReaVcRrNBxRlOA

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM