1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2018 年 6 月 8 日 |
---|
#5 在 #xilinx
95KB
2.5K SLoC
gaffe-xilinx
Rust 库,用于解析和操作 Xilinx 位流格式。
xc7-tool 使用说明
xc7-tool 是一个用于操作 7 系列位流的多功能工具。如果您主要想查看位流的内容,您可能会发现 xc7-tool packets
和 xc7-tool config_mem_frames
有用。命令及其选项通过 --help 进行文档化。
请注意,将位流解析到配置中的子命令需要设备描述文件。这是一个包含序列化 DeviceDescription 的 YAML 文件。该 repo 中尚未包含此类文件。可以通过 xc7-tool device_description
从调试位流生成一个。位流内的逻辑设计无关紧要。唯一的要求是它必须使用 Vivado 的 BITSTREAM.GENERAL.DEBUGBITSTREAM 属性设置为 YES 构建。
库使用说明
Cargo.toml
[dependencies]
gaffe-xilinx = "0.1"
包含库
extern crate gaffe-xilinx;
解析 7 系列位流到配置内存帧的示例
use gaffe_xilinx::from_bytes::FromBytes;
use ::gaffe-xilinx::xc7 as xc7;
let mut device_file = std::fs::File::open(device_file)?;
let device_description : ::xc7::DeviceDefinition = ::serde_yaml::from_reader(device_file)?;
let mut bitstream = std::io::BufReader::new(std::fs::File::open(bitstream)?);
let bitstream = ::xc7::Bitstream::from_bytes(&mut bitstream)?;
let configuration = ::xc7::Configuration::from_bitstream_for_device(&bitstream, &device_description)?;
println!("{:#?}", configuration)
支持的设备系列
当前开发主要集中在 7 系列上(Spartan7,Artix7,Kintex7)。Virtex2 及以后的系列都使用类似的位流格式和配置协议。如果您对这些其他系列感兴趣,请加入 Freenode IRC 上的 ##openfpga(是的,两个 #),并让我们知道。
依赖关系
~7–16MB
~196K SLoC