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:
- The source code of GTKWave.
- The documentation of GTKWave.
- An unofficial specification for FST format.
§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
SupplementalDataType
. - Enum values of type
SupplementalVarType
. - 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 Aliases§
- Subtype of the attribute of type
ARRAY
. - Type of attribute.
- Type of block.
- Subtype of the attribute of type
ENUM
. - Type of file.
- Subtype of the attribute of type
MISC
. - Subtype of the attribute of type
PACK
. - Result with error type
Error
. - Type of scope.
- Type of supplemental data.
- Type of supplemental variable.
- Type of variable direction.
- Type of variable.
- Type of packaging method of writer.