Crate fstapi

source ·
Expand description

Rust wrapper of APIs for manipulating Fast Signal Trace (FST) format waveforms.

FST is an open source file format for storing digital waveforms from HDL simulations. It was created by the author of GTKWave in 2014, as an alternate to the VCD (Value Change Dump) format.

For more details, please see:

Examples

Create an FST waveform:

use fstapi::{Writer, var_type, var_dir};

// Create the waveform.
let mut writer = Writer::create("hello.fst", true)?
  .comment("FST waveform example")?
  .timescale_from_str("1ns")?;

// Create a variable.
let var = writer.create_var(var_type::VCD_REG, var_dir::OUTPUT, 8, "var", None)?;

// Emit value change data and time change data.
writer.emit_value_change(var, b"10001000")?;
writer.emit_time_change(10)?;
writer.emit_value_change(var, b"10011100")?;
writer.emit_time_change(42)?;
writer.emit_value_change(var, b"00111001")?;
writer.emit_time_change(100)?;

Print all variables of an FST waveform:

let mut reader = fstapi::Reader::open("hello.fst")?;
for var in reader.vars() {
  let (name, _) = var?;
  println!("{name}");
}

More Examples

See the GitHub repository: fst-tools, which contains 3 command line tools with this library for manipulating FST waveforms.

Modules

Enum values of type ArrayType.
Enum values of type AttrType.
Enum values of type BlockType.
Enum values of type EnumValueType.
Enum values of type FileType.
Enum values of type MiscType.
Enum values of type PackType.
Enum values of type ScopeType.
Enum values of type VarDir.
Enum values of type VarType.
Enum values of type WriterPackType.

Structs

An attribute in FST hierarchy.
Handle type, which is actually a 32-bit non-zero unsigned integer.
An iterator over the hierarchies of an FST waveform.
FST waveform reader.
A scope in FST hierarchy.
A variable in FST hierarchy.
An iterator over the variables of an FST waveform.
FST waveform writer.

Enums

Error that may returned from FST-related APIs.
Hierarchy of FST waveform.

Type Definitions

Subtype of the attribute of type ARRAY. Subtype of the attribute of type ARRAY.
Type of attribute. Type of attribute.
Type of block. Type of block.
Subtype of the attribute of type ENUM. Subtype of the attribute of type ENUM.
Type of file. Type of file.
Subtype of the attribute of type MISC. Subtype of the attribute of type MISC.
Subtype of the attribute of type PACK. Subtype of the attribute of type PACK.
Result with error type Error.
Type of scope. Type of scope.
Type of supplemental data. Type of supplemental data.
Type of supplemental variable. Type of supplemental variable.
Type of variable direction. Type of variable direction.
Type of variable. Type of variable.
Type of packaging method of writer. Type of packaging method of writer.