EDA Waveform ExtensionThis package provides an extension for the impulse framework, focusing on the import and (optionally) export of Electronic Design Automation (EDA) waveform data. impulse is a powerful, extensible platform for signal analysis, visualization, and processing, widely used in engineering and scientific domains to handle a broad range of data formats. About impulseimpulse is a modular, open-source framework designed to unify the handling of signal and measurement data from diverse sources. It provides a robust infrastructure for reading, writing, analyzing, and visualizing signals, supporting both simple and highly structured data. impulse's extensible architecture allows developers to add support for new data formats by implementing custom readers and writers, making it a versatile tool for engineers, scientists, and developers. About EDAElectronic Design Automation (EDA) refers to the category of software tools used for designing, simulating, and verifying electronic systems such as integrated circuits, FPGAs, and printed circuit boards. EDA tools generate waveform data during simulation and verification processes, which are essential for analyzing digital and mixed-signal designs. Common EDA waveform formats include VCD, FST, FSDB, and WLF, each associated with different simulation tools and workflows. Purpose of this ExtensionThe EDA Waveform Extension integrates support for standard EDA waveform formats into impulse, enabling users to seamlessly import, analyze, and visualize simulation and measurement results from popular EDA tools. This extension is essential for anyone working with digital or mixed-signal simulation data, as it bridges the gap between EDA tool outputs and the advanced analysis capabilities of impulse. Supported and Planned FormatsThis package currently includes, or is planned to include, readers (and optionally writers) for the following EDA waveform formats:
Additional formats may be added in the future as the needs of the EDA and impulse communities evolve. Quick Start
LicenseOur guiding principle for this and all subsequent versions is:
DocumentationEnter https://toem.io/resources/ for more information about impulse. Functional BlocksVCD ReaderThe VCD Reader is designed for importing and analyzing digital simulation waveforms in the VCD format. It supports hierarchical signal organization, regex-based filtering, and time range selection. Users can focus on specific signals by applying include/exclude patterns and adjust time ranges to analyze specific portions of the simulation. The reader also supports grouping multi-bit vectors and organizing signals into hierarchical scopes. Key Features:
Limitations:
FST ReaderThe FST Reader enables the import of block-compressed FST files, which are compact and optimized for large simulation datasets. It supports filtering signals and importing specific time ranges, making it ideal for focusing on particular parts of a simulation. The reader is experimental and may evolve as features are refined. Key Features:
Limitations:
FST Native ReaderThe FST Native Reader uses gtkwave's fstapi library for high-performance parsing of FST files. It supports lazy loading, allowing users to load only the signals they need, which is particularly useful for very large datasets. The reader integrates seamlessly with impulse's visualization tools and supports advanced workflows. Key Features:
Requirements:
FSDB Native ReaderThe FSDB Native Reader processes FSDB files, a proprietary format commonly used with Synopsys tools. It supports hierarchical browsing and lazy loading, making it suitable for large and complex datasets. Users can filter signals and focus on specific time ranges. A valid Synopsys license is required to use this reader. Key Features:
Limitations:
Status
Contributions and feedback are welcome as this extension continues to evolve. |
