2 votes

Comment puis-je générer FIRRTL à partir du code chisel ?

Comment puis-je générer un fichier FIRRTL à partir du code chisel ? J'ai installé sbt, firrtl et verilator selon le wiki github. Et créé un code chisel pour un simple additionneur. Je veux générer le FIRRTL et le convertir en Verilog ? Mon problème est de savoir comment obtenir le fichier firrtl à partir du code chisel. Merci.

Fichier source : MyQueueTest/src/main/scala/example/MyQueueDriver.scala

package example

import chisel3._
import chisel3.util._

class MyQueue extends Module {
  val io = IO(new Bundle {
    val a = Flipped(Decoupled(UInt(32.W)))
    val b = Flipped(Decoupled(UInt(32.W)))
    val z = Decoupled(UInt(32.W))
  })  

  val qa = Queue(io.a)
  val qb = Queue(io.b)

  qa.nodeq()
  qb.nodeq()

  when (qa.valid && qb.valid && io.z.ready) {
    io.z.enq(qa.deq() + qb.deq())
  }
}

object MyQueueDriver extends App {
  chisel3.Driver.execute(args, () => new MyQueue)
}

3voto

FabienM Points 1106

J'ai posé une question similaire aquí . La solution pourrait être d'utiliser le modèle complet fourni aquí ou vous pouvez simplement le faire :

Ajoutez ces lignes à la fin de vos sources scala :

object YourModuleDriver extends App {
  chisel3.Driver.execute(args, () => new YourModule)
}

Remplacer "YourModule" par le nom de votre module.

Et ajoutez un fichier build.sbt dans le même répertoire que vos sources avec ces lignes :

scalaVersion := "2.11.8"

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

libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "3.0-SNAPSHOT"

Pour générer FIRRTL et Verilog, il vous suffit de faire :

$ sbt "run-main YourModuleDriver"

Et les sources FIRRTL (yourmodule.fir) /Verilog (yourmodule.v) seront dans le répertoire généré.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X