【问题标题】:How does chisel connect to such a port?凿子如何连接到这样的端口?
【发布时间】:2021-10-11 02:10:28
【问题描述】:

我正在学习 Boomv3 的设计。

A 部分有一个写端口。格式是

val write_ports = Flipped(Vec(10, Valid(new RegisterFileWritePort(maxPregSz, registerWidth))))

B 有一个写端口。格式是

val write_ports = Vec(5, Valid(new RegisterFileWritePort(maxPregSz, 4)))

C 有一个写端口。格式是

val write_ports = Vec(5, Valid(new RegisterFileWritePort(maxPregSz, 4)))

我想将 B 和 C 连接到 A。

当我使用时

A.write_ports  <> B.write_ports
A.write_ports  <> C.write_ports

,这里会出现failed @: Left and Right are different length Vecs 错误。

但我的初衷是A的长度是10,B和C的长度都是5,这样就可以连接起来了。

但是我该怎么办?

【问题讨论】:

    标签: scala riscv chisel


    【解决方案1】:

    有了这两个批量连接,Chisel 找不到将 B 和 C 5 大小的 Vec 分配给 B 10 大小的 Vec。

    您应该连接 B 和 C vec 并编写一个批量连接:

    A.write_ports  <> B.write_ports ++ C.write_ports
    

    我用scatie here测试了它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 2017-04-25
      • 2022-11-21
      • 1970-01-01
      相关资源
      最近更新 更多