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的主流开发语言或可知否。
 
参考文献:
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
 

Chisel语言的更多相关文章

  1. Chisel3 - 运算符和位宽推断

    https://mp.weixin.qq.com/s/rI-CJM6GyI6EUHPZ3uYiFg   如同Verilog中的众多运算符,Chisel也针对自身的数据类型,提供了很多运算符.   Ch ...

  2. LLDB 和Chisel 使用例子

    打印变量 打印数字 (lldb) p/d 16 16 16 进制格式 (lldb) p/x 16 0x10 2 进制格式 (lldb) p/t 16 0b00000000000000000000000 ...

  3. Chisel Tutorial(一)——Chisel介绍

    Chisel是由伯克利大学公布的一种开源硬件构建语言,建立在Scala语言之上,是Scala特定领域语言的一个应用,具有高度參数化的生成器(highly parameterized generator ...

  4. Verilog缺少一个复合数据类型,如C语言中的结构体

    https://mp.weixin.qq.com/s/_9UsgUQv-MfLe8nS938cfQ Verilog中的数据类型(Data Type)是分散的,缺少一个复合数据类型:把多个wire, r ...

  5. Chisel3 - Chisel vs. Scala

    https://mp.weixin.qq.com/s/mTmXXBzSizgiigFYVQXKpw     介绍Chisel与Scala的不同与关联.   ​​   一. 层次高低   Chisel是 ...

  6. C语言 · 高精度加法

    问题描述 输入两个整数a和b,输出这两个整数的和.a和b都不超过100位. 算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储.对于这种问题,一般使用数组来处理. 定义一个数组A ...

  7. Windows server 2012 添加中文语言包(英文转为中文)(离线)

    Windows server 2012 添加中文语言包(英文转为中文)(离线) 相关资料: 公司环境:亚马孙aws虚拟机 英文版Windows2012 中文SQL Server2012安装包,需要安装 ...

  8. iOS开发系列--Swift语言

    概述 Swift是苹果2014年推出的全新的编程语言,它继承了C语言.ObjC的特性,且克服了C语言的兼容性问题.Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在 ...

  9. C语言 · Anagrams问题

    问题描述 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的.例如,"Unclear"和"Nuclear ...

随机推荐

  1. HDU1496(巧妙hash)

    Equations Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  2. 《Kubernetes权威指南第2版》学习(一) Kubernetes是什么

    1.1 Kubernetes是什么? 首先,它是一个全新的基于容器技术的分布式架构领先方案.是谷歌的Borg(大规模集群管理系统)的一个开源版本. 其次,如果系统设计遵循了Kubernetes的设计思 ...

  3. lua中文教程【高级知识】

    一.编译和运行和调试 1.lua和其他解释型语言一样,先转换成为中间码再执行 2.dofile和loadfile的区别:loadfile编译返回不执行,返回错误代码:dofile执行,返回错误信息 3 ...

  4. 新版蜀山剑侠传3D立体格斗全方位剖析

    国人终极格斗<蜀山剑侠传>,突破传统横版格斗"二次元"瓶颈,率先开辟3D立体横版格斗网游先河,实现"有纬度"的空间化立体式全景3D战斗体验!游戏大量 ...

  5. c# UserControl 如何在父窗口中显示Scroll

    1. UserControl 不应该是Dock = Fill, 而应该使用 Anchor 2. 父窗口(或者父控件,或者容器)的AutoScroll = True 3.UserControl 加入容器 ...

  6. 3.Python自我修炼(升仙中....整数,布尔值,字符串,for循环)

    python学习(整数,布尔值,字符串,for循环) 1.整数 ​ 在python3中所有的整数都是int类型. 但在python2中如果数据量比较大. 会使用long类型.但是在python3中不存 ...

  7. Linq 知识总结

    一.说明: LINQ,语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相 ...

  8. StringUtils.split()和string.split()的区别

    场景 出于业务考虑,将多个字符串拼接起来时,使用的分隔符是;,;.如果要将这样一个拼接来的字符串分割成原本的多个字符串时,就需要使用到jdk自带的split()方法.不过因为公司的编程规范,改为使用了 ...

  9. [Python]IndentationError: unindent does not match any outer indentation level

    这个是缩进没对齐 可能是混用了tab与空格,到这里显示空白就可以看出来.

  10. css实现发光的input输入框

    效果图截图: 案例代码示下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...