chisel初见2
Startecootcamp互动教程
推荐的 在线chisel训练营 是开始和学习chisel的方式。不需要设置(在浏览器中运行),也不需要有Scala的知识储备。
经典chisel教程 包含小练习和运行在您的计算机上。
开始chisel工程吧
有关如何设置环境以便在本地运行Chisel,请参阅设置说明。
当您准备在Chisel中构建自己的电路时,建议您从Chisel Template存储库开始,它提供了预配置的项目、示例设计和测试平台。按照chisel-template readme开始。如果你坚持建立自己的项目,神奇的SBT如下:
resolvers ++= Seq( Resolver.sonatypeRepo("snapshots"), Resolver.sonatypeRepo("releases") ) libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "3.2-SNAPSHOT" libraryDependencies += "edu.berkeley.cs" %% "chisel-testers2" % "0.1-SNAPSHOT"
设计验证
chisel有以下基于模拟的验证工具:
iotester,特别是PeekPokeTester,提供了(peek、poke、expect)类似于不可综合的verilog testbench。
testers2是的一个正在开发的PeekPokeTester替代品,它提供了相同的基本构造,但具有streamlined interface和fork和join的并发支持
文档
有用的资源
备忘单:一个2页的基础chisel语法和库的参考
wiki:其中包含各种特定特性的教程和经常被问到的问题
ScalaDoc:Chise公开的功能的清单、描述和示例
Gitter:你可以在这里问问题或讨论任何事
编译和测试chisel
首先,克隆并构建FIRRTL和Treadle的主分支,因为Chisel的主分支可能会依赖于这些项目中未发布的变更:
git clone https://github.com/freechipsproject/firrtl.git git clone https://github.com/freechipsproject/treadle.git pushd firrtl; sbt publishLocal; popd pushd treadle; sbt publishLocal; popd
克隆和建立chisel库:
git clone https://github.com/freechipsproject/chisel3.git cd chisel3 sbt compile
如果编译成功,则可以通过调用以下命令运行包含的单元测试:
sbt test
在本地chisel运行项目
要使用Chisel(master 分支)的开发版本,您需要从source构建和publishLocal。存储库版本可以在build.sbt文件中找到。
version := "3.2-SNAPSHOT"
要将你的Chisel版本发布到本地lvy (sbt的依赖管理器)存储库,运行:
sbt publishLocal
编译后的版本放在~/.ivy2/local/edu.berkeley.cs /.中。
如果需要取消发布Chisel的本地副本,请删除~/.ivy2/local/edu.berkeley.cs /.中生成的目录。
为了让您的项目使用这个版本的Chisel,您应该更新项目中libraryDependencies设置build.sbt文件:
libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "3.2-SNAPSHOT"
chisel3体系结构概述
Chisel3编译器由以下几个主要部分组成
前端:chisel3.* ,即chisel的公开可见的“APl”和Chisel RTL中使用的内容。这些只是把数据添加到…
Builder:chisel3.internal.Builder 包含全局状态(如当前打开的模块)并包含命令,生成
中间数据结构:chisel3.firrtl.* ,在语法上与Firrtl非常相似。一旦整个电路完成elaborated,然后传递给顶层对象(a Circuit
)。
Firrtl emitter:chisel3.firrtl.Emitter 它将中间数据结构转换为字符串,可以将该字符串写入Firrtl文件以进行进一步处理。
还包括:
电路发生器的标准库,chisel3.util.*。这些包括常用的接口和构造函数(比如 Decoupled,用现成的有效对封装信号)以及完全可参数化的电路生成器(比如仲裁器和多路复用器)。
Chisel Stage,chisel3.stage.* ,其中包含在标准Verilog生成和仿真测试中调用的编译和测试函数。这些也可以用作自定义流的一部分。