celox-frontend-sdk
celox-frontend-sdk is the stable authoring boundary for external Celox
frontends. It models one flattened, elaborated netlist without depending on
Celox scheduling, SIR, optimization, or backend crates.
use ;
let byte = bits?;
let mut module = new?;
let a = module.input?;
let b = module.input?;
let y = module.output?;
let a = module.read?;
let b = module.read?;
let sum = module.binary?;
let y = module.whole?;
module.assign?;
let artifact = module.finish;
# Ok::
FrontendArtifact is an adapter boundary, not the artifact type an application
should consume. A frontend crate should keep the conversion internal and expose
an API named for its own representation:
pub use Simulator;
After importing the extension trait, applications call
Simulator::from_my_artifact and do not need to know that the adapter uses
Celox's bridge type.
Pass the resulting Rust value directly to Celox. The JSON representation is a separate transport format and is not required to build a Rust simulator binary.
Artifact format version 1 models one flattened module and does not support
bidirectional (inout) signals. External frontends must lower them to separate
input, output, and output-enable signals before building the artifact.
Frontend adapters that use both celox-frontend-sdk and celox must keep their
versions aligned.