从Chisel代码生成Verilog代码的最简单方法

mto*_*sch 4 scala verilog build chisel

从现有的Chisel代码生成Verilog代码的最简单方法是什么?

我是否必须创建自己的构建文件

例如,从一个独立的scala文件(AND.scala),如下所示..

import Chisel._

class AND extends Module {
  val io = IO(new Bundle {
    val a = Bool(INPUT)
    val b = Bool(INPUT)
    val out = Bool(OUTPUT)
  })
  io.out := io.a & io.b
}
Run Code Online (Sandbox Code Playgroud)

我在ubuntu 16.4下安装了完整的Chisel3工具链.

Jac*_*nig 5

请参阅这里的答案:是否有一个如何从Chisel3模块生成verilog的简单示例?

简而言之,在项目的根目录中创建一个build.sbt文件,其中包含以下内容:

scalaVersion := "2.12.8"

resolvers ++= Seq(
  Resolver.sonatypeRepo("snapshots"),
  Resolver.sonatypeRepo("releases")
)

libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "3.1.6"
Run Code Online (Sandbox Code Playgroud)

将此代码添加到AND.scala

object ANDDriver extends App {
  chisel3.Driver.execute(args, () => new AND)
}
Run Code Online (Sandbox Code Playgroud)

sbt run在项目根目录的命令行中键入.

  • 非常感谢你的快速回答!猜猜我监督了另一个线程.我只是尝试过它,它的工作原理.注意:必须安装jdk8和sbt才能工作!(jdk9对我不起作用) (2认同)
  • 是的!Chisel 和 FIRRTL 具有命令行选项。注意我们如何将 `args` 传递给 `chisel3.Driver.execute` 吗?我们正在将发送到“ANDDriver”的命令行参数传播到 Chisel。您可以像这样传递参数:`sbt "run --help"`。“目标文件夹”的具体参数是 `--target-dir` 或 `-td`,即 `sbt“运行-td my_target_dir` (2认同)