regmapper.RegisterRouter vs tilelink.RegisterRouter

24 views
Skip to first unread message

Zixian Cai

unread,
Jun 5, 2024, 6:12:29 AMJun 5
to Chipyard
Hi all,

I found these two similar classes when trying to implement an MMIO device attached to a TileLink Bus.

I wonder what the differences are, and when should I use one vs another?

Jerry Zhao

unread,
Jun 5, 2024, 2:25:01 PMJun 5
to chip...@googlegroups.com
Follow the GCDTL example for an example of a MMIO device attached to a TileLink bus.

-Jerry

--
You received this message because you are subscribed to the Google Groups "Chipyard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chipyard+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/chipyard/dc370efc-f443-43d2-9ea4-7bc1247da3den%40googlegroups.com.

Zixian Cai

unread,
Jun 6, 2024, 12:39:28 AMJun 6
to Chipyard
Hi Jerry,

Thanks. I can see that GCDTL uses tilelink.TLRegisterRouter, but it has a deprecation warning of "Use HasTLControlRegMap+HasInterruptSources traits in place of TLRegisterRouter+TLRegBundle+TLRegModule".
HasTLControlRegMap requires `this` to be regmapper.RegisterRouter, so I'm guessing that it's the more modern version?
I can find others external peripherals (such as GPIO and I2C) extending regmapper.IORegisterRouter.

Separately, I can also see that the Chipyard documentation uses TLRegisterNode directly https://chipyard.readthedocs.io/en/1.11.0/TileLink-Diplomacy-Reference/Register-Router.html .

Could you help clarify what the best practices are so that I can avoid using things that will be removed down the line?

Many thanks!

Sincerely,
Zixian

Jerry Zhao

unread,
Jun 6, 2024, 2:54:14 PMJun 6
to chip...@googlegroups.com
The latest version of the GCD example uses TLRegisterNode. 

-Jerry

Reply all
Reply to author
Forward
0 new messages