Skip to content

Adding vx4b support to lib_mic_array#296

Open
xalbertoisorna wants to merge 20 commits into
developfrom
vx4b
Open

Adding vx4b support to lib_mic_array#296
xalbertoisorna wants to merge 20 commits into
developfrom
vx4b

Conversation

@xalbertoisorna
Copy link
Copy Markdown
Contributor

No description provided.

@xalbertoisorna xalbertoisorna changed the title Vx4b Adding vx4b support to lib_mic_array Mar 19, 2026
@xalbertoisorna xalbertoisorna marked this pull request as ready for review March 19, 2026 11:13
Shuchita Khare and others added 11 commits March 23, 2026 12:39
Combine 1, 2, and 3 stages decimation functionality into one decimation class.
Add tests for 1mic override and single state decimation features to test_mic_array.py and test_thdn.py.
Rename MicArray::TwoStageDecimator to MicArray::Decimator.
Co-authored-by: xalbertoisorna <124703429+xalbertoisorna@users.noreply.github.com>
Support features needed for low power processing
Add delay before xscope_ep_request_upload() to fix test failures on v…
@xalbertoisorna xalbertoisorna requested review from shuchitak and xross May 26, 2026 09:34
Comment thread doc/rst/src/custom_filters.rst Outdated
Comment thread doc/rst/src/custom_filters.rst Outdated
@xross
Copy link
Copy Markdown
Contributor

xross commented May 26, 2026

I dont see a changelog update

Comment thread doc/rst/src/decimator_stages.rst Outdated
Comment thread doc/rst/src/decimator_stages.rst Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds VX4B support and expands the mic array decimation model to support 1-, 2-, and 3-stage operation, including a new runtime 1-mic override mode and new VX4-focused test/example coverage.

Changes:

  • Adds VX4B assembly/build/CI support and VX4-specific profiling/test configuration.
  • Replaces separate two-/three-stage decimators with unified Decimator plus single-stage mode.
  • Adds public 1-mic override API, documentation, tests, and examples.

Reviewed changes

Copilot reviewed 98 out of 104 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
Jenkinsfile Adds separate XS3/VX4 tool versions and VX4 CI stage.
.gitignore Ignores generated example/test artifacts.
lib_mic_array/lib_build_info.cmake Updates lib_xcore_math dependency.
lib_mic_array/api/mic_array/cpp/Decimator.hpp Introduces unified 1/2/3-stage decimator.
lib_mic_array/api/mic_array/cpp/MicArray.hpp Dispatches mic array processing by decimator stage count.
lib_mic_array/api/mic_array/cpp/PdmRx.hpp Adjusts PDM RX internals and ISR handling.
lib_mic_array/api/mic_array/cpp/ThreeStageDecimator.hpp Removes old three-stage decimator.
lib_mic_array/api/mic_array/etc/fir_1x16_bit.h Fixes FIR documentation.
lib_mic_array/api/mic_array/etc/xcore_compat.h Removes XS1 user header include.
lib_mic_array/api/mic_array/impl/setup_impl.h Formatting-only footer change.
lib_mic_array/api/mic_array/mic_array_task.h Adds 1-mic override API declaration.
lib_mic_array/api/mic_array/pdm_resources.h Updates resource header includes.
lib_mic_array/api/mic_array/setup.h Formatting-only footer change.
lib_mic_array/src/deinterleave2.S Adds VX4B implementation.
lib_mic_array/src/deinterleave4.S Adds VX4B implementation.
lib_mic_array/src/deinterleave8.S Adds VX4B implementation.
lib_mic_array/src/deinterleave16.S Adds VX4B implementation.
lib_mic_array/src/fir_1x16_bit.S Adds VX4B FIR kernel.
lib_mic_array/src/mic_array_setup.c Adds VX4B inpw support.
lib_mic_array/src/mic_array_task.c Adds C API orchestration layer.
lib_mic_array/src/mic_array_task.cpp Refactors mic array storage/start helpers.
lib_mic_array/src/mic_array_task_internal.hpp Updates internal aliases and C/C++ linkage declarations.
lib_mic_array/src/pdm_rx_isr.S Adds unverified VX4B ISR stub/implementation.
python/mic_array/device_context.py Whitespace cleanup.
python/mic_array/filters.py Adds stage-1-only Python filter path.
python/mic_array/xscope.py Adds publish delay for VX4 test stability.
python/stage1.py Emits one-stage filter metadata.
tests/requirements.txt Updates Python/pip version comments.
tests/unit/CMakeLists.txt Adds target-specific unit test build flags.
tests/unit/src/main.c Registers FIR unit test group.
tests/unit/src/test_ChannelFrameTransmitter.cpp Renames local stack buffer.
tests/unit/src/test_fir_1x16_bit.c Adds FIR kernel unit tests.
tests/signal/TwoStageDecimator/CMakeLists.txt Uses shared dependency setup.
tests/signal/TwoStageDecimator/src/main.xc Adds XC host bridge/main.
tests/signal/TwoStageDecimator/src/run.cpp Updates test app for unified Decimator.
tests/signal/TwoStageDecimator/test_stage1.py Updates naming/comments for new decimator API.
tests/signal/TwoStageDecimator/test_stage2.py Updates naming/comments for new decimator API.
tests/signal/BasicMicArray/CMakeLists.txt Adds VX4 and 1-mic override test configs.
tests/signal/BasicMicArray/micarray_device.py Adds optional sample-count override.
tests/signal/BasicMicArray/src/app.c Adds one-stage and 1-mic override test paths.
tests/signal/BasicMicArray/src/app_config.h Adds VX4 port config.
tests/signal/BasicMicArray/src/config.xscope Adds xSCOPE probe config.
tests/signal/BasicMicArray/src/small_768k_to_12k_filter.h Adds generated one-stage test filter.
tests/signal/BasicMicArray/test_mic_array.py Adds 1-mic override and one-stage tests.
tests/signal/BasicMicArray/test_params.json Adds 1-mic override parameter axis.
tests/signal/BasicMicArray/test_thdn.py Adds one-stage THD+N coverage.
tests/signal/pdmrx_isr/CMakeLists.txt Updates ISR test build configuration.
tests/signal/pdmrx_isr/src/app.cpp Updates assertions/formatting for ISR test.
tests/signal/profile/conftest.py Adds hardware target pytest option.
tests/signal/profile/test_measure_mips.py Adds target-specific MIPS files and VX4 handling.
tests/signal/profile/mic_array_mips.json Removes old shared MIPS reference file.
tests/signal/profile/mic_array_mips_xs3.json Adds XS3-specific MIPS reference.
tests/signal/profile/mic_array_mips_vx4.json Adds VX4-specific MIPS reference.
tests/signal/profile/mic_array_mips_table.rst Updates XS3 MIPS table.
tests/signal/profile/mic_array_memory.json Updates memory reference values.
tests/signal/profile/mic_array_memory_table.rst Updates memory table.
tests/signal/profile/app_mips/CMakeLists.txt Adds target-specific MIPS app builds.
tests/signal/profile/app_mips/src/app.c Uses new PLL init wrapper.
tests/signal/profile/app_mips/src/app_config.h Adds VX4 port definitions.
tests/signal/profile/app_mips/src/app_pll.c Adds XS3/VX4 PLL init implementation.
tests/signal/profile/app_mips/src/main.c Adds VX4 network main.
tests/signal/profile/app_mips/src/main.xc Guards XC main for XC builds.
tests/signal/profile/app_mips/src/mips/burn_mips.S Adds VX4 burn loop.
tests/signal/profile/app_mips/src/mips/count_mips.S Adds VX4 MIPS counter.
tests/signal/profile/app_memory/CMakeLists.txt Restricts memory app target.
tests/signal/profile/app_memory/src/app.cpp Updates custom memory app for Decimator.
tests/signal/profile/app_memory/src/main.c Removes old C entry.
tests/signal/profile/app_memory/src/main.xc Adds XC entry/resource setup.
examples/deps.cmake Pins fwk_io to a commit.
examples/app_par_decimator/src/app.cpp Adds architecture-aware KEDI handling.
examples/app_par_decimator/src/app_decimator.hpp Updates custom decimator interface.
examples/app_par_decimator/src/decimator_subtask.c Adds VX4 shift-buffer path.
examples/app_mic_array_basic/CMakeLists.txt Adds VX4-only basic example build.
examples/app_mic_array_basic/convert.py Adds binary-to-WAV helper.
examples/app_mic_array_basic/src/app.c Adds VX4 basic mic array app.
examples/app_mic_array_basic/src/app_config.h Adds example clock/port config.
examples/app_mic_array_basic/src/config.xscope Adds xSCOPE config.
examples/app_mic_array_basic/src/device_pll_ctrl.c Adds VX4 PLL control.
examples/app_mic_array_basic/src/device_pll_ctrl.h Declares PLL init.
examples/app_mic_array_basic/src/mapfile.c Adds VX4 tile map.
examples/app_mic_array_basic/src/small_768k_to_12k_filter.h Adds generated example filter.
examples/app_1mic_override/CMakeLists.txt Adds 1-mic override example build.
examples/app_1mic_override/src/XK-VOICE-L71.xn Adds example target file.
examples/app_1mic_override/src/app.cpp Adds mic override control logic.
examples/app_1mic_override/src/app.h Declares example tasks.
examples/app_1mic_override/src/app_config.h Adds example constants.
examples/app_1mic_override/src/app_i2s.c Adds I2S playback/restart logic.
examples/app_1mic_override/src/config.xscope Adds xSCOPE config.
examples/app_1mic_override/src/main.xc Adds example XC main.
doc/exclude_patterns.inc Excludes generated example markdown.
doc/rst/lib_mic_array.rst Adds mic switching doc to TOC.
doc/rst/src/advanced_usage.rst Updates advanced usage for Decimator.
doc/rst/src/custom_filters.rst Documents 1/2/3-stage custom filter constraints.
doc/rst/src/decimator_stages.rst Updates decimator stage documentation.
doc/rst/src/examples.rst Documents 1-mic override example.
doc/rst/src/getting_started.rst Adds shutdown/restart mic switching note.
doc/rst/src/mic_switching.rst Adds single-mic override documentation.
doc/rst/src/overview.rst Updates capability overview for new stages.
doc/rst/src/reference/c/filters_default.rst Updates default filter reference.
doc/rst/src/reference/c/mic_array_default_model.rst Adds C API reference entry.
doc/rst/src/reference/cpp/cpp_api.rst Updates C++ API reference.
doc/rst/src/sample_filters.rst Generalizes sample filter docs.
doc/rst/src/software_structure.rst Updates architecture docs for stage dispatch.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lib_mic_array/api/mic_array/cpp/PdmRx.hpp
Comment thread lib_mic_array/src/mic_array_task.cpp
Comment thread lib_mic_array/lib_build_info.cmake Outdated
Comment thread tests/signal/profile/test_measure_mips.py
Comment thread doc/rst/src/advanced_usage.rst
Comment thread doc/rst/src/overview.rst Outdated
Comment thread doc/rst/src/overview.rst Outdated
Copy link
Copy Markdown
Contributor

@shuchitak shuchitak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lots of good work in this PR!! The changes I'm requesting are -

  • Rename app_mic_array_basic example to app_mic_array_vx4
  • Add vx4 MIPS usage table to the documentation
  • Add a note about vx4 not supporting PDMRX ISR in the resource usage section in the documentation.

Comment thread doc/rst/src/overview.rst Outdated
Comment thread examples/app_mic_array_vx4b/src/app.c
Comment thread tests/signal/profile/mic_array_mips_table.rst
* Updating reqs version

* Add tests/src/audio-test-tools to .gitignore

* Adding docs for vx4 and minor typos

* Update documentation and tests for vx4 architecture support

* Update version number to 7.1.0 in README

* Update doc/rst/src/resource_usage.rst

Co-authored-by: shuchitak <38428600+shuchitak@users.noreply.github.com>

---------

Co-authored-by: shuchitak <38428600+shuchitak@users.noreply.github.com>
@xalbertoisorna
Copy link
Copy Markdown
Contributor Author

I dont see a changelog update

186698c

@xalbertoisorna xalbertoisorna requested a review from aramponx May 28, 2026 12:48
Copy link
Copy Markdown

@aramponx aramponx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you

xalbertoisorna

This comment was marked as off-topic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants