Supported Syntax
================
Undulate selects the syntax based on the extension of the file. However, each
file has some specificities. Wavedrom only support json and jsonml file formats.
In those formats, only a restricted set of annotations is supported to be
compatible with Wavedrom ("edges" section). Extra annotations can be added in an
"annotations" section but will be only processed by Undulate.
+------------------------+------+--------+------+------+
| | Json | Jsonml | Yaml | Toml |
+========================+======+========+======+======+
| supported in wavedrom | Yes | Yes | No | No |
+------------------------+------+--------+------+------+
| support extra comments | No | Yes | Yes | Yes |
+------------------------+------+--------+------+------+
| support annotations | Yes* | Yes* | Yes | Yes |
+------------------------+------+--------+------+------+
In order to let you choose the most appropriate format for you,
an example of the same plot in the different supported file format is posted below:
.. container:: tabs
.. raw:: html
json/jsonml
yaml
toml
.. container:: tab-content
:name: ff_json
.. code-block:: json
{ "signal": [
{ "name": "clk", "wave": "p......" },
{ "name": "bus", "wave": "x.34.5x", "data": "head body tail" },
{ "name": "wire", "wave": "0.1..0." },
]}
In this jsonml format, it is possible to add comments.
.. code-block:: c
{ signal : [
// clock signal
{ name: "clk", wave: "p......" },
// bus data
{ name: "bus", wave: "x.34.5x", data: "head body tail" },
// request signal
{ name: "wire", wave: "0.1..0." }
]}
.. container:: tab-content
:name: ff_yaml
.. code-block:: yaml
clk:
wave: p......
bus:
wave: x.34.5x
data: head body tail
wire:
wave: 0.1..0.
.. container:: tab-content
:name: ff_toml
.. code-block:: toml
clk.wave = "p......"
bus.wave = "x.34.5x"
wire.wave= "0.1..0."
bus.data = "head body tail"
.. warning::
Notice the group "signal" vanishes in yaml and toml syntax.
Wavedrom used a primary group to discriminate if this file contains signals,
, registers, or logic.
However, this increase the indentation level, and is prone to error in
yaml file format.
In toml file format, it increase the notation length as
``signal..wave``, or using ``[signal]`` section
without adding any advantages.
.. include:: ./_static/update_tabs.rst