Copilot
b80f166997
Export master interface address widths in package parameters ( #16 )
...
* Initial plan
* Add master address width parameters to exported package
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
2025-10-26 19:05:45 -07:00
Copilot
95fda3abaa
Refactor cpuif classes to use Interface abstraction ( #14 )
...
* Initial plan
* Refactor cpuif classes to use Interface abstraction
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Fix type annotation consistency in Interface.signal()
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Add runtime validation and documentation for indexer types
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Remove unused variable in SVInterface.signal()
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Fix master port directions in APB3 and APB4 flat interfaces
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Fix AXI4LiteCpuifFlat and apply code formatting
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* PSELx -> PSEL
* cleanup marker warnings
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
2025-10-26 18:47:11 -07:00
Arnav Sacheti
b1f1bf983a
Refactor tests (better grouping + cocotb support) ( #15 )
...
* initial refactor
* fix cocotb tests
* fix typecheck
* install verilator
2025-10-26 17:56:35 -07:00
Arnav Sacheti
93276ff616
fix ( #13 )
...
* fix
* fix pyrefly
* remove tests
* Update tests/unit/test_exporter.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update src/peakrdl_busdecoder/listener.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update tests/unit/test_exporter.py
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fix iter
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-10-26 14:40:03 -07:00
Copilot
c9addd6ac2
Fix decoder generation for external nested addressable components and add max-decode-depth parameter ( #12 )
...
* Initial plan
* Fix bus decoder to skip external nested components
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Optimize external children check using generator expressions
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Add max-decode-depth CLI argument
Added --max-decode-depth argument that:
- Is added to CLI arguments in __peakrdl__.py
- Piped into design state via ExporterKwargs and DesignStateKwargs
- Used to control max depth in listener.py
- All 66 tests pass including new test for the parameter
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
2025-10-25 19:56:49 -07:00
Copilot
04971bdb8e
Fix non-synthesizable code generation for nested addrmaps with arrays ( #11 )
...
* Initial plan
* Fix non-synthesizable code for nested addrmaps with arrays
Fixed bug where array dimensions were used instead of strides in decode logic.
For nested addrmaps with arrays like inner[4] @ 0x0 += 0x100, the generated
code was incorrectly using the dimension (4) instead of the stride (0x100).
This resulted in non-synthesizable SystemVerilog with incorrect address decoding.
The fix calculates proper strides for each dimension, including support for
multi-dimensional arrays like [2][3] where each dimension has a different stride.
Added comprehensive tests to prevent regression.
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Improve code comments for stride calculation clarity
Added more detailed comments explaining the stride calculation logic,
including a concrete example showing how strides are calculated for
multi-dimensional arrays.
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
2025-10-24 10:35:28 -07:00
Copilot
4dc61d24ca
Add cocotb testbench for validating generated bus decoder RTL across APB3, APB4, and AXI4-Lite interfaces ( #9 )
...
* Initial plan
* Add cocotb test infrastructure and testbenches for APB3, APB4, and AXI4-Lite
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Add integration tests, examples, and documentation for cocotb testbenches
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Address code review feedback: use relative imports and update installation docs
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Add implementation summary document
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Merge cocotb dependencies into test group
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Add optional cocotb simulation workflow with Icarus Verilog
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
2025-10-23 23:46:51 -07:00
Copilot
8cfd2a86c1
Fix status checks: lint, format, typecheck, and tests ( #8 )
...
* Initial plan
* Initial assessment - identifying issues to fix
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Fix type check and test issues to pass all status checks
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Add coverage.xml to .gitignore and remove from tracking
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Use more specific pattern for coverage.xml in .gitignore
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
2025-10-23 23:22:09 -07:00
Copilot
4b87556135
Add comprehensive test suite for PeakRDL-BusDecoder with sub-block and integration tests ( #6 )
...
* Initial plan
* Add comprehensive test suite for PeakRDL-BusDecoder
- Added tests for utility functions (clog2, is_pow2, roundup_pow2, get_indexed_path)
- Added tests for body classes (Body, ForLoopBody, IfBody, CombinationalBody, StructBody)
- Added tests for code generators (DecodeLogicGenerator, StructGenerator)
- Added tests for DesignState configuration
- Added integration tests for BusDecoderExporter
- Added tests for APB4 interface generation
- Fixed conftest to properly handle RDLCompiler and temporary files
- All 56 tests passing
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Format test files with ruff
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
2025-10-23 22:26:03 -07:00
Copilot
2ca1ce4e27
Fix --unroll CLI argument to properly unroll arrays instead of repeating them ( #5 )
...
* Initial plan
* Fix --unroll CLI argument to properly unroll arrays
Updated check_is_array() method and all CPUIF implementations to correctly detect and handle unrolled array elements. When unroll=True, each array element is now treated as an individual instance instead of being repeated as an array.
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
* Add comprehensive tests for --unroll functionality
Created tests to verify that array elements are correctly unrolled into individual instances when --unroll flag is used. Also fixed conftest.py fixture to keep temp files for later reference.
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com >
2025-10-23 22:23:49 -07:00
Arnav Sacheti
bafebf8595
refactor to use base listener for busdecoder
2025-10-19 21:35:17 -07:00
Arnav Sacheti
cca98098da
Simplify test suite to pytest unit scaffolding
2025-10-19 16:48:25 -07:00
Arnav Sacheti
ff237150f4
consolidate common action setup + migrate to ruff and pyrefly
2025-10-13 19:31:39 -07:00
Arnav Sacheti
35015d7051
"updt"
2025-10-13 18:39:19 -07:00
Arnav Sacheti
b4f9eaff71
regblock -> busdecoder
2025-10-10 22:30:59 -07:00
Arnav Sacheti
9bf5cd1e68
Initial Commit - Forked from PeakRDL-regblock @ a440cc19769069be831d267505da4f3789a26695
2025-10-10 22:28:36 -07:00