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中使用的内容。这些只是把数据添加到…

Builderchisel3.internal.Builder 包含全局状态(如当前打开的模块)并包含命令,生成

中间数据结构chisel3.firrtl.* ,在语法上与Firrtl非常相似。一旦整个电路完成elaborated,然后传递给顶层对象(a Circuit)。

Firrtl emitterchisel3.firrtl.Emitter 它将中间数据结构转换为字符串,可以将该字符串写入Firrtl文件以进行进一步处理。

还包括:

电路发生器的标准库chisel3.util.*。这些包括常用的接口和构造函数(比如 Decoupled,用现成的有效对封装信号)以及完全可参数化的电路生成器(比如仲裁器和多路复用器)。

Chisel Stage,chisel3.stage.* ,其中包含在标准Verilog生成和仿真测试中调用的编译和测试函数。这些也可以用作自定义流的一部分。

 

posted @ 2020-08-24 23:45  你好24h  阅读(623)  评论(0编辑  收藏  举报