Open Source interchange format and data structures

From F-Si wiki
Jump to navigation Jump to search

Slides

File:Naja-IF-FSIC2025.pdf

Abstract

Electronic Design Automation workflows involve a sequence of complex data transformations—from the user’s RTL input to final physical layout in GDSII—requiring consistent access to verification, reporting, and user interaction capabilities throughout. Maintaining a link between the initial RTL and downstream stages is non-trivial, especially given the volume of data and the need to coordinate across multiple representations: RTL, logical, and physical views.

Despite this complexity, tool interoperability in EDA is still largely based on human-readable, text-based formats such as Verilog, EDIF, and LEF/DEF. While the industry has access to structured in-memory and on-disk formats to improve efficiency, these are typically proprietary and not available to the Open Source ecosystem. As a result, most Open Source tools still rely on inefficient, lossy file-based communication.

This talk presents naja-if (Naja Interchange Format), an Open Source data format based on Cap’n Proto, designed to support structured, binary data exchange across EDA tools. It enables compact, fast serialization/deserialization, and supports multiple language bindings (C++, Python, Rust) through generated parsers.

The talk will also describe the current implementation status, including logical view support and experiments with exporting from Yosys and importing into OpenROAD. We will also discuss ongoing work on physical view representation and establishing explicit links between logical and physical domains.

Software