加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 是否有一个如何从Chisel3模块生成verilog的简单示例?

发布时间:2020-12-16 09:25:40 所属栏目:安全 来源:网络整理
导读:我正在寻找一个简单的howto来转换Verilog中的简单Chisel3模块. 我在凿子的官方网页上给出了Gcd源代码. import chisel3._ class GCD extends Module { val io = IO(new Bundle { val a = Input(UInt.width(32)) val b = Input(UInt.width(32)) val e = Input(
我正在寻找一个简单的howto来转换Verilog中的简单Chisel3模块.

我在凿子的官方网页上给出了Gcd源代码.

import chisel3._

  class GCD extends Module {
  val io = IO(new Bundle {
    val a  = Input(UInt.width(32))
    val b  = Input(UInt.width(32))
    val e  = Input(Bool())
    val z  = Output(UInt.width(32))
    val v  = Output(Bool())
  })
  val x = Reg(UInt.width( 32))
  val y = Reg(UInt.width( 32))
  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
  }

我找不到如何编写build.sbt和类实例化以在Verilog中转换它.

解决方法

感谢您对Chisel的兴趣!我们通常鼓励人们使用我们的凿子模板仓库作为Chisel3项目的起点: https://github.com/ucb-bar/chisel-template

如果你想做最准确的事情.创建此build.sbt并将其放在项目的根目录中.

scalaVersion := "2.11.12"

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

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

将上面的GCD源代码放在GCD.scala中,并将以下内容添加到文件中:

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

然后,您可以通过运行:sbt“runMain GCDDriver”生成Verilog.默认输出目录是当前目录>

您可以通过运行sbt“runMain GCDDriver –help”来查看可用的命令行选项.例如–target-dir将允许您更改目标目录

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读