• 发文
  • 评论
  • 微博
  • 空间
  • 微信

Chisel是什么

ExASIC 2020-07-14 14:10 发文


Chisel是什么?


Chisel(读作[ˈtʃi:zɔːl]),全名Constructing Hardware in a Scala Embedded Language,是由伯克利开发的硬件构建语言,开源。




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

硬件构造语言(非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

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



Chisel与RISC-V


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


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



声明:本文为OFweek维科号作者发布,不代表OFweek维科号立场。如有侵权或其他问题,请及时联系我们举报。
2
评论

评论

    相关阅读

    暂无数据

    ExASIC

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

    举报文章问题

    ×
    • 营销广告
    • 重复、旧闻
    • 格式问题
    • 低俗
    • 标题夸张
    • 与事实不符
    • 疑似抄袭
    • 我有话要说
    确定 取消

    举报评论问题

    ×
    • 淫秽色情
    • 营销广告
    • 恶意攻击谩骂
    • 我要吐槽
    确定 取消

    用户登录×

    请输入用户名/手机/邮箱

    请输入密码