Chisel3 & Scala & Rocket-chip verilog的生成
首先弄清楚这三者的关系。
Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性[1]。
Chisel(Constructing Hardware In a Scala Embedded Language)是一种嵌入在高阶编程语言 Scala 中用来构造硬件的语言。Chisel实际上只是一组特殊的用Scala 事先定义的类、对象 和使用惯例,所以写一份Chisel程序的时候,你实际上在写一份Scala程序[2]。
Rocket Chip is an open-source Sysem-on-Chip design generator that emits synthesizable RTL. It leverages the Chisel hardware construction language to compose a library of sophisticated generators for cores, caches, and interconnects into an integrated SoC[3].
由上面描述,应该可以知道,Rocket Chip是一个开源的SOC生成器,可以根据自己的配置生成不同的SOC(RTL),而Rocket Chip是基于Chisel完成的,最后Chisel是在Scala中定义的特殊类和对象,因此修改Rocket Chip的源代码就是修改Scala代码,利用Chisel编译出的文件为*.fir,要将*.fir转换为verilog RTL还需要firrtl这个工具。
Rocket Chip整个项目的Scala编译都基于sbt的,而sbt是基于java的,因此要生成Rocket-chip RTL,要先安装java,sbt,chisel3和firrtl。注意Rocket-chip RTL的生成不会用到工具链,需要编译工具链时才需

最低0.47元/天 解锁文章
5004





