* 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>
* 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>