为什么迁移到SpinalHDL
- verilog的学习曲线过于陡峭,而且verilog自身演进太慢,即使systemverilog也有很多不如人意的地方。本身水平太菜,至今未成为一个资深的verilog 开发人员,对于自己来说,要么继续啃Verilog,要么拥抱新工具。
- 与HLS不同的是,SpinalHDL本身仍然是一种硬件描述语言,据称是“The overhead (of SpinalHDL generated RTL compared to human written VHDL/Verilog) is null”。HLS适合快速开发验证,但一个熟练的HLS写手和刚入门级的差别也是很大的,而且上限就在HDL。依据自己的学习经验来说,相比verilog,HLS自由度太差,这样的灰盒开发老是让自己有种“心有余而力不足”的感觉。从成熟度来讲,Jason Cong的组一直有关于HLS的文章在发表,也从侧面说明了HLS本身还存在许多待优化完善的地方。HLS有其自己的优势使用场景,在这点上,我更愿将其与python的myhdl包相比较,myhdl在写tb时也有优势。总之,我并不想固守于某一工具,“君子生非异也,善假于物也”,拥抱新的工具,优势互补,乃吾之愿也。世界那么大,我想去看看(:dog
- SpinalHDL本身是基于Scala的一个库,像python的numpy一样。既然python能够在软件领域大放异彩,scala也很令人期待。
- 与chipsel相比,可能更像tensorflow和pytorch之争吧
几个需要越过的gap
Scala自身语法层面
- 数据类型
SpinalHDL自身设计
- 如何使用verilog IP: 借助SpinalHDL的库,or生成的verilog之后再和IP进行交互,or将IP打包一层后直接交互?
一些surprise
- =/=: 在不等于的表示形式中,这是最直接形象不过的了吧,哈哈。不过“===”就不太优雅了吧,不过这样可能方便对齐
Sometimes you just want to try a usage of a Spinal or Scala, but you don’t want to create a new project.
Practice is important for learning a new skill. So we did a lot of examples for you to try run.
Ref 2中的马車大佬参与了基于jupyter的一个学习教程,上面的这段话深得吾心,强烈推荐!
与verilog的对应映射上:
目前刚接触,还不能完成一个中型项目的实现,接下来打算边学习边整理出几项笔记来,毕竟verilog真是诸多缺点!
6191




被折叠的 条评论
为什么被折叠?



