A Sphinx extension to generate bit field diagrams with the bit_field Python package.
pip install sphinxcontrib-bitfield
Add sphinxcontrib.bitfield in extensions of `conf.py`:
extensions = ['sphinxcontrib.bitfield']
To enable output with LaTeX support, add an image converter from SVG to PNG:
extensions = ['sphinx.ext.imgconverter', 'sphinxcontrib.bitfield']
Use directive bitfield with the description of the bitfield in JSON format:
.. bitfield::
:bits: 32
:lanes: 2
[
{ "name": "IPO", "bits": 8, "attr": "RO" },
{ "bits": 7 },
{ "name": "BRK", "bits": 5, "attr": "RW", "type": 4 },
{ "name": "CPK", "bits": 1 },
{ "name": "Clear", "bits": 3 },
{ "bits": 8 }
]
- The bitfield directive accepts the following options:
- vspace:
vertical space - default 80
- hspace:
horizontal space - default 640
- lanes:
rectangle lanes - default 2
- bits:
overall bitwidth - default 32
- fontfamily:
default sans-serif
- fontweight:
default normal
- fontsize:
default 14
- strokewidth:
default 1
- compact:
compact rendering mode
- hflip:
horizontal flip
- vflip:
vertical flip
- uneven:
uneven lanes
- trim:
trim long bitfield names, must provide the horizontal space available for a single character
- legend:
space separated list of name and type optionally enclosed in quotes
- caption:
String caption for the bitfield. If specified, the bitfield will be rendered as a figure
For more details, see the bit_field package.