小编ARK*_*K91的帖子

什么是凿子克隆

我是Chisel的新学习者.克隆在Chisel中的目的是什么?我在某处写到,"它创建了一个浅层副本".我们为什么需要它?这是一些例子.你能详细说明吗?

1)

  class Valid[+T <: Data](gen: T) extends Bundle
    {
    val valid = Output(Bool())
    val bits = Output(gen.chiselCloneType)//?????
    def fire(): Bool = valid
    override def cloneType: this.type = Valid(gen).asInstanceOf[this.type]
    }
    /** Adds a valid protocol to any interface */
    object Valid {
    def apply[T <: Data](gen: T): Valid[T] = new Valid(gen)
    }
Run Code Online (Sandbox Code Playgroud)

2)

class Packet(n: Int, w: Int) extends Bundle {
val address = UInt(Log2Up(n).W)
val payload = UInt(w.W)
override def cloneType: this.type =
new Packet(n, w).asInstanceOf[this.type]
}
Run Code Online (Sandbox Code Playgroud)

为什么cloneType是Override.它是否像Scala中的apply方法,或者只是更新Bundle中的cloneType方法.

谢谢

scala chisel

5
推荐指数
1
解决办法
249
查看次数

将 Chisel 转换为 Vhdl 和 SystemC?

我有一些关于凿子转换的问题。我知道这是理论上的,但如果有人提出他的意见会很好。

1)想问为什么Chisel不注重VHDL/SystemVerilog的转换。虽然 Verilog 和 VHDL 是相同的,但在一些国家,尤其是欧洲,更喜欢 VHDL。2) 同样,C++模型用于仿真模型。为什么不是 SystemC 用于此目的?

我正在阅读一些笔记,发现 FIRRTL 是转换 CHISEL-->FIRRTL--> Verilog 和 CHISEL ---> FIRRTL--> C++ 模型的中间人。

使用(低)FIRRTL 规范转换 VHDL 和 SystemC 模型是个好主意吗?

vhdl systemc chisel

5
推荐指数
1
解决办法
1035
查看次数

标签 统计

chisel ×2

scala ×1

systemc ×1

vhdl ×1