Table Of Contents

Previous topic

.sd file format

Next topic

Provided data

This Page

Rationale

Design

Module metadata format is, like most other formats, subject to a debate about the “right” representation. At the time SoCLib started to grow, we needed:

  • something not subject to external erratic changes in specification,
  • a simple yet powerful format:
    • easy to parse,
    • easy to learn,
    • easy to manually edit.

.sd files were created to satisfy these goals. They are:

  • Easy to parse, the syntax is a subset of the Python syntax, therefore, python interpreter can parse the files directly.
  • Easy to read, this is mostly a key-value system.
  • Easy to learn, no overhead in syntax.
  • Easy to edit, a complete module fits less than 25 lines, you can see it all while editing, and understand what you do.
  • SystemC source-code oriented. There is limited support for VHDL/Verilog source-code.

Limitations

  • The .sd metadata format cannot express all of the ModuleInterface and SpecializationInterface protocols. Only a subset is supported.

    For instance, .sd files can’t contain declarations of a module where dependent submodules list changes depending on a parameter (X is dependent on Y only if parameter z > 21). This is a feature for sake of simplicity. Other metadata providers could implement such a feature.

  • This is a custom file format, nobody else uses it.