Chisel语言
1 What is Chisel?
Chisel(Constructing Hardware In a Scala Embedded Language)是一种嵌入在高级编程语言Scala的硬件构建语言。 Chisel是由伯克利大学发布的一种开源硬件构建语言,建立在Scala语言之上,是Scala特定领域语言的一个应用,具有高度参数化的生成器(highly parameterized generators),可以支持高级硬件设计。 Chisel实际上只是一些特殊的类定义,预定义对象的集合,使用Scala的用法,所以在写Chisel程序时实际上是在写Scala程序。 其特点如下:
- Hardware construction language (not C to Gates):硬件构建语言
- Embedded in the Scala programming language:内嵌于Scale程序设计语言
- Algebraic construction and wiring
- Abstract data types and interfaces:抽象的数据类型和接口
- Bulk connections:端口的批量连接
- Hierarchical + object oriented + functional construction:分层+面向对象+函数构建
- Highly parameterizable using metaprogramming in Scala:通过使用Scala的元编程实现高度的参数化
- Supports layering of domain specific languages
- Sizeable standard library including floating-point units:具有包含浮点单元在内的、可以调整大小的标准库
- Multiple clock domains:支持多时钟域
- Generates high-speed C++-based cycle-accurate software simulator:能够产生高速的、基于C++的周期精确软件模拟器
- Generates low-level Verilog designed to pass on to standard ASIC or FPGA tools:能够产生Verilog设计,从而在标准的ASIC、FPGA工具中使用
- Open source on github with modified BSD license:在github上开源,使用的是改进的BSD协议
2 我了解到Chisel语言是因为RISC-V是用 Chisel实现的,其基本的流程是Chisel会生成Verilog 综合代码和C/C++的模型代码。这点是不是和HLS将C/C++ 代码生成Verilog代码相似。Verilog到现在都已经30多年了,这么古老的语言,感觉对目前越来越大规模的芯片的开发效率会不会有点低,也许乘着人工智能浪潮这波浪潮,Chisel成为ASIC的主流开发语言或可知否。
参考文献:
1 硅农的一把新凿子:Chisel . http://www.misclogic.com/html/2017-05-07-chisel-vs-verilog.htm
2 Chisel入门教程. http://chuquan.me/2016/12/17/chisel-tutorial/
3 Scala. https://zh.wikipedia.org/wiki/Scala
4 Chisel. https://chisel.eecs.berkeley.edu/#getstarted(官网)
5 唐衫. 基于RISC-V做定制处理器. https://zhuanlan.zhihu.com/p/26969770.
6 唐衫. AI会给芯片设计带来什么? http://www.jintiankansha.me/t/6nJLvh1EKD
7 专用处理器是新希望,计算机架构宗师 Patterson 与 Hennessy 最新演讲实. http://www.voidcn.com/article/p-fsfmraso-yc.html