Repository navigation
Conversation
Change run_sim.sh from using grep to check each module for compilation errors or tb errors, to checking the exit status from the tb. Removed now-unused -o pipefail from flags . In order to see entire tb run before exiting, added an error counter to each tb, read with `$fatal` at the end to produce exit status.
…g_tb Icarus Verilog 12.0 can't force an entire unpacked array or a single word of one, so IB/OB/size are seeded with plain hierarchical assignments instead. Addresses review comment from prof Rovinski on PR realise-lab#14.
Added documentation headers to all modules, matching bram_tree.sv
the restored comment contained a reference to an o_ready port that does not exist in the bram_tree.sv module. The copied comment on bram_tree_pipelined.sv also had this mistake. Both removed, though they describe something that could be quite useful...
src files wip - my bash script didnt do quite as well on those
had to update the comments as well and fix some script failure by hand
…orm across modules
Refactor/interface naming
…en using contents of hybrid_systolic_heap
…s a clobbered IB[0]
Pr/systolic data loss
…ay logic The heap buffer's eviction becomes a replace on the tree and on the buffer: writing heap_IB[2] races the sorting network.
…always so VCS and Xcelium elaborate
…hile a top moves or a tree is busy
This file contains hidden or 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
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.
depends on #23
After PR #23, the limiting path ran through
o_read_ready:buffer compares -> shift-valid scan ->
m_rd_rdy/h_rd_rdy->o_read_ready-> user command vs pull/evict -> heap buffer decode -> shift-valid scan -> buffer register enablesThe buffers' command-dependent control is now computed for both values of o_read_ready in parallel, and the real value
selects between them last. Readiness and decode run side by side instead of end to end. This is an exact rewrite
(f(r) = r ? f(1) : f(0)), so behaviour is identical cycle for cycle.Against the original design, that's 2.1x Fmax and 2.0–2.1x throughput at 128b .
Changes
hybrid_systolic_heap.sv:o_read_ready then selects. Only narrow control is duplicated - 128-bit data and compares are computed once.
In the region slack table, the main->heap and heap->heap buffer paths go from about −1.0 ns to +0.1 ns at 125 MHz.
Notes