gpt4 book ai didi

How to export TileLink node to LazyModule's output and generate respective verilog file(如何将TileLink节点导出到LazyModule的输出并生成相应的verilog文件)

转载 作者:bug小助手 更新时间:2023-10-28 10:23:53 26 4
gpt4 key购买 nike



I am trying to create a simple module with tilelink client connected to modules output. How to do it? Have been trying to figure it out for 20 hours at this, I am completly lost.

我正在尝试创建一个简单的模块与连接到模块输出的TableLink客户端。怎么做呢?我已经想了20个小时了,我完全搞不懂了。


I am trying the following:

我正在尝试以下几点:



class ArmleoCoreTop extends Module {
implicit val p = Parameters.empty
val acore = LazyModule(new ArmleoCore())
val macore = Module(acore.module)
val io = IO(acore.io_node.cloneType)
acore.io_node <> io


}

class ArmleoCore()(implicit p: Parameters) extends LazyModule {
val client = TLClientNode(Seq(TLMasterPortParameters.v1(Seq(TLMasterParameters.v1(
name = "ArmleoCore",
sourceId = IdRange(0, 4),
requestFifo = true,
visibility = Seq(AddressSet(0x0000_0000, (BigInt(1) << 64) - 1)))
))))

val io_node = InModuleBody { client.makeIOs() }
lazy val module = new ArmleoCoreImpl(this)


}

class ArmleoCoreImpl(outer: ArmleoCore) extends LazyModuleImp(outer) {
val (tl, edge) = outer.client.out(0)

val (legal, a) = edge.Get(0.U, "h1000".U, 0x4.U)
tl.a.bits := a
val io = IO(new Bundle() {
val legal = Output(Bool())
})
io.legal := legal


}

object ArmleoCoreDriver extends App {
(new chisel3.stage.ChiselStage).emitVerilog(new ArmleoCoreTop(), args)
}

But I am getting:

但我得到了:


(run-main-29) java.lang.IllegalArgumentException: requirement failed: Diplomacy has detected a problem with your graph:
[error] At the following node, the number of outward ports should equal the number of produced outward parameters.
[error] source acore.client node:
[error] parents: acore
[error] locator: (src/main/scala/armleocpu/ArmleoCore.scala:11:25)
[error]
[error] 0 outward ports connected: []
[error] 0 inward ports connected: []
[error]
[error] Downstreamed inward parameters: []
[error] Produced outward parameters: [TLMasterPortParameters(List(TLMasterParameters(ArmleoCore, IdRange(0,4), List(), List(AddressSet(0x0, 0xffffffffffffffff)), Set(), false, true, , TBALGFPH, false)), TLChannelBeatBytes(None,None,None,None), 0, List(), List(), List())]

Any ideas on how to properly "export" the node?

对于如何正确地“导出”该节点有什么建议吗?


更多回答
优秀答案推荐

Turns out I need to declare the port as "Manager" and makeIOs that port. It makes logical sense, cause you need to declare the slave's capabilities and stuff.

原来我需要将端口声明为“Manager”,并将IO设置为该端口。这是合乎逻辑的,因为你需要声明奴隶的能力和东西。


更多回答

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com