Commit Graph
100 Commits
Author SHA1 Message Date
maksyuki 01e33b6209 feat(tiny): update regression commands for P7 acceptance and adjust quality workflow tools 2026-10-14 20:21:20 +08:00
maksyuki b3edbaedd4 docs(tiny): record P7 validation and reset integration contracts
Document the RCU ownership, profile/PDK mapping, exact validation commands,
matched firmware, source snapshots and current 06-00 backend evidence.
Separate historical checkpoints and the rejected 04-00 candidate from
current response-conservation and source-reset validation.

State the production DMA drain and common XPI reset preconditions without
claiming unrestricted standalone bridge source-reset support. Record the
54-case directed result, expected-negative checks and unchanged design
inputs that justify retaining the original backend evidence.

Preserve full-suite failures and focused corrections, interrupted Icarus
attempts, final-phase deferral, negative timing and missing physical
qualification. Keep P7 human acceptance and later phases separate.
2026-10-14 16:56:34 +08:00
maksyuki bc48cec74a feat(tiny): implement R2-P7 clock and reset lifecycle
Integrate the Tiny RCU, normalized REF24 control, external-input profiles,
single PLL backend, SYS/MEM/PCLK clocks, CPU-only WFI gating, peripheral
lifecycle control and retained debug behavior. Keep CPU and all 32 main
SRAM macros on SYS and the six private Crypto macros on PCLK.

Add the handwritten RCU register/HAL contract, RS_EBUSY, bounded SDK
operations and focused firmware. Preserve shared-IP defaults and the
ICS55/PLL SAFE24 boot and explicit IHP130/no-PLL compatibility profiles.

Use APB/AXI domain bridges and source-owned response holders to preserve
backpressured responses, complete aborted bursts and prevent stale replay.
Verify production DMA source-reset drain and common XPI endpoint reset
with extracted integration bindings and an independent scoreboard.

Add source-bound macro/clock audits, SAFE24 observational STA constraints
and commercial-adapter host checks. No P8 functionality or operating-point
qualification is included. See TINY-R2-P7 in docs/ip/tiny-soc.md.

Validation: 54 P7 directed tests pass, including both simulators, ten
source-reset ratio runs and two expected-negative drain mutations.
RTL format/style, clock/reset inventory, Ruff and both Tiny PDK PR dry-runs
pass. Retained 06-00 synthesis and strict netlist boots pass for both PDKs;
STA remains negative and observational. Source comparison confirms only
the follow-up tests changed after that backend campaign.

Evidence: build/ics55-tiny-2026-10-14-06-00-ff4b5cef6eb5/meta/
tiny-r2-p7-source-reset/summary.json. Earlier firmware, HAL and compatibility
results and the non-clean full-suite attempt retain their original
attribution. Full Icarus firmware is deferred to final Tiny qualification;
this commit does not constitute human phase acceptance or physical signoff.
2026-10-14 16:56:01 +08:00
maksyuki 6fbc6ec521 fix(flow): retain terminal evidence across interrupted runs
Record parent and child process IDs for diagnostics, persist interruption
before cleanup, and ignore repeated termination signals during cleanup.
Close unexpected failures with a terminal result and retain the child's
exit status without treating namespace-local PID absence as completion.

Require a successful terminal run_flow result when checking simulation
logs with an associated result file. Cover repeated cancellation and
reject running, failed or inconsistent terminal records despite PASS text.

This supports the TINY-R2-P7 campaign. Interrupted and timed-out runs remain
non-acceptance evidence; UART output alone cannot qualify a Tiny simulation.
2026-10-14 16:55:12 +08:00
maksyuki a14fe12724 build(deps): pin PWM runtime clock reporting for Tiny P7
Advance the approved PWM dependency to
38efaf5e20f084a00148920087c60cadab61839b so Tiny RCU can publish the
committed PCLK rate through the existing PWM register interface.
Keep the static-clock default for existing consumers.

Required by TINY-R2-P7 in docs/ip/tiny-soc.md. The locked checkout and
P7 validation use this exact revision; dependency-lock validation passes.
2026-10-14 16:54:43 +08:00
maksyuki 43a3c8d453 docs(tiny): document P6 integration and validation boundaries
Record the shared-IP and eight-channel DMA integration, common I2S/SDIO correctness fixes, deterministic workloads, snapshot update scopes and both PDKs' functional and smoke-flow evidence.

Keep original failed attempts, publication history and source attribution intact. The later final full Pytest passed 1726 tests with one optional pypdf skip in 4021.61 seconds, exit 0, in terminal session 36439; it has no standalone verdict log or JSON. Existing campaign evidence is not rewritten by this documentation commit.

Retain explicit negative timing, warning observations, legacy package/floorplan limits and pending physical qualification. Human phase acceptance and any P7 work remain separate.
2026-10-12 21:44:28 +08:00
maksyuki 952b060a70 feat(tiny): integrate P6 shared IP and eight-channel DMA
Integrate RNG, CRC, WS2812, Crypto, I2S master and the SDIO private AXI owner on SAFE24. Preserve the 128 KiB main SRAM and six private Crypto macros, add product-specific DMA assignments and reject unsupported SDK operations.

Correct APB read strobes, I2S receive assembly and SDIO command timing, backpressure and descriptor retirement. Add pin-level workloads, source-bound evidence checks and publication/commercial consumer compatibility.

Validation of the final P6 worktree: 1726 pytest tests passed with one optional pypdf skip (exit 0, 4021.61 seconds; terminal session 36439). Both PDKs passed both RTL simulators, netlist boot and 38-macro binding checks. Shared formal, Mini compatibility and software/source quality gates passed.

Evidence remains attributed to the retained dirty-worktree snapshots based on b3b30a72cd under build/ics55-tiny-2026-10-12-11-50-2eb98c0e1fae/meta/tiny-r2-p6/. Timing is negative and warning observations are not promoted. This commit does not accept P6, qualify physical operation or enable P7.
2026-10-12 21:43:30 +08:00
maksyuki b3b30a72cd docs(tiny): record P5 reset correction validation
Document corrected reset behavior, source-bound evidence, validation commands and both PDK timing observations. Mark the earlier reset repair as superseded while preserving its historical attribution.

Retain explicit limits for workload replay, full-function netlist testing and physical qualification. Human phase acceptance and P6 execution remain separate.
2026-10-12 07:15:53 +08:00
maksyuki edb6e93eee fix(tiny): preserve AXI transactions across target reset
Drain remaining write beats before returning B, retain captured R/B responses, and append missing read error beats through the response spills. Preserve first-error attribution and prevent replay after target reset release.

Cover 28 reset scenarios in both simulators, including production DMA drain and APB bridge cases. Extend reset formal checks and publication contract mutation tests.

Validation: 101 focused tests passed; full Pytest reported 1685 passed and one optional pypdf skip. TINY ICS55 and IHP130 PR regressions passed. Timing remains observational and unclosed; no performance or physical qualification is claimed.
2026-10-12 07:15:32 +08:00
maksyuki 4e6ab1a6fb feat: add Tiny R2 P5 fault handling and reset isolation tests
- Introduced  for formal verification of fault handling in the Tiny R2 P5 architecture.
- Added  to test target reset isolation and ensure proper handling of reset signals across multiple targets.
- Created  to validate system-level interactions, including CPU and DMA progress during resets.
- Enhanced  to include fault counting and master tracking for concurrent fault events.
- Developed  to automate testing of concurrency, fault accounting, and retained-image acceptance.
- Updated Python test suite to validate new configurations and ensure proper integration with Tiny R2 P5 architecture.
2026-10-11 22:55:39 +08:00
Yuchi Miao b7a776da3d Merge pull request #218 from retroSoC/dependabot/github_actions/dev/actions/upload-artifact-7.0.2
build(deps): bump actions/upload-artifact from 4.3.3 to 7.0.2
2026-10-11 22:54:13 +08:00
maksyuki 3131762b35 feat: refactor tests for SRAM and CPU in Tiny R2 P4 flow
- Updated SRAM instance paths in  to reflect new hierarchy.
- Enhanced  to include additional source files and updated parameterized tests for SRAM configurations.
- Modified  to align with new SRAM structure and added a test for stale macro hierarchy.
- Introduced  to validate dual-port local-memory protocol and CPU debug/reset functionality, including comprehensive simulation checks.
2026-10-10 18:04:19 +08:00
maksyuki 4db27524a6 feat: implement DMA IRQ handling and WS2812 completion race tests 2026-10-10 09:35:49 +08:00
maksyuki 3e46cc80e2 feat: update API signature regex and enhance DMA function selections in tests 2026-10-09 17:13:52 +08:00
maksyuki 352b2007fd style: format Makefile and configuration files for consistency 2026-10-09 15:02:39 +08:00
maksyuki 0272c2417b feat: add WS2812 DMA and refill tests, enhance AXI4 crossbar test, and improve Tiny R2 P3 validation
- Implemented tests for WS2812 DMA sessions and refill functionality in .
- Added a new RTL testbench for WS2812 refill functionality in .
- Enhanced AXI4 data crossbar testbench to diagnose MMIO boundaries for the Mini DMA.
- Created a new Python test suite for Tiny R2 P3 to validate firmware warnings and layout placements.
- Updated existing WS2812 tests to parameterize and check for DMA backpressure integration.
2026-10-09 14:51:39 +08:00
maksyuki bab01352f8 feat: enhance commercial flow with new features and improvements
- Added support for optional files in GDS generation to handle legacy layouts.
- Introduced macro-level LVS/ERC processing to improve verification of hard macros.
- Updated STA scripts to adopt PrimeTime analysis settings from legacy flows.
- Enhanced synthesis settings to align with CX55 legacy flow, including clock gating and area optimization.
- Improved reporting functions to include detailed synthesis summaries and area metrics.
- Updated package generation script to support both TINY and MINI SOC configurations.
- Added comprehensive tests for ECO translation, timing contract generation, and constraint handling.
- Ensured compatibility with new timing contract formats and enhanced error handling for domain drift.
2026-10-08 15:20:39 +08:00
maksyuki 8a2dad4a93 feat: enhance Tiny ICS55 support in quality workflow and add validation tests 2026-10-08 15:20:05 +08:00
maksyuki e3ddeacea3 feat: enhance Tiny R2 Baseline and ICS55 Support
- Updated  to include support for the ICS55 PDK, allowing for conditional source inputs and configuration checks.
- Added new test cases for the ICS55 platform, including PLL backend and GPIO readback functionality.
- Modified existing tests to accommodate changes in configuration and source input handling.
- Introduced new parameters in the  testbench for better configurability.
- Ensured compatibility checks for the IHP130 and ICS55 PDKs in the feasibility script.
- Enhanced the publication tests to validate hardware changes more robustly.
2026-10-08 09:44:39 +08:00
maksyuki ecac3559b0 docs: refactor Tiny SoC documentation and integrate ICS55 PLL support
- Updated tiny-soc.md to reflect the 2026-10-07 refreeze, establishing ICS55 as the default target PDK with HAVE_PLL=YES.
- Added detailed sections on final timing gate policies, PLL integration, and execution order for Tiny SoC.
- Modified soc-family-positioning.md to indicate the new default target for Tiny as ICS55/PLL while maintaining IHP130 compatibility.
- Enhanced pdk/README.md and setup.py to support the integration of the locked ICS55 PLL views, including setup commands and validation.
- Introduced tests for the ICS55 PLL dependency to ensure proper integration and validation of PLL views.
- Updated rtl/tiny/README.md to clarify the current executable baseline and the pending integration of ICS55.
2026-10-07 19:24:55 +08:00
maksyuki 14a253a49a chore: update ECC installation process to use upstream installer and remove version locking 2026-10-07 18:10:28 +08:00
maksyuki 614fa6237b feat: integrate OpenECOS SRAM models for ICS55 and update related configurations 2026-10-07 08:24:23 +08:00
maksyuki b5cbc89928 feat: add Tiny R2 reset distribution and feasibility analysis
- Implemented a new TCL script for Tiny R2 feasibility checks, reporting clock properties, path delays, and reset loads.
- Created a SystemVerilog module for the Tiny R2 reset tree, managing multiple reset signals for the system and its leaves.
- Developed a Python script for capturing and analyzing feasibility metrics, ensuring compliance with reset-load and clock frequency requirements.
- Added testbenches for the Tiny R2 reset tree and FIFO, validating reset behavior and timing contracts.
- Introduced unit tests for feasibility analysis, ensuring correct handling of clock rates and reset load conditions.
2026-10-06 14:28:52 +08:00
maksyuki f06c039e79 feat: add comprehensive tests for Tiny baseline evidence and log parsing
- Introduced a new test file  to validate the functionality of the Tiny baseline evidence.
- Implemented tests for CPU checksum verification, log parsing, error handling, and artifact identity checks.
- Added parameterized tests to cover various edge cases, including handling of incomplete or duplicate measurements and incorrect data.
- Ensured that the tests validate the integrity of simulation results and the retention of compiler commands after post-processing.
2026-10-06 09:15:00 +08:00
maksyuki bfdc3ffaf6 feat: add PPALite extension documentation and integration details
- Introduced the PPALite extension, approved on 2026-10-05, detailing its features such as camera-inline Y extraction, RGB565 ordering, and fixed pixel/line sampling.
- Updated the tiny-soc-verification and tiny-soc documentation to reflect the new PPALite extension, including its integration with existing DVP and DMA channels.
- Added comprehensive evidence tables for PPALite phases (PPALITE-P0 to P5) outlining required evidence and current statuses.
- Clarified the relationship between PPALite and existing SPI/PIO extensions, emphasizing that earlier results cannot qualify newly added PPALite logic.
- Enhanced the README files in the RTL directory to specify PPALite's role and requirements in the context of Tiny SoC development.
2026-10-05 09:36:40 +08:00
maksyuki 2a07ebcdb1 feat: add SPI extension documentation and integration details for Tiny SoC
- Introduced the separately approved SPI extension (2026-10-04) for the Tiny SoC, detailing the addition of SPI0 as a master-only controller with 8/16-bit capabilities.
- Updated documentation to reflect the SPI phases (SPI-P0 to SPI-P5) and their respective requirements, including DMA V2.2 pacing and fixed-MMIO requests.
- Specified GPIO assignments for SPI functionality, including the use of previously reserved Gen1 ALT routes.
- Clarified the integration boundaries and dependencies on existing R2 and PIO-lite phases, emphasizing the need for complete implementation before qualification.
- Documented the implications of SPI integration on existing GPIO and DMA channels, ensuring no additional resources are allocated without proper validation.
- Updated the verification ledgers to track pending evidence and implementation gaps for both SPI and PIO-lite extensions.
2026-10-05 07:49:51 +08:00
maksyuki dad28f0c39 feat: enhance documentation for Tiny SoC and PIO-lite extension
- Updated the tiny-soc-verification.md to clarify the separation of PIO-lite as a standard-product extension, detailing its planned features and evidence requirements.
- Revised tiny-soc.md to emphasize the historical context of the R2 design freeze and the independent nature of the PIO-lite extension, including its integration requirements and phase structure.
- Added details in soc-family-positioning.md regarding the PIO-lite extension's capabilities and its distinction from the R2 performance-only approval.
- Enhanced README.md files in rtl/ip and rtl/tiny to reflect the future integration of the PIO-lite extension, specifying its features and the implications for existing RTL and DMA configurations.
2026-10-04 22:35:36 +08:00
maksyuki f633159109 feat: update documentation for Tiny Gen1 R2 target
- Clarified integration details for WS2812 and XPI in respective documentation.
- Updated the SOC family positioning to reflect changes in clock/reset configurations and DMA channels.
- Enhanced README files for librelane and RTL to include R2 target specifics, including execution order and peripheral contracts.
- Specified the active execution order for R2 and clarified the implications of the new architecture on performance and integration.
2026-10-04 17:35:01 +08:00
maksyuki 39bc766994 feat(gpio): add GPIO pad capabilities and integration tests for pull controls 2026-10-04 11:59:40 +08:00
maksyuki bb63d81978 docs: update XPI and SOC family documentation for Tiny Gen1 enhancements
- Added details on the Tiny Gen1 target's shared XPI register/LUT/PHY contract and optional NSS1 PSRAM integration.
- Clarified the memory model to include optional initialized XPI NSS1 PSRAM for whole-frame data.
- Updated the edge I/O section to reflect the alternate DVP V2 camera profile and GPIO allocations.
- Revised the shared services and package specifications to align with the latest P10 refreeze.
- Enhanced the README to include P10 documentation refreeze details, emphasizing DVP V2 contract and PSRAM integration.
2026-10-02 08:56:28 +08:00
Yuchi Miao 30ee86e3d0 Merge pull request #215 from retroSoC/dependabot/pip/requirements/dev/ruff-0.16.9
build(deps): bump ruff from 0.11.0 to 0.16.9 in /requirements
2026-10-02 08:46:42 +08:00
Yuchi Miao ee53beac43 Merge pull request #214 from retroSoC/dependabot/pip/requirements/dev/scons-4.11.1
build(deps): bump scons from 4.8.1 to 4.11.1 in /requirements
2026-10-01 22:20:05 +08:00
Yuchi Miao 902f979f3a Merge pull request #213 from retroSoC/dependabot/pip/requirements/dev/pillow-12.3.0
build(deps): bump pillow from 9.0.1 to 12.3.0 in /requirements
2026-10-01 20:40:45 +08:00
maksyuki 7f2e78b81b feat: add edge operation tests for NPU P6 reference implementation 2026-10-01 15:27:33 +08:00
maksyuki 422f48d0cd feat: refactor and enhance documentation for Linux runtime, boot acceptance, and NPU integration
- Updated fault reference documentation to clarify Linux termination behavior and NPU-P6 requirements.
- Enhanced Linux runtime section with emphasis on platform setup and kernel handoff processes.
- Revised overview section to include detailed descriptions of NPU capabilities and memory configurations.
- Improved product use documentation to specify Linux rootfs behavior and acceptance checkpoints.
- Clarified reset summary to differentiate between Linux and smoke/NPU-P6 acceptance processes.
- Updated software section to reflect changes in Linux image loading and readiness protocols.
- Modified build scripts to support RV64 architecture and ensure proper ELF requirements.
- Enhanced NPU compiler to support cycle counting for RV64 and RV32 architectures.
- Added tests to validate new configurations and ensure compliance with updated publication contracts.
2026-10-01 12:41:05 +08:00
maksyuki d084002bfe Merge branch 'dev' of github.com:retroSoC/retroSoC into dev 2026-10-01 10:51:25 +08:00
maksyuki 8e257d8043 docs: update WS2812, PLL Clock Control, and SoC Family Positioning documentation
- Revised WS2812 documentation to clarify the shared block and integration details for Mini and Tiny targets.
- Enhanced PLL Dynamic Clock Control document to specify differences between Mini and Tiny RCU implementations.
- Updated SoC Family Positioning to reflect changes in the Gen1 product/package target, including shared IP and DMA details.
- Adjusted Tiny MCU Integration README to include new features and requirements for the 2026-09-30 P6 target, emphasizing the shared peripherals and clock specifications.
2026-10-01 10:50:14 +08:00
maksyuki 3be04e9a54 feat: update README.md to enhance platform overview and quick start instructions 2026-09-30 18:32:19 +08:00
maksyuki e901e02694 feat: enhance dependency management with fallback URLs and download functionality 2026-09-30 16:30:47 +08:00
maksyuki 649758fcdf feat: add references and improve documentation for retroSoC skills
- Introduced a new maintenance reference for dependency and environment routing.
- Enhanced the feature implementation skill with migration references for behavior-preserving changes.
- Added regression and RTL migration references to support feature review processes.
- Created a new physical flow skill with detailed execution and recovery guidelines.
- Updated evals for feature implementation and review skills to include new scenarios.
- Improved the AGENTS.md and tests to reflect the new skills and references.
2026-09-30 15:08:29 +08:00
maksyuki 2f36051fd1 feat: introduce retroSoC feature implementation and review skills
- Added new skills for retroSoC feature implementation and review, including YAML configurations and evaluation cases.
- Removed deprecated mini feature design and implementation skills.
- Updated documentation to reflect changes in skill names and functionalities.
- Adjusted test cases to ensure compatibility with the new skill structure and validate the presence of required files and metadata.
2026-09-30 12:19:56 +08:00
maksyuki 3ac9e73ab9 feat: refactor tests for mailbox and environment validation
- Updated mailbox purpose tests to reflect new write order and sequence handling.
- Added tests to ensure Linux-ready values match LP contract and constants match Linux helper.
- Introduced tests to verify that offset changes do not hide stale Linux helpers.
- Enhanced environment tests to report current locked launcher and runtime versions.
- Added checks for SBT launcher presence in environment labels.
- Improved full diagram tests to validate storage geometry and RSA vector configurations.
- Expanded register tests to ensure crypto interrupt registers publish all events and lifecycle annotations preserve security boundaries.
- Modified script tools tests to include Vexii generation validation and updated workflow assertions.
2026-09-30 10:51:04 +08:00
maksyuki 9a634a9dc3 feat: update documentation for Tiny Gen1 product and package specifications 2026-09-27 22:23:16 +08:00
maksyuki a45ebf9688 Merge branch 'feat/tiny' into dev
# Conflicts:
#	Makefile
#	README.md
#	publications/README.md
#	rtl/mk/software.mk
#	rtl/rtl_style_audit.json
2026-09-27 09:09:53 +08:00
maksyuki c8187284d0 feat(tiny): add scripts for SDC generation and packaging
- Introduced  to create pad-aware timing constraints for the Tiny IHP130 chip flow.
- Added  to create a checksummed delivery archive for the Tiny LibreLane implementation.
- Created  for synthesis-only header of the locked IHP SRAM macro physical views.
- Implemented  to limit OpenSTA report enumeration for path counts.
- Updated  to include power pad definitions.
- Enhanced  to handle power pad counts and validation.
- Added tests for Tiny flow and pin map validation, including power pad overrides and constraints.
2026-09-27 08:48:12 +08:00
maksyuki 50b7c47916 Merge branch 'feat/sw' into dev
# Conflicts:
#	Makefile
#	README.md
#	app/README.md
#	app/apps/hp_boot/main.c
#	configs/README.md
#	dependencies/dependencies.lock.json
#	publications/datasheets/sections/architecture.typ
#	publications/datasheets/sections/boot-bundle-format.typ
#	publications/datasheets/sections/linux-runtime.typ
#	publications/datasheets/sections/overview.typ
#	publications/datasheets/system-reference.json
#	publications/software_reference.py
#	scripts/build_hp_smoke.py
#	scripts/run_flow.py
2026-09-26 16:28:39 +08:00
maksyuki 0e36b6a82f feat: introduce RV64 support and related tooling for HP workloads
- Added build_hp_rtthread.py for building the RT-Thread kernel with RV64 support.
- Updated build_hp_smoke.py to target RV64 architecture and modified output filenames.
- Modified generate_vexiiriscv.py to reflect RV64 configuration and memory management.
- Created hp_tools.py for shared utilities related to RV64 builds.
- Enhanced package_hp_boot.py to package RV64 workloads and updated versioning.
- Implemented run_hp_sim.py for executing and validating HP workloads with specific markers.
- Developed setup_hp_rtthread.py for installing RT-Thread source and environment setup.
- Updated GenerateRetroSocHp.scala to generate RV64 application cores.
- Enhanced tests for HP boot bundles, platform specifications, and tool utilities to accommodate RV64 changes.
- Adjusted test cases to validate new workload types and ensure compatibility with RV64 architecture.
2026-09-26 15:47:26 +08:00
maksyuki 187b090244 feat: add CRYPTO-P2 targets and reporting script for synthesis, netlist, and STA validation 2026-09-26 15:11:09 +08:00
maksyuki 3c63fec8dc feat: refactor crypto test paths and add new tests for firmware validation
- Updated test paths in  to point to the new directory structure for crypto files.
- Introduced  to validate firmware identity and reject stale firmware based on source changes and simulation logs.
- Enhanced  to include additional memory status and control registers, ensuring alignment with RTL definitions.
2026-09-26 14:00:25 +08:00
maksyuki 2805ea9183 docs: add Tiny Gen1 support and related publications
- Introduced new Tiny Gen1 datasheet with waveform rendering capabilities.
- Implemented example functions for various peripherals including archinfo, clint, dma, gpio, i2c, pwm, rtc, sram, sysctrl, timer, uart, wdg, and xpi.
- Enhanced register reference parsing to accommodate Tiny-specific memory maps.
- Created a dedicated Tiny reference module to isolate Tiny publications from Mini inputs.
- Developed comprehensive tests to validate Tiny publication configurations, register inventories, and evidence claims.
- Updated RTL documentation to reflect the separation of Tiny and Mini product lines.
2026-09-25 18:09:49 +08:00
maksyuki 9c706ba0ff feat: refactor test scripts to update paths and improve organization
- Updated paths in test files to reflect new directory structure for RTL and script files.
- Changed references from rtl/mini to rtl/ip and scripts/rtl where applicable.
- Added a new test file for Tiny product isolation, ensuring independent ABI and bus acceptance.
- Enhanced tests for memory map generation and protocol contracts for Tiny architecture.
- Ensured that all tests are aligned with the latest directory structure and naming conventions.
2026-09-25 15:44:02 +08:00
maksyuki 75ed04e7ef feat: update HP Linux configuration validation and adjust simulation time 2026-09-25 11:22:13 +08:00
maksyuki b72e14ea40 feat: add comprehensive test suite for CRYPTO-P0 functionality
- Introduced  for independent mathematical operations and RSA fixtures.
- Implemented  for testing DMA channels with AES ECB and memory interactions.
- Created  to validate RSA-2048 operations and Montgomery reduction.
- Developed  for testing AES and SHA vector compliance.
- Added  to validate image packing, integer root calculations, and inventory checks.
- Ensured robust error handling and validation in tests to catch data corruption and recursive hierarchy issues.
2026-09-25 11:21:42 +08:00
maksyuki 92830d963d feat: replace the rom of apu into sram 2026-09-25 08:35:07 +08:00
maksyuki 9298a582a4 docs: update README.md to reflect changes in P5 and P6 specifications
- Clarified P5 capabilities including direct/ring WAV/FLAC jobs and new KWS model integration.
- Specified requirements for evidence acceptance related to P5 enhancements.
- Noted that P6 MP3 support remains deferred with emphasis on design requirements.
- Updated details on P9 refreeze requirements, including macro-backed storage and future obligations.
- Reinforced that existing system clock/reset/IRQ/resource assignments remain unchanged.
2026-09-24 08:58:32 +08:00
maksyuki 0b73994772 docs: update publications to reflect Rill branding and enhance datasheet layout 2026-09-24 07:42:26 +08:00
maksyuki 7592808464 feat: refactor JPEG table register bank and enhance flow script
- Updated the JPEG table register bank module to use combinational logic for data handling and simplified the write logic for quantization, DC, and AC entries.
- Introduced a new function in the run_flow script to handle process termination more gracefully, including signal handling for interrupts.
- Enhanced the flow script to log peak RSS memory usage during execution.
- Modified multiple testbench files to include new storage access signals and improved the test logic for better validation of KWS and SRAM interactions.
- Updated tests to validate the new peak RSS memory logging in the flow script.
- Adjusted Yosys synthesis recipes to include timeout settings and ensure proper reporting of pre-memory synthesis outputs.
2026-09-24 07:41:43 +08:00
maksyuki fc6440989f docs: add environment reference and enhance publication validation
- Introduced  to define the development environment and validate runtime/platform contracts.
- Enhanced  with  to ensure change markers adhere to publication rules.
- Updated  to integrate boot acceptance checks and ensure dependencies are correctly managed.
- Added tests for environment validation, publication change scope, and CI stages to prevent regression and ensure compliance with publication standards.
- Implemented checks in  to validate the presence of development environment dependencies.
- Refactored existing tests to improve coverage and ensure accurate validation of publication claims and software configurations.
2026-09-23 17:09:55 +08:00
maksyuki c3de7c602a feat: update development environment to include bzip2 library and adjust runtime library path 2026-09-23 15:51:51 +08:00
maksyuki e035f9f933 feat: update development environment to include bzip2 library and adjust tests for flake.nix 2026-09-23 15:05:58 +08:00
maksyuki 8970890dda feat: enhance development environment with ncursesTermlib integration and update tests for LD_LIBRARY_PATH 2026-09-23 14:25:34 +08:00
maksyuki e7ee2aaa69 feat: update development environment to use ncurses with termlib and adjust test assertions 2026-09-23 13:34:10 +08:00
maksyuki c2016108f5 feat: enhance development environment with ncurses ABI symlink and update tests for extraBuildCommands 2026-09-23 11:43:08 +08:00
maksyuki 04f03da45e feat: update development environment to include expat and readline, modify ncurses dependency 2026-09-23 11:15:16 +08:00
maksyuki c45ef309e7 feat: update development environment to include ncurses, Tcl, and Python shared libraries 2026-09-23 10:35:48 +08:00
maksyuki 2771481c50 feat: enhance development environment with additional libraries (ISL, Zstandard) and update tests 2026-09-23 09:35:34 +08:00
maksyuki c0426d9346 feat: update development environment to include zlib development headers and libraries 2026-09-23 09:22:51 +08:00
maksyuki 9871ebb9fe feat: add write_stamp function and update development environment with libmpc 2026-09-23 09:02:41 +08:00
maksyuki 448d639d0e feat: add Perl to development environment and enhance toolchain accessibility 2026-09-23 07:40:17 +08:00
maksyuki b209ccedfe feat: update development environment to use Python 3.10 and add write_activation function 2026-09-22 22:37:20 +08:00
maksyuki d9aa029504 docs: update README to enhance platform overview and correct ISA badge 2026-09-22 21:08:13 +08:00
maksyuki 220c6a1365 fix: verify updated cache action version in development environment workflow 2026-09-22 21:07:33 +08:00
maksyuki d4fba9fb96 feat: enhance development environment with Docker and Nix support, add SBT toolchain 2026-09-22 19:22:06 +08:00
maksyuki d0ec9aeba7 docs: enhance documentation with contribution guidelines and Git workflow details 2026-09-22 16:33:33 +08:00
maksyuki f9292b0e81 feat: update quality workflow to include NPU references and increase timeout 2026-09-22 16:12:18 +08:00
maksyuki a28b3ce11a feat: update NPU integration and validation in publications
- Modified waveforms.json to reflect changes in resource tracking from nine to ten positions for both resource-controller integration and reference monitor parameters.
- Enhanced dev_reference.py to include NPU sources and updated CI snapshot validation to accommodate new statuses and conclusions.
- Added example NPU implementation in npu.c for job submission and result handling.
- Updated format_reference.py to validate NPU descriptor word offsets against RTL definitions.
- Adjusted storage_reference.py to reflect changes in APU and NPU local memory configurations.
- Enhanced system_reference.py to include NPU implementation details and validate accelerator claims.
- Updated tests to reflect changes in the structure and coverage of NPU and APU components, ensuring accurate validation of configurations and claims.
- Introduced new tests in v05.py to ensure distinct handling of executable configurations and evidence for NPU and APU.
2026-09-22 14:50:41 +08:00
maksyuki ca4b06d304 Merge branch 'feat/npu' into dev 2026-09-22 12:23:21 +08:00
maksyuki 0cd5f0af4e Merge branch 'feat/apu' into dev 2026-09-22 09:50:55 +08:00
maksyuki e6b9a9f43d feat: add NPU-P6 tests and RTL model updates
- Introduced  for deterministic corpus framing, CRC checks, and regression evidence for NPU-P6.
- Added  to validate NPU-P6 reference execution.
- Created a new RTL model  for gate-level NPU transactions.
- Updated  to instantiate  and streamline the testbench.
- Enhanced  with capability checks and added NPU-P6 reference contract tests.
- Modified  to include  in the source list and refactor rejection logic.
- Updated README.md to document new test scripts and their purposes.
2026-09-22 07:30:54 +08:00
maksyuki 10c9ed8942 feat: add comprehensive tests for APU-P7 and APU-P8 functionality
- Introduced differential tests for the APU-P7 frontend profile-1 BAM to ensure consistency with ROM and generator outputs.
- Implemented concurrent decode and continuous KWS smoke tests for APU-P7 to validate system stability under load.
- Added accuracy qualification tests for APU-P7 to verify through-hardware performance against expected results.
- Created contention tests for APU-P8 to assess USB2/SDIO0/APU Gateway A interactions.
- Developed quiesced loader admission tests for APU-P8 to ensure proper handling of DMA operations.
- Added post-fault visibility tests for APU-P8 HP interconnect to confirm fault handling capabilities.
- Enhanced register parity tests to include ABI digest verification for consistency across implementations.
- Updated publication register tests to reflect changes in capability constants for P5 and P7 profiles.
2026-09-22 07:28:53 +08:00
maksyuki 52340d867c fix: update quality workflow and documentation to include third-party simulation models and timing-model fixtures 2026-09-21 17:12:00 +08:00
maksyuki 38ccbc7d93 feat: refactor NPU Executor Tests and Add Softmax Regression Tests
- Removed unsupported fault handling from  and replaced it with a test for average pooling execution.
- Updated the test for unsupported placements to validate average pooling and depthwise convolution placements.
- Introduced new tests for softmax functionality in , including parameter validation and edge cases.
- Added qualification tests to ensure rejection of common-mode numerical errors and incomplete runs in .
- Enhanced RTL tests to cover memory downsizing and kernel burst capabilities in  and .
- Adjusted boot status assertions in  to reflect updated expected values.
2026-09-21 16:25:46 +08:00
maksyuki 86886a9504 feat: enhance CI workflows and tests with improved timeout and dependency management 2026-09-21 15:31:47 +08:00
maksyuki d544788ec9 fix: update SDRAM simulation time and enhance test coverage for GA2D and SDRAM access 2026-09-21 12:35:56 +08:00
maksyuki e0b2e1cc42 feat: add additional NPU shell sources for enhanced functionality
This commit includes new shell source files for the NPU, specifically:
- npu_mac_array.sv
- npu_accumulator.sv
- npu_vector.sv
- npu_requantizer.sv

These additions aim to improve the testing coverage and functionality of the NPU RTL shell.
2026-09-20 20:14:27 +08:00
maksyuki 491d38fd0e docs: refactor SoC diagram typography and routing validation
- Introduced scoped typography rules for compact cells and emphasized labels in the SoC functional overview.
- Updated the  diagram to utilize new typography settings, including size adjustments for CDC and Gateway labels.
- Implemented geometry validation for SoC diagrams to ensure proper routing and clearance between elements.
- Added comprehensive tests for geometry validation, PDF typography checks, and compact text handling.
- Created new Python modules for shared geometry and PDF-bound typography checks to streamline validation processes.
- Enhanced documentation to clarify typography requirements and routing styles for SoC diagrams.
2026-09-20 12:34:57 +08:00
maksyuki d3ef9ae27f feat: enhance GA2D and Resource Controller Test Coverage
- Added validation checks for GA2D soft reset and error handling in .
- Improved resource controller tests in  to cover IRQ routing and ownership scenarios.
- Updated performance log tests in  to reflect changes in GA2D features and formats.
- Introduced a new netlist transaction test for GA2D in  to ensure synthesized block functionality.
- Modified publication software tests in  to account for new GA2D stages.
- Adjusted script tools tests in  for updated configuration values.
- Added print statements for better traceability in GA2D reference campaign tests.
2026-09-20 08:52:23 +08:00
maksyuki a2b12f911a feat: add RTL unit tests for NPU-P3 job execution
This commit introduces a comprehensive set of unit tests for the NPU-P3 job execution, covering the DMA engine, job decoder, and core functionalities. The tests utilize Icarus and Verilator for simulation and include descriptor validation, fault handling, and various operational scenarios. Key features include:

- Descriptor construction and validation mirroring ABI 1.0.
- Detailed test cases for valid and invalid descriptors.
- Core testbench scenarios for various operations including convolution, pooling, and fully connected layers.
- Integration of golden model comparisons for output verification.

These tests aim to ensure robust functionality and adherence to specifications for the NPU-P3 architecture.
2026-09-19 23:36:20 +08:00
maksyuki f94cf5e7e2 feat: add NPU register tests for RTL and SDK synchronization
- Introduced  to ensure consistency between RTL and C register definitions.
- Implemented exhaustive checks for offsets, scalar encodings, bit shifts, and enumerations.
- Added  for shell and control-CDC unit tests using Icarus and Verilator.
- Created test cases for NPU register and control CDC functionality, verifying successful simulation outputs.
2026-09-18 20:47:18 +08:00
maksyuki 95ee570a44 docs: add SOC architecture diagram and update related documentation
- Introduced a new SOC functional architecture diagram in .
- Updated  to include instructions for the new SOC diagram, including layout and design specifications.
- Modified  to activate changes related to the SOC functional overview.
- Enhanced  to include new SOC architecture catalog references.
- Updated  to account for the new SOC architecture diagrams in coverage checks.
- Created  for validating SOC diagram specifications and ensuring compliance with design rules.
- Added tests in  to validate SOC diagram structure and integrity.
- Adjusted existing tests to reflect the addition of SOC architecture coverage.
2026-09-17 20:06:40 +08:00
maksyuki 2fa939dda0 docs: add independent closing page and update validation for footer roles in publications 2026-09-17 15:21:48 +08:00
maksyuki fbc1050a31 feat: add GA2D waveform definitions, APU implementation validation, and update diagram coverage checks
- Introduced waveform definitions for GA2D operations and exceptions in waveforms.json.
- Added a new Python module for validating CI snapshots and APU implementation details.
- Enhanced diagram coverage validation to ensure accurate reporting of circuit and layout counts.
- Updated programming reference to dynamically calculate read/write credits based on master policies.
- Implemented tests for validating CI snapshot integrity and diagram coverage consistency.
- Added example usage of GA2D fill operation in a new C source file.
- Improved error handling in software reference for IRQ count validation.
- Adjusted diagram reference to check for legacy and version-specific instruction limits.
2026-09-17 14:33:38 +08:00
maksyuki f85ff59e33 feat: add RTL tests for NPU vector, memory, and patch packer
- Introduced  for comprehensive testing of the NPU vector module, covering bias preload, lane-masked accumulation, and fault conditions.
- Created  to implement differential tests for NPU compute-core RTL using Icarus Verilog and Verilator, ensuring bit-exact results against a numerical oracle.
- Added  to validate NPU memory and patch packer functionality, including SRAM models and various packing scenarios.
2026-09-17 09:11:56 +08:00
maksyuki c8953d9558 feat: add comprehensive tests for NPU-P0 models and reference implementations
- Introduced  to validate KWS and VWW locked model graphs against expected configurations, including operator sequences, tensor properties, and model integrity checks.
- Added  to cover numerical profiles and validate arithmetic operations, including convolution, depthwise convolution, fully connected layers, and various tensor operations.
- Created  to ensure proper setup and validation of NPU-P0 reference flow, including dataset integrity and model hash consistency.
- Implemented error handling tests for malformed buffers and model mutations to ensure robustness.
2026-09-16 16:40:55 +08:00
maksyuki 142b268a80 docs: update README files with NPU specification and integration details
- Added information about the Mini NPU specification, including its architecture and verification requirements, to rtl/README.md.
- Included details on the frozen NPU contract and its integration considerations in rtl/mini/README.md.
2026-09-16 10:24:57 +08:00
maksyuki 2a497ecef0 fix: update APUMC instruction-limit drift case for APUMC V2 constants
feat/apu splits the instruction limit into APUMC_MAX_INSTRUCTIONS_V1/V2
with APUMC_MAX_INSTRUCTIONS aliasing the V1 value, so the committed
plain '2048' assignment the drift test mutated no longer exists. Mutate
the alias assignment instead; the drift still disagrees with the RTL
define and must be rejected.
2026-09-15 19:08:18 +08:00
maksyuki 1b0a0da8eb fix: sync publication source bindings and storage geometry after APU merge
- system-reference.json: APU RX stream tready now feeds the KWS engine
  (s_kws_rx_ready) instead of a constant 0
- diagram-layouts.json: APUMC header packs the requested abi word and
  entry words mask entry_pc/first_pc/last_pc for APUMC V2
- diagram-storage.json: APU control store implements the 4096-word
  (32 KiB) V1.1 refreeze
- diagram-circuits.json: pre-existing GA2D master 6 missing from the two
  axi4_data_crossbar master_read_limit bindings (broken on dev before
  the merge)
- test_script_tools.py: pre-existing whitespace-strict SOC_SIM_TIME
  assertion broken by dev's app.mk alignment change (failed on dev
  before the merge); use the test's regex idiom
2026-09-15 17:20:28 +08:00
maksyuki ded1a327de Merge branch 'feat/apu' into dev
# Conflicts:
#	Makefile
#	publications/datasheets/ips/apu.typ
#	rtl/mini/mk/formal.mk
#	tests/rtl/axi4_target_guard_tb.sv
2026-09-15 16:28:12 +08:00
maksyuki 8a7c45498b feat: enhance regression workflows and formal checks documentation 2026-09-15 15:41:00 +08:00
maksyuki 6d64850684 feat: update JPEG master credit handling and documentation
- Adjusted the native JPEG path to reflect one normal read and one normal write credit for master slot 6 in various documentation files, including README.md, datasheets, and programming references.
- Updated the bus programming section to clarify the admission policy and error handling for the JPEG private path.
- Enhanced the media formats and product use sections to specify the implications of the new credit structure on system integration and performance.
- Modified the RTL implementation to ensure proper credit allocation for the JPEG master in the AXI4 data crossbar.
- Updated regression tests to validate the new credit handling and ensure compliance with the updated specifications.
- Increased simulation timeout for Verilator to accommodate new testing requirements.
2026-09-15 12:08:16 +08:00