From 5ee91908940e1b440ac04ed65d3b0e81fa178edd Mon Sep 17 00:00:00 2001 From: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> Date: Tue, 23 Jun 2026 16:19:43 -0700 Subject: [PATCH 01/12] Deploy GitHub pages (https://ucsbarchlab.github.io/PyRTL) from GitHub actions with Sphinx. This replaces the old `gh-pages` branch workflow, and generates the HTML with Sphinx so we don't have to manually edit HTML. GitHub Pages' `index.html` is now generated from `www/index.rst`, which is much easier to edit. Sphinx automatically runs from GitHub actions when changes are pushed to `www/`. Also: * Added simulation scripts to all GitHub pages code samples. * Moved the larger code samples to external `.py` files so `ruff` can auto-format them and check them for lint. * Added many type hints. * Added many PyRTL documentation and example links. * Fixed many typos. * Upgraded some GitHub actions workflows. * Remove Sphinx version information and copyright from documentation footers. --- .github/workflows/pages-deploy.yml | 34 +++ .github/workflows/python-release.yml | 2 +- .github/workflows/python-test.yml | 2 +- docs/conf.py | 5 +- justfile | 8 +- pyproject.toml | 1 + uv.lock | 37 ++- www/adder.py | 37 +++ www/conf.py | 43 ++++ www/fir.py | 22 ++ www/gcd.py | 39 +++ www/index.rst | 363 +++++++++++++++++++++++++++ www/maxn.py | 22 ++ www/mul.py | 23 ++ www/ripple-carry.py | 34 +++ 15 files changed, 666 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/pages-deploy.yml create mode 100644 www/adder.py create mode 100644 www/conf.py create mode 100644 www/fir.py create mode 100644 www/gcd.py create mode 100644 www/index.rst create mode 100644 www/maxn.py create mode 100644 www/mul.py create mode 100644 www/ripple-carry.py diff --git a/.github/workflows/pages-deploy.yml b/.github/workflows/pages-deploy.yml new file mode 100644 index 00000000..e46f6007 --- /dev/null +++ b/.github/workflows/pages-deploy.yml @@ -0,0 +1,34 @@ +name: Deploy to github.io + +on: + push: + paths: + - www/** + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: astral-sh/setup-uv@v6 + - name: Run Sphinx + run: uv run just www + - name: Upload static files as artifact + id: deployment + uses: actions/upload-pages-artifact@v3 + with: + path: www/_build/html + + deploy: + needs: build + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/python-release.yml b/.github/workflows/python-release.yml index 58a97bb2..04c87c97 100644 --- a/.github/workflows/python-release.yml +++ b/.github/workflows/python-release.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: astral-sh/setup-uv@v6 with: enable-cache: true diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index e1a0cad7..82a41c39 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: astral-sh/setup-uv@v6 with: enable-cache: true diff --git a/docs/conf.py b/docs/conf.py index c9d4bc56..fab1848c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -23,8 +23,6 @@ # -- Project information ----------------------------------------------------- project = "PyRTL" -copyright = "2026, Timothy Sherwood" -author = "Timothy Sherwood" # -- General configuration --------------------------------------------------- @@ -96,6 +94,9 @@ ], } html_logo = "brand/pyrtl_logo.png" +html_show_sphinx = False +html_show_copyright = False +html_show_sourcelink = False # Force a light blue background color for inheritance-diagrams. The default is # transparent, which does not work well with Furo's dark mode. diff --git a/justfile b/justfile index 406833f3..f290fce6 100644 --- a/justfile +++ b/justfile @@ -1,7 +1,7 @@ # PyRTL uses `just` instead of `make` because: # * `make` is not installed by default on Windows. # * `uv` can install `just` on all supported platforms from PyPI. -presubmit: tests docs +presubmit: tests docs www tests: # Run `pytest` with the latest version of Python supported by PyRTL, @@ -36,3 +36,9 @@ docs: # # Output: docs/_build/html/index.html uv run sphinx-build -M html docs/ docs/_build + +www: + # Run `sphinx-build` to generate github.io webpage. + # + # Output: www/_build/html/index.html + uv run sphinx-build -M html www/ www/_build diff --git a/pyproject.toml b/pyproject.toml index c42d638a..8127d23c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -127,4 +127,5 @@ dev = [ "sphinx>=7.4.7", "sphinx-autodoc-typehints>=2.3.0", "sphinx-copybutton>=0.5.2", + "sphinx-design>=0.6.1", ] diff --git a/uv.lock b/uv.lock index 2dfe81b7..cac79b06 100644 --- a/uv.lock +++ b/uv.lock @@ -321,7 +321,7 @@ name = "exceptiongroup" version = "1.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.13'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [ @@ -553,6 +553,8 @@ dev = [ { name = "sphinx-autodoc-typehints", version = "3.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, { name = "sphinx-autodoc-typehints", version = "3.10.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, { name = "sphinx-copybutton" }, + { name = "sphinx-design", version = "0.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "sphinx-design", version = "0.7.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] [package.metadata] @@ -575,6 +577,7 @@ dev = [ { name = "sphinx", specifier = ">=7.4.7" }, { name = "sphinx-autodoc-typehints", specifier = ">=2.3.0" }, { name = "sphinx-copybutton", specifier = ">=0.5.2" }, + { name = "sphinx-design", specifier = ">=0.6.1" }, ] [[package]] @@ -879,6 +882,38 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9e/48/1ea60e74949eecb12cdd6ac43987f9fd331156388dcc2319b45e2ebb81bf/sphinx_copybutton-0.5.2-py3-none-any.whl", hash = "sha256:fb543fd386d917746c9a2c50360c7905b605726b9355cd26e9974857afeae06e", size = 13343, upload-time = "2023-04-14T08:10:20.844Z" }, ] +[[package]] +name = "sphinx-design" +version = "0.6.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11'", +] +dependencies = [ + { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2b/69/b34e0cb5336f09c6866d53b4a19d76c227cdec1bbc7ac4de63ca7d58c9c7/sphinx_design-0.6.1.tar.gz", hash = "sha256:b44eea3719386d04d765c1a8257caca2b3e6f8421d7b3a5e742c0fd45f84e632", size = 2193689, upload-time = "2024-08-02T13:48:44.277Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/43/65c0acbd8cc6f50195a3a1fc195c404988b15c67090e73c7a41a9f57d6bd/sphinx_design-0.6.1-py3-none-any.whl", hash = "sha256:b11f37db1a802a183d61b159d9a202314d4d2fe29c163437001324fe2f19549c", size = 2215338, upload-time = "2024-08-02T13:48:42.106Z" }, +] + +[[package]] +name = "sphinx-design" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", +] +dependencies = [ + { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/13/7b/804f311da4663a4aecc6cf7abd83443f3d4ded970826d0c958edc77d4527/sphinx_design-0.7.0.tar.gz", hash = "sha256:d2a3f5b19c24b916adb52f97c5f00efab4009ca337812001109084a740ec9b7a", size = 2203582, upload-time = "2026-01-19T13:12:53.297Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/30/cf/45dd359f6ca0c3762ce0490f681da242f0530c49c81050c035c016bfdd3a/sphinx_design-0.7.0-py3-none-any.whl", hash = "sha256:f82bf179951d58f55dca78ab3706aeafa496b741a91b1911d371441127d64282", size = 2220350, upload-time = "2026-01-19T13:12:51.077Z" }, +] + [[package]] name = "sphinxcontrib-applehelp" version = "2.0.0" diff --git a/www/adder.py b/www/adder.py new file mode 100644 index 00000000..4b17638a --- /dev/null +++ b/www/adder.py @@ -0,0 +1,37 @@ +import pyrtl + + +def fa( + x: pyrtl.WireVector, y: pyrtl.WireVector, cin: pyrtl.WireVector +) -> tuple[pyrtl.WireVector, pyrtl.WireVector]: + """Full adder.""" + sum = x ^ y ^ cin + cout = x & y | y & cin | x & cin + return sum, cout + + +def adder( + a: pyrtl.WireVector, b: pyrtl.WireVector, cin: pyrtl.WireVector +) -> tuple[pyrtl.WireVector, pyrtl.WireVector]: + """n-bit ripple carry adder with carry in and carry out.""" + a, b = pyrtl.match_bitwidth(a, b) + + sum = [None] * a.bitwidth + for i in range(a.bitwidth): + sum[i], cout = fa(a[i], b[i], cin) + cin = cout + + full_sum = pyrtl.concat_list(sum) + return full_sum, cout + + +a = pyrtl.Input(name="a", bitwidth=4) +b = pyrtl.Input(name="b", bitwidth=4) +sum = pyrtl.Output(name="sum", bitwidth=8) + +sum_, cout_ = adder(a, b, pyrtl.Const(0)) +sum <<= sum_ + +sim = pyrtl.Simulation() +sim.step_multiple({"a": [1, 2, 3], "b": [2, 3, 4]}) +sim.tracer.render_trace() diff --git a/www/conf.py b/www/conf.py new file mode 100644 index 00000000..e8bb7ec4 --- /dev/null +++ b/www/conf.py @@ -0,0 +1,43 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- + +project = "PyRTL" + +# -- General configuration --------------------------------------------------- + +master_doc = "index" + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = ["sphinx.ext.intersphinx", "sphinx_copybutton", "sphinx_design"] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# 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. +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + +# Enable links to Python standard library classes (str, list, dict, etc). +intersphinx_mapping = { + "python": ("https://docs.python.org/3", None), + "pyrtl": ("https://pyrtl.readthedocs.io/en/latest/", None), +} + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_baseurl = "https://ucsbarchlab.github.io/PyRTL" +html_theme = "alabaster" +html_theme_options = {"nosidebar": True} +html_show_sphinx = False +html_show_copyright = False +html_show_sourcelink = False diff --git a/www/fir.py b/www/fir.py new file mode 100644 index 00000000..81d72e02 --- /dev/null +++ b/www/fir.py @@ -0,0 +1,22 @@ +import pyrtl + + +def fir(x: pyrtl.WireVector, bs: list[int]): + rwidth = x.bitwidth # Bitwidth of the registers. + ntaps = len(bs) # Number of coefficients. + + zs = [x] + [pyrtl.Register(rwidth) for _ in range(ntaps - 1)] + for i in range(1, ntaps): + zs[i].next <<= zs[i - 1] + + # Produce the final sum of products. + return sum(z * b for z, b in zip(zs, bs, strict=True)) + + +x = pyrtl.Input(name="x", bitwidth=8) +y = pyrtl.Output(name="y", bitwidth=8) +y <<= fir(x, bs=[0, 1]) + +sim = pyrtl.Simulation() +sim.step_multiple({"x": [0, 9, 18, 8, 17, 7, 16, 6, 15, 5]}) +sim.tracer.render_trace() diff --git a/www/gcd.py b/www/gcd.py new file mode 100644 index 00000000..b36deeb1 --- /dev/null +++ b/www/gcd.py @@ -0,0 +1,39 @@ +import pyrtl + + +def gcd( + a: pyrtl.WireVector, b: pyrtl.WireVector, begin: pyrtl.WireVector +) -> tuple[pyrtl.WireVector, pyrtl.WireVector]: + x = pyrtl.Register(bitwidth=len(a)) + y = pyrtl.Register(bitwidth=len(b)) + done = pyrtl.WireVector(bitwidth=1) + + with pyrtl.conditional_assignment: + with begin: + x.next |= a + y.next |= b + with x > y: + x.next |= x - y + with y > x: + y.next |= y - x + with pyrtl.otherwise: + done |= True + return x, done + + +a = pyrtl.Input(name="a", bitwidth=8) +b = pyrtl.Input(name="b", bitwidth=8) +begin = pyrtl.Input(name="begin", bitwidth=1) + +x = pyrtl.Output(name="x", bitwidth=8) +done = pyrtl.Output(name="done", bitwidth=1) + +x_, done_ = gcd(a, b, begin) +x <<= x_ +done <<= done_ + +sim = pyrtl.Simulation() +sim.step({"a": 12, "b": 9, "begin": True}) +while not sim.inspect("done"): + sim.step({"a": 0, "b": 0, "begin": False}) +sim.tracer.render_trace() diff --git a/www/index.rst b/www/index.rst new file mode 100644 index 00000000..aba07c61 --- /dev/null +++ b/www/index.rst @@ -0,0 +1,363 @@ +:hide-toc: + +.. div:: sd-text-center sd-text-light + :style: background-image: linear-gradient(180deg, #2980B9, #3a4e5c, #3a4e5c); + + .. image:: ../docs/brand/pyrtl_logo.png + + register-transfer-level hardware design and simulation + + .. grid:: 2 2 4 4 + :gutter: 0 + + .. grid-item:: + + .. button-link:: http://pyrtl.readthedocs.org/ + :color: light + :outline: + + Read The Docs + + .. grid-item:: + + .. button-link:: https://github.com/UCSBarchlab/PyRTL/tree/development/examples + :color: light + :outline: + + See Examples + + .. grid-item:: + + .. button-link:: https://github.com/UCSBarchlab/PyRTL + :color: light + :outline: + + View on GitHub + + .. grid-item:: + + .. button-link:: https://mybinder.org/v2/gh/UCSBarchlab/PyRTL/development?filepath=%2Fipynb-examples%2F + :color: light + :outline: + + Run Notebook + +.. raw:: html + +
+ +PyRTL +===== + +.. raw:: html + +
+ +Getting Started +--------------- + +``pip install pyrtl`` + + +PyRTL Features +-------------- + +PyRTL provides a collection of classes for Pythonic `register-transfer level +`_ design, simulation, +tracing, and testing suitable for teaching and research. Simplicity, usability, +clarity, and extensibility rather than performance or optimization is the +overarching goal. Features include: + +* Elaboration-through-execution, meaning all of Python can be used including + introspection +* Design, instantiate, and simulate all in one file and without leaving Python +* Export to, or import from, common HDLs (BLIF-in, Verilog-out currently + supported) +* Examine execution with waveforms on the terminal or export to a .vcd as + projects scale +* Elaboration, synthesis, and basic optimizations all included +* Small and well-defined internal core structure means writing new transforms + is easier +* Batteries included means many useful components are already available and + more are coming every week + +**New in 1.0.0:** The :mod:`~pyrtl.rtllib.float` module generates floating +point hardware! + +Here are some simple examples of PyRTL in action. These examples implement the +same functionality as those highlighted in the wonderful related work `Chisel +`_, which in turn allows us to see the stylistic +differences between the approaches. + +.. tab-set:: + + .. tab-item:: FIR + + A finite impulse response filter: ``fir`` generates a sequential circuit + that accepts inputs ``x`` and a list of coefficients ``bs``. From the + `Wikipedia FIR description + `_, the list + ``zs`` is the registers required to implement the delay. ``fir`` returns + an output ``y`` which is the resulting sum of products and is valid every + cycle (since the design is naturally fully pipelined). The code below + provides everything needed to instantiate, simulate, and visualize the + resulting design. + + .. literalinclude:: fir.py + + .. tab-item:: GCD + + A greatest common denominator calculator: ``gcd`` generates a sequential + circuit that saves inputs ``a`` and ``b`` when ``begin`` goes high, and + then, while ``begin`` is low, calculates the GCD through iterative + subtraction. The function returns two :class:`WireVectors + `:, one which holds the GCD when the computation is + ``done``, and the other which is a boolean ``done`` signal. + + .. literalinclude:: gcd.py + + .. tab-item:: MaxN + + ``max_n`` generates hardware that identifies the largest of N input + values. This example makes use of Python's `notation for handling + multiple inputs + `_ + by packing them into a :class:`list`. It also demonstrates that the full + power of Python is available to you in PyRTL, including functional tools + like :func:`~functools.reduce`, which is used to chain together multiple + ``max_2`` elements into a bigger ``max_n``. + + .. literalinclude:: maxn.py + + .. tab-item:: Mul + + ``mul`` generates a small 4 x 4 multiplier with a simple table lookup. + The first two lines simply check that the inputs are each 4-bits wide. + ``romdata`` is a Python function that calculates the values we want + stored in the ROM, as a function of the ROM address. + :class:`~pyrtl.RomBlock` automatically initializes the ROM with values + computed by ``romdata``. The generated hardware simply :func:`concats + ` the two 4-bit inputs into an 8-bit ROM address and + returns the value stored in the ROM at that address. + + .. literalinclude:: mul.py + + .. tab-item:: Adder + + The classic ripple-carry adder: ``adder`` generates a ripple carry adder + of arbitrary length including both carry in and carry out. The `full + adder `_ + (``fa``) takes 1-bit inputs and produces 1-bit outputs. We iteratively + create full adders and link the carry in of each new full adder to the + carry out of the last full adder. ``sum`` is a Python :class:`list` that + keeps track of the wires carrying the sum bits. The final ``full_sum`` is + produced by concatenating the wires in ``sum`` with + :func:`~pyrtl.concat_list`. + + .. literalinclude:: adder.py + +PyRTL can also produce visualizations of your design with +:func:`~pyrtl.block_to_svg`, such as this graph of the GCD circuit above: + +.. image:: ../docs/images/gcd-graph.png + +The 10,000 Foot Overview +------------------------ + +At a high level, PyRTL builds hardware that you `explicitly define`. If you are +looking for a tool to take your random Python code and turn it into hardware, +you will have to look elsewhere: this is `not` `HLS +`_. Instead, PyRTL helps +you concisely and precisely describe a digital hardware structure, which you +already have worked out in detail, in Python. + +PyRTL restricts you to a set of reasonable digital designs practices: the clock +and resets are implicit, block memories are synchronous by default, there are +no "undriven" states, and un-registered feedback loops are not allowed. Instead +of worrying about these "analog-ish" tricks that are horrible ideas in modern +processes anyways, PyRTL lets you treat hardware design like a software +problem: build recursive hardware, write introspective containers, and have fun +building digital designs again! + +To the user it provides a set of Python classes that allow them to Pythonically +express their hardware designs. For example, with :class:`~pyrtl.WireVector` +you get a structure that acts very much like a Python list of 1-bit wires, so +that ``mywire[0:-1]`` selects everything except the most-significant-bit. Of +course you can add, subtract, and multiply these :class:`WireVectors +` or concat multiple bit-vectors end-to-end as well. + +You can even put :class:`WireVectors ` in Python collections +and process them in bulk. For example, if ``x`` is a :class:`list` of +:class:`WireVectors `, and you want to multiply each of them +by 2 and sum them into a :class:`~pyrtl.WireVector` ``y``:: + + y = sum([elem * 2 for elem in x]) + +Hardware comprehensions are surprisingly useful. We'll cover an example in more +detail below, but if you just want to play around with PyRTL `try Jupyter +Notebooks on any of our examples on MyBinder +`_. + +Hello N-bit Ripple-Carry Adder! +------------------------------- + +While adders are a builtin primitive for PyRTL, most people doing RTL are +familiar with the idea of a `Ripple-Carry Adder +`_ and so it is useful to +see how you might express one in PyRTL. Rather than the typical `Verilog +introduction to fixed 4-bit adders +`_, let's go ahead and build an +`arbitrary` bitwidth adder. + +.. literalinclude:: ripple-carry.py + +The code above includes an adder generator with Python-style slices on wires +(``ripple_add``), an instantiation of a :class:`~pyrtl.Register` (used as a +counter with ``ripple_add``), and all the code needed to simulate the design, +generate a waveform, and render it to the terminal. The way this particular +code works is described more in `Example 2 +`_. +When you run it, it should look like this (you can see the counter going from 0 +to 7 and repeating): + +.. image:: ../docs/screenshots/pyrtl-counter.png + +A Few Gotchas +------------- + +While Python is an amazing language, DSLs in Python are always forced to make a +few compromises which can sometimes catch users in some unexpected ways. Watch +out for these "somewhat surprising features": + +* PyRTL never uses any of the "in-place arithmetic assignments" such as ``+=`` + or ``&=`` in the traditional ways. Instead only ``<<=`` and ``|=`` are + defined and they are used for wire-assignment and conditional-wire-assignment + respectively (more on both of these in `Example 3 + `_). + + + If you declare ``x = WireVector(bitwidth=3)`` and ``y = + WireVector(bitwidth=5)``, how do you assign ``x`` the value of ``y + 1``? If + you do ``x = y + 1`` that will replace the old definition of ``x`` entirely. + Instead you need to write ``x <<= y + 1`` which you can read as "``x`` gets + its value from ``y + 1``". + +* The example above also shows off another aspect of PyRTL. The + :attr:`~pyrtl.WireVector.bitwidth` of ``y`` is 5. The + :attr:`~pyrtl.WireVector.bitwidth` of ``y + 1`` is actually 6 (PyRTL infers + this automatically). But then when you assign ``x <<= y + 1`` you are taking a + 6-bit value and assigning it to a 3-bit value. This is completely legal, and + the value will be :meth:`truncated `, so only the + least significant bits will be assigned. Mind your bitwidths. + +* PyRTL provides some handy functions on :class:`WireVectors + `, including ``==`` and ``<`` which evaluate to a new + :class:`~pyrtl.WireVector` with :attr:`~pyrtl.WireVector.bitwidth` 1 to hold + the result of the comparison. The bitwise operators ``&``, ``|``, ``~`` and + ``^`` are also defined (however logic operations such as ``and`` and ``not`` + are not defined). A really tricky gotcha happens when you start combining + these operators. Consider:: + + doit = ready & state == 3 + + In Python, the bitwise ``&`` operator has higher precedence than ``==``, thus Python + parses this as:: + + doit = (ready & state) == 3 + + which is probably not what you intended! Make sure to use parentheses when + using comparisons with logic operations to be clear:: + + doit = ready & (state == 3) + +* In PyRTL, all :class:`WireVectors ` are unsigned. For + example, if you do a comparison with ``<``, that comparison will be + `unsigned`. You must explicitly call functions like :func:`~pyrtl.signed_lt` + for signed comparisons. Similarly, if you pass a :class:`~pyrtl.WireVector` + to a function that requires more bits that you have provided, the + :class:`~pyrtl.WireVector` will be zero-extended by default. You must + explicitly call :meth:`~pyrtl.WireVector.sign_extended` to sign-extend. + `Example 1.1 + `_ + shows more examples of how to do signed arithmetic in PyRTL. + +Related Projects +---------------- + +`Amaranth (previously nMigen) `_ + Another Python hardware project providing an open-source toolchain that has + a lot of wonderful stuff for working with FPGAs in particular. It has + support for evaluation board definitions, a System-on-Chip toolkit, and + more. I think it has a similar philosophy of trying to be easy to learn and + use and simplify the design of complex hardware with reusable components. + Amaranth (at the time of writing) has much better support on the back end + for a variety of real devices and low level stuff like managing clock + domains, but I think PyRTL provides some value in getting going right in + the command line and how it handles memories etc. I would be eager to see + the power of these tools combined in some way! + +`Chisel `_ + A project with similar goals to PyRTL but based on Scala instead of Python. + Scala provides some very helpful embedded language features and a rich type + system. Chisel is (like PyRTL) a elaborate-through-execution hardware + design language. With support for signed types, named hierarchies of wires + useful for hardware protocols, and a neat control structure call ``when`` + that inspired our :data:`~pyrtl.conditional_assignment` contexts, Chisel is + a powerful tool used in some great research projects including RISC-V. + Unlike Chisel, PyRTL has concentrated on a simple to use and complete tool + chain which is useful for instructional projects, and provides a clearly + defined and relatively easy-to-manipulate intermediate structure in the + class :class:`~pyrtl.Block` which allows rapid prototyping of hardware + analysis routines which can then be co-designed with the architecture. + +`SpinalHDL `_ + A different approach to HDL in Scala, very much aligned with the way PyRTL + is built. Invented independently, it is neat to see the convergent + evolution which, I think, points to something deeper about hardware design. + It has a lot of support and really well thought out structures. + +`MyHDL `_ + Another neat Python hardware project built around generators and + decorators. The semantics of this embedded language are close to Verilog + and unlike PyRTL, MyHDL allows asynchronous logic and higher level + modeling. Much like Verilog, only a structural "convertible subset" of the + language can be automatically synthesized into real hardware. PyRTL + requires all logic to be both synchronous and synthesizable which avoids a + common trap for beginners, it elaborates the design during execution + allowing the full power of Python in describing recursive or complex + hardware structures, and it allows for hardware synthesis, simulation, test + bench creation, and optimization all in the same framework. + +`Yosys `_ + An open source tool for Verilog RTL synthesis. It supports a huge subset of + Verilog-2005 and provides a basic set of synthesis algorithms. The goals of + this tool are quite different from PyRTL, but the two play together very + nicely. PyRTL's :func:`~pyrtl.output_to_verilog` produces Verilog that can + be synthesized with Yosys. Similarly, PyRTL's + :func:`~pyrtl.input_from_verilog` uses Yosys to synthesize complex Verilog + designs to a simple library of gates, before importing into PyRTL. + +`PyMTL3 (a.k.a. Mamba) `_ + A beta stage "open-source Python-based hardware generation, simulation, and + verification framework with multi-level hardware modeling support". One of + the neat things about this project is that they are trying to allow + simulation, modeling, and verification at multiple different levels of the + design from the functional level, the cycle-close level, and down to the + register-transfer level (where PyRTL really is built to play). Like MyHDL + they do some meta-programming tricks like parsing the Python AST to allow + executable software descriptions to be (under certain restrictions, sort of + like Verilog) automatically converted into implementable hardware. PyRTL, + on the other hand, is about providing a limited and composable set of data + structures for specifying an RTL implementation, thus avoiding the + distinction between synthesizable and non-synthesizable code (the execution + is the elaboration step). + +`ClaSH `_ + An embedded hardware description language in Haskell. Like PyRTL it + provides an approach suitable for both combinational and synchronous + sequential circuits and transforms these high-level descriptions to + low-level synthesizable Verilog HDL. Unlike PyRTL, designs are statically + typed (like VHDL), yet with a very high degree of type inference, enabling + both safe and fast prototying using concise descriptions. If you like + functional programming and hardware also check out `Lava + `_. diff --git a/www/maxn.py b/www/maxn.py new file mode 100644 index 00000000..cec198ac --- /dev/null +++ b/www/maxn.py @@ -0,0 +1,22 @@ +from functools import reduce + +import pyrtl + + +def max_n(*inputs): + def max_2(x, y): + return pyrtl.select(x > y, x, y) + + return reduce(max_2, inputs) + + +a = pyrtl.Input(name="a", bitwidth=8) +b = pyrtl.Input(name="b", bitwidth=8) +c = pyrtl.Input(name="c", bitwidth=8) +max = pyrtl.Output(name="max", bitwidth=8) + +max <<= max_n(a, b, c) + +sim = pyrtl.Simulation() +sim.step_multiple({"a": [1, 5, 9], "b": [2, 6, 7], "c": [3, 4, 8]}) +sim.tracer.render_trace() diff --git a/www/mul.py b/www/mul.py new file mode 100644 index 00000000..c65b8695 --- /dev/null +++ b/www/mul.py @@ -0,0 +1,23 @@ +import pyrtl + + +def mul(x: pyrtl.WireVector, y: pyrtl.WireVector) -> pyrtl.WireVector: + assert x.bitwidth == 4 + assert y.bitwidth == 4 + + def romdata(addr: int) -> int: + return (addr >> 4) * (addr & 0xF) + + tbl = pyrtl.RomBlock(bitwidth=8, addrwidth=8, romdata=romdata) + return tbl[pyrtl.concat(x, y)] + + +a = pyrtl.Input(name="a", bitwidth=4) +b = pyrtl.Input(name="b", bitwidth=4) +product = pyrtl.Output(name="product", bitwidth=8) + +product <<= mul(a, b) + +sim = pyrtl.Simulation() +sim.step_multiple({"a": [1, 2, 3], "b": [2, 3, 4]}) +sim.tracer.render_trace() diff --git a/www/ripple-carry.py b/www/ripple-carry.py new file mode 100644 index 00000000..21d7d7e2 --- /dev/null +++ b/www/ripple-carry.py @@ -0,0 +1,34 @@ +import pyrtl + + +def one_bit_add( + a: pyrtl.WireVector, b: pyrtl.WireVector, carry_in: pyrtl.WireVector | int +) -> tuple[pyrtl.WireVector, pyrtl.WireVector]: + assert len(a) == len(b) == 1 # `len` returns the bitwidth. + sum = a ^ b ^ carry_in # WireVector operators build the hardware. + carry_out = a & b | a & carry_in | b & carry_in + return sum, carry_out + + +def ripple_add( + a: pyrtl.WireVector, b: pyrtl.WireVector, carry_in: pyrtl.WireVector | int = 0 +) -> tuple[pyrtl.WireVector, pyrtl.WireVector]: + a, b = pyrtl.match_bitwidth(a, b) + if len(a) == 1: + sumbits, carry_out = one_bit_add(a, b, carry_in) + else: + lsbit, ripplecarry = one_bit_add(a[0], b[0], carry_in) + msbits, carry_out = ripple_add(a[1:], b[1:], ripplecarry) + sumbits = pyrtl.concat(msbits, lsbit) + return sumbits, carry_out + + +# Instantiate an adder into a 3-bit counter. +counter = pyrtl.Register(name="counter", bitwidth=3) +sum, carry_out = ripple_add(counter, pyrtl.Const(1)) +counter.next <<= sum + +# Simulate the instantiated design for 15 cycles. +sim = pyrtl.Simulation() +sim.step_multiple(nsteps=15) +sim.tracer.render_trace() From a1cbd4c4501fa0ecd043bede919428df3d5a8fb7 Mon Sep 17 00:00:00 2001 From: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> Date: Tue, 23 Jun 2026 18:13:51 -0700 Subject: [PATCH 02/12] Minor improvements: * Test `www` examples. * Update READMEs. --- docs/README.md | 8 +++----- tests/test_examples.py | 22 ++++++++++++---------- www/README.md | 40 ++++++++++++++++++++++++++++++++++++++++ www/gcd.py | 4 ++-- www/index.rst | 9 +++++---- 5 files changed, 62 insertions(+), 21 deletions(-) create mode 100644 www/README.md diff --git a/docs/README.md b/docs/README.md index 52f03c75..14511667 100644 --- a/docs/README.md +++ b/docs/README.md @@ -24,11 +24,9 @@ Follow the instructions on this page to build a local copy of PyRTL's documentation. This is useful for verifying that PyRTL's documentation still renders correctly after making a local change. -There is additional PyRTL documentation in the [`gh-pages` -branch](https://github.com/UCSBarchlab/PyRTL/tree/gh-pages). This additional -documentation is pushed to https://ucsbarchlab.github.io/PyRTL/ by the -`pages-build-deployment` GitHub Action. This additional documentation is -written HTML and is not described further in this README. +There is additional PyRTL documentation in [GitHub +Pages](https://ucsbarchlab.github.io/PyRTL/), see +[www/README.md](https://github.com/UCSBarchlab/PyRTL/blob/development/www/README.md). ## Testing Documentation Examples diff --git a/tests/test_examples.py b/tests/test_examples.py index 0a741ed0..e786e84d 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -1,4 +1,5 @@ import glob +import itertools import os import subprocess @@ -6,20 +7,21 @@ import pyrtl -""" -Tests all of the files in the example folder - -Note that this file is structure dependent, so don't forget to change it if the relative -location of the examples changes -""" - @pytest.mark.parametrize( - "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") + "file", + itertools.chain( + glob.iglob(os.path.dirname(__file__) + "/../examples/*.py"), + glob.iglob(os.path.dirname(__file__) + "/../www/*.py"), + ), ) def test_all_examples(file): + """Test all scripts in ``examples/`` and ``www/``. + + This just checks that all scripts terminate with exit status 0. + """ pyrtl.reset_working_block() try: subprocess.check_output(["python", file]) - except subprocess.CalledProcessError as e: - raise e + except subprocess.CalledProcessError: + pytest.fail(f"Failed to execute {file}") diff --git a/www/README.md b/www/README.md new file mode 100644 index 00000000..a2256f59 --- /dev/null +++ b/www/README.md @@ -0,0 +1,40 @@ +# PyRTL's GitHub Pages Webpage + +PyRTL's GitHub Pages webpage is at https://ucsbarchlab.github.io/PyRTL/ . + +The sources for this webpage are in this `www` directory. The page is built +with [Sphinx](https://www.sphinx-doc.org/en/master/), and written in +[reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html). +The main Sphinx configuration file is +[`www/conf.py`](https://github.com/UCSBarchlab/PyRTL/blob/development/www/conf.py), +and source for the main page is +[`www/index.rst`](https://github.com/UCSBarchlab/PyRTL/blob/development/www/index.rst) + +Follow the instructions on this page to build a local copy of PyRTL's webpage. +This is useful for verifying that PyRTL's webpage still renders correctly after +making a local change. + +There is additional PyRTL documentation in [Read the +Docs](https://pyrtl.readthedocs.io/), see +[docs/README.md](https://github.com/UCSBarchlab/PyRTL/blob/development/docs/README.md). + +## Running Sphinx + +Run Sphinx with the provided +[`justfile`](https://github.com/UCSBarchlab/PyRTL/blob/development/justfile), +from the repository's root directory: + +```shell +# Run Sphinx to build PyRTL's webpage. +$ uv run just www +``` + +This builds a local copy of PyRTL's webpage in `www/_build/html`. +`www/_build/html/index.html` is the home page. + +## GitHub Actions Workflow + +When a commit is pushed that changes `www/`, the +[`pages-deploy`](https://github.com/UCSBarchlab/PyRTL/blob/development/.github/workflows/pages-deploy.yml) +workflow automatically runs Sphinx to regenerate the webpage and deploy it to +GitHub Pages. diff --git a/www/gcd.py b/www/gcd.py index b36deeb1..5a78cad9 100644 --- a/www/gcd.py +++ b/www/gcd.py @@ -4,8 +4,8 @@ def gcd( a: pyrtl.WireVector, b: pyrtl.WireVector, begin: pyrtl.WireVector ) -> tuple[pyrtl.WireVector, pyrtl.WireVector]: - x = pyrtl.Register(bitwidth=len(a)) - y = pyrtl.Register(bitwidth=len(b)) + x = pyrtl.Register(bitwidth=a.bitwidth) + y = pyrtl.Register(bitwidth=b.bitwidth) done = pyrtl.WireVector(bitwidth=1) with pyrtl.conditional_assignment: diff --git a/www/index.rst b/www/index.rst index aba07c61..3eebf3db 100644 --- a/www/index.rst +++ b/www/index.rst @@ -109,10 +109,11 @@ differences between the approaches. A greatest common denominator calculator: ``gcd`` generates a sequential circuit that saves inputs ``a`` and ``b`` when ``begin`` goes high, and - then, while ``begin`` is low, calculates the GCD through iterative - subtraction. The function returns two :class:`WireVectors - `:, one which holds the GCD when the computation is - ``done``, and the other which is a boolean ``done`` signal. + then, while ``begin`` is low, calculates the GCD with `Euclid's algorithm + `_. The function + returns two :class:`WireVectors `:, one which holds the + GCD when the computation is ``done``, and the other which is a boolean + ``done`` signal. .. literalinclude:: gcd.py From 50073f53991f3efe56b406649f670f40f0d17207 Mon Sep 17 00:00:00 2001 From: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> Date: Tue, 23 Jun 2026 20:20:43 -0700 Subject: [PATCH 03/12] Add screenshots for all `render_trace` outputs. Update GCD block graph and improve formatting. --- docs/README.md | 2 +- docs/images/gcd-graph.png | Bin 85012 -> 0 bytes docs/images/gcd-graph.svg | 513 +++++++++++++++++++++++++++++++++++++ docs/screenshots/adder.png | Bin 0 -> 5729 bytes docs/screenshots/fir.png | Bin 0 -> 34005 bytes docs/screenshots/gcd.png | Bin 0 -> 5849 bytes docs/screenshots/maxn.png | Bin 0 -> 6832 bytes docs/screenshots/mul.png | Bin 0 -> 5467 bytes www/README.md | 2 +- www/index.rst | 68 ++--- 10 files changed, 554 insertions(+), 31 deletions(-) delete mode 100644 docs/images/gcd-graph.png create mode 100644 docs/images/gcd-graph.svg create mode 100644 docs/screenshots/adder.png create mode 100644 docs/screenshots/fir.png create mode 100644 docs/screenshots/gcd.png create mode 100644 docs/screenshots/maxn.png create mode 100644 docs/screenshots/mul.png diff --git a/docs/README.md b/docs/README.md index 14511667..8b674342 100644 --- a/docs/README.md +++ b/docs/README.md @@ -26,7 +26,7 @@ renders correctly after making a local change. There is additional PyRTL documentation in [GitHub Pages](https://ucsbarchlab.github.io/PyRTL/), see -[www/README.md](https://github.com/UCSBarchlab/PyRTL/blob/development/www/README.md). +[`www/README.md`](https://github.com/UCSBarchlab/PyRTL/blob/development/www/README.md). ## Testing Documentation Examples diff --git a/docs/images/gcd-graph.png b/docs/images/gcd-graph.png deleted file mode 100644 index f8985ff9d2e5ab6fcdacdbb96b00e4eb7f13e6d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85012 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 IY8>$Y04JKVKL7v# diff --git a/docs/images/gcd-graph.svg b/docs/images/gcd-graph.svg new file mode 100644 index 00000000..9b605393 --- /dev/null +++ b/docs/images/gcd-graph.svg @@ -0,0 +1,513 @@ + + + + + + +g + + + +n0->n29 + + + + + +n1->n31 + + + + + +n2->n15 + + + + + +n2->n20 + + + + + +n2->n24 + + + + + +n2->n29 + + + + + +n2->n31 + + + + + +n3->n33 + + + + + +n4->n33 + + + + + +n5->n6 + + + + + +n8->n12 + + + + + +n8->n13 + + + + + +n8->n17 + + + + + +n8->n18 + + + + + +n8->n29 + + + + + +n8->n34 + + + + + +n10->n12 + + + + + +n10->n13 + + + + + +n10->n17 + + + + + +n10->n18 + + + + + +n10->n31 + + + + + +n11->n5 + + + + + +n12->n16 + + + + + +n12->n21 + + + + + +n12->n25 + + + + + +n13->n14 + + + + +n14->n30 + + + + + +n15->n16 + + + + + +n16->n30 + + + + + +n17->n23 + + + + + +n17->n27 + + + + + +n18->n19 + + + + +n19->n32 + + + + + +n20->n22 + + + + + +n21->n22 + + + + + +n22->n23 + + + + + +n23->n32 + + + + + +n24->n26 + + + + + +n25->n26 + + + + + +n26->n28 + + + + + +n27->n28 + + + + + +n28->n33 + + + + + +n29->n30 + + + + + +n30->n7 + + + + + +n31->n32 + + + + + +n32->n9 + + + + + +n33->n11 + + + + + +n34->n35 + + + + + +n0 + +a + + + +n1 + +b + + + +n2 + +begin + + + +n3 + +1 + + + +n4 + +0 + + + +n5 + + + + +n6 + +done + + + +n7 + +tmp0.next + + + +n8 + +tmp0 + + + +n9 + +tmp1.next + + + +n10 + +tmp1 + + + +n11 + + + + +n12 + +> + + + +n13 + +- + + + +n14 + +[7:0] + + + +n15 + +not + + + +n16 + +and + + + +n17 + +> + + + +n18 + +- + + + +n19 + +[7:0] + + + +n20 + +not + + + +n21 + +not + + + +n22 + +and + + + +n23 + +and + + + +n24 + +not + + + +n25 + +not + + + +n26 + +and + + + +n27 + +not + + + +n28 + +and + + + +n29 + +mux + + + +n30 + +mux + + + +n31 + +mux + + + +n32 + +mux + + + +n33 + +mux + + + +n34 + + + + +n35 + +x + + + + diff --git a/docs/screenshots/adder.png b/docs/screenshots/adder.png new file mode 100644 index 0000000000000000000000000000000000000000..97ad9ab6c736fc70b172f022a14a1f055fd47a3e GIT binary patch literal 5729 zcmV-n7M|&eP)0ySp+nG8!5hFfcF$1qB=& z98*(M6B83dLqo5xuY`nzEG#U8gM&9WH&j$q5D*YmRaKpxoe>ccJ3BkDu&^m9DWjvK ze0+Qh3kxa}D?J-M3Iq!Z3JMYu5(xsHm!{ zsu>v>W@cuGhlh`kj~^c&dU|@bwY9;)!KbIEg@uJ~ZfBQF>kj~xyxJ5phu!D6fPklA%A~=Z*OmKaBx{!S*4|=7#J8LA|f+0Gqba^QBhG# zOG_puCMzo|Jv}{&ii&x8c>w?cFcmP^VB1$GSaWl8TwGi{JUp41nR0S+YHDgRF)_Hf zxHL307z!9#C|syZs;En=G8QsyY;0|9ZDnO;Ha0dD2^C~5WwKAS&s@?K2^LIDOfN4l zuCA`EtgKKZQOjD+p-7}qBT*6v5=lu(6%`d%S666gXdWIOT3T8!6);C1NDl@N!otG3 zy1JBU6T$Hm3P!^6YK$jHjd%D%q7SXfxe$;rIDyu`%B%gf6rCnvqVy?1wa zUteEaTU$*{O}4hS%*@Qr&d!}R>tg@_6D~&nR<mdvRRyefMAwaB_B8>Iz(!x;P8I&u(1ZmMwqJM?!ax4|n*Y6`l(dEUSH`c$K37 z2v)BVulznoCGcA7{hp70KhC+)I#ygHu=#!=*6q@QBC|&nRLm)WbKL>VQ$czA@CNvEJGZ4_|K&icNE9 zJzb*Z@V%pgsY(F|4T)JVkuD&&taboah&O1J8^jx#?flIj|JHB+j_D0O;^Gq$lQsbm zmYgERze&I%HI0Xww&#;07!S_CghQg5bewj$j&D= zGIsgo>?!~Zjt=?~9jCBp_nO3HN8+>mq=4cQxpV=!WwisRU8SKqW$7*_Mnix1_kRBm ze)@-hWNL%Po`h9iaoKylfrr<={eESH8wUWad^r$uL~&z`E6 zE+Dt8b`X_zj;~XmON(Nj_douVKmD^m|BJsgwV^|U_%r~%t6j z+R$H?p#qPfJARI)-Eeg^aXbW$iW@ZN^lm@VMT5Iif%82wl=B684lSokXb$bhMTt8A zpNOTVKZs9SA)5_xoF7W0`IY zzX9cr4S~*=pb7(gTBws{@ zev~OSDW_pU?SysmL9J|1exA9P|N8I$dEW+&Pm^VNc@b%0puMrCZm2Y^FL+lmfB$}d z@h-xR%frK$DVBfM!J5W);E>a+Q5E7`Sxn)|Y#TD!yvkdTVR* zTG#SwL06Zcx}5kdbo+MA&0F9;()?8ch+45;t7^E~UHxb`aW0~6hkvz_48l>)n@3I( z;YZKW$@L{VPQ@s3g_n&IcZTS*-S<~h`!SXeY@je;S?vUQWBpd*f(K={>NkF`iHbcz zFgg}MU~JUl7J0NK1`@Njz=XCBIJa7C_?A)lRpv+I{;?p|f85qB_+dj39b*q{hA&W(A;%y)3$vnC6IqS=$#?%7U29&^Um2M>Oo!IJE8 z%*V%{1y{4@ojEz5mD#$Dmbft)6rXeWa8CTEtQr{8El+Q~!E((KNjTnr{%XLEZun0BPWRHk40>m-zlM^FYh5Q*Ca(J{z{{@RV@?^z& zVgTkYj-{;;tYzZ2N#NZj65zH`;v~Ki~t)58;MaKQVsrm#~O+7Q4|gN%8d9r2OJ@IpK z|D^fINc6h=`dXP>F1v5*Mq13Sdl#%2x?>`i&3tffSbb_ z9&?{PknIEm^^^8MwiCD>liCBB0|yQqIB?*=fddB)95`^`z<~n?4jdK{g{RG<&=QqJ zkm9Qa`6%aslk^Q)V$&!<0 z7_(vUWqR_2!Ks7K&*~n_3(h_#+h?qzN|NLlX@^-de)CFpc6QCfEq2#8l#PXvk%f)S zi(7syI;;p8+EL%76?D}@qE+)%%Ep$4jKVyO4H+gl7Bm#ZJh};O?grl=*|{&JV68;5 zwjct&8X{XV^a|c{ztN|7YTyQrp@_Q_|84{#XfR@)YHaYREaiTI9I_zeTm1UPUn{P^ zvUT53gvZBkR_OoUoF=@WQe6iFM74wW$FKU%IO0GDASdfYSk~`=nfwp!dZ0!aB?)2-E>V)Hv}nAh3+O;!4A z0>X{4FE5P|hl=B0D-_L|tHOjEL~zV}kO?(slW5>P6*1E2NLeR z8@sW+%3VOck59Xi$CDr=;jKaV(2DlgE4JXKuN0!O-7z4h`;{gXm{2JX2)9ol#^%xJq#i!ByjFY2&M)$-Y6H^G@;X@1*+ekHTM`Eqn8(?ClE}(SCSn=x}=k z68DW(2UYJrVKD5*(=>Ba&ot_ETw?;yTvNeYB1OIE?GmCkW-aksx_4o~4j-C|L^hmZ=AMk=(eJTA`J zIqnK#LB^r{NyoEY%WQpz)q0}eoWvk8lOShXO5&m?u6`xCMFL~=4b5mugAL@E>isHK zWFm?xF~&U3ZssX0zTcon+8Vga5N0K^y}1#NL-U|#VHyx~F>8^v!0jaQcx_6AIfygc z472P7ZJA=Lko8z=YacX-=84RJ*We#(B#QNK;8}spK$xw4;J|?c2M!!KaNxj!0|yQq zIB?*=;r}=IG3LRyL}d|q0hLWqUThvqoQyYD?JlCzz|22EAY>6U$RAX8Q-j)4lMoGstC zZ{O9IY{=vuhkBp9u(cc1&oM9&{^FAG67g>ehlo6j2;wik6u!M*v3APfOwK&etWO^E zfXZu}GFCy!n-y#CJKSEzhD<)lj~|$``IREQx30op!FW>IcTLfVVU3E%sI_hu$7kzW z(bI}zOnJS+2N~Eg^#wU5;D0eirRzL4R^gZudvVqOAWJfQcX8jW%`+CH^6Tjlm5g6? zBlEsgDhY3m`ru$Mj&CiyrpoPp4$MMQ?_@Yf$}66wv8 zv2I?D%I5i^(%S5NX>^7xMgEK=$b!8*igv8dF)zYeC066#OGu^1{>bM{(M(~~2%IZy;Bu|vp zzG4W+jqFI-n4(Vsou`6zqt)Xhuh@|B*=O#x>fZIkwswR3iJyG(=e+c8$afUW$<$W# zG{o11N{mKg=bnCOJQ6|MPH)p*JwyYIRAee3HZwUWfh@=zk^`P4L^kZ zc;um`hlIpaXhYCzh-ZP#KSw$VdQmu>hqRt590oO{6}ds6%YX z=cJDwUG}_eb2lFd|hJj66ZGlHPU5Xw0t6`U>+wl@^Iu_KfFRF~L1ZiJl_I-Yi9{5sPl zrmW0cbAh<8)@8rM@t4_kczs@AVBpfgF@5A9Mwegdekv#Cs~IZk(?~@OwR3i4lP|Ba zB9mkJgj4qSUK{;FB2tkDu0j~3UPx3iW-d53r(d1cVUB9Dk&4=+-g#t4CcBWz)}t>| zZkU7Ntdy9SX5%vx((hxV zP&TRnh$FS!>+Ma0;72ZzNsbA$tGl67 z3L_QrD|7o_wI)BxELnBRU9SG6+rVD5m~kWYP|CS;vZbydzsd^$uc~}7cVYjS+X2Zj znnJE2sZxn~#p?b?OQxsq``?2&?7!XPr@{>LzHnt{v~J};YFS7_74qXXOZs1Gf`d6S zoX(uVhfZ%=wy5`%0`VOn@EY+3j*{B|+?F_k12v&@bFOLonQqAQ^2qc>l%!a*YWxIo zp`&bH(cu)Mq(BUx=?>8?o=YY@8meG@!9ZEry2q@@lA7GK9wwOtWqPScB}Xpu^^N8op+Zv>hIx;bWid1Ke;1fkZ^;H8rEB*5=UB53w?x=3*xp=+Y1Ceby70t-{r>Q040HZi7MCX=UGhZ>d6 zQ@Lf-snyxzWG=B;GO@#)Ii4c^%ABW?NP8MPU#}ZxLngvX zqGCT>WH+4lxl~pjFDIHVn#;}I$peB1O->~xPE8MJHzx7KW9`zm0EjnAix4W3HsY8| zM`8Pldj?@cKiYPeQ6D52tMF?_BHIsVu_VJ?jxxr8W|87Xkf*2S=S)0&y~&)}AO{c} z3>@@7aYD>fwq#~*A zm`mH*%gCHDhlSd=6SXDGdnILAfxC^37=^(NO_Hf1cn(Ce0~Q2twQb$bWH9TAV=fBqACok<7J zDV=j{xX^I0@xn&R%hc=s_odDpvhZU6+yC=5opyqei{`(ta2{HRK1s>H%xWx$BG;Vk z?CeJN%*(Ees2x-lW!;}3vrc`BEZ4@B#i`ipNVclBwp*)80s_jS=gNjg6=MN)vC>vPQOx)maN| zwI6NCT$-+8?jISUi`Grlh^_s{pW@Ru(a>l%drd*@WVGsWBCIsUEmm5v2# zU&g7asqH4ZiX>%ZE_KGQIXy2ZsOqo{VhRdc!<+m1`aZR-;Q8|9i^QMvBTT9+cVt{S z1PvZs4gB-_L~GXJ$4{Q51yy(r(JQSkIXpHIetNus=JxH|67qG7_)5yU8@zMiI^Pev zl#B8F9n)c4b7@C&+P{`vJYbqPZ7bY!8U zmJnmEsi|R?w4=Z~+5Dbp;>4GJvch&Y37hw?&kY-znLV0&qnWO%sY!EbWpwwQ`}ZB@ zN1FfNj}C90kL)krDOowX?LnPFI@y+4Z>Z1Gf@<4U97$#4AW9{2vwjV94eUm+JZq%g=MK=yR47|T4dEh{VX^w`q zHMh7;>D5o4bmgM^`s~;_IYX=ZFIU_5_g6*GZQK~HmijiD^T54hD`L3Fn>KHza&mHd zRZ^lRu=zy)yRgUE*}v!>DXuad$$D6yaMn|`QWQeQ|iHM*L2n;-7XLtG6FPHc4-#^UC(i~=& zkdRnfUJkBz+$k-+&C}Dii!$H8<&_EF*0&GDUL0KuWxMZ`rEfEbkrfNDZCWZ^Yd4NgDLZD zD>mkuc0XyDpZ9)WTbpiMaY^>lU)fu_nZ1oP*f{EDp-g>qHMZt-Vv?<{f?2Qh!zwf= zaP&IX8#ttx=J)+ME6m-_4Xfg z%jWs^>jjS_GsX*?aB+#k7Jd8i{%_yYAd@Lv>50 z9{=WRc5ZGlGlR8NpFcBV2^Ge^|C;YGv-)SMs-}h}D=Ui}A{Q4I3mY44rqPBFKFJgB zsGnLC(T9hJ<1;I-Y}jIl6MO&u&}k_S4_Piz%VI|Lh>hek{TIf9b!{1U6TG_;B@0!ks&GMHWmb ze552{tv!GFGUD~?gM#{ZC@d{4zf}bB3MbH0tJ`DnW436#4V+5-5+e!z_juZg>Hg97i2jkrtiwq4ufqa*D(Y%Z>@%@sjG zjNEctV|f(QqHhhWvQUSFhW1ZQF*7hQXlEMX{Imr&qweffR^~mDtUwuA{qF3uvhaL| z+IOEm(aXrlpcK?h_gBp<%{bgjObq3tD_t4O@muWiJz;N8wPnkeC>}))0|NuU={`zV z6GkpsmbJgb%KZZaRM!rLY}%>$(08i$YGh`?+D!#vURbY^HSA6O-u3b*A8~LM` zqGR@Y@tdvW3QDZ5ImDFC(jM#%-01xIfZ%L~`#-{}S-oD(d#T!ShI+DQ46RSl}P346<`s3P`-P*f%?>6FNxj_|t`D8(-w@vxl z>P4^b<$)RL={xtZ&}rM++RlD^eeMUkkTyj|YAXLSR_#r+sh#-vkHd2x@9uYscWO-D zWo>P(Ly?i6zxTCMBhTz$tg;}EbI(@#k2h|xkVE{@l&X#wml=WJhPXa;Hxj^Tq+;K~iBh6ns?qUH~Mk9)kf znyr(l5Mbt2(l03~iN}%8|Nbp_1h-1uqVQ_N+_Q>R-8`$;@muMr$-AkmseLehWDs}h z(j@_kmQSCqE1dtuzFf^_djp%A9D`H+J&o{)h@0rYnXR2~d?j9=sG>0vWxc7EdgFn- zulR+9v11l*4(;Igo#@iYJ6;ejB`L{AZivfQ$=SASIIem{MtVotGvpm zsGy)7tfEr#=FQFB1`qfW#jU%?cDC=v_LCx8v znZb<2L^g8C+1S`-Q67HG4%Ll%_g)z0_G(VkAea8*;LHcKwVNkSobXP@<$vunZt8_w zk&&6X%h}FO<@b0;tipv^frBV)n<>b(M?1W^wp6REt*)*fU)6u(-=D?ZN0Q_;Hu5N# z@1Cl=Ew&Te;qdk90U4i$J9|S>xg?!WoyuG+JE8PBVp%dJZ^>CkBa^@V!{bkHV_r?j zCV0|2aMjq|{=?<+Yi+|Vj$I9o$-&`mdg-1+?Z zGhc#kTuREbbIk2$q|qQe)>Z@M8ehMD{o(WHD;Bw$j*f!p^W8&yc}Cd}@yk$1C0>Ao zgTq2>@$cUNv~iV8BYqJPhV9$8&ldrv{GRM#h|{JxS%GGIU6DF&AY86uP388Z#$cwE5|bcc@YJp+kqL{~d^^qD*P5eHX@X)Y6iH!rT9F zpb*YEi8nzv%=Xf9rg|%jZf1P>6gt|Q^Al-IdVu`s;TPt9p1@msUwS+zq#fV3R}+_7 zii0Uobiv&r-8k1&J=b*n^sv|KJNunB+FTggwxR%f@VV(&wu!feMK0^b-@lr5#x-tV zY(0zJ7F%wMzMrlc{SJkpa>y&S{Y>TXoDbt+*2wiCeBPg|)0;=w#Xv*w3p=;!@zL}V zg_-5Qj^Sn(qi#7<;KDZOA8&gn|OJT1U+g#?ah^bU(MNNiY~+=wcm_=i&L41adl9|Ny z!a}K)wT6ZUzrpAO9w@k0uRJL65yi#DUtf7T+^-2U6uP3Bo~jjxTcf6~zG?gR?DVqi zoB3*~6tT6fXRA{HINQz?#duZ&<~DIVJN8jqF4R6+ryP;lwAphPbH4luHn*YgY6)ra zN?9q#B$YU)4~jD7vexWZ?y4SuRF)Ns0g^Uf;=Y z&Yr>{0y-?z&Hem=U|HC2SfqSFH535L^r-!hj$@VPngaJQtSA6ZJ+&$00J3`JGtTmW|^m6f=zt}X?|=4;e}EAy&eUbE*O{jvzDcO*y}73@{upJJPwIu7jSb%0vv>%&^2 ztW~wOwAtC&{=-_ShA2v7`aAF5yQe0!b<9dH+XTM>`Qa5PVq&)~ol-xQrK3i@Lw($| zX%qOv`srWW-CY7mX~;BcHja5);G9!*wqpm*99`#ePEM#=>SYzahee$1>~9+znE}z7 zx8D^J6}@up+J+3H(Q`>pHiVD@@gyfFZY9!O>>T# zm{9i}A37pdG}-!ynVO0+BqYS{>{*7_Rxu#Hz=BDmVYgS0oN#iASo|KuyCaT{H(;8Q zM=9W|sBLCu=KSnDmf7hdi;S$Sw5Ly>wtI8lym@n7yue=HNvm(A7q);L({0$$e67XO z!s7asE7YIw>|KW~o{*4${|>%?pA)@;w(t1h!btPZ&ne2hqO1%kiR_C0QonxvnjU?W z(xN2pIut>W>iC!3PylJAztig9$}XA>FBZ4#5f)Yp2vGR>`R+R0_SaSh61i)?3K~!I z#@}vn{%eh91R6+439A3Y)Kp4vMB0eC6s_Wn3~DrvJJM%aK_+ow_XaF^`1$$u6*MZf zz7g$GKXqysDk8z`sMcU`Xh#npK2&*jb{i{eT2>ZKfm35mrd}f7R{Fi(BZk~nhXrr) z3kuR;dxz-@s;jC}5{dx&M)us>g6!_EU(NNCmIHZsk?WNL+5Yyb2id*D>XVR|m|k4W8cM_T?lR>% zv|K_i*tc)*2l*2c7Y~OZVqw9dfB5iT`}cHmm+DFN8s&}F3Dm41Jh_HsvR?ug@)lw<*AS8;O_M{xjO?+58V zQ59ZUQxjgU47U5BvGLKfT?x9-M$~GP4tkHU@F@BpiY;FH^9P%Gbm_TNI3L~fPM0p( zRHa)I`h!PH#>UQIxj`#kFg0vcHiT3 zuCJ{&=9@?DG0u9JmKIW85xvme)nz~QDFJfG(!|T}r)%B*<5cvNg{|X@yFi#v(|!vN zr%9r}gZl}ldS2gEAsUy)@Ypd8_wRf+KaLzT#y#E;VoHYKbC7B!nY~`oGqd3GDr_GmG=M%v9c$}c0_VyxK*Z2J%`0tUU53(An zR({g@{T!_7_pp%qC9rt|g~DQaVFE82w}XQNUftZPeXFLc%Oa_HU9buTP*j*&FoACZ zoBhw|e*e>In*3*BJi>FZM*2@OA04n)-}`G@Xw&8tn6N7;lHXj@sIOA1K_Ez_u|Ww5zMj^wHL8`@OyX<6?x+ z$Hm2cEjr7VR0~Q~y1FuM2;DE=K`V0SZK4eJM7#Ybl3Igo(c)&f$qc-+&%bf=W@ufa zgzxFFEY%Q7;qIp7lc-(&ET zp~^bKDD>aWdC&0u@Po$TaoLdHTbBYZ#eOrt+1y?RfkiH6ggbTgl8trcs|%Y-N_Hq7 zV@s@CpVAoA*=grJx?!8dL{K!_nZB#l_AXzar`Aqrif*N!>Ag7BT=~PF9^DeWwFYp> z_PnW$kd-(a4!8DKXTg8}M1|E$6t50h&tOBo3ngM^pxW=>LdQj`hn357!w#Jhj51SUr+yu3A}H3X|Ht@v_rQ~)Nk{^L zcJ}sZi>8u2>!A(G9y|zbaPhH!b5+$k2z-ietnb>}x2>aLeA}qJ_V-1>tnE!TyJT}5YSW@>qTyLHWlwhq)E z`2HS^?Z&-(^w`dBQyF^k0@$F>y@qtrCi|ceT!xsPp>vb0%Ydc+hTDtE;oKvoh&>ec7nit=oI)uisxtFFn7@(!j)^8EPLsjIPW6ugoYrW8IeX zPT)mZ`gf_oXaMqkEeEsmdCr|X2TD(%-MsKC=hm#sckj}UA6l4ve`}AiB#ev)N`V|; ztPsd+E#1q)&<=ot=1w_1>%skjba%YK@x;3;8)Ps37KP^7H#8Ime+4k>!NGG`-O4wk zm%ACc%*@Qbc6RoEUt2xEy;4?KxYagbX1#)fLdhu&{dj@T_4P1MuDW&?r@nZx88WMc zyrsmU#H1u{2x>E}N0gf{%0Qy;&v{m^hK*H{8N5!RJK;eWvp!_~_9w^4nkjbeF8Mc4 zG41li0YX3Nhv=j$FAC<=02UzoOx%vvw)FG&Cz#}GffIAtaSvb3oOZNVs+pM?f~PM# zHU1c=j@-n}-6Lk!X2e|%uyaUDtCf2mQ0LW~H&x%iSG1S?EZJv5D}iP{+?Y}uypEQF z0x+IvgV1I?Q6SsCd_e^%mt1At?Qn)#3rwyQU9cMTXuemahbe>)74^D%#Xr`U?%yZB zoU1$RL(c5YRCyJu@yHak2sAMN_whP$+E=!Tm=Yy&X?Zy1&BXHy4s;=JQIk(NID`WA zy)0oq=8MaWHi|n&1#F-wc%C-4whB@;gy#rYC~lU_Mux@_YpaVDp8r;SR{r3Oh-$iH zM_PB@x1-r6j~_q2d}v2%it@EXRKY5jv69@Jz8TU{Q=zKxNl3)58UT14IKT!COi`S@ z?|ZLTey0l&WFF*T%Af6FiEW4PXt9_v+OvyXDy-z~QN4ni!B3z*x_j0S)XSTzMjnFO0Rr4f<8g zu=R=>Ka7efxIDjl-mqcy5L9Io^v?&2YXE{DIr=o`-Hq@s$}TPvo?KG2#zf&i1p2ZI zgb*MUAKc}dZnT9u_{kGtF8T9}q(P!`UVn5Xil@!+xMNcQ=5 zl~gX>#krQZ*>vJx`7a1xkBkJYrb{)XyLj>9kKy6}-p-9;z&#}m-F4$#cSlFfpxP#B zPamJ^5}$Dbe3ImS&v(aB(C3>oiin6P1g_jlron1dfg1X9AsE#|EtLf%5$bT};-&Q7 zXOr}qb&&inT)5!v5`(Mz;p7W9Ya0{Mgm>@MRxTD7Zg*MfJx!_r@IxIw3ozRXhq`@qahAtxvgs=uM8TiZK^AcmDYai>=$Xoq%B5f z1K1u6t?6e${}`}JvMLTpONXiOjTB#$0}w`au!DgADrilqrKRP@?b}}_M1;^19Ua4& zmH)C-g)^mBBx(x)OY{`?J{(gYyO044fBELkE%Xcw7Y|XW2L%ObXSTRah-jq#rz+Yx zJL?41Iu<|x2nHr~bC06B3^f`&Hng-<0S$8Kl+&<#zx(z|emW{J0#dWF5k3Ddd1C#L zW~-s0(eq`Q(a&_x^3u}f#^I_jUsxfoPX;I4y2U3ZmfIa|7$>j+Fq?SY=g*&C8h=*N zH!;D)I)3-x{rmU3#r}EFg{T-9Y(%@xcj??m`j&u>{ij=dgutmaHEZe`>?0nANWz6R z8~%gsSJlz6h&EPbn6tIu#f#@2{c7mf=;r=co@8$c@D1Lly>sVIvcdq5aQ_JX@$mM3 zk6b`WnJS!o=iz}#+32tAsOd&VA-JawHBsB=|9p9Lgm-@GJMYEC$%#!3uZRWr^5p>; z_ug+4@&&mwFSpBrli=00z^l(se%uUl1yh*opcnPf(2#_sZ^XkLgW|_uP@{VT$MJE3 z@o7eLgk8N#=z_QWc=A3EZ1B|P(~{?Y>UYJ4(yz8zGd+M_ijBZDH{4j8rV&Z;cX!(P zBXnFH>{ySu!EW*#D$BnnddoN&SViBWL%ek?IBI1TC1zR7w|_sHd483YlvLl#@0Zkl ze57k)xEVmUXJ@?t*w(>`x!Bn`E@f(J`n<64JxX^;*}1){EQZ1fgvw%5?)Cbiji!N1 z_pAFQGk{P}-j?pIXke-85d*l~SEHf=Iy;xUmn;K4T3TCY+Rbd6FCP6kH0$<;YxB~P z(mO|#map*i@ae?M&_I_iN%B-5{e<;_4QgS<-^4w9kMm}Hd2#_lcA1K^`y zpPyI<{0hu3$EeC8Bqa0}QY9g3)f*I3n?<2Y)Tc+nRJ^OHUGd$KOHTwUOf1 ztA|tV{}QA`yk=C)t@Ii%lfJm=f@&4JbcU>~tnkb+7Qg>KdGe`=@SBONhxMeQ|1@m@ zraDtpqLpB5j30=VI>XU=vsb#vqGxABy-xhEFEppmJ~ny6V z9~(~`5tSG__}7*g;A{!(I`O#TkQILw-``(MlbQ2IqT2O3WYWRf*imy0MKr1f4->Ts{iG0ng;Fuf8sZ&5|Wbh zvh3?3fSmD_T3bn|;(uR?8*APoI6=NfJSAy1{+~ckZ0O$q&s%f--+Al4(qD}8QgE94 z`}!zC_^^a1D9~p~clMSemiWz^#)-|x(7mAr-Vo@__6Gm$8yILgSTi6}+6D&U7P*rq7JyQq*1z_Z z04~MH#{=xiCESMifKL0i-#Z$cK8r?2M+dh$NtXzAIgVH}SNb`yBI{W3RYQ?30B~f_e36Gt1)_0}yr7!c?Zmm*r@wFUf! zlYAwiE3#0}82KFS!XBNeVpir87JgDS3c06r;fp2FIn6~)6Ps|-VL)xwC5?OhAykIxPX#;m+M|-Z9F8js! zduvp5biRExJ#^yfQ%)MRVB@5L*aj|a^YZfQ3M@Alt?72Jh(@hCf9+G^JKRrPn#x4m zOGF|q{1X5iAZlH*710Q5-9$9NToGyMqMl)B+jbx0cOjVLlK41a510yJe5ip6m;S!$ z8J=4X5Va_z+p^mL;=#ne5*T;+pmuQic8ZJV^$eeTZT0#70cN0z38U!i=#<36CEt~k zE9n_Fjvm69@w3pC+{!~y=ETK(1&ixVqf)Ajqmx~&9uQC0O9^104l&j0>!eT$>b(1F(omvau&}fwJ`X(d zL)O+wy~7ODROC#Jv-DG=FXugsY;insf)Y554m~gO$pwx6y8-=uZJ0ev|7s_D{#fm0w)LD?f-rI&Yico z*r+y|8X94}!!OK5^;49%^=^xjPfyd!X@{mqhq#Hhj*hCcb9V3WX6j%w+rVuAIH9;; zg%+-fExQniLSzRTD?0Q`y$+I?X^@{%5oPr~Xbo**dUjUL)RdK;p1#Xx^+ViFa*v>A z`0lY@fl3%AVwP8EZnlrcV0WtjZN#2hM)z)^reuxO2okD#q?o|&lom2F@{>=*zn*Q zp~H>CYhpv~=4KaLQ)eAcomvm1iFX@4b&H%eWOVoPWkJ+PZ*Lz#<(1oJmbHe<`Gtj7 za&yJNspj|TZupP-5muym{DyyZKA6*Q1yNGBV*gIU=Y(^D?@~heg4?dH4DA z(__}rfxU7oF+M*IW?Z_dEifUY8yXr)RJh8Pmf5he9Xc=C7jt$lK9cT<3Z6TFh#g5f zirSQ#JF(y9qeCbLOJxuYh2Tm61Hj2F-^P1#nlPC8`6(f`SA*puKnSw*#P>+?%++{o zC~$?%n>QzqE1>sDp8B-4bou9fxvJ;Xsw%mrJNNG0lqg}V>Ea>^zYEuPq2b72;w#7m zY~ogL0o~E>p~d^eKrr*0AK4Trc2{51HYZ;R#FGfnwYAC}7jE#;>EDs0gk%_@Ezok| zE^JO7NeZ`F2eUlYUExE)Cd92T8r^yjm9+HF|4IioBr9A9A!iSR1YJ*3TG~}+!5-F$O_@KxxcElcRgGnr zK)8E@)&k*ONVh^s)3D8X{Fn~yK~hS}#aCU6g&Ls@lEwV?&FX7+_shDw$t{j6apy7^ZwzW7mNH5W- zxo@khH6(Vs3fmfGZ$){*Z9RHlGaDHC%QIVMEv;I|5(pK<{{2=S$cdN(*dY><{^RyA zdSYT~!Wh_CxVaBk*un?73G=hG_9%N=FtPknY(Z7Y6kpempN$k6eT?ucs zx3?!;2C?5Ho;94o^T0pnkz7lMREGK{Bqo;mtlc~jdloHj^Oh}^?b65LLFRSu^*T>~nZnLSf zc$_~^6I+Y$lUk054-F&xWuNgc(q}~}`^MUHzLs9tkE;SV#B=D=wv(q$Rl@QCQFXV5 zoK}qreP56kdR;o2zuo?NQ3>&h}DN;DdTf=D=X^& z`gtYP=uKO;tRp@>4b9k(gK}~lwn6`-z0RG3qY?{(1)U?!{d;-gg9|Vjl(Y2vk=5l0Wf0$QXQY zU?w-b=yWOZ?dd!fsu%`rWRI-i4c*Lo;cV=8m+$4=AiI@FdqhC9Q5V?Uk8Iuu>~0knsShx8AF`pkC+=Also`fk;bCg$?)`42eNmyALGAk$6 zg~10!sYg2GUeb5uK%ZK^+=$Cp?~SW)0){z>q>#EqBAi(KvYrFf5RyqO6ZZv`_;OXh zRBNVb4#3lYQfv8gxJ@*8P6%{93+DgvMC^sVe$#d^nkb3C4fPgQ7nJMuC|=wSSL+?C zs;WY5_I))mQ&FKHA2yHu(8+ZU?mMA}c&C8rN?MY~MTpfC2~7Aql~C1y&0&Ujkgb38 z=us$;>!IyIA|iW}hlgirBt4ddc8R_ZoaS-vTS}QA4kEOR^-;Z}Zi%3baEy&)HX><*=Mm4>e1Tv~{_o0M_qHII_!XQW! zE@WHtF>C8+Bpz^T+}3{WWW$SAeP##F_j^dWTz3PUL_J2C=&`|p* z;{rAGa003Q8(w&-ZlVr`^eL2}%gC$5g*+0jGSFT)c0P#K+yA-DL|jBlmvY)gRsz)t z`sL&uq%> z9b>0fC4oeeut9DX<|GNQoNnTSpLx>BskIB`#R2+vl-q~N?-j9VZ~Ss{_bySAh&$Hy zJJ_)*bGy1wWRd(OrZBJ`f(0aQ5~tnfBF&zVh2tmMdspXu^6Il4d9KZLFe=fL5saxq z=7=O9A!QJs1BeCX+1q`M++-|#lI+8Y-?%{|2 zOxdn6SrG*U$3<`{gtKYP5;fC|AuTh5$kDrwj+fP=6p)Az^6v-v4#TRvze**b6H?W0 zhnyygad-?r+3|!5)Ys=~kfMTftVRd40}VtWgRKe^kAMIEn{Fy3*Y+0)Yxr8kwEghm zEeh5&uoSEgoYv=i(hR@^L^9SEP(v66D**MNWwKp4I(hJTeog)61l_?`~Lioe>>=?pmxwtoKfLV(9J*7E=;|Cz4U%^nz;YC8j=X= z12(JUG`qVwq2>6^{@8#r2P|-Y^4m2c)c_cyGwj;6i}+WbKR#?if)c+00{=J)J-ONlubIg&v|Yz2lO{15>2wJ!Qb$1N8j8(oc!twlLRRFfI&2!Yss%&GvK z$Jt!#LQ(qoF}qt-x|KGB52ngGY-LQ46n-@~GAug^w;5#(?+!qK#0Y32svf4Y?4hX3 zB8pB%g%Wf<5onT?lWURK3J`#5tFFE-kQ?Y5VyuDUUwG(5n!*gvnKNftwr|&wIFiLt zciaEaVV^w-x(F=c7v30l8frS@_I=bCH_*Uj73r9GV`MPNa2a3}xLy^B-8vRnx-99$ zXK)@APt@bw3hNA)r_feQuLQ9k2+1^{Ux0*I@h1R%JbZnF^2DD+9J92HMC54NPr)M5 zG$#!FTr-M27zAMl>@PHNSp=#`1`Oz;tGN&nOyn6qjxdPfzh0=|E!R^n>!HKY) zIH@4uly=heJW8Csd1s;Yv#As~wxBVWctpSio@(aoA$cGR42t$e3$Q=R^ z1iOx=@9y9Lyn4LQ(A@m1y%Hy{v584WVqT4AHj;aA|3RB)fC`GgI=DTBtP)Z?*vu3P zCfs}qiEa$d5O7Siz$U=0E8*b?k2+vF4Zxtl z@r)M`RnBC$jI{2lecRR4)gee;)(lM4%v{2=o{dG{s2CMo?RGL{1Eb`4G;3 z<2wbWM$)2)Iof`uGq9A}?*RrL!=rc|E!+V$d_Gd6o?)!&p=u~>rFa9a#b0D!5Eg~D z1bpXzp;#nAmzca*>p`n? zDHuHMcvIRX_wzytra7JmEPHi*zr2rqVXq`g|1|)-!Sq^Pd1Xs=^89OG+QVy@IVk{Chx%k&A6#=sF;tZenF6 z2CU(5Z@j=YVxOUrAvVFz{m2o54@L;vXVOoLthITPVO;c4ivSsm7LE0SE||E0lm-J5 zNr>6fxwXG@M;^#}QjxhHK(7&lEjsb+vL1Yz5V3&$5zZX|8u1&?ed!(Gj~UFEs3=Bs zsOD88^2TT!P#v244XAbEz3tv%X`>^PkdNzF8du5M%D4oVf*%Xcz2kL6+x~x_M4t6Q zt_Bczb?KiRGD&nuTC5!O^!3$3IY0;%EznuaD7&z#IhT_&bM9w-I+J5y)g|--BrgVl zRNAwLvxiBSg7#dA?reAZ^i`Bg2iV7QN{Zs*;vX6svb4q^<9Z-7LD-O3j6%g}3-5Yy zVc~aJ7NBFim-*<(ND30J9rDc|K4^pX|9-rQq_L1B1RZK!|IM@#pD8OV`}V_!$9LHj z+6RNMr3rp|h$uC->qbRUW`%Q9mT*8~xDNj3I3m>uc+<3fXf%o^gbyRFWSc+?E)(8E zF;CCCF{1Tz^Kod^s1=wglS6(i2oRHl6!*l$#9roe#=~#WF~|i&6D1sL{!9Q$q^PJU znqGHi9c*s;Fg2$Q2NT$keuY>(NWcur(M;FbXQ@Pv$U`~fQVL+F7%|^Y)+-7bL2B6c zzAH(PzF^B5s{`8Q-iP|f-*>&L_Xh(QuQHT`F*f)ofkMn)Ik3qD(gnL()0 z2hY9~2b=54f8}}4By@prB?vQQ&>Tuolc?(_mB?$?RMCaF+g=oOpEBHO0=*I2!QD)B z56~;p8^!GUF^Kh5hOGbZV=zSJfJFj^t{riEZCzv59R)?j(QSuUMmEz?7v}vwv?nXC z-S4CFdg)VlZ{4~==oVyQ_Jdvmx!F*3i9$KjoKE-z3L*(_;0ex!t0xZX!G;0^k_2|2w~YZX|UBnAPE97#rg2*=12=vG6Aq~I9j+FEnGl8Ax`zk*}cpmrrKXV$9I^vi2 zNASM;^5ynqPchB?`Wp01nEy@qvR4vHH^?+1fxR9k&B0T%S}|Oe?Kx)o0n4+jNdxzi zjUmOL!eD%U3lYa<+`iF4KZPQ8ZbmradY%bN2a^t9@MTyS#-|C!yMFzh7H=Ri?g8YH z33mXsB)a8PZ<)N6&8<{lz(f*NK$4uGQl!hDB<2A^j79NDVSvBYnC@0y#hcKU!YJ5g zn7`4PvTeI9PC>XCu@uipodK)_Swh;NDcV$TRf1eGm{(12eBDc&I*(feYhy~|(WBGR z7@fQKL_lXVIHV@PiN(S(fZi*HLh!1%foSgMes(!xL(9Z*1y;1o&O^o}xc|uAMkBNf z-J9%3N=iz9>m0zo>AAVHGZwc}MGzUcjy7||I!*&=#8VzZFpG+yJQ=G--bUVc5``ex z#`#O!Y?`SXG)89oe0HE9JPqM;!(Oo@WHbR*M-(4ewC;-2HpFZWjEsV`_5zjN>2*wfD$ zUE4qD+~cF0pX}j85Eer=VMf`1yBBBAcq$nE@8Jb7r?nvOv0}cp!|UVPdQ1`$Ijt-I zNhWqhGSbl9eC)eVFEQ1^@EJ0Ba)8}sev_Ia4HU*9Mud9?zBu>kIlW9>tvP# zz#2Cb5Q`RKZ&#bfa<5@IC0esqBI2iUJGEf2ke&%#h`#o`^ZA9=p$~@x#n9*t9>@km z0`_N48!n5A=Bz`;6%&knFnSj}?SlT!&`vDr@$+sCqKXHZtJm2QsrzWirsP1r#Qz; z&{WS)^+sc{kbD;|F0n*%DA_O;42!XB_BtMMlGBc!K6VS5K0&C6{E+A_877mFDQ=}? zUTD@}p(Y|TW*papSfX-$Ef16@Q%_?if~qX_-bWYj0#GmB|dOF)T|2=b(qK4s>A*xA$QaVPKq6(JFkbk2KOiz~pB==C+QHb9x$Qu*s@ z6zhm$jRh)Kr|8~WN@TR=-qpiC$Nx8ycEIf$Q4SzMvTWP79wQ`}Rktw1s3+MU&{9Y! z0V8Qu=o1iRH4Z31q{Y9}wJrlaBVvfVe0s1C0GGfl$Hrt51W1El1`h2lci6|d$l`(G zMb^~RRD66odmCvYv2O~QU{^`G2cZMZX~(`_C;x+{RW_ zf#?WLz}~@u%(dYR_CY;c)_wXYg%075+OaB(X`%n$S^CN02rk31}CSoKHP{d>I=i#oIzd)O$^Z=*# zJXAs`oP?Z_bbpSX3dVH;NBKB6xBYH$+i5A{vLJyD0Z?9nyJ@MkVs(X(lrPu5fb%&J zhhTYmS!@i`Y9V+=0$F;6qJ6ACxM`C(61rNV_ajK5k0dPIw9gg2( zJI0F2bf(B+*d1B~CLeK!B5W4!qT^#272?5|exsDDD6WH3(yrI2Z-qy@3M(_R&bzv} zU?GHIvKb^!!GE3(mwLWPXy+VO5Sa`n)E*8Ml4`NZhsjfAz~PCd2U`P8i4U*=Qly+` zQkSI-^^B-s(-Gx=8H2ZyV1ROF9%k}KMiRrV7+Ju;b1Y9B$tD;XZ3e@CJ2*o$&bxQ7 zH8mMVvG1iKF$H)Tzo)(*@pZJF*LHTW22Ug?!#j;*_~*|SO=rClM14u`;pB`&1`r2~ zDShIUL-v}F|M%bl7nhtj9r1Uup_t%jVVWRiQr}1hugb?uTu8GU(nDkhm;M=4U~lYM>@V!)1`?2mu&K z!(4|yhaDOWGpALA3f1GeYqtzhQ9#PVAUSHs148WX!@h+>LQ&%B1M5x_I_|~^hW1za zjLgiBE(#xx{rLHF2KR&en$}sjC5%d7gA;n>fS8`&P=XoemN1ABMiPgRO5hQM;~^=~ z32;4VkTJo?UOMis1 zW~QmLN`3Kx9Smk$Q2jWgZB|oQ+s?rn)D`3%D_9E|TeALOI@uvkOQJ@83OukHpI?}B z#1noTfM4gmX5j=O<**r-o{Wc0HA2@Xmjpn*5(*u#!kG@;t2N7!z-u^WizrpdK>wJff4Hu$2mcKt8zDy(eSJnUXE8pWGnZ^gGl-gO$(WFG z|9&KlCLp#0kp`dflqqP~u(QE}NC8i#LJgC_F%m}%swE}xzu#Q_0q`<11cL-&>&4%O z%OsNv;V~RfKxtB6{Wc_?6H znh6iGft5y{90Ze$3h_@ACvaT^OBnHh3yO%UU=VfG>F0R%2bt|h^(2_)#0h>P%>(t3 zsbo}D;4SZrE>u;1^j2bUKDVO;LbyK)?Vt+Qou!qInTg32loOn8>#FoEaq&b30dJxDu{W{2G>ZuN=+3kbxS8`2KE53+iQYwr6!kPYCLJVuAR zNd|MQzw3EVZb=1BVel2) z#E?gi9vQ?&Rohp>^1uS^^N>ZUti?3aG{}BaSrp7R$oxnyCGf;~dU!k>^n~};!hGiV z@$HDyVtPUUNRapYSCq-oEocR0?JT{x;;7O{EW*!w*&s!^?Lj@Z6|N%A04cfm@WOQu z^oE6n!8CY_o`V@RDim8MC#^q>5MfnwO-X$K94GNi1RIfqAm?1?&9@3`tz*-6xWtQzttAOu24;!R|H zV89*%H8N;P=e>&a^Mn7JzPub7x{llBhQ&WT+=4t{$Q}b`a?Ljvf?Is>m<^ZS(%02B z@huwFm!SAK7xUhO2*a(|4Rs5rid6RtdF32^Xffzgk*iDDzM(1#(* zAM)&(1ZXQc7Y7I8I8Z#4S8v;kG9*`Pxb2`S3(?)dCf2^KWaJ<1YWrG@r!V1W;6FmB zMskCsBTM2y$U}8A$ynM*Ukv2p!pez}5$$0u!JENg=*ZVkoDsNx8zCh%v?~}XZK9^e z4v=P!nwe>7y>xpD8RGV;4VcFJtDEkiSa6>%g5!kMOX7xDCzzdv@S!8`B!BQ=GygVx zI>nKr0bh~Xa|l8ay=Sipi{POvg@sZsU4gTv2xBgx z3P1p|TF>NSBwQFEiTg6HYWR_y+Mh#1sTk+N=Bke}!u24&>Owc>CrCmR0v4qot4je) zk7wm8!dBMSqjAT^e1Qa#;uv{iX(5EbBk&zLn2}|LiMSacCFKK!dMHkKyh7jbaED7B zBmN%*3eS?O{NL0y(ZHB#6AdnYiUz3HTZ3JP#?<_CrmbNLwc6FO^ymfuyF(h*H}TjyF)=0*iA5f- zyA2PHd+s-5kNoQ6&a7vRts2g!pG3;7UZ_2PQaBE;#YG2=*o8btw?YK`L-bEFi8->V zdU!N#^;xX=6D!NsX1`+wt!Iy>)RZ7!GXu|Q5c)Ut!}FJHi(QTv{9CqoV`^+2U2)dJ z#&ziU_gSR3FsJeE!1sVqz{uhY8;k5uS6|;&|2w}`%j~SrAqOY>u|GAZdV5Qf_qiQ_ z6L|lCJ6<&uKMQL^rn@#TKd1 z>+4eq`tB!fGRXFP=7H1M??pZ?7az6|*A!)bejn9kr6v;G;{+{&v7dO6=b z%q~0ug_JB}z)Am6qihp0y9PBL3(59zUe@=bc}q*fgf?*Ce0b$$Q4|z~gZaSL-+Fp{ zyrt_~>x3k9&Cou`qqE9(dK%wPyk2eZpE0j7>c45qY_P@)@W6jNo~%#UXfVXaK1x%}IXqe1A>-R7mCrtV9txfv?J`Cngy!F|q;8s)U(&XC9HA%sx!KpYGbuxtQSW}-!7dnOs! zo1SjEdoQ4qS6HD2`Z`AHs?TrNJ{;YWm-Sy-d~H>}AxXX?Pm&f52=@-p5-9vri4WrG zxfN`Tkf*+7ZTgPABV-Z`arJ)e`-p4TbP}%)=xfmTygs)Z`CGYLnt)@)?%!j`xbU}c zrFt&Kx=e$Uy=8BDG$}NY>BILnBJz3m?6`P30|gjyx7*IkWPTCxgPjv>ZCx>6)(+DR zbb9;-!|HaWHiSZX0?->Rz{AsXbYBSp!fVqs~#fUB*JcR&r zNO%q^8SS@LOH?xC?)ft2UPC*)-hpIv4>eVAhWN3HWMJ^Ebs5jT64T@jJYE7n8jidi zx9e>S>9%d&l#TusXwXStPGNrB-lRP-8r*2Cf0=EW!^3Ku6yc2^M z@X<{#|4kH&Xm0;cZ4gTM#FiFWI~dG&HBoFdY>bLRDW!2_j0(;+p86OsaQ|No25MaK z)CNh!4I3Wsw|KHVvKQb|@0v4x@vR)9-ol{dw%KRrlfZ zd4I0=b-hk+W((0Y9}Ru~eQjm#c;H=T>B{?&1#Iae^1q-`Wf#=y!fMgp%iO|0tvCrN zl^GcL$=NF0DMcW2oMW3w0o00pkr~x z(NCT|GMru#ZW&E$=KOGCiN?LD(!hnR9OB$+;swSvBFNgcYu7mD=m=)4&)Pq=x*Zy^ z%J9_a0(=|fU(nM&kJQRMefqO(73*#sHK3z7`*@+%Ge%m8tX@l@qT@ zPD)yd!kW5Q*!PPdu?2b{WzAIc15`z>8nMMi-o;)wE~`u<0D)CK?JAXt;VPO?eh<9P zl6mKF#c4#ALfirjlqB+@^qikxn^{tgT#+Okpef~h{lx9$)Mfb^Jn2C=4avPQq)$xJ zmj6#h2?8GQ;HTrr>{>^Ku4}?S{C8?`IW)>4Gj%bT*&I`F?7!H3)IcSYJJSm zM2PqsAcGg%HRxh-@~<)VK$yD`FNm?0-Vmzi0>v90Q`PF(muQ_(rHlKIrG)tE){{C0 zaoCC#MQueR2u<|z<$VkESFl;GstorYqm~`Gm!0^YeC&l#hvXXk1@0xu2@!5!iExr9 zR#c8dFIRQC!bK7*4yn5ZxnIL`JFRGPfjyNisWhZfsP zjgfo=cCwt_$?Y~z0CD>G;YC1fbhM)P^?)SbFJZ;&n{G*{x@U=FjMDCH=s&+m@kzdd zZ?B4JgikJ3308+hf`Lm5z70`|sC)N}KDYHpD7Yz?iAWF%h*XrHX)MjIu&_l{!59V7 zj!;RGk&qo(uNgJCZ>+#EEHWJMDfc?#p9aT#fYsS+ajU;;emydFZ8wraCIb3E{^#%M zyN92G6InZz(}$;bu|ITE68Y zKca!er~Vg$F+*~F8KEqqj zvN$k$)wdEOS6n=c{2NW`GZ0Vl{0d}fC)T}Qj&NUkBm^x`(y*aMHoci9TS*bgk7QgguAy&FKVYPJjbIPHSyM1jH&>5+IZIEf?{ zE*L)78X8o3Jb+ZOenA zeL~T7qnw!)RB{uf=CshzRO%abbnX>ny921=E52as!u9`&1_bY*V87Cp3;iQ%BEW96 z-wF^g>{ycJ!Vt_PpiFy6DW;gU<^r&+g)}1TXW^65V`6r~ZfVZPuR<8DcNJ0(qVUoo z6VKZ18z*6wrVd@(t+1I(%_q5UD^+44!Ppes9^xP-Oo9fyctAh+JquUY{wXvU?a_)} z;$Q={jsY%lahgh2935=LdfN&(qRRwE2u~q5nTLFogZ}JOMc*Ys-}~g@@S!DX6Hy6+ ziSl40jCXC17Nvjk6!^Y**-!XVmbQc{i8L2f5GcR%myjcvylOTRGkZhk5(!vRL?iN{ z5jtS%-5(e~P?V=kvYHdSi0|cW!LH((s;Z526`grL%yL(m_LfbQG2!UCuwWnhpnjOJ zBuI-7D%o4-8m^B)7uxvaTpk>)-lh{iagu>##Go&zf`n~3DcBna^?wsravkH$v;8A4U!@(yA`t4_(fx0x_3z-&-h&K?jgH~>n} zxLj0g2{R%lVLGKzV6{o~vnWY{Z8jKbY}B>eiJ*s#Q=aT*C;EI!Txs3Z80A3@?Lbg? zZBA!g8w`G8WjC`@Y{S9&%P#{((<}=MumARQp^8{%>39siJK-{_DUl4Z zjqC8mim4!kC^%FinIqF6DcmNHd7j(1{j{uDTtKfn83)S zj^wb3gspjA%}P_^Smy)<4~k1BIg~C_(EotnZQ{`Eu@vIhoxmF}>0autN9Ahbsf_j? z$jeCu5E4&=B&Gr#H44NC>4uscttV__0P5V>fhQycGxU?OG1n7Sx`Uvg7 zOUHg*jP;B>VLw$q1Y@_ITbq6YX%dW6Y@6&&w725aqEu*-hm95+tt?U{t}Ef`ovG~j zU;!K$i?znIn`Nb@6sec&@))LL;8gm+*0k&;c%Pm#@SBiJK0PT`)L+pM0T(f9h&fjX z_EEM3(9b#UxCy0daVJOnL^m`Gc;cd8XN0h0m!~>U-7^Dd0Ojpzm1D~rR*I)|Gj47c zua^z#)=pxqX3uU-RutwFxNvdOBDBM;B$_$NS2gCYiJI7rqfKzXG#W1eJY+^Lk8v@I zD_|_gty5-bgTM6z$6a6sT`c#4-brpmLM)A#+&E`vG`bqR2ks?#51bP69y~d6NI+l@ zAVbHKzqHdfaB7wAc*k`f%_2cu(#ba}_oKlV+Nn8lkn?^!)tS4!I4R}chId{+4*X49 zXC90`zj_IvBG1zxaQU$LNq^{C{5FvCWJ@PoRkg5rOwz@5bh33X z0zUP^z0bJ`ZA8}&!^2Dw*mRpU%?I2<^qVAhU`9WFeAw>Zqfc6l@TuN+5ZE4@;?HPN z#p@}p4=J6ad|FI^*hK*>B_kqc4t=Z?jyH`ZGetCwEkZQ&Y!4Xj`kE)qZ2h;#kWT}r zOd6&=fSAsNqyC)rL9fjD9CxR!tIlmhnlaOsEA5Mz0>XyPYe}F+{P4}+NVL7^*I83$ z*)l{9o3~jKMKF})F_nGpP}mE=J!1W*N*o5f{<4|SATV=Y2`TN8r77cy`)dntlaR<0ER>oC`FX`syF<$jDy5l z7p={t0gz1_nqKOZ)b1|2y1V$CKU0Dgk<+)_QmHbXT&AamMn;C<8F*ScBqj6|9vR+- z2R(?sLldeOggf3XztGxz9x0 z;>jv(IKx;ine8|S#MpD@j44wFp{Q71iZ=acR^l1sSHK7_A*7T07kxHBU|Hn&pFrCG zA4+P}>YXI9NT)BE3do3R)iL=wDUS_u<5D%oCQp!zi!WNF%^}LBeub#iHEkb(qy!go~uODd&$)fzS`63 zK@GML%)uY=J$kBWFfnMYi08w#mj?=f)po&xj^K85F}2DWjVU^Vuav`pT+GYc*3`*; zYItt$cquG03Sic~_W1B27aK&6bX)fyJ}iAU+8CD@jfcb=Rq@hI8Os)ajB4Z_^ zFYwX1CY2`<3RVji^yb=O?itC5uNAB`F0aAeE62=n{l5!yn6K#$`^b4JiAGK~ah^zS zMCQ-y#%go~?bz3+uKwlA=vNz1q(TQ>{B6)w#n@i+AnWyf+uyb}(g;lI$aB{jzK4_> z@ij7cVu>eCA_?ggPb2%C zPyIx-F7|iH|KPx>^?Y!Kz_PPN9!IpxUM{S|R zg$*gFf>KfOyK%tXH6<-5^{_u`A8gGM!8=0rcl4YC&v7b&Ny<<~+TOk+M|KMYK@Fi- zdhzn?47Cjn4X;a(T}OI7KeNP?cV3--5e*=s!shH^2j7z$A>9Uc>egGFq zCOB!yA4emI5o|*`Kc-GrCXheLjxsqi=g%?Pj5~{XM>X)O~Xp?Ztd!_1V-mA5A zNFcMa8%l^Ex*53NrxCS5s{1> z9P}+wvC$~I57;tr3U%C77%SEjGUrZA)~FW{^+(%x>QeJ28zrKcaDkp!xpHF4?NUk? zA@dTVS0Yy(SU9SZ>O12#Ow7ZOCXqmMhojw~leO$$o^!9t zPu2reNM4l^pN&0E{uok3Jdk{~jI;#+K<3?(ik4zSU5KO&AWCb+BbBfEE#1P8Bepa0 zIG*;Heb{QqX;nJ1#%pty&Qc+$5yTw%CkrU{%$Wm`A6tGjs-ODdZsXf`XUFIol-mIQ zA$r@$<(4)EWyop|dyDO}3CTgh0+UeGP{GQaXV_c#$R>$oVUY#yLT{h1^-L3sLCIG~i z(R+@uV^aLtF>A-_kRwAo-j>7VP!oz|8nx!BdDWK}pK`apo$98`0PS(%|1myGNVaSGnaeeKuIaXT-N99hlGB-w*JlY#^n`YB6?Tiyw}=B<=2$mTQvou5bi*RE_&A5v#P0Pum-rrsQ8d22jL`#84yt2p>P4h1*kSIy>u8FsdFrn3U$>ey3Mg z#`GC8^4WLPvpdt)B&MZZ0k0N!3?@PWiV+UVL54-7%u1Lwvjgife(reNd(F9sU1Y|j z17=)Q-aHuMboGODFaQ~5xj&$82Y&yejr5E!fIdVI!zj%1T8U_l4>A^S0Dnw1x&oK;O}CwL?hbP_oDz!Yg-G8CD*cN@QGk=W zhyQ$qmYY+=o*Z}hLm3(t=E~2RJX1r4qf2@C@E4Je)|u-*#U=PR&m$rmnP-u+N;VL6 zpB_YpY=VYYVn2gO6PgtO-NM`3kh!ueVM~l&^k$I2;sO^H3XBu*5M+e3oF?}tQX{NaJCNT zZ+`vtd%g{)O%@+b1#%#ct0z+k>(kV~*%&>)VZg`rew7(aa8;;!KHqFK4U#0sgCJ=* z0PQW_FM0chVNeT{P4zl)fNeGsNb#mrGxe9cp93mlS&4@Bhaa*Q57-5n&srDKBuBS_ zml1~#ln-h+1!#}N%<&B=(A}|qD!4kpV$!FBlWfM1C7TinN7<1vq+_7VP(5uKLsffcoEv-K37(F*qq{LIF6(SgrQRF zRY;p12-ND_*X~6F>3-bHrb`yrY&8SUW_d{0L=ZdMtI!*ZElWSOh3+HETBLf~ONdpt zNS-AJ1Bxgd!wx;6Fqp-L<3-=j2bVxlIo)@qDMoHNg_t8lpLeuL`Bm^u2^CV(bR$fZxRCbr~02ZP|V~VVgN#WnzwjSvs8Q)#q~RbP z0+}=B=nYs5@u3{}3>Bs@I^r0j{d5;gjqtzV1VS+)l-x%1FRO zj>vx~?{iqso{Jz5%LZEqx3{>Xs}U6&H2-GzZuV$X)57ij;-bg^LjyxoARa6Shp%}# z0Kl#AKZW*sEc5sTGDLxIk-JSIr|ItH>;L?7kw_0=%kY$}NgTKIjwAQIFAvSKbORs66uiDd2toMvR&J-Bq9J8RcL%-heaOcl8IymQrc1 z431Nd9y7)wx$JYOD zz1NnIvD5Qz)B}jHRjZpvk|@DAhB^HY>kYH@yYu8=m1rFh@JY)&Fr_GLlZ9fbckh2t zEJ*+#bz%!6{`tabhDv|TXLTG|d+{D8xO}%g=^43kK=NRA&r1|zjRp!e?&><}b&o0a zw?fiTnpix)aLQ^L2!5;Z!8c-T*+_M``Chckp--v*`uw%`aHU9R<9t?a_03uhm>85S)k!OJtpW#2!6r zOb^TxGI*lXQjY2p*L3r!>qg@;&dai%nP<|}=~z+{^>q_EVXwVO4*Gt%dO|*|&&aCB zw|A3MW|4K=i4WMs?G;duI`{P7YWr-bt2Y`V4fI3WbU%?M>KBXZ`Uk)M*_h!;ZftNo zyeTV)#_YUyuh4u#h9sc^%fwGc&ZRq|oKoU_>}<`~gP-a}=^UJuI#BcHxVwF&M zj~*VHNy!IF-Xu>GGK?GM2|x~Sh*l77onB=Jk3A_wy`lDirK~-E)Nb(CJx+G%r%<%o zJ7w}j2cFpN;8oru!wYIqNi?o<z}v*;h!>ICQt~Z|k)kPkL`iTyLALTk)w>*}LXsq3`_NeB70P-kC9aYF4X>UBq9? zRJWHi1KzL6SSW{Ius66NRq!QltM(#}t;Niv{4zpT(yJuR!r;l$QkN-3!ZLr5bn^Fg4>sE%B*S|mKrd!$OwA1t- z!uGqZoR1r!ie9YL(B`MDsgKoOD{7Jf{h!@5d=G9(n^!S49D9`Hy#XZV+B!!Vq~%|+ zZDDY1!jk4Hpgy3#;4I073}wua;?eq1oIbS6~9_38Z* zqu7j`Y~9EAEzJYHc=}2neBFIfr|~p=FbmF?=IywjJCk0Cej71m#iM&B1}U~ny~-we zUde2eluk(+h)OdptE)nR|C2OCf#dZKq@8}6WnB@p@k!T6${3C6*?U$B1^P4b;S1_A zQ*Bx67wO{vLSy#DZGnMqp#OfoS}5dX1+1JBWtyW(o#pa1D=`mCW@&0(4?1BE@ZE$L zCP$T!lWn$cnWwEgt-3UMES%zZcc?d#TZ)jR&yaUx8dP)qrU%5vZziBKo)0*-Vd}Mi z|DDW4G4#ZR~#F&2`3l$Rb1YOyG|HU2bi1dp_0g$Kgn9DZn&3I`}%~%I8(xU z@j!rr?DlRLe;u|m+Cd-P-R%cW8Y4QuAP@lH$`_ziy1#x4{sCOPB`T^iVA0I4{eS+F zlCt4_-4*ShZf43inD*@!=3Db^MctzxHDr0+-cA$0Iw}g9hJF)|TUK_;rGkyBSu#Kx zEZ?ruMxD!?2nLaR-Qh*Sc2fN4@X2dkbyj!kF5noMDDzj(Ee<7k?%LrWI3_*!?&EL> zbk6h{Wi#fhQ%^0Q+AwB_vF(m=h5@{v$ed^wic6l~-KO=nYUD^;Wrt(9z8O^0;kf)UrztlC1W@^D>8iTHAl;J$QOmyXSKyltv%}J#a`^;{oRwM zJ5dtsmzNh;P>Y~PG6^xOBoy}~`U4aNb?DW?>wo`U>tN>a@_OpgAl2ESg9gRfyLV#S zrq_11sX+A)$wAsh86^mgY;`;5W)EuLC7QIJ|9{rN{eUe^fqfTY#FT%v58jV2c(p#d U@Rdh*1^=d4&X}A!Y2oJo1F|e*-~a#s literal 0 HcmV?d00001 diff --git a/docs/screenshots/gcd.png b/docs/screenshots/gcd.png new file mode 100644 index 0000000000000000000000000000000000000000..407e7f8af9bf42ba9ec8aae3d75f0a2d1214be5d GIT binary patch literal 5849 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 Ug_Iip{i6n`Drzaz$XUPr9|jRL`2YX_ literal 0 HcmV?d00001 diff --git a/docs/screenshots/maxn.png b/docs/screenshots/maxn.png new file mode 100644 index 0000000000000000000000000000000000000000..3f5dc7b2c26c383d3d9af5de41af595ba337aa4b GIT binary patch literal 6832 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 KDAdbYhW`iYk-2LC literal 0 HcmV?d00001 diff --git a/docs/screenshots/mul.png b/docs/screenshots/mul.png new file mode 100644 index 0000000000000000000000000000000000000000..54eaab5d549a66c1aa49ae99fd3d311211921787 GIT binary patch literal 5467 zcmZWtWl$VUlitPMA+SJjcUfEm1h>UqUu1E24;mH^?z%V|WPxA_?k>S!Bq2bM5Fn5M zN4~oscXfZJy1Kf$d!CwS=IKe)(Nf080pS1u0DM&yMF;=@#DBKoSg6nIG*o>N06;m> z(a=}=8-R~bLqmg#iV6e*`S|!$RaNou@K8`tBqSuVva&)$L$R>1LPA0^Gcyws5;TPC`OLK|w)8L_|P9KuSvL;NVbO zTg%GIiiwGdgM)*Cfq{*UjfRHS*x1O<&aSVo-_+E^#KgqR%&e!U2VvHmFr6+?DpI9a zBg7z-l9EbKPcJVoPfbk~6BA2LPHt#uC@CqSqM~wga*B_SPfJTnNl9T~VCd-R`1tW- zeSJL~4i^^}_w@91cXux>ErmcJZ{EBqD=Vw0sECb?<>cgi`SN9AVxoY6Kyh(#US6KH zwKYFKe@sk_y}f;4U?3GP$V<@YgI?dP`9ir$r7kms1dCKiNXXycKR-V|DJe-rM8wwC zmWPK&O-)T&S~@p3_x=0#Z{NO^m6es3mw)%}otBoCf`S4J25W0;d-dv-jEqb{LBZ?S zuUlJNQGh7)1oTe4&hNF`C(ULmRjc{P`BhX@A|fI@JUsmT{7g(ts;a6$Adr!fk)om^ z0)gP><^}?Q#ji`(tT&9=;-L!*x2~^_{7A-(9lp{Ute!;@8IBIPfrgLiR|v~o}8S_$;lZQ80hcs z@9gZ<*48#PHTCuNotm1`)zzJunPGF5&;|fVxKtJ8^#j+xTLj6Gn&d~w@dKHx2Pg>; zhy14mNcuEN>zf4l7|Xvz=;CO@y$@`^<7q?Oy0JpET=Fnj|Xb6kQw0&?Wnw?-<= zOqHBeEn^2MbV34dX2af9)OqLXuRARWUH?{io3nG9V$~abZMl5ghY|@y#lWMSi;Jls z_4M`)L~0n%)US28Cy)<#d09-OZ-U)<3j@aEPREi|gyLEir z-j~7_&v3MD^ot=`Rl1CyoK1@m3Y`^@E0WH5s(yYP5G1W+_5$%wY(s1n> zT6_x|M7Z!xi}H2ew~zVQoalIt6yHjz>U z_;tRX(JhJ3Qt8-vzLuNU9$z}t{5gYXa$Iv9^;7bnUi1&QEP&nC{+1&-fqMiqGfQV1 z9_^_~*u^eXpE#oeJ+J(b`JE9B`-H@saLFvH&`v>R*H4@87l3T`$~`OIqr}ImcSSo7 zy*p1abPr_+RFpD~K7;UWcjAFowQkWl+*+@;b&n9u?;j=SuBOD zxA;$SdDjsrTjSwzve=Ock%5#G?gG$7ZGMu{lRv+psX3@F38 zezdP{bL{WO9I5s3A0jJi0=XP|;vuXVU|NEfcJCNrWILl{hJvm_<}1&k@6-UX6Q-5|&+1vWd>d~mtbe<>Gq zxTU~J<+Q|872lv?Q%x+l2)ROeOVxH5Qd(+jmBlP#Hi`b`B-qbI}8yX1-oX=;=WnnKb z7{$rJ!hchF152~(;;?<*s$n9|mbhZ;Mr8l&%RXH7|2gTWlB7=?a1i&J#oQKbiqmnb zl)=hjVS(eo$!9W5hoJjWk4uz2b=(;WxuhIu@j432g&QacFP{o%E-$U82+|wuu(>k5 zr2A7@_Tl#Fm-ap;+H0g}5UVe`1S-Mm)z^&5HL*I7-PxHPr{Q~cf$T|!lUBr~+N*;i zO97S1ULvY~d2g)1!<12<*$4_Px0I1W6$Y_4An9@-ZwTMSXs$RAS4|mGwY{9XrMXNM z_IT1CanXT_LVyWTSND-|M7(!M)r36iq|Kri@_7rI>0$1x5ZGu{5*3!pg>K5x3fgo^`;=qMjwbx4 zDCi)(_Kao|Gc`D}YOSsA{ST@9lOULKszyray+MOIX?=gmGFhZ!;3MLG!j7C!F*PKr zlT8$Cn6fc4o9wPAbd2^@o3qmF(!KlUo1APN=J>d{rzH@NW# z&o_wk_q>Gauek1q_|1^JIdp~WWzuQi(R5?!Hc&rn5#>wU65313J9$+7^(KQb{8C^^ zNmZI(-ds9Mk1l-6&3BArB{9f4m79x@1y7gLpDL2{Gzc*~7 zJ#WMp1MGP+&-44kq|=wvh@HlhKWS!f8mXP5Kz`vUZMy*!KNlHC+wKh#o$7Q0t~igC zMyVfMw^Y=Z#PVV&zSxNiTWaryF=d5f*=6^PQ{jVLP@RvSYcJ=XN%>U!<6`*KUB`n@7QP&@A$> zhcMF*#J6OB61gqF1oH-iUw4Pk-&sXM`~F>7I(Y497zv{67b<1^-6foEIAce5D1$A= ztJ&(u#G`{+B0xdmo4mlNeMU7=L{M1#QuGOp@Vc9;t2Wi!hfccVIS3MS14T(U`EzkG zci{=rz97mQ9HqOB9W7wnz|I9XxEJvRMP6->`J;qGWB;P;)y{Gw=P>Z!&ji2q|2AR> z6W*&{@&8o5Y<**{RDorB?!P0;>Uij&+t`0sRoY~p^S3&*mq|>-4i<#5O2T#$(p0?6^+-zZj2HCKWocBdtUV(Uksg(JyylMU zuLi?A$E{tUq2e&`Ya9s=Ztl%*+(VYa<;T1teFMC(M=54aBmAXL9!teGU;938VB+F8 z#5wTx1e&B9qB*CL`&?bUjFGPLHmjFE{k%#aEbC!fTlj_6*tGZ_?^8;y!{PGu)$R4N z91qz6L$D?NwhX%ezyMVIPPm$zPBLnqexKI!>IfLyIErsOD^nKNT(LWh3!F9M*r3eh z%u~zea5z*mLIuxp^qCSK)78e4P8HO6fRWJ{>N|Ncl(g?rd~oYQ`K|4L`%ik7U5(wx zM=<%s*$zMX+F##>lHpNJx2?$8SAMAc9!!QfYsM?rNiV5xFKyvt@$!aMHuQ$M^uL;TzpF^j7vN;{Z9kc0@Lga2ib&$kV3B8GX2ddDYR6V zY_K|rlrl8P!EyUCClL3-OQDu8Zj_qBy7!VEpcb40qk7s(1hI&n%i^fgUb=j7@hbI7ilHxYj=pKCB{4K%YnT;oC zcz8Mi)g;zcQAE+7sTCufzgbj2tC$w!@`VwL_@;~9xQw}hLH2~X4NB5f+Ktk+cVwF!z?_G~<4A$nu5Q*_zy$MGzQq1%4n}yJ27DUbv3o9H}--Y#6R^>sXP8 zsi6yFPT9qrWm>IZ5KeL0qu@ve#mIgAPIBrtk8qyvWb6_8e74Q|FH{abcl}4dO2-UN z3aB@X?w43<&2YJ=AG(25u5aO07aGjV9u|ew z+uAlJX4x_Ox!Z%;!020T8N0EpM0a1L>1_0MqH3z1uT_&FX^9=&5bT01CgI?eE1su)H+l~FMW^zSKqk%^fpW*S0<^gqs&>$?lv6GYfcr3l@v2?^Z z``Dh^n8Om;y^80)j(ioL9FT!2G(EQhP0%xQH)_*~zJ=LO3v=^;r%rV!2(%S)g?h|B z2j8A9K%C*!)r*p3+ku^(SRTs)9SS=*oGmO-KM~NeN(J6-GXa+?F9mMSqA^!GR;!S` z$8vRbl;T@R%CAHXe@+L`iDfoN%NGP~ci(c-=jK?sU+vx4ow)EOa{Ym`NX{q-Z;g_r zxPMi_F@r4=IGC@cYgTVOP+bM4A8@O`nYS3mIv9o*;IAk+6)p&Ze`r>0>J%jr_fGW$ zg4@>5&)Wsa7Z?Wz%Sb0;s07V!@jto&CKL~p3DQ9yfeY4~c~{$qwY6@)w1B>~+Eag0 zAGzfTS~2^h-r&Nc-j#cWs6bYwXa%##N-`ciEWAo!y}SA)z-|`CKJ1u!hVkil@IvvJ zI~$H%wdAQ{536rmM7sBm0kWAc+M?RCI3*s|>Mjnv@*w-eVZ`yf5bYStjd;+3p;YLm z4kvog?EGQ6Y^J|F%gDpf!3!NLywJB4eLU)tWJjhP>oG6LjU7zIU&l0Pr1pN>Tli+@ z176<&c$&*$IIV8#EeHy@!VhL>n;A5Kvq=$%mN)Vi5xSkHu}7AZY2F2;#y0iJH90yv zSaHH*EoJUK1DC4;4^z4R4TLf_q`3AOciyU)F+uMH`mK*zgr4Ri>KMtToffL z*fsJXj%m?s6&!E+40N>@6;*6EP-q4F3^eW{GHuQ3)Ab)iBRpA$!7d~v>?2aVZ*X=f zjqrS6m&0c{zBgG}KYex1TlkeF;~OV*!SXw5471)r**_gX3yk|Z+g?G=`yn`{HCT5` zW8()BRn4@G0uCF$g}G7&(2u`Y7X1O)EINnMR(r%kC_vgfgGlH+!~Vrldlw%8M&k_#2We=$28H^Bh1d) zCj29wAw|4j$=NUgUz2fc!|cCF}A=)9R7t;5LJpUAS<0Tj{Jp!uf_LX`ItXt%UD==g86-y6`B&zF^wV3skR0(+&I2UKyt6@ud~_r2Wpe`e>->HILLO?Rr#>Z~Ob zpF-C$u*Og6OXH=Q&=Q?7yQB?++(oYQDdnd3Bdu>`mJWte%F79)jK7pk?GC;Zx212A zdGiRTK-D41ATc+^*jsfS&pte;J|O-~nb@HQD^N=xGzTmjeVrK>_R5*gusJhQolOxn zJ6F@akg*St7_NQFt<3`E^IfkHri1mv;c=K}ilHxbP^zL_B!@xq)eJFqsJ*Kdq=S?UjE zOh8{8-k4x{0EidudN)Z9X8^+-pSURw{_=T9D{InAn*AlyNA`Mp#Hr0dZBu_j1u7U> zxA%|i(-LR18?NtIi}h59GsmyM)@552lD?GFA16oNUGr#_$CNyQ*j5z#0CnA^tiv5nI;S|Bn8CaZ$BC?x!0R zZUc`Se+FGZ;~8{zvMdO+b(## z{-BFGOMyk+30ANos`<^fr2tm%&#JTsKYqH(L(7EZ9eViy$~11ZO3cNyhG&e~b346b;*JvADx!X(zZjil%fXhz5={YVtdp}mb>LzDH zBw?11_NsvKDjG?iA-ByXEUioH!YAmiW8D)Tdpj9355`?72%|b3zjx0SrV=&aibDtL zyOFwqYuC?dedg+H2zKI~>M=sZ`>FqjkG0Qq6tupmk9xv9=Xg?IQwc$N{v`#dDrqS; Iy|Rw}FHO}P5&!@I literal 0 HcmV?d00001 diff --git a/www/README.md b/www/README.md index a2256f59..39eef71c 100644 --- a/www/README.md +++ b/www/README.md @@ -16,7 +16,7 @@ making a local change. There is additional PyRTL documentation in [Read the Docs](https://pyrtl.readthedocs.io/), see -[docs/README.md](https://github.com/UCSBarchlab/PyRTL/blob/development/docs/README.md). +[`docs/README.md`](https://github.com/UCSBarchlab/PyRTL/blob/development/docs/README.md). ## Running Sphinx diff --git a/www/index.rst b/www/index.rst index 3eebf3db..e41ed565 100644 --- a/www/index.rst +++ b/www/index.rst @@ -65,24 +65,24 @@ PyRTL Features PyRTL provides a collection of classes for Pythonic `register-transfer level `_ design, simulation, tracing, and testing suitable for teaching and research. Simplicity, usability, -clarity, and extensibility rather than performance or optimization is the -overarching goal. Features include: +clarity, and extensibility are overarching goals, rather than performance or +optimization. Features include: -* Elaboration-through-execution, meaning all of Python can be used including - introspection -* Design, instantiate, and simulate all in one file and without leaving Python +* Elaboration-through-execution, meaning all of Python can be used, including + introspection. +* Design, instantiate, and simulate all in one file, and without leaving Python. * Export to, or import from, common HDLs (BLIF-in, Verilog-out currently - supported) -* Examine execution with waveforms on the terminal or export to a .vcd as - projects scale -* Elaboration, synthesis, and basic optimizations all included + supported). +* Examine execution with waveforms in a terminal or export to `.vcd + `_ as projects scale. +* Elaboration, synthesis, and basic optimizations all included. * Small and well-defined internal core structure means writing new transforms - is easier -* Batteries included means many useful components are already available and - more are coming every week + is easier. +* Batteries included means many useful components are already available. -**New in 1.0.0:** The :mod:`~pyrtl.rtllib.float` module generates floating -point hardware! +.. card:: New in `PyRTL 1.0.0 `_ + + The new :mod:`~pyrtl.rtllib.float` module generates floating point hardware! Here are some simple examples of PyRTL in action. These examples implement the same functionality as those highlighted in the wonderful related work `Chisel @@ -91,6 +91,20 @@ differences between the approaches. .. tab-set:: + .. tab-item:: GCD + + A greatest common denominator calculator: ``gcd`` generates a sequential + circuit that saves inputs ``a`` and ``b`` when ``begin`` goes high, and + then, while ``begin`` is low, calculates the GCD with `Euclid's algorithm + `_. The function + returns two :class:`WireVectors `:, one which holds the + GCD when the computation is ``done``, and the other which is a boolean + ``done`` signal. + + .. literalinclude:: gcd.py + + .. image:: ../docs/screenshots/gcd.png + .. tab-item:: FIR A finite impulse response filter: ``fir`` generates a sequential circuit @@ -105,17 +119,7 @@ differences between the approaches. .. literalinclude:: fir.py - .. tab-item:: GCD - - A greatest common denominator calculator: ``gcd`` generates a sequential - circuit that saves inputs ``a`` and ``b`` when ``begin`` goes high, and - then, while ``begin`` is low, calculates the GCD with `Euclid's algorithm - `_. The function - returns two :class:`WireVectors `:, one which holds the - GCD when the computation is ``done``, and the other which is a boolean - ``done`` signal. - - .. literalinclude:: gcd.py + .. image:: ../docs/screenshots/fir.png .. tab-item:: MaxN @@ -130,6 +134,8 @@ differences between the approaches. .. literalinclude:: maxn.py + .. image:: ../docs/screenshots/maxn.png + .. tab-item:: Mul ``mul`` generates a small 4 x 4 multiplier with a simple table lookup. @@ -143,6 +149,8 @@ differences between the approaches. .. literalinclude:: mul.py + .. image:: ../docs/screenshots/mul.png + .. tab-item:: Adder The classic ripple-carry adder: ``adder`` generates a ripple carry adder @@ -150,17 +158,19 @@ differences between the approaches. adder `_ (``fa``) takes 1-bit inputs and produces 1-bit outputs. We iteratively create full adders and link the carry in of each new full adder to the - carry out of the last full adder. ``sum`` is a Python :class:`list` that - keeps track of the wires carrying the sum bits. The final ``full_sum`` is - produced by concatenating the wires in ``sum`` with + carry out of the last full adder. ``adder``'s ``sum`` is a Python + :class:`list` that keeps track of the wires carrying the sum bits. The + final ``full_sum`` is produced by concatenating the wires in ``sum`` with :func:`~pyrtl.concat_list`. .. literalinclude:: adder.py + .. image:: ../docs/screenshots/adder.png + PyRTL can also produce visualizations of your design with :func:`~pyrtl.block_to_svg`, such as this graph of the GCD circuit above: -.. image:: ../docs/images/gcd-graph.png +.. image:: ../docs/images/gcd-graph.svg The 10,000 Foot Overview ------------------------ From aff28d725c6c89c352f5f199eaa7a978869539d1 Mon Sep 17 00:00:00 2001 From: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> Date: Tue, 23 Jun 2026 20:59:25 -0700 Subject: [PATCH 04/12] Update pages-deploy action to also run on any image or screenshot update. Increase resolution for all screenshots. --- .github/workflows/pages-deploy.yml | 2 ++ docs/screenshots/adder.png | Bin 5729 -> 34260 bytes docs/screenshots/fir.png | Bin 34005 -> 55178 bytes docs/screenshots/gcd.png | Bin 5849 -> 29459 bytes docs/screenshots/index-demo.png | Bin 26739 -> 43561 bytes docs/screenshots/maxn.png | Bin 6832 -> 42091 bytes docs/screenshots/mul.png | Bin 5467 -> 35842 bytes docs/screenshots/pyrtl-counter.png | Bin 7661 -> 21591 bytes docs/screenshots/pyrtl-statemachine.png | Bin 12024 -> 19423 bytes docs/screenshots/render_trace.png | Bin 13780 -> 20937 bytes 10 files changed, 2 insertions(+) diff --git a/.github/workflows/pages-deploy.yml b/.github/workflows/pages-deploy.yml index e46f6007..2b91d081 100644 --- a/.github/workflows/pages-deploy.yml +++ b/.github/workflows/pages-deploy.yml @@ -4,6 +4,8 @@ on: push: paths: - www/** + - docs/images/** + - docs/screenshots/** jobs: build: diff --git a/docs/screenshots/adder.png b/docs/screenshots/adder.png index 97ad9ab6c736fc70b172f022a14a1f055fd47a3e..1bfa023645d29a446d1822c4a8b8e5b9106c90e3 100644 GIT binary patch literal 34260 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 Mo6L%vxyJK<09T}ShX4Qo literal 5729 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 U@Rdh*1^=d4&X}A!Y2oJo1F|e*-~a#s diff --git a/docs/screenshots/gcd.png b/docs/screenshots/gcd.png index 407e7f8af9bf42ba9ec8aae3d75f0a2d1214be5d..b2b697c7323bbdccc27564bf0d2b2a302064936c 100644 GIT binary patch literal 29459 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 S1TVX6GtImXeknLK+!D6r@`^l`cWLVE~7E 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 Ug_Iip{i6n`Drzaz$XUPr9|jRL`2YX_ diff --git a/docs/screenshots/index-demo.png b/docs/screenshots/index-demo.png index 4f6ccc9709d7b497bd1b7ce34443cf379f75fa25..9b7e3e8a059bb408d9b308fa2d2f42f92df2bf6e 100644 GIT binary patch literal 43561 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 literal 26739 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 Jb*B5T{{>3hk8A({ diff --git a/docs/screenshots/maxn.png b/docs/screenshots/maxn.png index 3f5dc7b2c26c383d3d9af5de41af595ba337aa4b..76d529ef18cb75aa3db8a133c460448d947eb1be 100644 GIT binary patch literal 42091 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 KDAdbYhW`iYk-2LC diff --git a/docs/screenshots/mul.png b/docs/screenshots/mul.png index 54eaab5d549a66c1aa49ae99fd3d311211921787..45ed64f8eab9e24b8bd4108b1ba01a6e83f12811 100644 GIT binary patch literal 35842 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 Iy|Rw}FHO}P5&!@I diff --git a/docs/screenshots/pyrtl-counter.png b/docs/screenshots/pyrtl-counter.png index c4737e0c9d96cd0974a26aa132481c564e96f3ae..11e4339b88348e6f5fe6c379f88017d660463c71 100644 GIT binary patch literal 21591 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 diff --git a/docs/screenshots/pyrtl-statemachine.png b/docs/screenshots/pyrtl-statemachine.png index a72bc502792d112065c527d5fffcf15354745c24..2247f582a8536a05dab032302e5319c3cda1db2e 100644 GIT binary patch literal 19423 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

jGhm*fsN~)^(SFc_jZhq>C5;Pozs6id6 z13?xrBNg+6yd-E6I>maIY;9M4-gL~W7*CT6UAVOytb%^S=drF85*~gXJ{D*@)TzR1 zRUrB%t^Rljko#A|-`7a_8ndBlqlz^IN|2>Pq068B{rLPDm~`oP-Iyrh7}WT5q=}k( zDmS|n85NaTRu&7+7#U`r;LPk+uP323ga4X6d>C=Gw|bqM`*+n&1=LjFojbpOh^F&#Az{Xond9LNc;YM!7KFGjck}Z|13qiHSsh>&UDk zLluzBQBk>aW-2$n=zD(Zjf|)3!Ysu>X=7oxH^c}#J3FFw)?DZGL$t23(eiM6-eY|) z^C66K0WgHZf{xUI8z#MrAi#*M-#G=Y4+^E*&$dW_{dx(Bi;I(e{IS7f<5~>86h6Ys z$7fe=N)Lx6?6Dr-wg|ohXpW+R>kclkCfA~1u)_ry`vE=Jvk(aW4>vr4Rn%jB|EnuR zA-pc_p##8ikXa67Y*#UErT~;g2Qu-pj=!ud8p^GLd!2($NBmfKG`a{%5nXKf%a?>e zaf14mnV=xSuvCV(Uee+5@dVYD^!Q>5INab+!>#XB+S}+Z3-8swgrHx9qCeH(aRVZL zeeACG2nI3szlL_77Ru0OhVeE=#-PvnhvUqQh%=bAamyfDE3FCb0z%~EZM%ba-iNo_ z#Fo(NS)Q*#gVrB?O`@0%Djip`02wNQL4bbGz#x@g_I-wK~?$*j5omBN52_ zepk64QHFa8oL2)>0>y3LE=uVL3JS(ek{=Bz0fvw?EG>TZ39*vrB72jT4SXI?rY&9Z0&=?)gJxZg3U^ucl% z(3jrRDQ$_tQ$XAi;H+H-{{&odS(wI@m%8@m5*~AoENWnDe@z{{dX5Ip_c6*UDnt|% z5eYn|y^rWYV(J&PbgBLE+|tet2h8P_3ka(lR{Y#{OG`^Izexz76yO@*8OR^>A~uR1}5YSEliVnB?ybJ+g)V#hr41P)1E&MA8QoL=Zl& zj##X>6Le&u@;%e?K_W}Z!_LMlk0{>nO{ zbIuz#D!^6)!JOYR6{X)e3N=o+^=1K(S9!}t^ps6YGj2 z&HZYUl1sG;@oiH~Pfkt_0((zRc2VJ{dXUG_=SWpuQ{bISw?EGV!mF`P#E z4Y?%mDvf%lTKvR-6J6gqzJGHNMw32%490?)gqRp$`lGh1LRrEpxq z2l1-DHb(>K05wGfDFt&mybp&NghfSB`X#u`9WZ^e{i}BNS;u@}_u_o(#aUU;Odhxx zFkX(CJP-zh9H7`|(9qG7{>~I?7uo-C zE6dHrgm#z$LzPC{pI@fNXG$t`!s(w&&hY?o`F|hu;{$=MqB?13v)M?PrLoogD|@ zR>nV6$>K1UK!c8XH4r9O?%ludfHz{04RXI(DPcy#^G9$qdeCWJ%U`7v*E4G#&3m9C zu7ja&3}Y<3yu2@cRD*CxSTn#E!@{SL1}zoF+CSc#Hwp#=03-yI);`RC7!Zm_b?c5* z)FO07gYxQv$Xv?3C4 zE)Gr?Y8o6YN63<;)zw9aEEvYZg0DUL%3(q;=^FvG5~3y(Oe7Thf;Vgf&IP=R4?7#b z_6>&dhhUxqS19=fOegX#Lz|leu&dYND*_TUgX>f8YH5_*46lLb44WbijPdgCLc-cs zSllTvnCh4)0BWF2LIvxB7=&qG#wUU7_CXBN9z_%2yNwiRvK81KZhXnX6_=1eO=SUH z20aNimzcP57*55{s0E; z%_fTV`5RTD7Px4-^y^U;Bxr^GEYkW}LGQ8cEZ~POC|q8#mzDnx;2nw*^EY=TFK|UH z6dQot`W~luU_e1yS~{D8L}A9hC9v~;maZ=8YJhr*HW+jvx72|H0fo}|Dai-9kCHWD z{%5I%AX1=9U;Fu{{9SCj)AOTM`X;X(G>9Vgdd5+y)LEG{c91!(S%y^O|B*{20?ug^ z6cqZS0}7dL-HNa8Zeav#Zo6lz7y7gb#2%!EL0UweQ3@1nOmH5-@=vhNj9UfTb~ d Date: Wed, 24 Jun 2026 09:49:47 -0700 Subject: [PATCH 05/12] More README cleanup, improve GitHub actions naming. --- .github/workflows/pages-deploy.yml | 4 +- README.md | 145 +++++++++++++++-------------- 2 files changed, 76 insertions(+), 73 deletions(-) diff --git a/.github/workflows/pages-deploy.yml b/.github/workflows/pages-deploy.yml index 2b91d081..dd89a169 100644 --- a/.github/workflows/pages-deploy.yml +++ b/.github/workflows/pages-deploy.yml @@ -1,4 +1,4 @@ -name: Deploy to github.io +name: Deploy to GitHub Pages on: push: @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@v7 - uses: astral-sh/setup-uv@v6 - - name: Run Sphinx + - name: Generate pages with Sphinx run: uv run just www - name: Upload static files as artifact id: deployment diff --git a/README.md b/README.md index e6e3797f..e274763f 100644 --- a/README.md +++ b/README.md @@ -13,25 +13,25 @@ PyRTL PyRTL provides a collection of classes for Pythonic [register-transfer level](https://en.wikipedia.org/wiki/Register-transfer_level) design, simulation, tracing, and testing suitable for teaching and research. -Simplicity, usability, clarity, and extensibility rather than performance or -optimization is the overarching goal. Features include: +Simplicity, usability, clarity, and extensibility are overarching goals, rather +than performance or optimization. Features include: * Elaboration-through-execution, meaning all of Python can be used including - introspection -* Design, instantiate, and simulate all in one file and without leaving Python + introspection. +* Design, instantiate, and simulate all in one file and without leaving Python. * Export to, or import from, common HDLs (BLIF-in, Verilog-out currently - supported) -* Examine execution with waveforms on the terminal or export to `.vcd` as - projects scale -* Elaboration, synthesis, and basic optimizations all included + supported). +* Examine execution with waveforms on the terminal or export to + [`.vcd`](https://en.wikipedia.org/wiki/Value_change_dump) as projects scale. +* Elaboration, synthesis, and basic optimizations all included. * Small and well-defined internal core structure means writing new transforms - is easier -* Batteries included means many useful components are already available and - more are coming every week + is easier. +* Batteries included means many useful components are already available. What README would be complete without a screenshot? Below you can see the -waveform rendered right on the terminal for a small state machine written in -PyRTL. +waveform rendered right on the terminal for a [small state +machine](https://github.com/UCSBarchlab/PyRTL/blob/development/examples/example3-statemachine.py) +written in PyRTL. ![Command-line waveform for PyRTL state machine](https://github.com/UCSBarchlab/PyRTL/blob/development/docs/screenshots/pyrtl-statemachine.png?raw=true "PyRTL State Machine Screenshot") @@ -43,44 +43,46 @@ PyRTL. [`examples`](https://github.com/UCSBarchlab/PyRTL/tree/development/examples) directory. You can also [try the examples on MyBinder](https://mybinder.org/v2/gh/UCSBarchlab/PyRTL/development?filepath=%2Fipynb-examples%2F). -* Full reference documentation is available at https://pyrtl.readthedocs.io/ +* [Full reference documentation](https://pyrtl.readthedocs.io/) is available. ### Package Contents -If you are just getting started with PyRTL it is suggested that you start with -the -[`examples`](https://github.com/UCSBarchlab/PyRTL/tree/development/examples) -first to get a sense of the "thinking with PyRTLs" required to design hardware -in this way. If you are looking for a deeper understanding, dive into the code -for the object `Block`. It is the core data structure at the heart of PyRTL and -defines its semantics at a high level -- everything is converted to or from the -small, simple set of primitives defined there. +If you are just getting started with PyRTL, try starting with the +[`examples`](https://github.com/UCSBarchlab/PyRTL/tree/development/examples) to +get a sense of the "thinking with PyRTLs" required to design hardware in this +way. If you are looking for a deeper understanding, dive into the code for the +object [`Block`](https://pyrtl.readthedocs.io/en/latest/blocks.html#blocks). It +is the core data structure at the heart of PyRTL and defines its semantics at a +high level -- everything is converted to or from the small, simple set of +primitives defined there. The package contains the following files and directories: * [`pyrtl`](https://github.com/UCSBarchlab/PyRTL/tree/development/pyrtl) - The src directory for the module. + The module's source code. * [`pyrtl/rtllib/`](https://github.com/UCSBarchlab/PyRTL/tree/development/pyrtl/rtllib) Finished PyRTL libraries which are hopefully both useful and documented. * [`examples`](https://github.com/UCSBarchlab/PyRTL/tree/development/examples) - A set of hardware design examples that show the main idea behind PyRTL. + A set of hardware design examples that show the main ideas behind PyRTL. * [`tests`](https://github.com/UCSBarchlab/PyRTL/tree/development/tests) A set of unit tests for PyRTL which you can run with `pytest`. * [`docs`](https://github.com/UCSBarchlab/PyRTL/tree/development/docs) - Location of the Sphinx documentation. + Documentation written in + [Sphinx](https://www.sphinx-doc.org/en/master/index.html) + [reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html#rst-primer). -### The PyRTL Development Environment +### PyRTL Development Environment -All PyRTL developers should use the exact same tools to avoid confusing +All PyRTL developers should use the same tool versions to avoid confusing situations where a test fails only on one person's computer, or the generated documentation looks weird on another person's computer. -PyRTL uses [`uv`](https://docs.astral.sh/uv/) to ensure everyone's development -environments are consistent. `uv` manages the installation and versioning for -all other PyRTL developer tools, like `pytest` and `ruff`. +PyRTL uses [`uv`](https://docs.astral.sh/uv/) to ensure all developers work in +the same environment. `uv` manages the installation and versioning for all +other PyRTL developer tools, like `pytest` and `ruff`. -So to set up a PyRTL development environment, you only need to install `uv`, by -following the -[`uv` installation instructions](https://docs.astral.sh/uv/getting-started/installation/) +To set up a PyRTL development environment, you only need to install `uv`, by +following the [`uv` installation +instructions](https://docs.astral.sh/uv/getting-started/installation/). After installing [`uv`](https://docs.astral.sh/uv/), you can run all the tests with: @@ -108,77 +110,78 @@ needed. `uv` caches installed software so future `uv` invocations will be fast. example, pick a `PyrtlError` that is not covered and add a unit test in [`tests`](https://github.com/UCSBarchlab/PyRTL/tree/development/tests) that will hit it. -* After you have that down check in the [PyRTL - Issues](https://github.com/UCSBarchlab/PyRTL/issues) list for a feature that - is marked as "beginner friendly". +* After you have that down check [PyRTL + Issues](https://github.com/UCSBarchlab/PyRTL/issues) for a feature that is + marked as "beginner friendly". * Once you have that down, ask for access to the PyRTL-research repo where we - keep a list of more advanced features and designs that could use more help! + keep experimental features and designs that could use more help! *Coding style* * All major functionality should have unit tests covering and documenting their - use -* All public functions and methods should have useful docstrings + use. +* All public functions and methods should have useful docstrings. * All code needs to conform to - [PEP8](https://www.python.org/dev/peps/pep-0008/) conventions + [PEP8](https://www.python.org/dev/peps/pep-0008/) conventions. * No new root-level dependencies on external libs, import locally if required - for special functions + for special functions. *Workflow* -* A useful reference for working with Git is this [Git - tutorial](https://www.atlassian.com/git/tutorials/) -* A useful Git Fork workflow for working on this repo is [found - here](http://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/) +* [This Git tutorial](https://www.atlassian.com/git/tutorials/) is a useful + reference for working with Git. +* [This blog + post](http://blog.scottlowe.org/2015/01/27/using-fork-branch-git-workflow/) + covers a useful Git Fork workflow for working on PyRTL. * The `development` branch is the primary stable working branch (everyone is - invited to submit pull requests) -* Bugs and minor enhancements tracked directly through the [issue - tracker](https://github.com/UCSBarchlab/PyRTL/issues) -* When posting a bug please post a small chunk of code that captures the bug, - e.g. [Issue #56](https://github.com/UCSBarchlab/PyRTL/issues/56) -* When pushing a fix to a bug or enhancement please reference issue number in + invited to submit pull requests)., +* Bugs and minor enhancements tracked directly through [GitHub + Issues](https://github.com/UCSBarchlab/PyRTL/issues). +* When posting a bug please include a small code sample that triggers the bug, + e.g. [Issue #56](https://github.com/UCSBarchlab/PyRTL/issues/56). +* When pushing a fix to a bug or enhancement please reference the Issue in the commit message, e.g. [Fix to Issue - #56](https://github.com/UCSBarchlab/PyRTL/commit/1d5730db168a9e4490c580cb930075715468047a) + #56](https://github.com/UCSBarchlab/PyRTL/commit/1d5730db168a9e4490c580cb930075715468047a). * Before sending a pull request, please run: ```shell $ uv run just presubmit ``` - to verify that all tests pass and that documentation can be generated with - your changes. + to verify that all tests pass and that all documentation can be generated + with your changes. *Documentation* * All important functionality should have an executable example in - [`examples`](https://github.com/UCSBarchlab/PyRTL/tree/development/examples) -* All classes should have a block comment with high level description of the - class -* All functions should follow the following (Sphinx parsable) docstring format: + [`examples`](https://github.com/UCSBarchlab/PyRTL/tree/development/examples). + +* All classes should have a [docstring](https://peps.python.org/pep-0257) that + describes the class at a high level. + +* All methods and functions should include a docstring in the following + Sphinx-parsable format: ```python - """One Line Summary (< 80 chars) of the function, followed by period. + """One Line Summary (< 88 chars) of the function, followed by period. - A long description of what this function does. Talk about what the user - should expect from this function and also what the users needs to do to use - the function (this part is optional). + A longer description of what this function does and does not do. Describe any + assumptions or invariants. Provide an example for user-facing functions. - :param param_name : Description of this parameter. - :param param_name : Longer parameter descriptions take up a newline with four + :param param1: Description of this parameter. + :param param2: Longer parameter descriptions take up a newline with four leading spaces like this. + + :raises Exception: If this function raises an exception, explain when that + occurs here. + :return: Description of function's return value. """ - # Developer Notes (Optional): - # - # These would be anything that the user does not need to know in order to use - # the functions. - # These notes can include internal workings of the function, the logic behind - # it, or how to extend it. ``` * Sphinx parses [Python type annotations](https://docs.python.org/3/library/typing.html), so put type information into annotations instead of docstrings. * The Sphinx-generated documentation is published to - https://pyrtl.readthedocs.io/ + https://pyrtl.readthedocs.io/ . * PyRTL's Sphinx build process is documented in [`docs/README.md`](https://github.com/UCSBarchlab/PyRTL/blob/development/docs/README.md). * PyRTL's release process is documented in From 89c81795404d72218000579bd02f6fb5b9da7d5c Mon Sep 17 00:00:00 2001 From: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> Date: Wed, 24 Jun 2026 13:18:49 -0700 Subject: [PATCH 06/12] Switch from `alabaster` theme to `furo`. --- www/conf.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/www/conf.py b/www/conf.py index e8bb7ec4..0e4cb935 100644 --- a/www/conf.py +++ b/www/conf.py @@ -36,8 +36,15 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_baseurl = "https://ucsbarchlab.github.io/PyRTL" -html_theme = "alabaster" -html_theme_options = {"nosidebar": True} +html_theme = "furo" +html_theme_options = { + # For view/edit this page buttons. + "source_repository": "https://github.com/UCSBarchlab/pyrtl", + "source_branch": "development", + "source_directory": "www/", +} +html_title = "PyRTL" +html_sidebars = {"**": []} html_show_sphinx = False html_show_copyright = False html_show_sourcelink = False From bb25b44b83e6bb85cc451f1878678de7ced8db2b Mon Sep 17 00:00:00 2001 From: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> Date: Wed, 24 Jun 2026 15:20:43 -0700 Subject: [PATCH 07/12] Add page outline to right sidebar and do some minor rewording. --- www/index.rst | 57 +++++++++++++++++++++------------------------------ 1 file changed, 23 insertions(+), 34 deletions(-) diff --git a/www/index.rst b/www/index.rst index e41ed565..01bc0558 100644 --- a/www/index.rst +++ b/www/index.rst @@ -1,5 +1,3 @@ -:hide-toc: - .. div:: sd-text-center sd-text-light :style: background-image: linear-gradient(180deg, #2980B9, #3a4e5c, #3a4e5c); @@ -42,25 +40,15 @@ Run Notebook -.. raw:: html - -

- -PyRTL -===== - -.. raw:: html - -
- +=============== Getting Started ---------------- +=============== ``pip install pyrtl`` PyRTL Features --------------- +============== PyRTL provides a collection of classes for Pythonic `register-transfer level `_ design, simulation, @@ -173,7 +161,7 @@ PyRTL can also produce visualizations of your design with .. image:: ../docs/images/gcd-graph.svg The 10,000 Foot Overview ------------------------- +======================== At a high level, PyRTL builds hardware that you `explicitly define`. If you are looking for a tool to take your random Python code and turn it into hardware, @@ -193,9 +181,11 @@ building digital designs again! To the user it provides a set of Python classes that allow them to Pythonically express their hardware designs. For example, with :class:`~pyrtl.WireVector` you get a structure that acts very much like a Python list of 1-bit wires, so -that ``mywire[0:-1]`` selects everything except the most-significant-bit. Of -course you can add, subtract, and multiply these :class:`WireVectors -` or concat multiple bit-vectors end-to-end as well. +``mywire[:-1]`` selects everything except the most-significant-bit. Of course +you can :meth:`add `, :meth:`subtract +`, and :meth:`multiply ` +these :class:`WireVectors `, or :func:`~pyrtl.concat` multiple +bit-vectors end-to-end as well. You can even put :class:`WireVectors ` in Python collections and process them in bulk. For example, if ``x`` is a :class:`list` of @@ -210,7 +200,7 @@ Notebooks on any of our examples on MyBinder `_. Hello N-bit Ripple-Carry Adder! -------------------------------- +=============================== While adders are a builtin primitive for PyRTL, most people doing RTL are familiar with the idea of a `Ripple-Carry Adder @@ -225,16 +215,15 @@ introduction to fixed 4-bit adders The code above includes an adder generator with Python-style slices on wires (``ripple_add``), an instantiation of a :class:`~pyrtl.Register` (used as a counter with ``ripple_add``), and all the code needed to simulate the design, -generate a waveform, and render it to the terminal. The way this particular -code works is described more in `Example 2 -`_. -When you run it, it should look like this (you can see the counter going from 0 -to 7 and repeating): +generate a waveform, and render it to the terminal. `Example 2 +`_'s +comments describe this code in much more detail. When you run it, it should +look like this (you can see the counter going from 0 to 7 and repeating): .. image:: ../docs/screenshots/pyrtl-counter.png A Few Gotchas -------------- +============= While Python is an amazing language, DSLs in Python are always forced to make a few compromises which can sometimes catch users in some unexpected ways. Watch @@ -259,27 +248,27 @@ out for these "somewhat surprising features": this automatically). But then when you assign ``x <<= y + 1`` you are taking a 6-bit value and assigning it to a 3-bit value. This is completely legal, and the value will be :meth:`truncated `, so only the - least significant bits will be assigned. Mind your bitwidths. + least significant bits will be assigned. Mind your bitwidths! -* PyRTL provides some handy functions on :class:`WireVectors - `, including ``==`` and ``<`` which evaluate to a new +* PyRTL's :class:`WireVectors ` overloads many useful + operators, including ``==`` and ``<`` which evaluate to a new :class:`~pyrtl.WireVector` with :attr:`~pyrtl.WireVector.bitwidth` 1 to hold the result of the comparison. The bitwise operators ``&``, ``|``, ``~`` and ``^`` are also defined (however logic operations such as ``and`` and ``not`` are not defined). A really tricky gotcha happens when you start combining these operators. Consider:: - doit = ready & state == 3 + do_it = ready & state == 3 In Python, the bitwise ``&`` operator has higher precedence than ``==``, thus Python parses this as:: - doit = (ready & state) == 3 + do_it = (ready & state) == 3 which is probably not what you intended! Make sure to use parentheses when using comparisons with logic operations to be clear:: - doit = ready & (state == 3) + do_it = ready & (state == 3) * In PyRTL, all :class:`WireVectors ` are unsigned. For example, if you do a comparison with ``<``, that comparison will be @@ -290,10 +279,10 @@ out for these "somewhat surprising features": explicitly call :meth:`~pyrtl.WireVector.sign_extended` to sign-extend. `Example 1.1 `_ - shows more examples of how to do signed arithmetic in PyRTL. + shows more examples of signed arithmetic in PyRTL. Related Projects ----------------- +================ `Amaranth (previously nMigen) `_ Another Python hardware project providing an open-source toolchain that has From fb9389c190a64e7f41f8a8dfd4ed1668825a0885 Mon Sep 17 00:00:00 2001 From: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> Date: Wed, 24 Jun 2026 16:11:18 -0700 Subject: [PATCH 08/12] Move logo and buttons to sidebar and remove GCD graph. --- docs/images/gcd-graph.svg | 513 -------------------------------------- www/conf.py | 3 +- www/index.rst | 121 ++++----- 3 files changed, 50 insertions(+), 587 deletions(-) delete mode 100644 docs/images/gcd-graph.svg diff --git a/docs/images/gcd-graph.svg b/docs/images/gcd-graph.svg deleted file mode 100644 index 9b605393..00000000 --- a/docs/images/gcd-graph.svg +++ /dev/null @@ -1,513 +0,0 @@ - - - - - - -g - - - -n0->n29 - - - - - -n1->n31 - - - - - -n2->n15 - - - - - -n2->n20 - - - - - -n2->n24 - - - - - -n2->n29 - - - - - -n2->n31 - - - - - -n3->n33 - - - - - -n4->n33 - - - - - -n5->n6 - - - - - -n8->n12 - - - - - -n8->n13 - - - - - -n8->n17 - - - - - -n8->n18 - - - - - -n8->n29 - - - - - -n8->n34 - - - - - -n10->n12 - - - - - -n10->n13 - - - - - -n10->n17 - - - - - -n10->n18 - - - - - -n10->n31 - - - - - -n11->n5 - - - - - -n12->n16 - - - - - -n12->n21 - - - - - -n12->n25 - - - - - -n13->n14 - - - - -n14->n30 - - - - - -n15->n16 - - - - - -n16->n30 - - - - - -n17->n23 - - - - - -n17->n27 - - - - - -n18->n19 - - - - -n19->n32 - - - - - -n20->n22 - - - - - -n21->n22 - - - - - -n22->n23 - - - - - -n23->n32 - - - - - -n24->n26 - - - - - -n25->n26 - - - - - -n26->n28 - - - - - -n27->n28 - - - - - -n28->n33 - - - - - -n29->n30 - - - - - -n30->n7 - - - - - -n31->n32 - - - - - -n32->n9 - - - - - -n33->n11 - - - - - -n34->n35 - - - - - -n0 - -a - - - -n1 - -b - - - -n2 - -begin - - - -n3 - -1 - - - -n4 - -0 - - - -n5 - - - - -n6 - -done - - - -n7 - -tmp0.next - - - -n8 - -tmp0 - - - -n9 - -tmp1.next - - - -n10 - -tmp1 - - - -n11 - - - - -n12 - -> - - - -n13 - -- - - - -n14 - -[7:0] - - - -n15 - -not - - - -n16 - -and - - - -n17 - -> - - - -n18 - -- - - - -n19 - -[7:0] - - - -n20 - -not - - - -n21 - -not - - - -n22 - -and - - - -n23 - -and - - - -n24 - -not - - - -n25 - -not - - - -n26 - -and - - - -n27 - -not - - - -n28 - -and - - - -n29 - -mux - - - -n30 - -mux - - - -n31 - -mux - - - -n32 - -mux - - - -n33 - -mux - - - -n34 - - - - -n35 - -x - - - - diff --git a/www/conf.py b/www/conf.py index 0e4cb935..56aed23f 100644 --- a/www/conf.py +++ b/www/conf.py @@ -38,13 +38,14 @@ html_baseurl = "https://ucsbarchlab.github.io/PyRTL" html_theme = "furo" html_theme_options = { + "sidebar_hide_name": True, # For view/edit this page buttons. "source_repository": "https://github.com/UCSBarchlab/pyrtl", "source_branch": "development", "source_directory": "www/", } html_title = "PyRTL" -html_sidebars = {"**": []} +html_logo = "../docs/brand/pyrtl_logo.png" html_show_sphinx = False html_show_copyright = False html_show_sourcelink = False diff --git a/www/index.rst b/www/index.rst index 01bc0558..5d090104 100644 --- a/www/index.rst +++ b/www/index.rst @@ -1,51 +1,13 @@ -.. div:: sd-text-center sd-text-light - :style: background-image: linear-gradient(180deg, #2980B9, #3a4e5c, #3a4e5c); +===== +PyRTL +===== - .. image:: ../docs/brand/pyrtl_logo.png +PyRTL is a Python library for register-transfer-level hardware design and +simulation. Get started with: - register-transfer-level hardware design and simulation - - .. grid:: 2 2 4 4 - :gutter: 0 - - .. grid-item:: - - .. button-link:: http://pyrtl.readthedocs.org/ - :color: light - :outline: - - Read The Docs - - .. grid-item:: - - .. button-link:: https://github.com/UCSBarchlab/PyRTL/tree/development/examples - :color: light - :outline: - - See Examples - - .. grid-item:: - - .. button-link:: https://github.com/UCSBarchlab/PyRTL - :color: light - :outline: - - View on GitHub - - .. grid-item:: - - .. button-link:: https://mybinder.org/v2/gh/UCSBarchlab/PyRTL/development?filepath=%2Fipynb-examples%2F - :color: light - :outline: - - Run Notebook - -=============== -Getting Started -=============== - -``pip install pyrtl`` +.. code-block:: shell + $ pip install pyrtl PyRTL Features ============== @@ -72,6 +34,9 @@ optimization. Features include: The new :mod:`~pyrtl.rtllib.float` module generates floating point hardware! +Simple PyRTL Examples +===================== + Here are some simple examples of PyRTL in action. These examples implement the same functionality as those highlighted in the wonderful related work `Chisel `_, which in turn allows us to see the stylistic @@ -85,10 +50,13 @@ differences between the approaches. circuit that saves inputs ``a`` and ``b`` when ``begin`` goes high, and then, while ``begin`` is low, calculates the GCD with `Euclid's algorithm `_. The function - returns two :class:`WireVectors `:, one which holds the + returns two :class:`WireVectors `, one which holds the GCD when the computation is ``done``, and the other which is a boolean ``done`` signal. + The code below provides everything needed to instantiate, simulate, and + visualize the resulting design. + .. literalinclude:: gcd.py .. image:: ../docs/screenshots/gcd.png @@ -101,9 +69,7 @@ differences between the approaches. `_, the list ``zs`` is the registers required to implement the delay. ``fir`` returns an output ``y`` which is the resulting sum of products and is valid every - cycle (since the design is naturally fully pipelined). The code below - provides everything needed to instantiate, simulate, and visualize the - resulting design. + cycle (since the design is naturally fully pipelined). .. literalinclude:: fir.py @@ -126,14 +92,15 @@ differences between the approaches. .. tab-item:: Mul - ``mul`` generates a small 4 x 4 multiplier with a simple table lookup. - The first two lines simply check that the inputs are each 4-bits wide. - ``romdata`` is a Python function that calculates the values we want - stored in the ROM, as a function of the ROM address. - :class:`~pyrtl.RomBlock` automatically initializes the ROM with values - computed by ``romdata``. The generated hardware simply :func:`concats - ` the two 4-bit inputs into an 8-bit ROM address and - returns the value stored in the ROM at that address. + ``mul`` generates a small 4 x 4 multiplier with a simple `ROM + `_ lookup. The first two + lines simply check that the inputs are each 4-bits wide. ``romdata`` is a + Python function that calculates the values we want stored in the ROM, as + a function of the ROM address. :class:`~pyrtl.RomBlock` automatically + initializes the ROM with values computed by ``romdata``. The generated + hardware simply :func:`concats ` the two 4-bit inputs into + an 8-bit ROM address and returns the value stored in the ROM at that + address. .. literalinclude:: mul.py @@ -155,11 +122,6 @@ differences between the approaches. .. image:: ../docs/screenshots/adder.png -PyRTL can also produce visualizations of your design with -:func:`~pyrtl.block_to_svg`, such as this graph of the GCD circuit above: - -.. image:: ../docs/images/gcd-graph.svg - The 10,000 Foot Overview ======================== @@ -235,12 +197,17 @@ out for these "somewhat surprising features": respectively (more on both of these in `Example 3 `_). + If you declare:: + + x = WireVector(bitwidth=3) + + and:: - If you declare ``x = WireVector(bitwidth=3)`` and ``y = - WireVector(bitwidth=5)``, how do you assign ``x`` the value of ``y + 1``? If - you do ``x = y + 1`` that will replace the old definition of ``x`` entirely. - Instead you need to write ``x <<= y + 1`` which you can read as "``x`` gets - its value from ``y + 1``". + y = WireVector(bitwidth=5) + + how do you assign ``x`` the value of ``y + 1``? If you do ``x = y + 1`` that + will replace the old definition of ``x`` entirely. Instead you need to write + ``x <<= y + 1`` which you can read as "``x`` gets its value from ``y + 1``". * The example above also shows off another aspect of PyRTL. The :attr:`~pyrtl.WireVector.bitwidth` of ``y`` is 5. The @@ -270,16 +237,16 @@ out for these "somewhat surprising features": do_it = ready & (state == 3) -* In PyRTL, all :class:`WireVectors ` are unsigned. For - example, if you do a comparison with ``<``, that comparison will be - `unsigned`. You must explicitly call functions like :func:`~pyrtl.signed_lt` - for signed comparisons. Similarly, if you pass a :class:`~pyrtl.WireVector` - to a function that requires more bits that you have provided, the +* In PyRTL, all :class:`WireVectors ` are `unsigned`, so + :class:`~pyrtl.WireVector` comparisons with ``<`` are unsigned comparisons. + You must explicitly call functions like :func:`~pyrtl.signed_lt` for signed + comparisons. Similarly, if you pass a :class:`~pyrtl.WireVector` to a + function that requires more bits that you have provided, the :class:`~pyrtl.WireVector` will be zero-extended by default. You must explicitly call :meth:`~pyrtl.WireVector.sign_extended` to sign-extend. `Example 1.1 `_ - shows more examples of signed arithmetic in PyRTL. + provides more examples of signed arithmetic in PyRTL. Related Projects ================ @@ -361,3 +328,11 @@ Related Projects both safe and fast prototying using concise descriptions. If you like functional programming and hardware also check out `Lava `_. + +.. toctree:: + :hidden: + + ReadTheDocs Documentation + GitHub Project + PyRTL Examples + PyRTL Notebook Examples From 8b0ae410e8e7a19c3fde6b15ef70cad62d38a078 Mon Sep 17 00:00:00 2001 From: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> Date: Wed, 24 Jun 2026 16:30:51 -0700 Subject: [PATCH 09/12] Improve the news card. --- www/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/www/index.rst b/www/index.rst index 5d090104..d5046489 100644 --- a/www/index.rst +++ b/www/index.rst @@ -30,9 +30,9 @@ optimization. Features include: is easier. * Batteries included means many useful components are already available. -.. card:: New in `PyRTL 1.0.0 `_ +.. card:: :octicon:`rocket` New in `PyRTL 1.0.0 `_ - The new :mod:`~pyrtl.rtllib.float` module generates floating point hardware! + The new :mod:`pyrtl.rtllib.float` module generates floating point hardware! Simple PyRTL Examples ===================== From 1419857fa37e996247454d3fc3e4382c64a1938d Mon Sep 17 00:00:00 2001 From: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> Date: Wed, 24 Jun 2026 16:37:54 -0700 Subject: [PATCH 10/12] Simplify `test_examples.py` to use lists instead of iterators. Improve error messaging. --- tests/test_examples.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/test_examples.py b/tests/test_examples.py index e786e84d..e860b4a8 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -1,7 +1,7 @@ import glob -import itertools import os import subprocess +import sys import pytest @@ -10,10 +10,8 @@ @pytest.mark.parametrize( "file", - itertools.chain( - glob.iglob(os.path.dirname(__file__) + "/../examples/*.py"), - glob.iglob(os.path.dirname(__file__) + "/../www/*.py"), - ), + glob.glob(os.path.dirname(__file__) + "/../examples/*.py") + + glob.glob(os.path.dirname(__file__) + "/../www/*.py"), ) def test_all_examples(file): """Test all scripts in ``examples/`` and ``www/``. @@ -25,3 +23,8 @@ def test_all_examples(file): subprocess.check_output(["python", file]) except subprocess.CalledProcessError: pytest.fail(f"Failed to execute {file}") + + +if __name__ == "__main__": + print("ERROR: This test can only be run with `pytest`.") + sys.exit(1) From 74f287e4522f237c0687fb1eabce1bfa9dc67d71 Mon Sep 17 00:00:00 2001 From: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> Date: Thu, 25 Jun 2026 09:09:14 -0700 Subject: [PATCH 11/12] Switch to `pydata_sphinx_theme`. --- pyproject.toml | 1 + uv.lock | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ www/conf.py | 18 +++++++++++------- www/index.rst | 8 ++++---- 4 files changed, 64 insertions(+), 11 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8127d23c..829f78d0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -118,6 +118,7 @@ ignore = [ dev = [ "furo>=2025.9.25", "graphviz>=0.21", + "pydata-sphinx-theme>=0.15.4", "pyparsing>=3.2.5", "pytest>=8.4.2", "pytest-cov>=7.0.0", diff --git a/uv.lock b/uv.lock index cac79b06..3253c5f0 100644 --- a/uv.lock +++ b/uv.lock @@ -506,6 +506,51 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] +[[package]] +name = "pydata-sphinx-theme" +version = "0.15.4" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.11'", +] +dependencies = [ + { name = "accessible-pygments", marker = "python_full_version < '3.11'" }, + { name = "babel", marker = "python_full_version < '3.11'" }, + { name = "beautifulsoup4", marker = "python_full_version < '3.11'" }, + { name = "docutils", version = "0.21.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "packaging", marker = "python_full_version < '3.11'" }, + { name = "pygments", marker = "python_full_version < '3.11'" }, + { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/67/ea/3ab478cccacc2e8ef69892c42c44ae547bae089f356c4b47caf61730958d/pydata_sphinx_theme-0.15.4.tar.gz", hash = "sha256:7762ec0ac59df3acecf49fd2f889e1b4565dbce8b88b2e29ee06fdd90645a06d", size = 2400673, upload-time = "2024-06-25T19:28:45.041Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/d3/c622950d87a2ffd1654208733b5bd1c5645930014abed8f4c0d74863988b/pydata_sphinx_theme-0.15.4-py3-none-any.whl", hash = "sha256:2136ad0e9500d0949f96167e63f3e298620040aea8f9c74621959eda5d4cf8e6", size = 4640157, upload-time = "2024-06-25T19:28:42.383Z" }, +] + +[[package]] +name = "pydata-sphinx-theme" +version = "0.16.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.12'", + "python_full_version == '3.11.*'", +] +dependencies = [ + { name = "accessible-pygments", marker = "python_full_version >= '3.11'" }, + { name = "babel", marker = "python_full_version >= '3.11'" }, + { name = "beautifulsoup4", marker = "python_full_version >= '3.11'" }, + { name = "docutils", version = "0.22.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, + { name = "pygments", marker = "python_full_version >= '3.11'" }, + { name = "sphinx", version = "9.0.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.11.*'" }, + { name = "sphinx", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.12'" }, + { name = "typing-extensions", marker = "python_full_version >= '3.11'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/00/20/bb50f9de3a6de69e6abd6b087b52fa2418a0418b19597601605f855ad044/pydata_sphinx_theme-0.16.1.tar.gz", hash = "sha256:a08b7f0b7f70387219dc659bff0893a7554d5eb39b59d3b8ef37b8401b7642d7", size = 2412693, upload-time = "2024-12-17T10:53:39.537Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/0d/8ba33fa83a7dcde13eb3c1c2a0c1cc29950a048bfed6d9b0d8b6bd710b4c/pydata_sphinx_theme-0.16.1-py3-none-any.whl", hash = "sha256:225331e8ac4b32682c18fcac5a57a6f717c4e632cea5dd0e247b55155faeccde", size = 6723264, upload-time = "2024-12-17T10:53:35.645Z" }, +] + [[package]] name = "pygments" version = "2.20.0" @@ -540,6 +585,8 @@ svg = [ dev = [ { name = "furo" }, { name = "graphviz" }, + { name = "pydata-sphinx-theme", version = "0.15.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "pydata-sphinx-theme", version = "0.16.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pyparsing" }, { name = "pytest" }, { name = "pytest-cov" }, @@ -568,6 +615,7 @@ provides-extras = ["blif", "svg"] dev = [ { name = "furo", specifier = ">=2025.9.25" }, { name = "graphviz", specifier = ">=0.21" }, + { name = "pydata-sphinx-theme", specifier = ">=0.15.4" }, { name = "pyparsing", specifier = ">=3.2.5" }, { name = "pytest", specifier = ">=8.4.2" }, { name = "pytest-cov", specifier = ">=7.0.0" }, diff --git a/www/conf.py b/www/conf.py index 56aed23f..f6295f04 100644 --- a/www/conf.py +++ b/www/conf.py @@ -36,15 +36,19 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_baseurl = "https://ucsbarchlab.github.io/PyRTL" -html_theme = "furo" +html_theme = "pydata_sphinx_theme" html_theme_options = { - "sidebar_hide_name": True, - # For view/edit this page buttons. - "source_repository": "https://github.com/UCSBarchlab/pyrtl", - "source_branch": "development", - "source_directory": "www/", + "use_edit_page_button": True, + "navbar_persistent": [], + "footer_end": [], } -html_title = "PyRTL" +html_context = { + "github_user": "UCSBarchlab", + "github_repo": "pyrtl", + "github_version": "development", + "doc_path": "www", +} +html_title = "Home" html_logo = "../docs/brand/pyrtl_logo.png" html_show_sphinx = False html_show_copyright = False diff --git a/www/index.rst b/www/index.rst index d5046489..4825354f 100644 --- a/www/index.rst +++ b/www/index.rst @@ -332,7 +332,7 @@ Related Projects .. toctree:: :hidden: - ReadTheDocs Documentation - GitHub Project - PyRTL Examples - PyRTL Notebook Examples + ReadTheDocs + GitHub + Examples + Notebook Examples From 6af79c4670e0b1ae6d061a5e11ca78227cc1090e Mon Sep 17 00:00:00 2001 From: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> Date: Thu, 25 Jun 2026 09:24:58 -0700 Subject: [PATCH 12/12] Default to light mode. --- www/conf.py | 1 + 1 file changed, 1 insertion(+) diff --git a/www/conf.py b/www/conf.py index f6295f04..3178cf53 100644 --- a/www/conf.py +++ b/www/conf.py @@ -47,6 +47,7 @@ "github_repo": "pyrtl", "github_version": "development", "doc_path": "www", + "default_mode": "light", } html_title = "Home" html_logo = "../docs/brand/pyrtl_logo.png"