ACE means Argus Compute Engine. ACE-2 was designed, implemented, tested, reviewed, and iterated primarily by Argus under human-owned objectives and release authority.
Alpha 3 scope: a public productization-progress snapshot built on the unchanged Alpha 2 certified RTL baseline. It documents the post-Alpha-2 BF16 model-quality program and the exact gates that still block arbitrary-text W4A8 chat and U280 deployment. Alpha 3 does not claim a new certified model, general chat, FPGA execution, routed signoff, or silicon.
| Area | Alpha 3 status |
|---|---|
| Certified RTL baseline | Preserved unchanged from Alpha 2 |
| Layer-0 fixed-point operators | 18 / 18 exact PASS |
| Full runtime commands | 13,914 / 13,914 PASS |
| Demonstrated model path | 24 layers, two generated tokens |
| SKY130 mapped result | 62,283 cells, 0.614082704 mm2 |
| Timing | 100 MHz PASS, +0.6966 ns setup slack |
| BF16 successor | S6 sealed at probe-gate NO-GO; official dev was not accessed |
| Execution admission | V8 recovery package Fresh-L2 accepted; external root still required |
| Recorded generation diagnostic | Fixed Hi input completed and emitted [529, 529] (ertert); capability evidence only |
| Arbitrary-text W4A8 chat | Not yet accepted |
| Alveo U280 deployment | Not started; external tool/board access required |
The machine-readable identities, model revision, image hash, schedule hash, and exact Alpha 2 certification boundary remain summarized in CERTIFICATION.md. See Alpha 3 productization progress for the new work and its explicit non-claims.
The latest public-safe productization result does not advance the certified
RTL baseline. The V8 host-trust recovery package passed 58 verifier checks with
zero reported issues and received Fresh-L2 acceptance for content SHA-256
07663099352edfad32eb39919ad9475f1f887328ebb549bdb9cae1c48f5ccad1.
Its status is BUILD_READY_EXTERNAL_ROOT_REQUIRED: it has not been installed,
no privileged execution occurred, and Stage 1 is not complete. See
Host-trust recovery status.
ACE-2 is part of the wider body of work published by the Argus AI Team. Argus carried out the iterative engineering loop: architecture decomposition, RTL and oracle implementation, deterministic test generation, long-running verification, failure localization, evidence binding, reviewer handoffs, and fail-closed rollback decisions. Human control remained at the mission, budget, authorization, credential, and publication boundaries.
This attribution is not a substitute for evidence. The repository keeps accepted results, rejected candidates, reproducible demos, and explicit non-claims separate. See Argus design provenance.
An independently reviewed, fixed-input generation record is available in
the public two-token diagnostic evidence bundle.
It completed 175,855 Verilated commands and emitted token IDs [529, 529],
which statically decode to ertert. This demonstrates recorded token
generation, not useful language quality or arbitrary-text chat.
flowchart LR
H[Host command stream] --> D[Descriptor + DMA shell]
D --> N[RMSNorm]
N --> Q[W4A8 Q / K / V / O projections]
Q --> R[RoPE + attention score]
R --> S[Softmax + value composition]
S --> M[MLP gate / up / SiLU / down]
M --> A[Residual + KV state]
A --> L[Final RMSNorm + LM head]
L --> T[Token IDs]
The release includes the certified RTL, deterministic fixed-point references, generated test vectors, Verilator/Icarus harnesses, image/runtime utilities, and release-local SKY130 flow scripts. Model weights, proprietary PDK data, private benchmarks, build products, and sealed internal run packets are not distributed.
ACE-2 implements one reusable Transformer-layer engine rather than physically replicating all 24 model layers. The host selects a layer, supplies its weights and descriptors, invokes the operators in order, and feeds the resulting hidden state into the next layer.
flowchart TB
HOST[Host runtime and model package] --> IFACE[128-bit command/data interface]
IFACE --> SHELL
subgraph SHELL[ace2_shell]
CTRL[Command decoder<br/>descriptor, completion, error control]
MEM[Banked SRAM, DMA and KV state]
subgraph PROJ[Shared W4A8 projection path]
MAC[Four MAC lanes]
PUSE[Q / K / V / O<br/>Gate / Up / Down]
end
subgraph VEC[Vector and special-function cores]
NORM[RMSNorm]
ROPE[RoPE]
SM[Softmax]
SILU[SiLU / SwiGLU]
RES[Residual and requantization]
end
subgraph ATTN[Attention and state]
KV[KV cache read/write]
SCORE[Attention score]
VALUE[Attention value/compose]
end
CTRL --> NORM --> PROJ --> ROPE --> KV --> SCORE --> SM --> VALUE
VALUE --> PROJ --> RES --> NORM --> PROJ --> SILU --> PROJ --> RES
MEM <--> PROJ
MEM <--> ATTN
MEM <--> VEC
end
SHELL --> NEXT[Layer output / next-layer input]
The current design is command-driven and resource-shared:
- the same layer engine is reused across all model layers and token positions;
- seven major projections share one W4A8 MAC path;
- RMSNorm, RoPE, Softmax and SiLU are separate reusable cores;
- KV state persists across token steps;
- operators execute in sequence rather than as a fully autonomous layer pipeline;
- fused opcode
0x0bexecutes Q, K and V as one ordered descriptor while reusing the activation tile; it does not add three independent projection engines; - larger Qwen and other decoder-only model shapes still require the planned parameterized model/hardware contract.
This organization keeps area controlled and makes the individual cores reusable, while leaving clear optimization opportunities in MAC parallelism, operator fusion and Prefill/Decode scheduling.
The shell can cache one 56-beat, 896-byte activation tile and reuse it across the ordered Q, K and V projection phases. The legacy three-descriptor path remains available. On the frozen Qwen2.5-0.5B-shaped RTL benchmark:
| Metric | Legacy Q/K/V | Fused QKV |
|---|---|---|
| Commands | 3 | 1 |
| Activation reads | 64,512 | 56 |
| Total reads | 97,920 | 33,464 |
| Simulator cycles | 1,044,326 | 805,011 |
All 1,152 output bytes match the same fixed-point oracle in both modes. Backpressure, reset/restart, corrupted read tags and legacy compatibility are also checked. This is a bounded projection result, not a full-model chat or whole-shell timing claim.
make fused-qkv-freeze
make fused-qkv-checkflow/immutable_ppa/ provides a non-consuming preflight for future
base/candidate SKY130 comparisons. It freezes the exact 12 shell parameters,
64 public ports, fused-QKV contract, RTL/SDC/flow hashes, container digest and
absolute Yosys/OpenSTA/library paths. The preflight validates and renders
commands but deliberately cannot run synthesis or STA.
python3 flow/immutable_ppa/benchmark_interface.py --repo "$PWD"
python3 -m unittest \
flow/immutable_ppa/test_benchmark_interface.py \
flow/immutable_ppa/test_immutable_ppa.pyOfficial comparison namespaces use exclusive creation and reject overwrite or retry. This package itself contains no PPA, timing-closure or FPGA claim.
ACE-2 now includes executable model/hardware descriptors for Qwen2.5 0.5B, 1.5B, 3B and 7B. The shared schema validates model dimensions, GQA geometry, precision choices, memory-layout requirements and estimated weight/KV capacity.
make model-hardware-contract-check| Model | Contract scope | Estimated packed weights | Maximum weight + KV estimate |
|---|---|---|---|
| Qwen2.5-0.5B | Existing package/runtime preflight | 526.7 MB | 740.6 MB |
| Qwen2.5-1.5B | Structural only | 1.25 GB | 3.19 GB |
| Qwen2.5-3B | Structural only | 2.18 GB | 2.81 GB |
| Qwen2.5-7B | Structural only | 4.65 GB | 8.53 GB |
The larger-model descriptors establish machine-checked structural contracts; they do not claim that 1.5B, 3B or 7B has executed in RTL. The maximum capacity figures use each model's declared maximum context and therefore are planning bounds rather than measured board allocation.
The same validation command also generates deterministic precision plans for all four model contracts:
| Policy | Intended use | Current status |
|---|---|---|
w4a8 |
W4 projections with A8 activation/KV paths | Current RTL format |
w8a8 |
Higher-precision projection candidate | Structural candidate; no RTL execution claim |
mixed_w4a8_a16_bf16 |
W4 projections with A16/BF16-sensitive operator classes | Structural candidate; no RTL execution claim |
Each plan records per-operator precision, estimated weight/KV capacity, maximum-context decode traffic, descriptor hashes and explicit hardware-support status. The validator fails closed on schema/type mismatches and includes a signed-int4 ties-to-even packing reference. W8A8 and mixed BF16 support remain software/hardware co-design plans until corresponding RTL is implemented and verified.
The ACE-2 Open IP Library organizes the canonical RTL into
nine reusable packages with machine-readable manifests. It distinguishes
standalone cores (rmsnorm, rope, softmax, projection, and SiLU/SwiGLU),
standalone attention cores with shared shell integration, the shell-owned KV
write path, and MLP/Transformer-layer integration bundles.
make ip-list
make ip-validate
make ip-demo IP=rmsnorm
make ip-softmaxPackage results are emitted under build/ip_library/. The existing 18
operator demos prove the listed ACE-2 paths, but not every operator name is a
separate standalone core. See each manifest for canonical sources,
Qwen2.5-0.5B parameters, interfaces, dependencies, proof mapping, and
limitations. This packaging does not claim arbitrary Transformer support,
full-model chat completion, or FPGA deployment.
Install Python 3, GNU Make, Verilator, and Icarus Verilog, then run:
make demoThe demo does not replay the billion-cycle full-model certification. It runs a fast, public-safe, machine-local evidence chain:
- verifies every certified RTL file hash;
- checks the open-source toolchain;
- lints the complete accelerator shell;
- regenerates deterministic RMSNorm vectors with the independent oracle;
- simulates 15 RTL cases x 56 beats against expected results;
- generates a fresh unpredictable local challenge and recompiles the RTL;
- emits a VCD waveform for the challenge run;
- proves the checker rejects an intentionally corrupted expected result;
- generates fresh seeded random questions for five Transformer core groups, computes bit-accurate Python answers, and compares them with RTL output;
- runs six selected
ace2_shellintegration modes; - displays all 18 certified Layer-0 operators, distinguishing fast-demo execution from slow extended-shell coverage;
- produces a standalone visual evidence dashboard with the local challenge, tool versions, source commit, logs, and output hashes.
Expected final marker:
ACE2_LOCAL_RTL_DEMO_PASS
Open the generated dashboard:
build/DEMO_REPORT.html
View a sample Alpha 2 evidence report without installing the simulation toolchain.
See DEMO.md for the complete walkthrough and raw artifact map.
To run the complete public shell regression, including the slower projection, KV-write, and attention-value paths:
make demo-extendedReplay a reported random challenge with make demo SEED=<seed>.
Inspect one Layer-0 operator at a time:
make demo-operators # list all 18 names
make demo-softmax
make demo-mlp-up # slow: full 896 x 4864 projection
make demo-operator OP=kv-write # equivalent generic formEach command writes a focused log and result.json under
build/single_operator/<operator>/. RoPE Q/K and residual/post-norm have
separate commands but transparently share their paired shell proof path.
| Operator | Command | Operator | Command |
|---|---|---|---|
| Input RMSNorm | make demo-input-rmsnorm |
Q projection | make demo-q-proj |
| K projection | make demo-k-proj |
V projection | make demo-v-proj |
| RoPE Q | make demo-rope-q |
RoPE K | make demo-rope-k |
| KV write | make demo-kv-write |
Attention score | make demo-attention-score |
| Softmax | make demo-softmax |
Attention value | make demo-attention-value |
| O projection | make demo-o-proj |
Attention residual | make demo-attention-residual |
| Post-attention RMSNorm | make demo-post-attention-rmsnorm |
MLP gate | make demo-mlp-gate |
| MLP up | make demo-mlp-up |
SiLU | make demo-silu |
| MLP down | make demo-mlp-down |
MLP residual | make demo-mlp-residual |
The dashboard marks all 18 rows PASS only after the default shell log contains
ACE2_SHELL_TB_PASS and the dedicated MLP-up replay contains
ACE2_SHELL_MLP_UP_TB_PASS. Neither command replays the sealed full-model
schedule or claims FPGA execution.
ACE-2 reached timing closure through measured, tree-specific iterations rather than by hiding failed candidates:
| RTL frontier | Setup slack | Result |
|---|---|---|
| Initial complete runtime tree | -0.1484 ns | NO-GO |
| Low-fanout shell control repair | -0.5275 ns | NO-GO |
| RMSNorm capture-enable repair | -0.1741 ns | NO-GO |
| RMSNorm final-sum preload split | +0.6966 ns | 100 MHz PASS |
The final split introduces ST_MEAN_PRELOAD, separating the 48-bit final
sum-of-squares carry from dividend loading. The exact final tree is bound by
CERTIFIED_RTL.sha256.
Proven and carried forward unchanged from Alpha 2
- all 18 Layer-0 operator boundaries;
- 13,914-command, 24-layer, two-token RTL execution;
- exact model/image/schedule identities;
- mapped SKY130 100 MHz and 2.0 mm2 area-cap compliance;
- independent Fresh Reviewer certification.
Not yet claimed
- arbitrary natural-language conversation or unrestricted generation;
- stable tokenizer, host, or deployment API;
- FPGA emulation, bitstream, or board execution;
- routed timing, power signoff, DRC/LVS, GDS, tapeout, or silicon.
See KNOWN_LIMITATIONS.md for the full list.
- Current gate: an independent external-root channel must authenticate and invoke the exact accepted V8 recovery package. The current account cannot self-establish that trust root.
- Next: design and independently review a new BF16 successor after S6 failed closed at probe lock. S6 may not be retried, resumed, or rescored.
- Stage 1: arbitrary-text prefill, tokenizer/host integration, KV reuse, readable multi-token decoding, quantized-reference/RTL agreement, and a one-command accelerator-facing chat demo.
- Stage 2: AMD/Xilinx Alveo U280 PCIe/XRT + HBM2 integration, build evidence, and board execution when the external toolchain and hardware are genuinely available.
- Later: board validation expansion and physical-design signoff.
Productization work is not part of the certified baseline until it receives reproducible evidence and an independent Fresh Reviewer verdict.
rtl/ Certified synthesizable RTL
constraints/ Release-local timing constraints
flow/ SKY130 synthesis/STA scripts
verification/ Deterministic vectors, tests, and runtime harnesses
tools/ Fixed-point references and image/runtime utilities
docs/ Architecture, PPA, and traceability summaries
CERTIFIED_RTL.sha256 Exact certified RTL manifest
CERTIFICATION.md Evidence identities and claim boundary
CHANGELOG.md Version history
v0.3.0-alpha.1— ACE-2 Alpha 3, productization progress with the certified Alpha 2 baseline preserved.v0.2.0-alpha.1— ACE-2 Alpha 2, certified two-token RTL snapshot.v0.1.0-alpha.1— ACE-2 Alpha 1, accepted prefix throughlayer_0.v_proj.
Tags preserve previous snapshots; main describes the latest version.
Licensed under the Apache License 2.0. The license applies to ACE-2 source, tools, and documentation in this repository, including preserved historical versions, unless a file explicitly states otherwise.