3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-06-03 04:41:22 +00:00

Docs: Grouping changes

Keep techlibs folder hierarchy.
techlibs/* and passes/* groups are now nested under index_techlibs and index_passes respectively, with most (all?) of the passes/* pages getting proper headings, as well as backends/frontends/kernel.  `index_passes_techmap` also references `index_techlibs`.
Split command reference toc in twain, one with maxdepth=2 and one with maxdepth=3, since passes and techlibs now have an extra level of nesting.
Move the `cmd_ref` link to the command reference, instead of top of the page.
Remove `index_internal` and `index_other` from the toc, and mark the pages as orphan. Internal commands get a note callout after the command reference toc (although this doesn't work for the pdf build), while other commands are linked in the warning for missing `source_location` (since that *should* be the only time when there are any commands in the "unknown" group).
Update autodoc extension versions, and mark the directives extension as not `parallel_read_safe` (it might be, but I'm not sure about how the xref lookups work if it is parallel so better to be safe).
This commit is contained in:
Krystine Sherwin 2025-03-21 10:26:12 +13:00
parent 598b41406c
commit a74aeb1301
No known key found for this signature in database
41 changed files with 183 additions and 41 deletions

View file

@ -1,5 +1,5 @@
backends Writing output files
------------------ --------------------
.. autocmdgroup:: backends .. autocmdgroup:: backends
:members: :members:

View file

@ -1,5 +1,5 @@
frontends Reading input files
------------------ -------------------
.. autocmdgroup:: frontends .. autocmdgroup:: frontends
:members: :members:

View file

@ -1,3 +1,5 @@
:orphan:
internal internal
------------------ ------------------

View file

@ -1,5 +1,5 @@
kernel Yosys kernel commands
------------------ ---------------------
.. autocmdgroup:: kernel .. autocmdgroup:: kernel
:members: :members:

View file

@ -1,3 +1,5 @@
:orphan:
Other commands Other commands
============== ==============

View file

@ -0,0 +1,14 @@
Passes
------
.. toctree::
:maxdepth: 2
:glob:
/cmd/index_passes_hierarchy
/cmd/index_passes_proc
/cmd/index_passes_fsm
/cmd/index_passes_memory
/cmd/index_passes_opt
/cmd/index_passes_techmap
/cmd/index_passes_*

View file

@ -1,5 +1,5 @@
passes/cmds General passes
------------------ --------------
.. autocmdgroup:: passes/cmds .. autocmdgroup:: passes/cmds
:members: :members:

View file

@ -1,5 +1,5 @@
passes/equiv Equivalence checking
------------------ --------------------
.. autocmdgroup:: passes/equiv .. autocmdgroup:: passes/equiv
:members: :members:

View file

@ -1,5 +1,5 @@
passes/fsm FSM handling
------------------ ------------
.. autocmdgroup:: passes/fsm .. autocmdgroup:: passes/fsm
:members: :members:

View file

@ -1,4 +1,4 @@
passes/hierarchy hierarchy
------------------ ------------------
.. autocmdgroup:: passes/hierarchy .. autocmdgroup:: passes/hierarchy

View file

@ -1,5 +1,5 @@
passes/memory Memory handling
------------------ ---------------
.. autocmdgroup:: passes/memory .. autocmdgroup:: passes/memory
:members: :members:

View file

@ -1,5 +1,5 @@
passes/opt Optimization passes
------------------ -------------------
.. autocmdgroup:: passes/opt .. autocmdgroup:: passes/opt
:members: :members:

View file

@ -1,5 +1,5 @@
passes/proc Converting process blocks
------------------ -------------------------
.. autocmdgroup:: passes/proc .. autocmdgroup:: passes/proc
:members: :members:

View file

@ -1,4 +1,4 @@
passes/sat sat
------------------ ------------------
.. autocmdgroup:: passes/sat .. autocmdgroup:: passes/sat

View file

@ -1,5 +1,7 @@
passes/techmap Technology mapping
------------------ ------------------
.. seealso:: :doc:`/cmd/index_techlibs`
.. autocmdgroup:: passes/techmap .. autocmdgroup:: passes/techmap
:members: :members:

View file

@ -1,9 +1,11 @@
techlibs Technology libraries
------------------ ====================
.. TODO:: disambiguate `synth_intel` and `synth_intel_alm` Listed in alphabetical order.
(MAX10, Cyclone IV) and (Cyclone V, Arria V, Cyclone 10 GX) respectively .. toctree::
:maxdepth: 2
:glob:
.. autocmdgroup:: techlibs /cmd/index_techlibs_common
:members: /cmd/index_techlibs_*

View file

@ -0,0 +1,5 @@
achronix
------------------
.. autocmdgroup:: techlibs/achronix
:members:

View file

@ -0,0 +1,5 @@
anlogic
------------------
.. autocmdgroup:: techlibs/anlogic
:members:

View file

@ -0,0 +1,5 @@
Generic
------------------
.. autocmdgroup:: techlibs/common
:members:

View file

@ -0,0 +1,5 @@
coolrunner2
------------------
.. autocmdgroup:: techlibs/coolrunner2
:members:

View file

@ -0,0 +1,5 @@
easic
------------------
.. autocmdgroup:: techlibs/easic
:members:

View file

@ -0,0 +1,5 @@
ecp5
------------------
.. autocmdgroup:: techlibs/ecp5
:members:

View file

@ -0,0 +1,5 @@
fabulous
------------------
.. autocmdgroup:: techlibs/fabulous
:members:

View file

@ -0,0 +1,5 @@
gatemate
------------------
.. autocmdgroup:: techlibs/gatemate
:members:

View file

@ -0,0 +1,5 @@
gowin
------------------
.. autocmdgroup:: techlibs/gowin
:members:

View file

@ -0,0 +1,5 @@
greenpak4
------------------
.. autocmdgroup:: techlibs/greenpak4
:members:

View file

@ -0,0 +1,5 @@
ice40
------------------
.. autocmdgroup:: techlibs/ice40
:members:

View file

@ -0,0 +1,5 @@
Intel (MAX10, Cyclone IV)
-------------------------
.. autocmdgroup:: techlibs/intel
:members:

View file

@ -0,0 +1,5 @@
Intel ALM (Cyclone V, Arria V, Cyclone 10 GX)
---------------------------------------------
.. autocmdgroup:: techlibs/intel_alm
:members:

View file

@ -0,0 +1,5 @@
lattice
------------------
.. autocmdgroup:: techlibs/lattice
:members:

View file

@ -0,0 +1,5 @@
microchip
------------------
.. autocmdgroup:: techlibs/microchip
:members:

View file

@ -0,0 +1,5 @@
nanoxplore
------------------
.. autocmdgroup:: techlibs/nanoxplore
:members:

View file

@ -0,0 +1,5 @@
nexus
------------------
.. autocmdgroup:: techlibs/nexus
:members:

View file

@ -0,0 +1,5 @@
quicklogic
------------------
.. autocmdgroup:: techlibs/quicklogic
:members:

View file

@ -0,0 +1,5 @@
sf2
------------------
.. autocmdgroup:: techlibs/sf2
:members:

View file

@ -0,0 +1,5 @@
xilinx
------------------
.. autocmdgroup:: techlibs/xilinx
:members:

View file

@ -1,5 +1,3 @@
.. _cmd_ref:
================================================================================ ================================================================================
Command line reference Command line reference
================================================================================ ================================================================================
@ -7,17 +5,31 @@ Command line reference
.. literalinclude:: /generated/yosys .. literalinclude:: /generated/yosys
:start-at: Usage :start-at: Usage
.. _cmd_ref:
Command reference
-----------------
.. todo:: Can we warn on command groups that aren't included anywhere?
.. toctree:: .. toctree::
:caption: Command reference
:maxdepth: 2 :maxdepth: 2
:glob:
/appendix/env_vars /appendix/env_vars
/cmd/index_backends
/cmd/index_frontends /cmd/index_frontends
/cmd/index_backends
/cmd/index_kernel /cmd/index_kernel
/cmd/index_formal /cmd/index_formal
/cmd/index_passes*
.. toctree::
:maxdepth: 3
/cmd/index_passes
/cmd/index_techlibs /cmd/index_techlibs
/cmd/index_internal
/cmd/index_other .. TODO:: Fix index_internal not being included in pdf
.. note::
Commands intended for internal developer use can also be found under
:doc:`/cmd/index_internal`

View file

@ -5,7 +5,7 @@ Yosys Open SYnthesis Suite
Yosys is an open source framework for RTL synthesis. To learn more about Yosys, Yosys is an open source framework for RTL synthesis. To learn more about Yosys,
see :doc:`/introduction`. For a quick guide on how to get started using Yosys, see :doc:`/introduction`. For a quick guide on how to get started using Yosys,
check out :doc:`/getting_started/index`. For the complete list of commands check out :doc:`/getting_started/index`. For the complete list of commands
available, go to :ref:`commandindex`. available, go to :ref:`cmd_ref`.
.. todo:: look into command ref improvements .. todo:: look into command ref improvements

View file

@ -228,13 +228,20 @@ class YosysCmdGroupDocumenter(Documenter):
sourcename = self.get_sourcename() sourcename = self.get_sourcename()
if not self.import_object(): imported_object = self.import_object();
if self.lib_key == 'groups' and self.name == 'unknown':
if imported_object:
logger.warning(f"Found commands assigned to group {self.name}: {[x[0] for x in self.object]}", type='cmdref')
else:
return
elif not imported_object:
log_msg = f"unable to load {self.name} with {type(self)}" log_msg = f"unable to load {self.name} with {type(self)}"
if self.lib_key == 'groups': if self.lib_key == 'groups':
logger.info(log_msg, type = 'cmdref') logger.info(log_msg, type = 'cmdref')
self.add_line(f'.. warning:: No commands found for group {self.name!r}', sourcename) self.add_line(f'.. warning:: No commands found for group {self.name!r}', sourcename)
self.add_line('', sourcename) self.add_line('', sourcename)
self.add_line(' Documentation may have been built without ``source_location`` support.', sourcename) self.add_line(' Documentation may have been built without ``source_location`` support.', sourcename)
self.add_line(' Try check :doc:`/cmd/index_other`.', sourcename)
else: else:
logger.warning(log_msg, type = 'cmdref') logger.warning(log_msg, type = 'cmdref')
return return
@ -401,6 +408,6 @@ def setup(app: Sphinx) -> dict[str, Any]:
app.add_autodocumenter(YosysCmdGroupDocumenter) app.add_autodocumenter(YosysCmdGroupDocumenter)
app.add_autodocumenter(YosysCmdDocumenter) app.add_autodocumenter(YosysCmdDocumenter)
return { return {
'version': '1', 'version': '2',
'parallel_read_safe': True, 'parallel_read_safe': True,
} }

View file

@ -735,4 +735,7 @@ def setup(app: Sphinx):
app.add_role('autoref', autoref) app.add_role('autoref', autoref)
return {'version': '0.2'} return {
'version': '0.3',
'parallel_read_safe': False,
}

View file

@ -989,8 +989,6 @@ struct HelpPass : public Pass {
cmd_help.group = "backends"; cmd_help.group = "backends";
else if (source_file.find("frontends/") == 0 || (!has_source && name.find("write_") == 0)) else if (source_file.find("frontends/") == 0 || (!has_source && name.find("write_") == 0))
cmd_help.group = "frontends"; cmd_help.group = "frontends";
else if (source_file.find("techlibs/") == 0 || (!has_source && name.find("synth_") == 0))
cmd_help.group = "techlibs";
else if (has_source) { else if (has_source) {
auto last_slash = source_file.find_last_of('/'); auto last_slash = source_file.find_last_of('/');
if (last_slash != string::npos) { if (last_slash != string::npos) {