복붙노트

[SCALA] Chisel3 모듈에서 Verilog를 생성하는 방법의 간단한 예를 들어 있나요?

SCALA

Chisel3 모듈에서 Verilog를 생성하는 방법의 간단한 예를 들어 있나요?

나는의 Verilog에서 간단한 Chisel3 모듈을 변환하는 간단한 하우투를 찾고 있어요.

나는 부정 행위의 공식 웹 페이지에 주어진 GCD 소스 코드를 가지고.

  import chisel3._

  class GCD extends Module {
    val io = IO(new Bundle {
      val a  = Input(UInt(32.W))
      val b  = Input(UInt(32.W))
      val e  = Input(Bool())
      val z  = Output(UInt(32.W))
      val v  = Output(Bool())
    })
    val x = Reg(UInt(32.W))
    val y = Reg(UInt(32.W))
    when (x > y) {
      x := x -% y
    }.otherwise {
      y := y -% x
    }
    when (io.e) {
      x := io.a
      y := io.b
    }
    io.z := x
    io.v := y === 0.U
  }

내가 Verilog를 그것을 변환하는 build.sbt 및 클래스 인스턴스를 작성하는 방법을 찾을 수 없습니다.

해결법

  1. ==============================

    1.부정 행위에 관심을 가져 주셔서 감사합니다! 우리는 일반적으로 Chisel3 프로젝트를위한 시작 지점으로 우리 끌 템플릿의 REPO를 사용하는 사람들을 격려 : https://github.com/ucb-bar/chisel-template

    부정 행위에 관심을 가져 주셔서 감사합니다! 우리는 일반적으로 Chisel3 프로젝트를위한 시작 지점으로 우리 끌 템플릿의 REPO를 사용하는 사람들을 격려 : https://github.com/ucb-bar/chisel-template

    당신은 대부분의 베어에게 가능한 일을합니다. 이 build.sbt를 생성하고이 프로젝트의 루트 디렉토리에 넣어.

    scalaVersion := "2.12.10"
    
    resolvers ++= Seq(
      Resolver.sonatypeRepo("snapshots"),
      Resolver.sonatypeRepo("releases")
    )
    
    libraryDependencies += "edu.berkeley.cs" %% "chisel3" % "3.2.+"
    

    GCD.scala에 위의 GCD 소스 코드를 넣고 파일에 다음을 추가합니다 :

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

    SBT "runMain GCDDriver을"그런 다음 실행하여 Verilog를 생성 할 수 있습니다. 기본 출력 디렉토리는 현재 디렉토리입니다>

    당신은 명령 줄 옵션 "runMain GCDDriver --help"예를 들어 --target-디렉토리가 대상 디렉토리를 변경하게됩니다 들어 SBT을 실행하여 사용할 수있는 볼 수 있습니다

  2. from https://stackoverflow.com/questions/40470153/is-there-a-simple-example-of-how-to-generate-verilog-from-chisel3-module by cc-by-sa and MIT license