在三天前SpinalHDL1.8.0正式上线,在这次更新中增加了Scala代码和生成的RTL代码之间的对照功能,也就是说我们可以在生成的RTL代码中看到是哪一行Scala生成的,这就为后续的代码调试增加了灵活性(虽然在调试SpinalHDL的时候也很少看对应的RTL吧)。

更新记录可以从这个网址看到
https://github.com/SpinalHDL/SpinalHDL/pull/985
下图是Stream的打拍,在它生成的Verilog里面可以清楚的看到是哪一行Scala代码生成的。


可以看到在生成的Verilog中标记了原始的scala文件和对应的代码行数,以sData_ready为例可以看到它是Stream.scala这个文件中第380行代码生成的。也就是下面这一行代码。

通过新更新的这个功能就能从生成的Verilog、VHDL等文件中追踪原始的Scala文件。
如果不想启用这个功能可以在配置中将genLineComments设置为false,这样就不会生成追踪的代码注释了。使用方法如下。

import spinal.core._
import spinal.lib._
class DemoStream extends Component {
val sData = slave(Stream(UInt(8 bits)))
val mData = master(Stream(UInt(8 bits)))
mData <> sData.s2mPipe()
}
object DemoStream extends App {
SpinalConfig(genLineComments = false).generateVerilog(new DemoStream)
// SpinalVerilog(new DemoStream)
}
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !