Chisel手册之Nodes

来源:互联网 发布:matlab 矩阵 编辑:程序博客网 时间:2024/06/05 03:32
本文档是Chisel的手册(在Scala嵌入语言中构建硬件)。Chisel是嵌入在高级编程语言Scala中的硬件构造语言。本手册提供了Chisel语言的全面概述和规范,它只是一组特殊的类定义,预定义对象和Scala中的使用约定。当你写一个Chisel程序时,你实际上是在写一个Scala程序。

本文是Chisel手册第一篇Nodes。

Nodes
Chisel中任何硬件设计最终都由节点对象的图表表示。Chisel中的用户代码生成此节点图,然后将其传递到Chisel后端以转换为Verilog或C ++代码。
节点类层次结构的最高级别如图所示。基本类别是:
Lit: 常量或文本
Op: 逻辑或算术操作
Updateable: 条件更新节点
Data: 具有类型的wire或port
Reg: 上升沿触发的寄存器
Mem: 存储



Lits
原始文本表示为Lit节点,定义如下:
class Lit extends Node { 
// original value
val inputVal: BigInt
}
原始文本包含位的集合。用户不直接创建原始文本,而是使用Type中定义的类型构造函数。

Ops
原始操作表示为如下定义的Op节点:
class Op extends Node {
// op name used during emission 
val op: String
}
Ops计算其输入的组合函数。
0 0