-
Notifications
You must be signed in to change notification settings - Fork 651
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
Provide example of tethered-config simulation with MultiHarnessBinders #1484
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the OBUS hold things like a scratchpad on the chip? Am I interpreting that correctly?
generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala
Outdated
Show resolved
Hide resolved
generators/chipyard/src/main/scala/clocking/HasChipyardPRCI.scala
Outdated
Show resolved
Hide resolved
generators/chipyard/src/main/scala/harness/MultiHarnesBinders.scala
Outdated
Show resolved
Hide resolved
OBUS is the bus which connects to off-chip memory/devices. It is intended to abstract away the physical implementation of the interface (SerialTL, etc.) from the clock crossings to the the interface, from any address remapping that needs to be done before going over that interface. |
Co-authored-by: Abraham Gonzalez <abe.j.gonza@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This adds a
BringupHostConfig
to go alongside theChipLikeRocketConfig
. TheBringupHostConfig
is the FPGA design that can bring-up theChipLikeRocketConfig
.This also adds the
TetheredChipLikeRocketConfig
, which uses theMultiChip
/MultiHarnessBinder
APIs to buildChipLikeRocketConfig
aschiptop0
,BringupHostConfig
aschiptop1
, connect their serial-tl ports, connect SimTSI to theBringupHostConfig
's UART-TSI pot, and simulate the entire system. The entire system can be simulated in RTL simulation, and tested with the standardtestchip_tsi
plusarg/htif commands.Ex:
This approach to simulation will be very slow, as it will simulate both the slow TSI-over-UART and serial-tilelink interfaces at accurate frequencies.
The procedure for those using Chipyard to tape-out should be to craft an equivalent
ChipConfig
andBringUpHostConfig
specific to their design, connect them in aMultiChip
harness configuration using theMultiHarnessBinder
API to model the chip-to-FPGA link, and simulate the system entirely in RTL simulation before tapeout.Added:
MultiHarnessBinder
- like HarnessBinders, but for chiptop-to-chiptop connectionsCanHavePeripheryUARTTSI
- adds a UART port that transports TSI, which gets converted to a tilelink master. This should only ever be built as part of FPGA bringup platforms.OBUS
- "OffchipBus" - devices which transport tilelink to an off-chip tilelink network (ex: FPGA bringup board) should hang off this. For a chip, the OBUS contains all the off-chip memory. For a bringup FPGA config, the OBUS contains the chip's on-chip memory.BringupHostConfig
- a no-core config that just contains some buses to support theChipConfig
's off-chip memory, and bridging between UART-TSI and the test chip.Changes:
Fixed:
run-binary-debug BINARY=none
should not attempt to objdump noneRelated PRs / Issues:
Type of change:
Impact:
Contributor Checklist:
main
as the base branch?changelog:<topic>
label?changelog:
label?.conda-lock.yml
file if you updated the conda requirements file?Please Backport
?