-
Notifications
You must be signed in to change notification settings - Fork 1
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
Got the DUT working (: #723
Open
rslawson
wants to merge
29
commits into
martijn/demo-dut
Choose a base branch
from
rs/demo-dut
base: martijn/demo-dut
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
+2,250
−49
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ca60e74
to
3458129
Compare
Allow `Vec 0` too. Fix bug in chainer taking the wrong `bwd`.
2d52f0b
to
9f3c248
Compare
3458129
to
63033a1
Compare
Use `includeIlaWb` field in switch demo processing element test
Okay, so a lot of things happened with this one. Let's start with the changes to the demo driver function. - I've reordered the function definitions in the big `let` to better reflect the order they're initially used in. - I've added in a function to deassert `probe_all_programmed`. Currently this is not necessary, however, if in the future more test cases are added to be run on this DUT, `probe_all_programmed` must be deasserted between each of them. However since the post function was removed from the HITL infra, the only way to do this currently is to make sure that the probe is deasserted before anything else happens in the driver function. - Unnecessary dumps of stdout/stderr of various handles were removed. These were only there from earlier debugging attempts and are no longer necessary. - Timeouts on cleanup for GDB and OpenOCD were extended from 5s to 10s. - GDB stdout is set to line buffering on our side. Hopefully GDB also does this. - Added in a whoami check to ensure that each of the CPUs reports its identity and that that report is what it should be. - THE TEST START PROBE IS ACTUALLY ASSERTED NOW, HOW ON EARTH DID I FORGET TO DO THIS PREVIOUSLY - `probe_all_programmed` is asserted. In `bittide/src/Bittide/Wishbone.hs`: - Added `wbAlwaysAckWith` and `whoAmIC`. The second one uses the first in order to report back a 4 byte identifier whenever accessed over the Wishbone bus. In `bittide-instances/src/Bittide/Instances/Hitl/Demo.hs`: - Each component was given a unique address in the management unit processing element config, and a `whoAmIC` component was added. - `whoAmIC` component added to SwCc at the same address as in the management unit. - A debug ILA was added to both the DUT and test top entity. - Naming and definitions of the FIFO overflow/underflow signals were changed. Previously they would only ever assert `True` if ALL FIFOs overflowed or underflowed, now they will assert if ANY do. Furthermore, in the test top entity they were used as `noFifoOverflows`/`noFifoUnderflows` without actually inverting the signals, so that was fixed. In `firmware-binaries/management-unit/memory.x`: - The address of data memory was changed to reflect the updated PE config. In `bittide-instances/data/openocd/vexriscv-2chain.tcl`: | - Added back in the environment variable grabbing for the TCL and telnet ports. - Updated target definitions so that they use ports in the opposite order as JTAG taps. Why do the taps and ports go in the opposite order that I expected? Excellent question, and I don't even have the beginnings of an answer to it.
63033a1
to
67a6502
Compare
a25fd9d
to
5b0c13d
Compare
5b0c13d
to
b10b0ae
Compare
bd103fc
to
7e9c28b
Compare
14147b5
to
f1ba04a
Compare
f1ba04a
to
38ec659
Compare
38ec659
to
fa79e7e
Compare
1cdb9f0
to
67d42e9
Compare
58db2bd
to
bf6cf73
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Okay so maybe this commit is a bit more than that. Here's a list of the things that changed:
Vivado logging directory is now configurable in the CI file. Currently, this is set toMoved to Allow setting of the Vivado logging directory #725_build/hitl/
.set -x
from the OpenOCD start script, which I introduced in the head commit of the original demo DUT branch.Circuit
that allows reporting of a 32 bit identifier over Wishbone.probe_all_programmed
signal.and
toor
.noFifoOverflows
andnoFifoUnderflows
tofifoOverflows
andfifoUnderflows
respectively, and adjusting their usage in the test wrapper.probe_all_programmed
in the case that more test cases are added later. This will prevent any issues from occurring should that happen, otherwise it's harmless.probe_all_programmed
once all devices are programmed.Added aMoved to Add wrapper function around thesetTimeout
function to our GDB utility file.set timeout
GDB command. #726Added aMoved to Add acatch
to running the driver function in Shake, allowing execution to continue to downloading the ILA data.catch
to the driver function to allow ILA data to be downloaded. #727