0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从RTL追踪到Scala

FPGA开源工坊 来源:FPGA开源工坊 作者:xiaotudou 2022-12-09 10:32 次阅读

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

5d2857de-7701-11ed-8abf-dac502259ad0.png

更新记录可以从这个网址看到

https://github.com/SpinalHDL/SpinalHDL/pull/985

下图是Stream的打拍,在它生成的Verilog里面可以清楚的看到是哪一行Scala代码生成的。

5d49849a-7701-11ed-8abf-dac502259ad0.png

5d630aaa-7701-11ed-8abf-dac502259ad0.png

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

5d719c5a-7701-11ed-8abf-dac502259ad0.png

通过新更新的这个功能就能从生成的Verilog、VHDL等文件中追踪原始的Scala文件。

如果不想启用这个功能可以在配置中将genLineComments设置为false,这样就不会生成追踪的代码注释了。使用方法如下。

5d92ced4-7701-11ed-8abf-dac502259ad0.png

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)
}

审核编辑:汤梓红

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

    关注

    1

    文章

    373

    浏览量

    58998
  • 代码
    +关注

    关注

    30

    文章

    4536

    浏览量

    66501
  • scala
    +关注

    关注

    0

    文章

    42

    浏览量

    6328

原文标题:从RTL追踪到Scala

文章出处:【微信号:FPGA开源工坊,微信公众号:FPGA开源工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    算法RTL实现课程预览 - 1

    算法RTL
    皮特派
    发布于 :2022年08月01日 14:53:52

    算法RTL实现课程预览 -2

    算法RTL
    皮特派
    发布于 :2022年08月01日 15:03:15

    Scala入门精通——第三十节 Scala脚本编程与结束语

    ,当下次再执行的便调用该jar文件来执行,第一次执行后生成的jar文件如下: 3. 结束语本节内容是scala入门精通系列课程的最后一节,通过本课程,我相信可以让大家成为一个中级scala语言开发者
    发表于 06-26 17:44

    scala的安装步骤

    Scala基础学习】:初识scala—001
    发表于 03-05 13:46

    请问怎么提高JTAG调试追踪printf()?

    怎么 通过JTAG调试 追踪printf()此函数的函数主体,我是新手,不太会
    发表于 03-09 04:35

    spark scala maven创建工程与提交任务yarn的步骤

    spark scala maven简单创建工程与提交任务yarn
    发表于 04-14 11:44

    SpinalHDL如何把名字scala代码传递产生的硬件中

    保留名称(Preserving names)一、简介(Introduction)这一章会介绍SpinalHDL如何把名字scala代码传递产生的硬件中。知道这些能帮助你更好地了解如何保留
    发表于 10-24 15:52

    RTL,RTL是什么意思

    RTL,RTL是什么意思 电阻晶体管逻辑电路 RTL电路-电
    发表于 03-08 11:19 1.4w次阅读

    RTL8139C RTL8139C-LF RTL8139CL RTL8139CL-LF

    RTL8139C RTL8139C-LF RTL8139CL RTL8139CL-LF
    发表于 10-25 14:48 22次下载
    <b class='flag-5'>RTL</b>8139C <b class='flag-5'>RTL</b>8139C-LF <b class='flag-5'>RTL</b>8139CL <b class='flag-5'>RTL</b>8139CL-LF

    RTL8196C-RTL8192CE-RTL8188RE应用参考原理图

    RTL8196C_RTL8192CE RTL8188RE应用参考原理图
    发表于 03-07 13:53 20次下载

    RTL8198+RTL8192CE+RTL8192DE应用参考原理图

    RTL8198+RTL8192CE+RTL8192DE应用参考原理图
    发表于 03-07 14:37 54次下载

    scala语言主要应用领域详解

    Scala是一门多范式的编程语言。本文开始介绍了Scala的概念,其次介绍了Scala的特性,最后阐述了scala语言的主要应用领域。
    的头像 发表于 03-07 18:08 1.9w次阅读

    一文看懂scala和java的区别

    本文开始对Scala的概念进行了详细说明,其次阐述了Java的定义以及Java的工作原理,最后阐述了scala和java的区别以及scala相对于java存在的优势。
    的头像 发表于 03-07 18:30 6.4w次阅读
    一文看懂<b class='flag-5'>scala</b>和java的区别

    RTL8382L+RTL8218B+RTL8231L应用参考原理图

    RTL8382L+RTL8218B+RTL8231L应用参考原理图
    发表于 03-09 10:30 349次下载

    Scala动手实战入门

    本文档内容介绍了基于Scala动手实战入门,供参考
    发表于 04-13 15:13 8次下载