Files
retroSoC/physical/smoke/syn/README.md
T
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

3.0 KiB

Synthesis Flows

This directory contains Yosys synthesis integration, configuration, and source export tooling. yosys/ owns the supported open-source synthesis flow; tools/ exports flattened source sets.

Use a committed profile and run the supported flow:

make CONFIG=configs/ci/ihp130.mk SYNTH=YOSYS synth

SYNTH_RECIPE selects the ABC mapping recipe without changing the variant hash. The recipe also selects the synthesis-derived output roots so timing, netlist simulation, and metrics cannot accidentally consume the balanced netlist:

  • balanced (default): syn/yosys/, sta/opensta/, sim/<tool>/netl/, and meta/metrics.json
  • area: syn/yosys-area/, sta/opensta-area/, sim/<tool>/netl-area/, and meta/metrics-area.json
  • speed: syn/yosys-speed/, sta/opensta-speed/, sim/<tool>/netl-speed/, and meta/metrics-speed.json

balanced remains the PR and default CI recipe. Nightly IHP130 runs area and speed through synthesis, OpenSTA, and metrics; their long netlist simulation is available on demand but is not part of nightly-extra.

make CONFIG=configs/ci/ihp130.mk SYNTH=YOSYS SYNTH_RECIPE=area synth
make CONFIG=configs/ci/ihp130.mk SYNTH=YOSYS SYNTH_RECIPE=speed synth

make CONFIG=configs/ci/ihp130.mk SYNTH_RECIPE=area STA=OPENSTA sta
make CONFIG=configs/ci/ihp130.mk SYNTH_RECIPE=area metrics
make CONFIG=configs/ci/ihp130.mk SYNTH_RECIPE=area SIMU=IVERILOG netsim

Replace area with speed for the corresponding recipe. Run all three recipes with the same commit, PDK, BUILD_TIMESTAMP, and YOSYS_TARGET_PERIOD_PS when collecting a comparable QoR baseline.

Compare top area, cell count, WNS/TNS, synthesis and STA duration, warning signatures, and the netlist simulation verdict. Area is an area-first mapping recipe and speed is a timing-first exploration recipe; neither is promoted to the default solely from one area or timing result. Metrics remain in observe mode until the documented baseline review is complete.

The default ABC target period is derived from the external STA period in rtl/mini/integration/clock_reset_domains.json. Override it with YOSYS_TARGET_PERIOD_PS=<ps> when needed.

Synthesis outputs are generated below build/ and must not be committed. The CRYPTO-P0 baseline uses make CONFIG=configs/ci/ihp130.mk SYNTH=YOSYS crypto-p0-baseline. Its wrapper in yosys/script/crypto_block_synth.tcl sources the ordinary SoC script and balanced ABC recipe without optimization changes, while exporting JSON checkpoints for inferred RAM/ROM and register accounting. The standalone Crypto target uses the inventory's PCLK period. Its reports live in build/<variant>/crypto/p0/; the macro-backed V2 candidate and whole-chip A/B qualification are later phases in docs/ip/crypto.md.

Review warning and metric changes with make check-warnings check-metrics for the affected profile. make metrics writes the recipe-specific file listed above; make check-metrics checks that same file.