Chisel-Template 项目使用教程
1. 项目的目录结构及介绍
chisel-template/
├── build.sbt
├── project/
│ └── build.properties
├── src/
│ ├── main/
│ │ └── scala/
│ │ └── MyModule.scala
│ └── test/
│ └── scala/
│ └── MyModuleSpec.scala
├── .gitignore
├── LICENSE
└── README.md
目录结构介绍
- build.sbt: 项目的构建配置文件,定义了项目的依赖、版本等信息。
- project/: 包含项目的构建配置文件,如
build.properties
,用于指定构建工具的版本。 - src/main/scala/: 存放项目的主要代码文件,如
MyModule.scala
,这是项目的核心模块。 - src/test/scala/: 存放项目的测试代码文件,如
MyModuleSpec.scala
,用于测试核心模块的功能。 - .gitignore: 定义了哪些文件或目录不需要被 Git 版本控制系统跟踪。
- LICENSE: 项目的开源许可证文件。
- README.md: 项目的介绍文档,通常包含项目的概述、使用说明等信息。
2. 项目的启动文件介绍
MyModule.scala
package mypackage
import chisel3._
class MyModule extends Module {
val io = IO(new Bundle {
val in = Input(UInt(8.W))
val out = Output(UInt(8.W))
})
io.out := io.in
}
object MyModule extends App {
chisel3.Driver.execute(args, () => new MyModule)
}
文件介绍
- MyModule.scala: 这是项目的核心模块文件。它定义了一个简单的 Chisel 模块
MyModule
,该模块有一个输入端口in
和一个输出端口out
,并且输出端口的值等于输入端口的值。 - object MyModule extends App: 这是一个伴生对象,用于启动 Chisel 的生成器,生成 Verilog 代码。
3. 项目的配置文件介绍
build.sbt
name := "ChiselTemplate"
version := "0.1"
scalaVersion := "2.12.10"
resolvers ++= Seq(
Resolver.sonatypeRepo("snapshots"),
Resolver.sonatypeRepo("releases")
)
libraryDependencies ++= Seq(
"edu.berkeley.cs" %% "chisel3" % "3.4.0",
"edu.berkeley.cs" %% "chisel-iotesters" % "1.5.0"
)
文件介绍
- name: 定义项目的名称。
- version: 定义项目的版本号。
- scalaVersion: 定义项目使用的 Scala 版本。
- resolvers: 定义项目的依赖库的仓库地址。
- libraryDependencies: 定义项目依赖的库,如 Chisel 和 Chisel 测试工具。
通过以上配置,项目可以正确地构建和运行,生成 Verilog 代码并进行测试。