文章

Chisel教程 3.2:生成器-容器

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

阅读文章

Chisel教程 3.1:生成器-参数

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

阅读文章

Chisel教程 2.6:Testers2

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

阅读文章

Chisel教程 2.5:练习:一个有限脉冲响应(FIR)滤波器

现在您已经学习了Chisel的基础知识,那么让我们利用这些知识来构建一个FIR(有限脉冲响应)滤波器模块!

阅读文章

Chisel教程 2.4:时序逻辑

在这一节中,您将了解如何使用Chisel来实现时序逻辑。Chisel的力量不在于新的时序逻辑模式,而在于设计的参数化。在我们展示这种能力之前,我们必须了解时序逻辑是什么。

阅读文章

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

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

阅读文章

Chisel教程 2.3:控制流

这一节中会介绍软件生成器中的控制流和硬件中的控制流。 例如重新连接Chisel中的线(wire)会发生什么? 怎样定义一个具有两个以上输入的多路复用器? 完成这一节后,您就可以回答这些问题。

阅读文章

Chisel教程 2.2:组合逻辑

在这一节中,您将了解如何使用Chisel组件来实现组合逻辑。我们将演示三种基本的Chisel类型:UInt-无符号整数;SInt-有符号整数和Bool- true或false。

阅读文章

Chisel教程 2.1:您的第一个Chisel模块

通过上一章的学习,您应该对Scala已经有所了解,我们可以开始来看看怎么来实现硬件。在这一节中我们会看到一个完整的Chisel模块和它的测试。

阅读文章

Chisel教程 1:Scala介绍

在第一章中,您将学习如何编写基本的Scala代码以及如何阅读更高级的Scala代码

阅读文章