5 个版本
0.0.5 | 2024 年 6 月 5 日 |
---|---|
0.0.4 | 2024 年 6 月 4 日 |
0.0.3 | 2021 年 12 月 10 日 |
0.0.2 | 2021 年 11 月 1 日 |
0.0.1 | 2021 年 2 月 22 日 |
#717 在 解析器实现
每月 213 次下载
185KB
3.5K SLoC
OASIS 流读取器/写入器
libreda-oasis
是 LibrEDA 的布局输入/输出模块
OASIS 是芯片布局的二进制文件格式,是 GDSII 的良好继承者。这个库提供了将 libreda-db 布局写入和读取 OASIS 文件的代码。
文档
此包使用代码中的 docstrings 进行文档化。要查看文档,请克隆此存储库并运行:cargo doc --open
致谢
lib.rs
:
用于读取和写入 OASIS 文件的库。
OASIS 是一种二进制格式,用于存储二维几何数据,通常用于硅芯片布局。其目的是与较旧的 GDS2 格式非常相似。
示例
从 OASIS 读取布局
use std::fs::File;
use libreda_oasis::OASISStreamReader;
// Import the `LayoutStreamReader` trait.
use libreda_db::prelude::*;
let filename = "./tests/data/INVX1_no_compression.oas";
// Open the OASIS file for reading.
let mut f = File::open(filename).unwrap();
// Create an empty layout that will be populated by the OASIS reader.
let mut layout = Chip::new();
// Create a default OASIS reader and parse the data from the file.
let result = OASISStreamReader::default()
.read_layout(&mut f, &mut layout);
// Assert that there was no error.
assert!(result.is_ok());
将布局写入 OASIS
use std::fs::File;
use libreda_oasis::OASISStreamWriter;
// Import the `LayoutStreamReader` trait.
use libreda_db::prelude::*;
// Create an empty layout.
let layout = Chip::new();
let mut f = File::create("./tests/data/empty_layout_out.oas").unwrap();
let writer = OASISStreamWriter::default();
// Write the (empty) layout to the file.
let write_result = writer.write_layout(&mut f, &layout);
// Assert that there was no error.
assert!(write_result.is_ok());
参考
依赖关系
~5MB
~99K SLoC