Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How do you use TSI Widget in Bringup VCU118? #967

Closed
michael-etzkorn opened this issue Sep 1, 2021 · 3 comments
Closed

How do you use TSI Widget in Bringup VCU118? #967

michael-etzkorn opened this issue Sep 1, 2021 · 3 comments
Labels

Comments

@michael-etzkorn
Copy link
Contributor

Hi I'm trying to understand what was connected over the FMC pins to utilize a TSI Host Widget for testing an SoC on the VCU118. After seeing ucb-bar/testchipip#116 I'm guessing the documentation doesn't exist yet, but I would love a rough English overview of how to take advantage of this widget. In the meantime, I'll look at how to utilize it by reading through the source code.

@abejgonzalez
Copy link
Contributor

Are you trying to test an SoC prototype on the VCU118 or are you trying to use the VCU118 as a test platform to interact with a separate DUT? The TSI Host Widget helps with the latter. It maps an MMIO TSI interface (see 1) that can be attached from a prototype SoC on the VCU118 to a slow digital SerDes port located on the FMC (see 2). Additionally, it exposes a memory port that connects to 1 channel of the DDR of the VCU118 so that the DUT can use it (the DUT sends memory requests over the slow SerDes port). I would look at 8.2.3.3 of the documentation, here the "Serialized TL" is going over the FMC cable.

1 - https://chipyard.readthedocs.io/en/latest/Advanced-Concepts/Chip-Communication.html#example-test-chip-bringup-communication
2 -

(FMCPMap("D17"), IOPin(io.serial.out.ready)),
(FMCPMap("D18"), IOPin(io.serial.out.valid)),
(FMCPMap("D11"), IOPin(io.serial.out.bits, 0)),
(FMCPMap("D12"), IOPin(io.serial.out.bits, 1)),
(FMCPMap("D14"), IOPin(io.serial.out.bits, 2)),
(FMCPMap("D15"), IOPin(io.serial.out.bits, 3)),
(FMCPMap("D26"), IOPin(io.serial.in.ready)),
(FMCPMap("D27"), IOPin(io.serial.in.valid)),
(FMCPMap("D20"), IOPin(io.serial.in.bits, 0)),
(FMCPMap("D21"), IOPin(io.serial.in.bits, 1)),
(FMCPMap("D23"), IOPin(io.serial.in.bits, 2)),
(FMCPMap("D24"), IOPin(io.serial.in.bits, 3)))

@michael-etzkorn
Copy link
Contributor Author

I see. I mistakenly thought it had to do with testing the SoC prototype on the VCU118. I assume we can use an ILA for that. I do find the idea of using the VCU118 as a test platform an interesting one. Something to explore later :) Thanks for the info!

@abejgonzalez
Copy link
Contributor

Correct. I would just use an ILA for that. Also, if you want more debugging capabilities and deterministic FPGA-accelerated simulation I would look at FireSim.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants