Draft
Conversation
Port of compressor-python for efficient low-bitwidth dot products using LUT6CY primitives instead of DSP blocks. Supports: - 7-Series (CARRY4), UltraScale+ (CARRY8), Versal (LOOKAHEAD8) - Signed/unsigned operands up to 4-bit - Fused accumulation with constant absorption - Two optimization paths: dotp_comp and add_multi
- mvu_vvu_axi.sv: USE_COMPRESSOR gating, MAX_IN_FLIGHT safety floor - add_multi.sv: CATCH_COMP macro for lane reduction compressors - mvu_vvu_axi_wrapper.v: COMP_PIPELINE_DEPTH parameter propagation
- Add compressor eligibility checks (_is_dotp_comp_eligible, etc.) - Call generate_dotp_comp() and generate_add_multi_comps() - Add generated files to RTL file list - Propagate COMP_PIPELINE_DEPTH and USE_COMPRESSOR template vars
- Core compressor unit tests (run_tests.sh): 21 XSim-based configs - dotp_comp integration tests: 8 configs (Versal + 7-Series) - add_multi integration tests: 8 configs (DSP lane reduction) - MVU synthesis tests for timing closure validation - REPORT.md: Status, known issues, benchmarking results - TEST_GUIDE.md: Testing procedures and troubleshooting
Correct LUT6_2 predicate order and CARRY4 carry-in wiring for MuxCYRippleSum and MuxCYPredAdder counters on 7-Series FPGAs. Key fixes: - Swap O5/O6 outputs to match hardware behavior - Add initial carry-in=0 for first LUT in chain - Implement MuxCYPredAdder for horizontal multi-column absorption Re-enables gate absorption optimization for 7-Series targets.
Compressor path handles full weight range (no narrow weight restriction). DSP path uses NARROW_WEIGHTS module parameter for range adjustment. This enables RTL MVAU on 7-Series (DSP48E1) with full weight ranges.
Add COMP_PIPELINE_DEPTH and USE_COMPRESSOR template vars to VVU for consistency with MVU. VVU does not use compressor (different compute pattern), so USE_COMPRESSOR=0.
Aggregates CATCH_COMP entries from all MVAU nodes into a single add_multi.sv file during out-of-context synthesis. Required for add_multi compressor path to work in full builds.
Ignore Claude Code workspace files and benchmark results directories.
Remove test scripts and templates that are redundant with pytest coverage: - run_add_multi_comp_tests.sh + add_multi_comp_tb_template.sv/.tcl - run_mvu_add_multi_comp_tests.sh + mvu_add_multi_comp_tb_template.sv/.tcl - run_mvu_comp_synth_tests.sh + mvu_comp_synth_tb_template.tcl These remain available in the compressor-benchmarking branch for detailed performance analysis. Core validation covered by: - run_tests.sh (compressor unit tests) - run_dotp_comp_tests.sh (dotp_comp integration) - run_mvu_comp_tests.sh (full MVU integration) - pytest test_fpgadataflow_rtl_mvau (FINN node tests)
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.
No description provided.