Chisel是什么

Chisel是什么?

Chisel(读作[ˈtʃi:zɔːl]),全名ConstructingHardwarein aScalaEmbeddedLanguage,是由伯克利开发的硬件构建语言,开源。

官网:https://chisel.eecs.berkeley.edu/index.html

下面是官网上列出的一些特性:

硬件构造语言(非HLS)

嵌入在Scala编程语言中

抽象的数据类型和接口

层次化+面向对象+功能化构造

用Scala中的标记来高度参数化

多时钟域

大量的标准库,包括浮点单元

针对ASIC和FPGA产生低层次的Verilog代码

github开源,BSD License

什么叫硬件构建语言?是来代替Verilog/SystemVerilog的吗?

Chisel可以简单的理解成高度抽象的、高度参数化的Verilog生成器,利用Scala语言的语法糖,来快速高效的开发硬件设计。设计完成后,自动生成Verilog,再经由传统的数字IC设计方法(逻辑综合、APR)变成芯片。

我们注意几点:

Chisel是基于Scala,也可以说Chisel是用Scala语言写的针对硬件开发的库。用Chisel语言做设计就是在写Scala语言的程序。有点类似UVM是SystemVerilog语言的验证框架库。

Chisel的应用专注在前端设计,提高设计的效率。

生成的Verilog是低层次的,也就是类似门级的。

目前仍然通过DC或者Genus来综合。

与HLS有明显区别,不能直接变成工艺相关的门级电路。也许以后会增加这种功能,得看相关EDA的发展。

那Chisel相比Verilog有什么优势?

抽象程度高、高度参数化

前端设计周期缩短

可以走敏捷开发流程

除了可以生成Verilog,还可以生成C/CPP。

都说Chisel开发快,那具体有哪些语法特性?

各种变量类型可以转换

位宽可以自动推断

与Verilog一样可以方便的取位和拼接

加减法可以防溢出

可以检查敏感信号列表,防止生成latch

可以以黑盒子的方式调用Verilog,或者以in-line的方式嵌入Verilog

灵活高效的接口定义,再也不需要AUTOARG

可以定义多套不同的实现,比如FPGA和ASIC定义不同的RAM

可以处理多时钟域,处理异步信号的同步

入门级教程推荐

Scala语言教程

https://docs.scala-lang.org/tour/tour-of-scala.html

伯克利的Chisel教程:

https://github.com/ucb-bar/chisel-tutorial

Chisel的简明用户手册

https://github.com/freechipsproject/chisel3/wiki/Short-Users-Guide-to-Chisel

Jupyter格式的学习资料

https://github.com/freechipsproject/chisel-bootcamp

Chisel与RISC-V

虽然Chisel与RISC-V没有必然联系,但伯克利用Chisel设计的RISC-V CPU,所以大部分的RISC-V的CPU都是采用Chisel语言。由于RISC-V的流行,已经有不少公司在尝试Chisel,用来设计自己的CPU或者加速器。

在开源的世界,硬件的Chisel的地位已经跟软件的Python相当。

图片来自:

http://www.csl.cornell.edu/~cbatten/pdfs/batten-osh-pymtl-celerity-spring2018.pdf

推荐两个Chisel的视频

来自Google TPU团队分享使用Chisel的经验

Experiences Building Edge TPU with Chisel

观看链接:

#1

https://www.youtube.com/watch?v=x85342Cny8c&t=0s&list=PL02hojk7ZTSfSBibxsKdaABnZolPP7z1y&index=6

#2

https://pan.baidu.com/s/1xr9iVsl0N1bQ41NK9eEgDQ

Chisel 2018上的Chisel入门介绍

Chisel_Introduction_Intensive_Beginner_Track_Chisel_Community_Conference_2018

观看链接:

#1

https://www.youtube.com/watch?v=OhMuPQcyynY&t=338s&list=PL02hojk7ZTSfSBibxsKdaABnZolPP7z1y&index=19

#2

https://pan.baidu.com/s/1C7ECxig60Fvmbp8Lc2TMjQ

欢迎关注ExASIC

分享数字集成电路设计中的经验和方法

分享让工作更轻松

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181208G0ZY1100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券