mirror of
https://github.com/lowRISC/ibex.git
synced 2025-04-24 05:47:36 -04:00
Doc: Inline documentation of waveforms
So far I used wavedrom for rendering, but that required external tooling. After patching the extension, sphinx can now render inline waveforms!
This commit is contained in:
parent
27e4dd848a
commit
99964c84d2
9 changed files with 55 additions and 46 deletions
|
@ -32,7 +32,8 @@ numfig_format = {'figure': 'Figure %s', 'table': 'Table %s', 'code-block': 'List
|
|||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = []
|
||||
extensions = ['sphinxcontrib.wavedrom']
|
||||
wavedrom_html_jsinline = False
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
{signal: [
|
||||
{name: 'clk', wave: 'p......'},
|
||||
{name: 'data_addr_o', wave: 'x=.xxxx', data: ['Address']},
|
||||
{name: 'data_wdata_o', wave: 'x=.xxxx', data: ['WData']},
|
||||
{name: 'data_req_o', wave: '01.0...'},
|
||||
{name: 'data_gnt_i', wave: '0.10...'},
|
||||
{name: 'data_rvalid_i', wave: '0..10..'},
|
||||
{name: 'data_wdata_o', wave: 'xxx=xxx', data: ['RData']},
|
||||
{name: 'data_we_o', wave: 'x=.xxxx', data: ['WE']},
|
||||
{name: 'data_be_o', wave: 'x=.xxxx', data: ['BE']},
|
||||
],
|
||||
config: { hscale: 2 }
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 30 KiB |
|
@ -1,13 +0,0 @@
|
|||
{signal: [
|
||||
{name: 'clk', wave: 'p......'},
|
||||
{name: 'data_addr_o', wave: 'x==xxxx', data: ['Addr1', 'Addr2']},
|
||||
{name: 'data_wdata_o', wave: 'x==xxxx', data: ['WData1', 'Wdata2']},
|
||||
{name: 'data_req_o', wave: '01.0...'},
|
||||
{name: 'data_gnt_i', wave: '01.0...'},
|
||||
{name: 'data_rvalid_i', wave: '0.1.0..'},
|
||||
{name: 'data_wdata_o', wave: 'xx==xxx', data: ['RData1', 'RData2']},
|
||||
{name: 'data_we_o', wave: 'x==xxxx', data: ['WE1', 'WE2']},
|
||||
{name: 'data_be_o', wave: 'x==xxxx', data: ['BE1', 'BE2']},
|
||||
],
|
||||
config: { hscale: 2 }
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 32 KiB |
|
@ -1,13 +0,0 @@
|
|||
{signal: [
|
||||
{name: 'clk', wave: 'p......'},
|
||||
{name: 'data_addr_o', wave: 'x=..xxx', data: ['Address']},
|
||||
{name: 'data_wdata_o', wave: 'x=..xxx', data: ['WData']},
|
||||
{name: 'data_req_o', wave: '01..0..'},
|
||||
{name: 'data_gnt_i', wave: '0..10..'},
|
||||
{name: 'data_rvalid_i', wave: '0....10'},
|
||||
{name: 'data_wdata_o', wave: 'xxxxx=x', data: ['RData']},
|
||||
{name: 'data_we_o', wave: 'x=..xxx', data: ['WE']},
|
||||
{name: 'data_be_o', wave: 'x=..xxx', data: ['BE']},
|
||||
],
|
||||
config: { hscale: 2 }
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 30 KiB |
|
@ -51,17 +51,63 @@ The LSU provides a valid address in ``data_addr_o`` and sets ``data_req_o`` high
|
|||
|
||||
:numref:`timing1`, :numref:`timing2` and :numref:`timing3` show example-timing diagrams of the protocol.
|
||||
|
||||
.. figure:: images/timing1.png
|
||||
.. wavedrom::
|
||||
:name: timing1
|
||||
:caption: Basic Memory Transaction
|
||||
|
||||
Basic Memory Transaction
|
||||
{"signal":
|
||||
[
|
||||
{"name": "clk", "wave": "p......"},
|
||||
{"name": "data_addr_o", "wave": "x=.xxxx", "data": ["Address"]},
|
||||
{"name": "data_wdata_o", "wave": "x=.xxxx", "data": ["WData"]},
|
||||
{"name": "data_req_o", "wave": "01.0..."},
|
||||
{"name": "data_gnt_i", "wave": "0.10..."},
|
||||
{"name": "data_rvalid_i", "wave": "0..10.."},
|
||||
{"name": "data_wdata_o", "wave": "xxx=xxx", "data": ["RData"]},
|
||||
{"name": "data_we_o", "wave": "x=.xxxx", "data": ["WE"]},
|
||||
{"name": "data_be_o", "wave": "x=.xxxx", "data": ["BE"]}
|
||||
],
|
||||
"config": { "hscale": 2 }
|
||||
}
|
||||
|
||||
.. figure:: images/timing2.png
|
||||
|
||||
.. wavedrom::
|
||||
:name: timing2
|
||||
:caption: Back-to-back Memory Transaction
|
||||
|
||||
Back-to-back Memory Transaction
|
||||
{"signal":
|
||||
[
|
||||
{"name": "clk", "wave": "p......"},
|
||||
{"name": "data_addr_o", "wave": "x==xxxx", "data": ["Addr1", "Addr2"]},
|
||||
{"name": "data_wdata_o", "wave": "x==xxxx", "data": ["WData1", "Wdata2"]},
|
||||
{"name": "data_req_o", "wave": "01.0..."},
|
||||
{"name": "data_gnt_i", "wave": "01.0..."},
|
||||
{"name": "data_rvalid_i", "wave": "0.1.0.."},
|
||||
{"name": "data_wdata_o", "wave": "xx==xxx", "data": ["RData1", "RData2"]},
|
||||
{"name": "data_we_o", "wave": "x==xxxx", "data": ["WE1", "WE2"]},
|
||||
{"name": "data_be_o", "wave": "x==xxxx", "data": ["BE1", "BE2"]}
|
||||
],
|
||||
"config": { "hscale": 2 }
|
||||
}
|
||||
|
||||
.. figure:: images/timing3.png
|
||||
|
||||
.. wavedrom::
|
||||
:name: timing3
|
||||
:caption: Slow Response Memory Transaction
|
||||
|
||||
{"signal":
|
||||
[
|
||||
{"name": "clk", "wave": "p......"},
|
||||
{"name": "data_addr_o", "wave": "x=..xxx", "data": ["Address"]},
|
||||
{"name": "data_wdata_o", "wave": "x=..xxx", "data": ["WData"]},
|
||||
{"name": "data_req_o", "wave": "01..0.."},
|
||||
{"name": "data_gnt_i", "wave": "0..10.."},
|
||||
{"name": "data_rvalid_i", "wave": "0....10"},
|
||||
{"name": "data_wdata_o", "wave": "xxxxx=x", "data": ["RData"]},
|
||||
{"name": "data_we_o", "wave": "x=..xxx", "data": ["WE"]},
|
||||
{"name": "data_be_o", "wave": "x=..xxx", "data": ["BE"]}
|
||||
],
|
||||
"config": { "hscale": 2 }
|
||||
}
|
||||
|
||||
|
||||
Slow Response Memory Transaction
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
setuptools_scm
|
||||
sphinx
|
||||
sphinx_rtd_theme
|
||||
git+https://github.com/wallento/sphinx-wavedrom
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue