2个版本
0.0.2 | 2024年4月14日 |
---|---|
0.0.1 | 2023年2月17日 |
#921 在 解析器实现
每月107次下载
365KB
8K SLoC
fstapi
Rust对操作Fast Signal Trace (FST)格式波形API的封装。
FST是一个开源文件格式,用于存储HDL仿真的数字波形。它由GTKWave的作者在2014年创建,作为VCD(值变化转储)格式的替代。
有关更多详细信息,请参阅
使用方法
通过运行 cargo add
将 fstapi
添加到您的项目中
cargo add fstapi
示例
创建一个FST波形
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)?;
打印FST波形的所有变量
let mut reader = fstapi::Reader::open("hello.fst")?;
for var in reader.vars() {
let (name, _) = var?;
println!("{name}");
}
更多示例
请参阅GitHub仓库:fst-tools,其中包含3个命令行工具,用于使用此库操作FST波形。
许可证
版权(C)2023 MaxXing。根据您的选择,许可为Apache 2.0或MIT。
无运行时依赖
~0–2MB
~40K SLoC