A cross-platform GUI application for viewing and analyzing ITF (Interconnect Technology Format) files used in semiconductor process design.
ITF Viewer visualizes semiconductor process stacks defined in ITF (Interconnect Technology Format) files. ITF files contain layer structures, electrical properties, and interconnect parameters used in semiconductor design.
- ITF file parsing with error reporting
- Cross-sectional stack visualization with pan, zoom, and layer selection
- Color-coded display for conductor and dielectric layers
- Layer property inspector (electrical, physical, lookup tables)
- Trapezoid rendering for metal etch profiles
- Via connection visualization
- Thickness exaggeration mode for thin layers
The main interface shows the ITF file structure with layer visualization, property panels, and interactive controls.
- Conductor and dielectric layers
- Electrical properties (CRT1/CRT2, RPSQ, RPV)
- Physical properties (width/spacing constraints, side tangent, etch parameters)
- Width/spacing dependent lookup tables
- Via definitions with resistance values
- Technology parameters (temperature, reference direction)
- Rust 1.70 or later
- Cargo package manager
git clone https://github.com/vowstar/itf-viewer.git
cd itf-viewer
cargo build --release
The executable will be available at target/release/itf-viewer
.
Launch the application to open the interactive GUI:
# Open with file picker
./itf-viewer
# Open with specific ITF file
./itf-viewer path/to/file.itf
# Display help information
./itf-viewer --help
# Show version information
./itf-viewer --version
- File Menu: Open ITF files and settings
- Layer Panel: Layer list with selection controls
- Details Panel: Property inspector for selected layers
- Mouse Controls: Pan (drag), zoom (wheel), select (click)
- Toggle layer dimensions, names, and property displays
- Schematic mode with thickness exaggeration
The software can calculate and visualize resistance values at different temperatures, showing how electrical properties vary with thermal conditions.
ITF Viewer supports standard ITF format:
TECHNOLOGY = technology_name
GLOBAL_TEMPERATURE = 25.0
REFERENCE_DIRECTION = VERTICAL
BACKGROUND_ER = 4.0
DIELECTRIC layer_name {THICKNESS=1.0 ER=4.2}
CONDUCTOR layer_name {THICKNESS=0.5 RPSQ=0.1}
VIA via_name {FROM=layer1 TO=layer2 AREA=0.01 RPV=1.0}
- Width/spacing lookup tables
- Temperature coefficients
- Etch parameters
- Multiple metal layers
Sample ITF files are in the examples/
directory.
ITF Viewer can also be used as a Rust library:
use itf_viewer::parse_itf_from_file;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let stack = parse_itf_from_file("example.itf")?;
let summary = stack.get_process_summary();
println!("Technology: {}", summary.technology_name);
println!("Total layers: {}", summary.total_layers);
println!("Stack height: {:.3} μm", summary.total_height);
Ok(())
}
data
: Core data structuresparser
: ITF file parsingrenderer
: Visualization enginegui
: User interface (egui)utils
: File I/O utilities
cargo build
cargo test
RUST_LOG=debug cargo run -- example.itf
Includes unit tests, integration tests, and parser validation.
- egui: GUI framework
- eframe: Application framework
- nom: Parser combinators
- serde: Serialization
- anyhow: Error handling
- rfd: File dialogs
Linux (X11/Wayland), Windows, macOS
Pull requests and issues are welcome.
- Follow Rust conventions
- Add tests for new features
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- ITF format specification
- egui framework
- StarRC: RC extraction tool
- Calibre: DRC/LVS tool with ITF support
- OpenRCX: Open-source RC extraction
- Author: Huang Rui [email protected]
- Repository: https://github.com/vowstar/itf-viewer
- Issues: https://github.com/vowstar/itf-viewer/issues