Chisel是由伯克利大学发布的一种开源硬件构建语言,通过使用高度化的参数生成器和分层的专用硬件设计语言来支持高级硬件设计。
重要特性:
- 内嵌Scala编程语言
- 层次化+面向对象+功能构建
- 使用Scala中的元编程可以高度地参数化
- 支持专用设计语言的分层
- 生成低级Verilog设计文件,传递到标准ASIC或FPGA工具
采用Chisel设计的电路,经过编译,可以得到针对FPGA、ASIC的Verilog HDL代码,还可以得到对应的时钟精确C++模拟器。
- Chisel -> FPGA Verilog
- Chisel -> ASIC Verilog
- Chisel -> C++ Simulator
Scala语言:不仅是面向对象编程语言,而又无缝地结合了命令式编程和函数式编程风格。
Scala可以与Java互操作
。它用scalac这个编译器把源文件编译成Java的class文件(即在JVM上运行的字节码)。你可以从Scala中调用所有的Java类库,也同样可以从Java应用程序中调用Scala的代码。
目前,有多个开源项目使用 Chisel 作为开发语言,包括采用RISC-V架构的开源标量处理器Rocket、开源乱序执行处理器BOOM(Berkeley Out‐of‐Order Machine )等。