-
Notifications
You must be signed in to change notification settings - Fork 188
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
Refactor IOStreamer and QSPI #700
base: main
Are you sure you want to change the base?
Refactor IOStreamer and QSPI #700
Commits on Sep 22, 2024
-
gateware.iostream.IOStreamer: add support for sample delay
Added support for additionally delaying when the sample is taken. Normally the samples are taken at a time when the input signals change that have been launched at the same time as i_en, however this allows us to take samples later, specified in number of sync clock cycles. Additionally for ratio=2 iostreamer we can also delay by half a clock cycle.
Configuration menu - View commit details
-
Copy full SHA for cec6a72 - Browse repository at this point
Copy the full SHA cec6a72View commit details -
Configuration menu - View commit details
-
Copy full SHA for 10aa480 - Browse repository at this point
Copy the full SHA 10aa480View commit details -
Reapply "gateware.iostream.IOStreamer: fix bug for incorrect sampling…
… DDR inputs" This reverts commit d1cc5d9.
Configuration menu - View commit details
-
Copy full SHA for 1e00d28 - Browse repository at this point
Copy the full SHA 1e00d28View commit details -
Configuration menu - View commit details
-
Copy full SHA for 82a7b66 - Browse repository at this point
Copy the full SHA 82a7b66View commit details -
Configuration menu - View commit details
-
Copy full SHA for 465d306 - Browse repository at this point
Copy the full SHA 465d306View commit details -
Configuration menu - View commit details
-
Copy full SHA for 91f7757 - Browse repository at this point
Copy the full SHA 91f7757View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8756b70 - Browse repository at this point
Copy the full SHA 8756b70View commit details -
Configuration menu - View commit details
-
Copy full SHA for e1d96db - Browse repository at this point
Copy the full SHA e1d96dbView commit details -
test_iostream: sdr input sample test: use any edge to signify sampling
This changes how the sdr input sampling test works. Before only positive edges on clk_out would signify to the testbench that the input has been sampled. The old behavior put a constraint on payload, that i_en must be high only for every second payload. This was less then ideal for developing stronger skid buffer tests. This change slows down the clk_out signal, and now any edge (positive or negative), means that we have sampled something. In the waves only the shape of clk_out changes, the rest of the signals stay the same. (i.e. the same values are sampled at the same times) The DDR input sample test does not require a similar change to it.
Configuration menu - View commit details
-
Copy full SHA for 8718b8b - Browse repository at this point
Copy the full SHA 8718b8bView commit details -
gateware.iostream.IOStreamer: fix same-cycle skid buffer push/pop
There was a corner-case in IOStreamer where a sample could be lost, if it arrives to the skid buffer on the same cycle as when another sample is removed from the skid buffer. This PR also adds many more testcases.
Configuration menu - View commit details
-
Copy full SHA for 7a9d057 - Browse repository at this point
Copy the full SHA 7a9d057View commit details -
Configuration menu - View commit details
-
Copy full SHA for a0e43cc - Browse repository at this point
Copy the full SHA a0e43ccView commit details -
test_iostream: refactor sampling to make it use .sample()
This better relays the intent that we want to sample the "old" value of the inputs in case they change at the same time as clk_out, and may work better if input_generator_tb changes in the future.
Configuration menu - View commit details
-
Copy full SHA for eab84b8 - Browse repository at this point
Copy the full SHA eab84b8View commit details -
iostream ddr testcase: remove glitch mitigation, because new version …
…of SimulatableDDRBuffer is glitchless
Configuration menu - View commit details
-
Copy full SHA for c20339a - Browse repository at this point
Copy the full SHA c20339aView commit details -
gateware.iostream.IOStreamer: let o_stream transfer if i_stream not rdy
This change allows o_stream to take at least one transfer, as long as there are no sample transfers in flight. This will prevent deadlocks, for example if i_stream is implemented with something like: ```m.d.comb += ready.eq(valid)``` Which is valid according to stream rules. This commit also adds tests for this.
Configuration menu - View commit details
-
Copy full SHA for 0cd5632 - Browse repository at this point
Copy the full SHA 0cd5632View commit details -
Refactor everything around IOStreamer, and QSPIController
There is a slight change in behavior, because the "bypass" feature has been removed, CS clock pulses must now be at least 1 QPSI cycle long. `sample_delay_half_clocks` is now runtime-selectable. `max_sample_delay_half_clocks` is now a configuration option, for the IOStreamerTop to know how many resources to allocate. `min_divisor` is now a configuration option, that if set to > 0, allows IOStreamer to optimize away some uneeded resources. The bulk of the changes is about cutting up the functionality into smaller sub-components.
Configuration menu - View commit details
-
Copy full SHA for a4f9696 - Browse repository at this point
Copy the full SHA a4f9696View commit details