Updating the docs to match latest skywater-pdk. Taken from https://github.com/google/skywater-pdk ``` commit b5ff6174d9aa921f670f12a2893969fe4a516f6c (HEAD -> main, upstream/main) Merge: 5e159bd 73e9c84 Author: Tim Ansell <me@mith.ro> Date: Tue Nov 2 13:28:11 2021 -0700 Merge pull request #341 from mithro/sphinx-theme-fix Update the sphinx theme ``` Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
diff --git a/docs/_static/favicon/android-chrome-144x144.png b/docs/_static/favicon/android-chrome-144x144.png new file mode 100644 index 0000000..df14761 --- /dev/null +++ b/docs/_static/favicon/android-chrome-144x144.png Binary files differ
diff --git a/docs/_static/favicon/apple-touch-icon-precomposed.png b/docs/_static/favicon/apple-touch-icon-precomposed.png new file mode 100644 index 0000000..e44a461 --- /dev/null +++ b/docs/_static/favicon/apple-touch-icon-precomposed.png Binary files differ
diff --git a/docs/_static/favicon/apple-touch-icon.png b/docs/_static/favicon/apple-touch-icon.png new file mode 100644 index 0000000..c571540 --- /dev/null +++ b/docs/_static/favicon/apple-touch-icon.png Binary files differ
diff --git a/docs/_static/favicon/browserconfig.xml b/docs/_static/favicon/browserconfig.xml new file mode 100644 index 0000000..bad8da3 --- /dev/null +++ b/docs/_static/favicon/browserconfig.xml
@@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="utf-8"?> +<browserconfig> + <msapplication> + <tile> + <square150x150logo src="/_static/favicon/mstile-150x150.png"/> + <TileColor>#00aba9</TileColor> + </tile> + </msapplication> +</browserconfig>
diff --git a/docs/_static/favicon/favicon-16x16.png b/docs/_static/favicon/favicon-16x16.png new file mode 100644 index 0000000..4a8be67 --- /dev/null +++ b/docs/_static/favicon/favicon-16x16.png Binary files differ
diff --git a/docs/_static/favicon/favicon-32x32.png b/docs/_static/favicon/favicon-32x32.png new file mode 100644 index 0000000..53a0bfb --- /dev/null +++ b/docs/_static/favicon/favicon-32x32.png Binary files differ
diff --git a/docs/_static/favicon/favicon.ico b/docs/_static/favicon/favicon.ico new file mode 100644 index 0000000..75cce6d --- /dev/null +++ b/docs/_static/favicon/favicon.ico Binary files differ
diff --git a/docs/_static/favicon/html_code.html b/docs/_static/favicon/html_code.html new file mode 100644 index 0000000..d4ddfc6 --- /dev/null +++ b/docs/_static/favicon/html_code.html
@@ -0,0 +1,9 @@ +<link rel="apple-touch-icon" sizes="152x152" href="/_static/favicon/apple-touch-icon.png"> +<link rel="icon" type="image/png" sizes="32x32" href="/_static/favicon/favicon-32x32.png"> +<link rel="icon" type="image/png" sizes="16x16" href="/_static/favicon/favicon-16x16.png"> +<link rel="manifest" href="/_static/favicon/site.webmanifest"> +<link rel="mask-icon" href="/_static/favicon/safari-pinned-tab.svg" color="#5bbad5"> +<link rel="shortcut icon" href="/_static/favicon/favicon.ico"> +<meta name="msapplication-TileColor" content="#00aba9"> +<meta name="msapplication-config" content="/_static/favicon/browserconfig.xml"> +<meta name="theme-color" content="#ffffff"> \ No newline at end of file
diff --git a/docs/_static/favicon/mstile-150x150.png b/docs/_static/favicon/mstile-150x150.png new file mode 100644 index 0000000..335cf4a --- /dev/null +++ b/docs/_static/favicon/mstile-150x150.png Binary files differ
diff --git a/docs/_static/favicon/safari-pinned-tab.svg b/docs/_static/favicon/safari-pinned-tab.svg new file mode 100644 index 0000000..2aa83a4 --- /dev/null +++ b/docs/_static/favicon/safari-pinned-tab.svg
@@ -0,0 +1 @@ +<svg version="1" xmlns="http://www.w3.org/2000/svg" width="238.667" height="238.667" viewBox="0 0 179.000000 179.000000"><path d="M59.9 2.9c-3.3 3.3-3.7 6.9-1.3 10.6C60.7 16.8 65 18 74.1 18c6.9 0 8 .2 9.3 2.2 3.6 5.1 1.2 10.1-5.7 11.3-4.5.9-8.7 5.4-8.7 9.4s4 7.9 9 8.7c6.6 1.1 9.4 8 5 12.4-1.9 1.9-3.3 2-20 2s-18.1-.1-20-2c-4.3-4.3-1.4-12 4.5-12 4.7 0 8.4-1.9 10.1-5.1 2.1-4.1 1.7-6.5-1.5-10.1l-2.9-3.3H19.8l-2.9 3.3c-4.5 5-3.6 10.7 2.1 13.7 1.6.8 4.2 1.5 5.8 1.5 5.7 0 8.4 7.8 4.2 12-1.7 1.7-3.3 2-12.6 2-10.3 0-10.6.1-13.5 2.9-2 2-2.9 3.9-2.9 6.1 0 2.2.9 4.1 2.9 6.1L5.8 82H107l3.2-2.8c4.3-4 4.3-8.4 0-12.4-2.4-2.1-4.3-2.8-7.2-2.8-5.1 0-8-2.7-8-7.3 0-6.3 1.3-6.7 22.8-6.7 18.6 0 19.1.1 20.6 2.2 3.5 4.9.5 11.8-4.9 11.8-3.5 0-7.1 2.5-8.5 6-1.4 3.5-.7 6 2.7 9.4l2.6 2.6h21.1c22.5-.1 22.7-.1 26-5.2 2.3-3.5 1.5-6.9-2.2-10.3-2.5-2.3-3.4-2.5-11.9-2.5-8 0-9.6-.3-11.3-2-3.9-3.9-1.6-12 3.4-12 .9 0 3-.7 4.6-1.5 5.7-3 6.6-8.7 2.1-13.7l-2.9-3.3-30.9-.3c-34-.3-33.3-.2-33.3-6.6 0-5.5 1-6.1 12.1-6.6 9.9-.5 10.2-.6 13-3.8 3.7-4.1 3.7-7.6 0-11.3L117.2 0H62.8l-2.9 2.9zM2.9 98.9c-2 2-2.9 3.9-2.9 6.1 0 2.2.9 4.1 2.9 6.1 2.9 2.8 3.2 2.9 13.5 2.9 9.3 0 10.9.3 12.6 2 2.4 2.4 2.6 6.7.5 9.7-1.1 1.5-2.8 2.2-7 2.5-8.8.7-13.3 6.5-10 12.9 2.9 5.5 5.2 5.9 38.9 5.9 30.4 0 30.5 0 32 2.2.9 1.2 1.6 3.2 1.6 4.3 0 1.1-.7 3.1-1.6 4.3-1.3 2-2.4 2.2-9.3 2.2-4.3 0-9.2.5-10.9 1.1-6.3 2.2-8.2 9.6-3.6 14.3l2.7 2.6h54.9l2.9-2.9c3.7-3.8 3.7-7.2 0-11.3-2.9-3.2-3.2-3.3-12.3-3.6-10.5-.4-12.8-1.6-12.8-6.6 0-6.3-1-6.1 32.9-6.6l31-.5 3-2.9c2.1-2 3.1-3.9 3.1-5.9 0-7-4.4-9.7-16.3-9.7-9.7 0-11.7-1.3-11.7-7.3s2-6.7 19.8-6.7c16.8 0 19-.6 21.2-6 1-2.4 1-3.6 0-6-2.5-6.1-1.5-6-51.5-6H80.8l-2.9 2.9c-3.6 3.7-3.8 7.9-.5 11.7 2 2.4 3.3 2.9 9.6 3.5 5.4.5 7.7 1.1 8.7 2.5 1.8 2.4 1.7 6.5-.3 9.2-1.5 2.2-1.8 2.2-26.4 2.2-24.6 0-24.9 0-26.4-2.2-1.9-2.7-2.1-6.8-.3-9.1.7-1 3.5-2.1 6.7-2.6 9.6-1.5 13.1-9.1 7.1-15.2L53.2 96H5.8l-2.9 2.9zm122.7 17.6c1.8 2.5 1.8 6.5-.2 9.3-1.3 1.9-2.4 2.2-8.1 2.2-7.8 0-10.3-1.6-10.3-6.5 0-5.9 2.7-7.6 11.4-7.2 4.3.3 6.2.8 7.2 2.2z"/></svg> \ No newline at end of file
diff --git a/docs/_static/favicon/site.webmanifest b/docs/_static/favicon/site.webmanifest new file mode 100644 index 0000000..d37a37a --- /dev/null +++ b/docs/_static/favicon/site.webmanifest
@@ -0,0 +1,13 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { + "src": "/_static/favicon/android-chrome-144x144.png", + "sizes": "144x144", + "type": "image/png" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff" +}
diff --git a/docs/_static/skywater-favicon.png b/docs/_static/skywater-favicon.png new file mode 100644 index 0000000..5c09b97 --- /dev/null +++ b/docs/_static/skywater-favicon.png Binary files differ
diff --git a/docs/_static/skywater-pdk-logo-top.png b/docs/_static/skywater-pdk-logo-top.png new file mode 100644 index 0000000..fe7e334 --- /dev/null +++ b/docs/_static/skywater-pdk-logo-top.png Binary files differ
diff --git a/docs/_static/skywater-pdk-logo.png b/docs/_static/skywater-pdk-logo.png new file mode 100644 index 0000000..19781b5 --- /dev/null +++ b/docs/_static/skywater-pdk-logo.png Binary files differ
diff --git a/docs/_templates/relbar.html b/docs/_templates/relbar.html new file mode 100644 index 0000000..d693e3e --- /dev/null +++ b/docs/_templates/relbar.html
@@ -0,0 +1,13 @@ +{% extends '!relbar.html' %} + +{%- block extralinks -%} +{{ super() }} + +<li class="md-tabs__item"><a href="https://www.skywatertechnology.com/" class="md-tabs__link"><i class="md-icon">business</i> SkyWater</a></li> +<li class="md-tabs__item"><a href="https://efabless.com/open_shuttle_program" class="md-tabs__link"><i class="md-icon">precision_manufacturing</i> Shuttle Program</a></li> +<li class="md-tabs__item"><a href="https://join.skywater.tools/" class="md-tabs__link"><i class="md-icon">chat_bubble</i> Chat</a></li> +<li class="md-tabs__item"><a href="https://groups.google.com/g/skywater-pdk-users" class="md-tabs__link"><i class="md-icon">campaign</i>Announcements</a></li> +<li class="md-tabs__item"><a href="https://groups.google.com/g/skywater-pdk-users" class="md-tabs__link"><i class="md-icon">mail</i> Mailing List</a></li> + + +{%- endblock -%}
diff --git a/docs/conf.py b/docs/conf.py index e60277c..8ba781d 100644 --- a/docs/conf.py +++ b/docs/conf.py
@@ -14,13 +14,16 @@ # limitations under the License. # # SPDX-License-Identifier: Apache-2.0 + # # Configuration file for the Sphinx documentation builder. # # This file does only contain a selection of the most common options. For a # full list see the documentation: # http://www.sphinx-doc.org/en/master/config + # -- Path setup -------------------------------------------------------------- + # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. @@ -30,18 +33,26 @@ import re # import sys # sys.path.insert(0, os.path.abspath('.')) + + # -- Project information ----------------------------------------------------- + project = 'SkyWater SKY130 PDK' copyright = '2020, SkyWater PDK Authors' author = 'SkyWater PDK Authors' + # The short X.Y version version = '' # The full version, including alpha/beta/rc tags release = '' + + # -- General configuration --------------------------------------------------- + # If your documentation needs a minimal Sphinx version, state it here. # # needs_sphinx = '1.0' + # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. @@ -55,15 +66,19 @@ 'sphinx.ext.todo', 'sphinxcontrib_hdl_diagrams', ] + # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] + # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # # source_suffix = ['.rst', '.md'] source_suffix = '.rst' + # The master toctree document. master_doc = 'index' + # Enable github links when not on readthedocs on_rtd = os.environ.get('READTHEDOCS', None) == 'True' if not on_rtd: @@ -80,6 +95,7 @@ import subprocess subprocess.call('git fetch origin --unshallow', cwd=docs_dir, shell=True) subprocess.check_call('git fetch origin --tags', cwd=docs_dir, shell=True) + # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. @@ -88,12 +104,14 @@ release = re.sub('^v', '', os.popen('git describe ').read().strip()) # The short X.Y version. version = release + # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. language = None + # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. @@ -106,75 +124,60 @@ 'code-of-conduct.rst', 'rules/periphery-rules.rst', 'rules/device-details/*/index.rst', + 'rules/summary/*-key.rst', + 'rules/layers/*-key.rst', + 'rules/hv/*-key.rst', ] + # The name of the Pygments (syntax highlighting) style to use. pygments_style = None + + # -- Options for HTML output ------------------------------------------------- + # Prefix each section label with the name of the document it is in, followed by # a colon. For example, index:Introduction for a section called Introduction # that appears in document index.rst. Useful for avoiding ambiguity when the # same section heading appears in different documents. #autosectionlabel_prefix_document = True + + # -- Options for HTML output ------------------------------------------------- + # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # html_theme = "sphinx_symbiflow_theme" + +html_logo = "_static/skywater-pdk-logo-top.png" + # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -# +# https://sphinx-symbiflow-theme.readthedocs.io/en/latest/customization.html html_theme_options = { - # Specify a list of menu in Header. - # Tuples forms: - # ('Name', 'external url or path of pages in the document', boolean, 'icon name') - # - # Third argument: - # True indicates an external link. - # False indicates path of pages in the document. - # - # Fourth argument: - # Specify the icon name. - # For details see link. - # https://material.io/icons/ - 'header_links': [ - ('Home', 'index', False, 'home'), - ("GitHub", "https://github.com/google/skywater-pdk", True, 'code'), - ("SkyWater", "https://www.skywatertechnology.com/", True, 'link'), - ], - # Customize css colors. - # For details see link. - # https://getmdl.io/customize/index.html - # - # Values: amber, blue, brown, cyan deep_orange, deep_purple, green, grey, indigo, light_blue, - # light_green, lime, orange, pink, purple, red, teal, yellow(Default: indigo) - 'primary_color': 'light_green', - # Values: Same as primary_color. (Default: pink) - 'accent_color': 'teal', - # Customize layout. - # For details see link. - # https://getmdl.io/components/index.html#layout-section - 'fixed_drawer': True, - 'fixed_header': True, - 'header_waterfall': True, - 'header_scroll': False, - # Render title in header. - # Values: True, False (Default: False) - 'show_header_title': False, - # Render title in drawer. - # Values: True, False (Default: True) - 'show_drawer_title': True, - # Render footer. - # Values: True, False (Default: True) - 'show_footer': True, + 'nav_title': 'SkyWater ReRAM 130nm PDK', + + 'color_primary': 'light-green', + 'color_accent': 'teal', + + # Set the repo location to get a badge with stats + 'github_url': 'https://github.com/google/skywater-pdk-libs-sky130_fd_pr_reram', + 'repo_name': 'google/skywater-pdk-libs-sky130_fd_pr_reram', + + 'globaltoc_depth': 4, + 'globaltoc_collapse': False, + # Hide the symbiflow links 'hide_symbiflow_links': True, 'license_url' : 'https://www.apache.org/licenses/LICENSE-2.0', } + # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] + # Custom sidebar templates, must be a dictionary that maps document names # to template names. # @@ -182,24 +185,33 @@ # defined by theme itself. Builtin themes are using these templates by # default: ``['localtoc.html', 'relations.html', 'sourcelink.html', # 'searchbox.html']``. + # -- Options for HTMLHelp output --------------------------------------------- + # Output file base name for HTML help builder. htmlhelp_basename = 'skywater-pdk-doc' + + # -- Options for LaTeX output ------------------------------------------------ + latex_elements = { # The paper size ('letterpaper' or 'a4paper'). # # 'papersize': 'letterpaper', + # The font size ('10pt', '11pt' or '12pt'). # # 'pointsize': '10pt', + # Additional stuff for the LaTeX preamble. # # 'preamble': '', + # Latex figure (float) alignment # # 'figure_align': 'htbp', } + # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). @@ -217,14 +229,19 @@ 'manual', ), ] + # -- Options for manual page output ------------------------------------------ + # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ (master_doc, 'skywater-pdk', 'SkyWater SKY130 PDK Documentation', [author], 1) ] + + # -- Options for Texinfo output ---------------------------------------------- + # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) @@ -246,28 +263,41 @@ 'Miscellaneous', ), ] + # -- Options for Epub output ------------------------------------------------- + # Bibliographic Dublin Core info. epub_title = project + # The unique identifier of the text. This can be a ISBN number # or the project homepage. # # epub_identifier = '' + # A unique identification for the text. # # epub_uid = '' + # A list of files that should not be packed into the epub file. epub_exclude_files = ['search.html'] + # Enable the figures and numbers numfig = True + # -- Extension configuration ------------------------------------------------- + # -- Options for todo extension ---------------------------------------------- + # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True + + import re from docutils.parsers.rst import directives, roles, nodes + LIB_REGEX = re.compile('sky130_(?P<lib_src>[^_\s]*)_(?P<lib_type>[^_\s]*)(_(?P<lib_name>[^_\s]*))?') CELL_REGEX = re.compile('sky130_(?P<lib_src>[^_\s]*)_(?P<lib_type>[^_\s]*)(_(?P<lib_name>[^_\s]*))?__(?P<cell_name>[^\s]*)') + def lib_role(name, rawtext, text, lineno, inliner, options={}, content=[]): """Library name which gets colorized.""" m = LIB_REGEX.match(text) @@ -276,6 +306,7 @@ prb = inliner.problematic(rawtext, rawtext, msg) return [prb], [msg] app = inliner.document.settings.env.app + #lib_process_role = roles.role('lib_src', inliner.language, lineno, inliner.reporter) #lib_src_role = roles.role('lib_src', inliner.language, lineno, inliner.reporter) #lib_type_role = roles.role('lib_src', inliner.language, lineno, inliner.reporter) @@ -284,6 +315,7 @@ lib_src = m.group('lib_src') lib_type = m.group('lib_type') lib_name = m.group('lib_name') + r = [ nodes.inline(lib_process, lib_process, classes=['lib-process']), nodes.inline('_', '_', options=options), @@ -294,7 +326,10 @@ if lib_name: r.append(nodes.inline('_', '_', options=options)) r.append(nodes.inline(lib_name, lib_name, classes=['lib-name'])) + return r, [] + + def cell_role(name, rawtext, text, lineno, inliner, options={}, content=[]): """Cell name which gets colorized.""" m = CELL_REGEX.match(text) @@ -303,6 +338,7 @@ prb = inliner.problematic(rawtext, rawtext, msg) return [prb], [msg] app = inliner.document.settings.env.app + #lib_process_role = roles.role('lib_src', inliner.language, lineno, inliner.reporter) #lib_src_role = roles.role('lib_src', inliner.language, lineno, inliner.reporter) #lib_type_role = roles.role('lib_src', inliner.language, lineno, inliner.reporter) @@ -312,6 +348,7 @@ lib_type = m.group('lib_type') lib_name = m.group('lib_name') cell_name = m.group('cell_name') + r = [ nodes.inline(lib_process, lib_process, classes=['lib-process']), nodes.inline('_', '_', options=options), @@ -324,13 +361,18 @@ r.append(nodes.inline(lib_name, lib_name, classes=['lib-name'])) r.append(nodes.inline('__', '__', options=options)) r.append(nodes.inline(cell_name, cell_name, classes=['cell-name'])) + return r, [] + + def add_role(app, new_role_name): options = { 'class': directives.class_option(new_role_name), } role = roles.CustomRole(new_role_name, roles.generic_custom_role, options, "") app.add_role(new_role_name, role) + + def setup(app): app.add_css_file('extra.css') add_role(app, 'cell_name') @@ -342,7 +384,7 @@ add_role(app, 'drc_tag') add_role(app, 'drc_flag') add_role(app, 'layer') + app.add_role('lib', lib_role) app.add_role('cell', cell_role) app.add_role('model', cell_role) -
diff --git a/docs/requirements.txt b/docs/requirements.txt index 6ffa95d..b585a69 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt
@@ -1,16 +1,22 @@ -git+https://github.com/SymbiFlow/sphinx_materialdesign_theme.git#egg=sphinx-symbiflow-theme +git+https://github.com/SymbiFlow/sphinx_symbiflow_theme.git#egg=sphinx-symbiflow-theme + docutils sphinx sphinx-autobuild + # Verilog domain sphinx-verilog-domain # Verilog diagrams using Yosys + netlistsvg sphinxcontrib-hdl-diagrams + # Module diagrams git+https://github.com/SymbiFlow/symbolator.git#egg=symbolator git+https://github.com/hdl/pyHDLparser.git#egg=hdlparse + # pycairo # vext.gi + restructuredtext-lint rstdoc + tabulate