第零章 序 Chisel教程汇总

笔者目前西安交通大学微电子硕士在读,研究方向为数字集成电路设计与体系结构。鉴于目前RISC-V的火热程度,笔者参与了课题组的RISC-V项目,并了解、学习了颇受关注的新型硬件构建语言——Chisel,当前参与的神经网络加速器设计便是使用Chisel开发的。这是一门敏捷开发语言,据称要比传统的Verilog语言快很多。在亲身使用过后,笔者发现确实快了不少。这主要得益于Scala作为高级语言的简洁风格和强大的抽象能力。能在硬件语言里引入面向对象属性进行设计,确实不容易。SystemVerilog的面向对象只能用于验证,而SystemC的效果尚不尽人意。

由于目前关于Chisel的详细教程很少,所以笔者打算在博客上推出一系列的相关文章。由于笔者使用Chisel的经验也并不丰富,谈不上信手拈来、融会贯通,因此,这些文章更多地是希望给后来人分享学习过程中的经验、体会。希望帮助读者加速学习的过程,早日能用Chisel开发硬件。鉴于笔者才疏学浅,水平有限,内容有不当之处还望读者指出,一同讨论,共同进步。

因为Chisel是以Scala构建的,所以前面一部分文章都是讲解如何学习Scala,后面才是Chisel的内容。关于Scala进阶的内容,对于只想学习基本的硬件描述功能的读者,可以跳过。文章持续更新,在这里先做一个传送门的汇总。

 

第一章   新型敏捷硬件开发语言——Chisel和Scala

第二章   Scala入门——让你的代码跑起来

第三章   Scala基础——变量定义与基本类型

第四章   Scala基础——函数及其几种形式

第五章   Scala基础——类和对象

第六章   Scala基础——操作符即方法

第七章   Scala基础——类继承

第八章   Scala基础——特质

第九章   Scala基础——包和导入

第十章   Scala基础——集合

第十一章   Scala基础——内建控制结构

第十二章   Scala进阶——模式匹配

第十三章   Scala进阶——类型参数化

第十四章   Scala进阶——抽象成员

第十五章   Scala进阶——隐式转换与隐式参数

第十六章   Chisel入门——搭建开发环境

第十七章   Chisel基础——数据类型

第十八章   Chisel基础——模块与硬件类型

第十九章   Chisel基础——常用的硬件原语

第二十章   Chisel基础——生成Verilog与基本测试

第二十一章   Chisel基础——黑盒

第二十二章   Chisel基础——多时钟域设计

第二十三章   Chisel基础——函数的应用

第二十四章   Chisel基础——其它议题

第二十五章   Chisel进阶——隐式参数的应用(完结)

你可能感兴趣的:(Scala,Chisel,RISC-V)