我正在學習 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,這使得它們連接起來。
但是我該怎么辦?
uj5u.com熱心網友回復:
通過這兩個批量連接,Chisel 無法找到將 B 和 C 5 大小的 Vec 分配給 B 10 大小的 Vec 的位置。
您應該連接 B 和 C vec 并撰寫一個批量連接:
A.write_ports <> B.write_ports C.write_ports
我在這里用scatie對其進行了測驗。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/312781.html
