Expand description
Verilog export of the build-selected profile and of single blocks.
The profile is a build-time constant, ED25519_SCALABLE_PROFILE =
fb,sha,sc,compress (default 15,11,3,1); build.rs turns it into
SelectedSigner, so only that size is generated. Output goes to
generated/; it is an output for synthesis only and is never edited or
read back as a source.
cargo run --profile sim --bin export_scalable # the profile
cargo run --profile sim --bin export_scalable -- --small # Ed25519SignCoreSmall
cargo run --profile sim --bin export_scalable -- --block fb_machine§Lowering memory
Stock RHDL builds, besides the hierarchical HDL, a flattened bit-level
netlist at every level of the hierarchy and keeps every compiled kernel,
so memory grows with the number of instances: 15/11/3/1 needed more than
6 GiB. The vendored rhdl-core carries a local patch
(patches/rhdl-hdl-only-export-20261014.diff): with RHDL_HDL_ONLY=1
only the HDL is built. Every export in this module sets it unless
RHDL_KEEP_NETLIST is set.
| Export | Stock | HDL only |
|---|---|---|
Ed25519SignCore | 3.50 GB, 99 s | 190 MB, 11 s, byte-identical output |
| 15/11/3/1 | > 6 GiB (out of memory) | 1.75 GB, 72 s, 36.8 MB of Verilog |
Constants§
- BLOCKS
- Names accepted by
block_hdl, in the orderexport_scalable --blockswrites them. - PROFILE
- Signer profile selected by
ED25519_SCALABLE_PROFILEat build time (a SHA count of 0 means the shared line). - VERIFY_
PROFILE - Verifier profile selected by
ED25519_VERIFY_PROFILEat build time.
Functions§
- block_
hdl - Verilog of one leaf block, exported for mapping calibration (the Yosys
leaf maps behind
config::yosys_calibrated).nameis one ofBLOCKSand is also used as the top module name and file stem; any other name is an error. - selected_
signer_ hdl - Verilog of the build-selected signer profile (
SelectedSigner, set byED25519_SCALABLE_PROFILEat build time), top modulescalable_sign_core. - selected_
verifier_ hdl - Verilog of the build-selected verifier (
SelectedVerifier, set byED25519_VERIFY_PROFILEat build time), top moduleknown_key_verify_core. - small_
signer_ hdl - Verilog of
Ed25519SignCoreSmall(CachedSignIn/CachedSignOutports, every module prefixeded25519_sign_core). - ubft_
hdl - Verilog of the uBFT service
UbftEd25519<1, 1>(featureubft), top moduleubft_ed25519.
Type Aliases§
- Selected
Signer - The selected signer type.
- Selected
Verifier - The selected verifier type.