什么是 Chisel

Chisel(Constructing Hardware In a Scala Embedded Language)是UC Berkeley开发的一种开源硬件构造语言。它是建构在Scala语言之上的领域专用语言(DSL),支持高度参数化的硬件生成器。

开始学习Chisel

我们正在陆续整理和翻译Chisel相关的文章。您可以从这里开始了解并学习Chisel

基于Chisel的项目

这里是一系列基于Chisel开发的项目。可以借此了解Chisel的能力。

加入Chisel中文社区

我们旨在建立一个开放的Chisel中文社区,通过Chisel作为起始点,进而研究学习芯片架构设计方法以及最新进展。期待您的加入!

基于Chisel的项目

我们整理了基于Chisel开发的项目。其中有许多已经有非常多的tape out经验。值得借鉴和参考。

TDD和敏捷开发

借鉴软件开发中的行之有效的方法,提高硬件代码的可靠性和效率。

中间语言FIRRTL

借鉴于LLVM中间语言的想法,使得我们可以用Scala来表示并且生成硬件。

代码重用

基于Scala的生成器可以让我们像软件一样复用硬件模块的代码,从而像软件一样形成一套模块库。

Chisel教程 3.2:生成器-容器

生成器经常需要处理可变数量的对象,无论它们是IO,模块还是测试向量。 容器(collections)是处理此类情况的重要基础。 本模块将介绍Scala容器以及如何将它们与Chisel生成器一起使用。

阅读文章

Chisel教程 3.1:生成器-参数

要使Chisel模块成为代码生成器,必须有一些东西可以告诉生成器应该如何处理它的工作。 在本节中,我们将讨论模块的参数化,参数化的各种方法以及Scala语言特性。 能够靠参数传递实现的丰富程度与其生成的电路的丰富程度直接相关。 参数应提供有用的默认值,易于设置,并防止非法或无意义的值。 对于更复杂的系统,如果它们可以在局部被覆盖(override),而不会无意中影响其他模块中的使用,则非常有用。

阅读文章

Chisel教程 2.6:Testers2

Chisel团队一直在改进测试框架,新的测试框架我们称为Testers2,这一节将学习Testers2的基本功能。

阅读文章

BOOM项目介绍

BOOM是伯克利乱序执行机器(Berkeley Out-of-Order Machine)的缩写,采用Chisel硬件构造语言编写,是一款开源的,可综合,参数化的RV64GC RISC-V核心(core)的实现。

阅读文章

Rocket Chip介绍

Rocket Chip是基于Chisel开发的一款开源SoC生成器(Generator),它包含了由core,cache以及互连(interconnect)等构成的模块库,以此为基础构成一个完整的SoC,并可以生成可综合的RTL代码。

阅读文章

x86/x64架构中的系统地址映射的初始化,第1部分:基于PCI的系统

本文是关于PCI扩展ROM地址映射的说明,初级程序员有时会对设备内存(例如PCI设备内存)到系统地址的映射感到困惑。本文介绍了系统地址映射的初始化过程,重点介绍了控制该映射的PCI芯片寄存器的初始化。

阅读文章