logo

A05 File formats overview

In the first chapter (Basics) I already tried to explain how different file formats are identified using eclipse means and how records (the content of the wave files) are structured. This chapter handles now the different implemented formats.

Large files

Records don't need to be read form files, nevertheless i talk here about large files (as its usually done that way). First, Impulse has no limitation for file size (probably the OS has one). In fact all signals will be layed out into temporary storage (there should be enough on the disc) if internal memory gets low. So its possible to load a lot of record files at the same time in eclipse (you just have to open the record file structure in the project explorer).

Reader buffer / Performance

For large trace files that are organized by time (like vcd files), the reader needs a lot of buffers to group the data by signals. The available buffer size directly effects the performance. To give Impulse (and eclipse) enough buffer you need to :

  • Call eclipse with additional parameters to modify available heap size
eclipse [normal arguments] -vmargs -Xmx2048M [more VM args]
  • or edit the config.ini of eclipse
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20120913-144807
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xms512m
-Xmx2048m
-XX:+UseParallelGC
-XX:PermSize=256M
-XX:MaxPermSize=512M

You should adjust the heap at least to 1024M. I you have, give it more.

Internal file formats

When signals are loaded form a vcd file, the content is converted into an internal representation. This format is for internal memory data representation, for the cached data (temporary storage) and for the default file formats of impulse:

  • the recML format
  • and the compressed recMZ format.
These formats can be used to store files from within the viewer.Use cases are:
  1. Compress a vcd file
  2. Save the composite of multiple files (impulse sources)
  3. Save the data from sockets or pipes (impulse sources)
  4. Store changes (Markers).
  • Compressed/Uncompressed Record Format(recML/recMZ)

    The name recML sounds like an XML format and in fact it is. The structure of the record (record/ scopes/signals) is encoded as XML. The real signal data are attributes in form of packed binaries. These binaries include both the samples of the signal, as well as the timing information. So its possible to edit the xml and put together different fragments of the xml file. There is no global time table ! This is a slight disadvantage fpr packing, but makes it easier to combine and edit.

    recMZ includes a similar format (xml structure information and additional packed binary section) , but the content is compressed.

    Both recML and recMZ support digital,analog, transaction and log signals for discrete and continuous format.

    Platforms
    32/64bit 32/64bit 32/64bit
    Requirements
    • None
    Known limitations
    • File size limited by virtual memory and temporary storage
    Status
    • Stable
    Operations
    • Load
    • Save

    Compression ratio and typical load time

    File Format Size Load 1024M Heap
    4.vcd (large VCD file with > 50k Signals) vcd 1.024.393.215 29s (same as GtkWave: 30s)
    4.recML (same file saved as recML) recML 482.216.601 5s
    4.recMZ (same file saved as recMZ) recMZ 9.854.040 2,5s
  • Value Change Dump (VCD)

    Yes, no miracle, the Verilog Value Change Dump is supported. Load time for this format is quite huge (large files - see above) but comparable with GtkWave.

    • Vector signals are getting combined (v[0], v[1] -> v[0,1])
    • 9 state logic supported (not just 4)
    • TIMEZERO command supported
    • String signal support (need to be defined as string (not real) in the vcd header)

    Platforms
    32/64bit 32/64bit 32/64bit
    Requirements
    • None
    Known limitations
    • File size limited by virtual memory and temporary storage
    Status
    • Stable
    Operations
    • Load
    • Stream
  • Analog Tabular Format (TAB)

    This format is used in SystemC AMS systems. The default file ending in Impulse is ".tab". If your file have different naming conventions, goto Eclipse Preferences -> Content Types, and edit your files preferences for the Record element.
    Please remind that the reader has to find a proper time base (or frequency base) for the file. This is done by getting the time (frequency) difference of the first 2 entries. Impulse first selects the base that is smaller than this differences, finally it takes a base 10 times smaller than the calculated.
    Example:
    Time Clk a1 a2 b1 b2 out 
    0 3 3 3 3 3 3.0092e-06
    2.5e-11 3 3 3 3 3 3.0092e-06
    Difference is 2.5e-11 -> 25 ps . Time unit ps10 (10 ps) is smaller than the difference, It chooses ps (1 ps) as time base.

    Platforms
    32/64bit 32/64bit 32/64bit
    Requirements
    • None
    Known limitations
    • File size limited by virtual memory and temporary storage
    • Domain base may not match perfectly (see text above)
    Status
    • Stable
    Operations
    • Load
    • Stream
  • Trace Record Format (recTr)

    recTr is an open trace format. Emitters can be dowbloaded in source form from toem git hub. See A03 recTr Trace Record Format for more information.

    • Java and C emitters available
    • Supports multiple domains
    • Usable as for online data and trace files
    • Supports multi cores

    Platforms
    32/64bit 32/64bit 32/64bit
    Requirements
    • None
    Known limitations
    Status
    • Stable
    Operations
    • Load
    • Stream
  • Script Record Format (recJs)

    RecJs files are wave files build on scripts. You might prepare signal references, define test vectors for your design or script a custom reader. Everything is based on the same simple api that is used in signal scripts and serializer. See A04 recJs Script Record Format for more information.


    Platforms
    32/64bit 32/64bit 32/64bit
    Requirements
    • None
    Known limitations
    Status
    • Stable
    Operations
    • Load

File formats supported by the HDL feature

The HDL feature is not part of the core features of impulse and must be installed separately with the installation dialog.

  • Feature: Impulse HDL Reader (HDL)

    There are a number of HDL related file formats supported now. Unfortunately so far there is no support for fsdb and wlf (but this might change soon). FST is supported based on an jni library from gtkwave, the other formats uses external converters like evcd2vcd.

  • FST
    Fast Signal Trace
    eVCD
    Extended Value Change Dump
    LXT2
    InterLaced eXtensible Trace
    VZT
    SCV
    SystemC Transaction DB
  • License
    • EPL
    Sources
    • Available in the plugin package
  • Fast Signal Trace(FST)

    This format was created by Tony Bybell from gtkWave. The reader uses the FST JNI packages provided by the gtkwave source package.


    Platforms
    32/64bit
    Requirements
    • None
    Known limitations
    • The reader uses external libs that are not in charge and not completely understood by toem
    • Bugs in external JNI libs may resolve into JVM crashes
    Status
    • Beta
    Operations
    • Load
  • Extended Value Change Dump(eVCD)

    The eVCD format is supported by using an external tool to convert eVCD to vcd format (evcd2vcd). This tool is not part of impulse and must be installed separately (gtkwave package in debian/ubuntu).

    In case of different tool naming, path and parameters, the user can configure the tool parameters on the serializer preferences page.


    Platforms
    Depending on the availability of external tool
    Requirements
    • evcd2vcd tool
    Known limitations
    • The reader uses external applications that are not in charge and not understood by toem
    Status
    • Beta
    Operations
    • Load
  • InterLaced eXtensible Trace (LXT2)

    The LXT2 format is supported by using an external tool to convert LXT2 to vcd format (lxt2vcd). This tool is not part of impulse and must be installed separately (gtkwave package in debian/ubuntu).

    In case of different tool naming, path and parameters, the user can configure the tool parameters on the serializer preferences page.


    Platforms
    Depending on the availability of external tool
    Requirements
    • lxt2vcd tool
    Known limitations
    • The reader uses external applications that are not in charge and not understood by toem
    Status
    • Beta
    Operations
    • Load
  • VZT

    The VZT format is supported by using an external tool to convert VZT to vcd format (vzt2vcd). This tool is not part of impulse and must be installed separately (gtkwave package in debian/ubuntu).

    In case of different tool naming, path and parameters, the user can configure the tool parameters on the serializer preferences page.


    Platforms
    Depending on the availability of external tool
    Requirements
    • vzt2vcd tool
    Known limitations
    • The reader uses external applications that are not in charge and not understood by toem
    Status
    • Beta
    Operations
    • Load
  • SystemC Transaction DB (SCV)

    The SCV format is used by the default transaction db writer of the SystemC Verification Library.

    The Status of the reader is experimental.


    Platforms
    32/64bit 32/64bit 32/64bit
    Requirements
    • None
    Known limitations
    • File size limited by virtual memory and temporary storage
    Status
    • Beta
    Operations
    • Load

File formats supported by the Spice feature

The Spice feature is not part of the core features of impulse and must be installed separately with the installation dialog.

  • Feature: Impulse SPice Reader (Spice)

    There are a number of Spice related file formats supported now. HSpice and Spice3 are supported natively, wheras NanoSim needs an external conversion tool.

  • HSpice
    tr0 format (Ascii/Binary)
    NanoSim
    Nsout format (uses sp2sp)
    Spice3
    Spice3 raw format (Ascii/Binary)
  • License
    • Impulse license
    Sources
    • Not available
  • HSpice tr0 format (TR0)

    For this format no open specification is available. Instead the reader is based on non-official format informations from the internet. It just supports the format versions 9007 and 9601.


    Platforms
    32/64bit 32/64bit 32/64bit
    Requirements
    • None
    Known limitations
    • File size limited by virtual memory and temporary storage
    • Implementation not based on official specification
    • It just supports the format versions 9007 and 9601
    Status
    • Stable
    Operations
    • Load
  • NanoSim (OUT)

    The NanoSim format is supported by using an external tool to convert NanoSim to tabular format (sp2sp). This tool is not part of impulse and must be installed separately (gwave package in debian/ubuntu).

    In case of different tool naming, path and parameters, the user can configure the tool parameters on the serializer preferences page.


    Platforms
    Depending on the availability of external tool
    Requirements
    • sp2sp tool
    Known limitations
    • The reader uses external applications that are not in charge and not understood by toem
    Status
    • Beta
    Operations
    • Load
  • Spice3 (RAW)

    Spice3 format is used by open source spice implementations.


    Platforms
    32/64bit 32/64bit 32/64bit
    Requirements
    • None
    Known limitations
    • File size limited by virtual memory and temporary storage
    Status
    • Stable
    Operations
    • Load

File formats supported by the LOG feature

The LOG feature is not part of the core features of impulse and must be installed separately with the installation dialog.

  • Feature: Impulse LOG Reader (LOG)

    This feature combines a couple of readers for logging formats. Beside the Log4j xml 1.2 format, there is a free pattern format. Users can define their own pattern definitions uses regular patterns. Additionally there is a binary log format reader from the ukos project.

  • Log4j
    Log4j xml 1.2
    Free pattern formats
    Define your own pattern definition (uses regular patterns)
    IMP
    ukos kernel log format
  • License
    • EPL
    Sources
    • Available in the plugin package
  • Log4j xml 1.2 (XML)

    The Apache xml log format (Version 1.2)


    Platforms
    32/64bit 32/64bit 32/64bit
    Requirements
    • None
    Known limitations
    • File size limited by virtual memory and temporary storage
    Status
    • Stable
    Operations
    • Load
  • Free Pattern Log (LOG)

    The free pattern log reader allows the user to define his own format using regular experssions.


    Platforms
    32/64bit 32/64bit 32/64bit
    Requirements
    • User need to define a format configuration (Serializer Preferences)
    Known limitations
    • File size limited by virtual memory and temporary storage
    Status
    • Stable
    Operations
    • Load
    • Stream
  • ukos kernel log (IMP)

    This format is used to trace the uKos kernel (ukos.org).


    Platforms
    32/64bit 32/64bit 32/64bit
    Requirements
    • None
    Known limitations
    • File size limited by virtual memory and temporary storage
    Status
    • Stable
    Operations
    • Load
    • Stream