从RTL追踪到Scala

描述

  在三天前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)
}
 

 

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分