Skip to content

Commit b95ccf4

Browse files
committed
Deploy preview for PR 18 🛫
1 parent 2851126 commit b95ccf4

2 files changed

Lines changed: 26 additions & 26 deletions

File tree

pr-preview/pr-18/_sources/chipflow-lib/using-pin-signatures.rst.txt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ Pin signatures define the external interface of your design. ChipFlow provides s
2020
Available Pin Signatures
2121
~~~~~~~~~~~~~~~~~~~~~~~~
2222

23-
- ``UARTSignature()`` - Serial UART interface (TX, RX)
24-
- ``GPIOSignature(pin_count)`` - General purpose I/O pins
25-
- ``SPISignature()`` - SPI master interface (SCK, COPI, CIPO, CSN)
26-
- ``I2CSignature()`` - I2C bus interface (SCL, SDA)
27-
- ``QSPIFlashSignature()`` - Quad SPI flash interface
28-
- ``JTAGSignature()`` - JTAG debug interface
23+
- :py:class:`~chipflow.platform.UARTSignature` - Serial UART interface (TX, RX)
24+
- :py:class:`~chipflow.platform.GPIOSignature` - General purpose I/O pins
25+
- :py:class:`~chipflow.platform.SPISignature` - SPI master interface (SCK, COPI, CIPO, CSN)
26+
- :py:class:`~chipflow.platform.I2CSignature` - I2C bus interface (SCL, SDA)
27+
- :py:class:`~chipflow.platform.QSPIFlashSignature` - Quad SPI flash interface
28+
- :py:class:`~chipflow.platform.JTAGSignature` - JTAG debug interface
2929

30-
All pin signatures accept ``IOModelOptions`` to customize their electrical and behavioral properties (see below).
30+
All pin signatures accept :py:class:`~chipflow.platform.IOModelOptions` to customize their electrical and behavioral properties (see below).
3131

3232
Using Pin Signatures in Your Top-Level Design
3333
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -63,7 +63,7 @@ Pin signatures are generic and independent of any particular IP implementation,
6363
IO Model Options
6464
~~~~~~~~~~~~~~~~
6565

66-
All pin signatures accept ``IOModelOptions`` to configure the electrical and behavioral properties of the I/O pins:
66+
All pin signatures accept :py:class:`~chipflow.platform.IOModelOptions` to configure the electrical and behavioral properties of the I/O pins:
6767

6868
.. code-block:: python
6969
@@ -94,8 +94,8 @@ Available IOModelOptions
9494
- **clock_domain** (``str``) - Name of the I/O's clock domain (default: ``'sync'``). Pins with different clock domains must be in separate signatures.
9595
- **buffer_in** (``bool``) - Enable input buffer on the I/O pad.
9696
- **buffer_out** (``bool``) - Enable output buffer on the I/O pad.
97-
- **sky130_drive_mode** (:class:`Sky130DriveMode`) - Drive mode for Sky130 output buffers (see below).
98-
- **trip_point** (:class:`IOTripPoint`) - Input buffer trip point configuration:
97+
- **sky130_drive_mode** (:py:class:`~chipflow.platform.Sky130DriveMode`) - Drive mode for Sky130 output buffers (see below).
98+
- **trip_point** (:py:class:`~chipflow.platform.IOTripPoint`) - Input buffer trip point configuration:
9999

100100
- ``IOTripPoint.CMOS`` - CMOS switching levels (30%/70%) referenced to I/O power domain
101101
- ``IOTripPoint.TTL`` - TTL levels (low < 0.8V, high > 2.0V)
@@ -126,7 +126,7 @@ For Sky130 chips, you can configure the I/O cell drive mode:
126126
Software Driver Signatures
127127
---------------------------
128128

129-
The ``SoftwareDriverSignature`` allows you to attach C/C++ driver code to your hardware peripherals. This is useful for providing software APIs that match your hardware registers.
129+
The :py:class:`~chipflow.platform.SoftwareDriverSignature` allows you to attach C/C++ driver code to your hardware peripherals. This is useful for providing software APIs that match your hardware registers.
130130

131131
Creating a Peripheral with Driver Code
132132
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -279,7 +279,7 @@ The driver code is automatically collected during the ChipFlow build process and
279279
Attaching Software Binaries
280280
----------------------------
281281

282-
The ``attach_data()`` function allows you to attach pre-built software binaries (like bootloaders) to flash memory interfaces.
282+
The :py:func:`~chipflow.platform.attach_data` function allows you to attach pre-built software binaries (like bootloaders) to flash memory interfaces.
283283

284284
Basic Usage
285285
~~~~~~~~~~~
@@ -305,7 +305,7 @@ Basic Usage
305305
306306
return m
307307
308-
The ``attach_data()`` function:
308+
The :py:func:`~chipflow.platform.attach_data` function:
309309

310310
1. Takes the **external interface** (``self.flash``) from your top-level component
311311
2. Takes the **internal component** (``m.submodules.spiflash``) that implements the flash controller

pr-preview/pr-18/chipflow-lib/using-pin-signatures.html

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -394,14 +394,14 @@ <h2>Pin Signatures<a class="headerlink" href="#pin-signatures" title="Link to th
394394
<section id="available-pin-signatures">
395395
<h3>Available Pin Signatures<a class="headerlink" href="#available-pin-signatures" title="Link to this heading"></a></h3>
396396
<ul class="simple">
397-
<li><p><code class="docutils literal notranslate"><span class="pre">UARTSignature()</span></code> - Serial UART interface (TX, RX)</p></li>
398-
<li><p><code class="docutils literal notranslate"><span class="pre">GPIOSignature(pin_count)</span></code> - General purpose I/O pins</p></li>
399-
<li><p><code class="docutils literal notranslate"><span class="pre">SPISignature()</span></code> - SPI master interface (SCK, COPI, CIPO, CSN)</p></li>
400-
<li><p><code class="docutils literal notranslate"><span class="pre">I2CSignature()</span></code> - I2C bus interface (SCL, SDA)</p></li>
401-
<li><p><code class="docutils literal notranslate"><span class="pre">QSPIFlashSignature()</span></code> - Quad SPI flash interface</p></li>
402-
<li><p><code class="docutils literal notranslate"><span class="pre">JTAGSignature()</span></code> - JTAG debug interface</p></li>
397+
<li><p><a class="reference internal" href="autoapi/chipflow/platform/index.html#chipflow.platform.UARTSignature" title="chipflow.platform.UARTSignature"><code class="xref py py-class docutils literal notranslate"><span class="pre">UARTSignature</span></code></a> - Serial UART interface (TX, RX)</p></li>
398+
<li><p><a class="reference internal" href="autoapi/chipflow/platform/index.html#chipflow.platform.GPIOSignature" title="chipflow.platform.GPIOSignature"><code class="xref py py-class docutils literal notranslate"><span class="pre">GPIOSignature</span></code></a> - General purpose I/O pins</p></li>
399+
<li><p><a class="reference internal" href="autoapi/chipflow/platform/index.html#chipflow.platform.SPISignature" title="chipflow.platform.SPISignature"><code class="xref py py-class docutils literal notranslate"><span class="pre">SPISignature</span></code></a> - SPI master interface (SCK, COPI, CIPO, CSN)</p></li>
400+
<li><p><a class="reference internal" href="autoapi/chipflow/platform/index.html#chipflow.platform.I2CSignature" title="chipflow.platform.I2CSignature"><code class="xref py py-class docutils literal notranslate"><span class="pre">I2CSignature</span></code></a> - I2C bus interface (SCL, SDA)</p></li>
401+
<li><p><a class="reference internal" href="autoapi/chipflow/platform/index.html#chipflow.platform.QSPIFlashSignature" title="chipflow.platform.QSPIFlashSignature"><code class="xref py py-class docutils literal notranslate"><span class="pre">QSPIFlashSignature</span></code></a> - Quad SPI flash interface</p></li>
402+
<li><p><a class="reference internal" href="autoapi/chipflow/platform/index.html#chipflow.platform.JTAGSignature" title="chipflow.platform.JTAGSignature"><code class="xref py py-class docutils literal notranslate"><span class="pre">JTAGSignature</span></code></a> - JTAG debug interface</p></li>
403403
</ul>
404-
<p>All pin signatures accept <code class="docutils literal notranslate"><span class="pre">IOModelOptions</span></code> to customize their electrical and behavioral properties (see below).</p>
404+
<p>All pin signatures accept <a class="reference internal" href="autoapi/chipflow/platform/index.html#chipflow.platform.IOModelOptions" title="chipflow.platform.IOModelOptions"><code class="xref py py-class docutils literal notranslate"><span class="pre">IOModelOptions</span></code></a> to customize their electrical and behavioral properties (see below).</p>
405405
</section>
406406
<section id="using-pin-signatures-in-your-top-level-design">
407407
<h3>Using Pin Signatures in Your Top-Level Design<a class="headerlink" href="#using-pin-signatures-in-your-top-level-design" title="Link to this heading"></a></h3>
@@ -433,7 +433,7 @@ <h3>Using Pin Signatures in Your Top-Level Design<a class="headerlink" href="#us
433433
</section>
434434
<section id="io-model-options">
435435
<h3>IO Model Options<a class="headerlink" href="#io-model-options" title="Link to this heading"></a></h3>
436-
<p>All pin signatures accept <code class="docutils literal notranslate"><span class="pre">IOModelOptions</span></code> to configure the electrical and behavioral properties of the I/O pins:</p>
436+
<p>All pin signatures accept <a class="reference internal" href="autoapi/chipflow/platform/index.html#chipflow.platform.IOModelOptions" title="chipflow.platform.IOModelOptions"><code class="xref py py-class docutils literal notranslate"><span class="pre">IOModelOptions</span></code></a> to configure the electrical and behavioral properties of the I/O pins:</p>
437437
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">chipflow.platform</span><span class="w"> </span><span class="kn">import</span> <span class="n">GPIOSignature</span><span class="p">,</span> <span class="n">IOTripPoint</span>
438438

439439
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">({</span>
@@ -462,8 +462,8 @@ <h4>Available IOModelOptions<a class="headerlink" href="#available-iomodeloption
462462
<li><p><strong>clock_domain</strong> (<code class="docutils literal notranslate"><span class="pre">str</span></code>) - Name of the I/O’s clock domain (default: <code class="docutils literal notranslate"><span class="pre">'sync'</span></code>). Pins with different clock domains must be in separate signatures.</p></li>
463463
<li><p><strong>buffer_in</strong> (<code class="docutils literal notranslate"><span class="pre">bool</span></code>) - Enable input buffer on the I/O pad.</p></li>
464464
<li><p><strong>buffer_out</strong> (<code class="docutils literal notranslate"><span class="pre">bool</span></code>) - Enable output buffer on the I/O pad.</p></li>
465-
<li><p><strong>sky130_drive_mode</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">Sky130DriveMode</span></code>) - Drive mode for Sky130 output buffers (see below).</p></li>
466-
<li><p><strong>trip_point</strong> (<code class="xref py py-class docutils literal notranslate"><span class="pre">IOTripPoint</span></code>) - Input buffer trip point configuration:</p>
465+
<li><p><strong>sky130_drive_mode</strong> (<a class="reference internal" href="autoapi/chipflow/platform/index.html#chipflow.platform.Sky130DriveMode" title="chipflow.platform.Sky130DriveMode"><code class="xref py py-class docutils literal notranslate"><span class="pre">Sky130DriveMode</span></code></a>) - Drive mode for Sky130 output buffers (see below).</p></li>
466+
<li><p><strong>trip_point</strong> (<a class="reference internal" href="autoapi/chipflow/platform/index.html#chipflow.platform.IOTripPoint" title="chipflow.platform.IOTripPoint"><code class="xref py py-class docutils literal notranslate"><span class="pre">IOTripPoint</span></code></a>) - Input buffer trip point configuration:</p>
467467
<ul>
468468
<li><p><code class="docutils literal notranslate"><span class="pre">IOTripPoint.CMOS</span></code> - CMOS switching levels (30%/70%) referenced to I/O power domain</p></li>
469469
<li><p><code class="docutils literal notranslate"><span class="pre">IOTripPoint.TTL</span></code> - TTL levels (low &lt; 0.8V, high &gt; 2.0V)</p></li>
@@ -495,7 +495,7 @@ <h3>Sky130-Specific Pin Configuration<a class="headerlink" href="#sky130-specifi
495495
</section>
496496
<section id="software-driver-signatures">
497497
<h2>Software Driver Signatures<a class="headerlink" href="#software-driver-signatures" title="Link to this heading"></a></h2>
498-
<p>The <code class="docutils literal notranslate"><span class="pre">SoftwareDriverSignature</span></code> allows you to attach C/C++ driver code to your hardware peripherals. This is useful for providing software APIs that match your hardware registers.</p>
498+
<p>The <a class="reference internal" href="autoapi/chipflow/platform/index.html#chipflow.platform.SoftwareDriverSignature" title="chipflow.platform.SoftwareDriverSignature"><code class="xref py py-class docutils literal notranslate"><span class="pre">SoftwareDriverSignature</span></code></a> allows you to attach C/C++ driver code to your hardware peripherals. This is useful for providing software APIs that match your hardware registers.</p>
499499
<section id="creating-a-peripheral-with-driver-code">
500500
<h3>Creating a Peripheral with Driver Code<a class="headerlink" href="#creating-a-peripheral-with-driver-code" title="Link to this heading"></a></h3>
501501
<p>Here’s how to create a peripheral that includes software driver code:</p>
@@ -637,7 +637,7 @@ <h2>Using Peripherals in Your SoC<a class="headerlink" href="#using-peripherals-
637637
</section>
638638
<section id="attaching-software-binaries">
639639
<h2>Attaching Software Binaries<a class="headerlink" href="#attaching-software-binaries" title="Link to this heading"></a></h2>
640-
<p>The <code class="docutils literal notranslate"><span class="pre">attach_data()</span></code> function allows you to attach pre-built software binaries (like bootloaders) to flash memory interfaces.</p>
640+
<p>The <code class="xref py py-func docutils literal notranslate"><span class="pre">attach_data()</span></code> function allows you to attach pre-built software binaries (like bootloaders) to flash memory interfaces.</p>
641641
<section id="basic-usage">
642642
<h3>Basic Usage<a class="headerlink" href="#basic-usage" title="Link to this heading"></a></h3>
643643
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span>
@@ -660,7 +660,7 @@ <h3>Basic Usage<a class="headerlink" href="#basic-usage" title="Link to this hea
660660
<span class="k">return</span> <span class="n">m</span>
661661
</pre></div>
662662
</div>
663-
<p>The <code class="docutils literal notranslate"><span class="pre">attach_data()</span></code> function:</p>
663+
<p>The <code class="xref py py-func docutils literal notranslate"><span class="pre">attach_data()</span></code> function:</p>
664664
<ol class="arabic simple">
665665
<li><p>Takes the <strong>external interface</strong> (<code class="docutils literal notranslate"><span class="pre">self.flash</span></code>) from your top-level component</p></li>
666666
<li><p>Takes the <strong>internal component</strong> (<code class="docutils literal notranslate"><span class="pre">m.submodules.spiflash</span></code>) that implements the flash controller</p></li>

0 commit comments

Comments
 (0)