Doc updates
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
Customizing the CPU interface
|
Customizing the CPU interface
|
||||||
=============================
|
=============================
|
||||||
|
|
||||||
Bring your own SystemVerilog interface
|
Use your own existing SystemVerilog interface definition
|
||||||
--------------------------------------
|
--------------------------------------------------------
|
||||||
|
|
||||||
This exporter comes pre-bundled with its own SystemVerilog interface declarations.
|
This exporter comes pre-bundled with its own SystemVerilog interface declarations.
|
||||||
What if you already have your own SystemVerilog interface declaration that you prefer?
|
What if you already have your own SystemVerilog interface declaration that you prefer?
|
||||||
@@ -11,14 +11,15 @@ Not a problem! As long as your interface definition is similar enough, it is eas
|
|||||||
to customize and existing CPUIF definition.
|
to customize and existing CPUIF definition.
|
||||||
|
|
||||||
|
|
||||||
The SystemVerilog interface definition bundled with this project for :ref:`cpuif_axi4lite`
|
As an example, let's use the SystemVerilog interface definition for
|
||||||
uses the following style and naming conventions:
|
:ref:`cpuif_axi4lite` that is bundled with this project. This interface uses
|
||||||
|
following style and naming conventions:
|
||||||
|
|
||||||
* SystemVerilog interface type name is ``axi4lite_intf``
|
* SystemVerilog interface type name is ``axi4lite_intf``
|
||||||
* Defines modports named ``master`` and ``slave``
|
* Defines modports named ``master`` and ``slave``
|
||||||
* Interface signals are all upper-case: ``AWREADY``, ``AWVALID``, etc...
|
* Interface signals are all upper-case: ``AWREADY``, ``AWVALID``, etc...
|
||||||
|
|
||||||
Lets assume your preferred SV interface uses a slightly different naming convention:
|
Lets assume your preferred SV interface definition uses a slightly different naming convention:
|
||||||
|
|
||||||
* SystemVerilog interface type name is ``axi4_lite_interface``
|
* SystemVerilog interface type name is ``axi4_lite_interface``
|
||||||
* Modports are capitalized and use suffixes ``Master_mp`` and ``Slave_mp``
|
* Modports are capitalized and use suffixes ``Master_mp`` and ``Slave_mp``
|
||||||
@@ -33,7 +34,7 @@ Rather than rewriting a new CPU interface definition, you can extend and adjust
|
|||||||
class My_AXI4Lite(AXI4Lite_Cpuif):
|
class My_AXI4Lite(AXI4Lite_Cpuif):
|
||||||
@property
|
@property
|
||||||
def port_declaration(self) -> str:
|
def port_declaration(self) -> str:
|
||||||
# Override the port declaration text to use the alternate type name and modport style
|
# Override the port declaration text to use the alternate interface name and modport style
|
||||||
return "axi4_lite_interface.Slave_mp s_axil"
|
return "axi4_lite_interface.Slave_mp s_axil"
|
||||||
|
|
||||||
def signal(self, name:str) -> str:
|
def signal(self, name:str) -> str:
|
||||||
@@ -73,4 +74,5 @@ you can define your own.
|
|||||||
Extend your class from :class:`peakrdl_regblock.cpuif.CpuifBase`.
|
Extend your class from :class:`peakrdl_regblock.cpuif.CpuifBase`.
|
||||||
Define the port declaration string, and provide a reference to your template file.
|
Define the port declaration string, and provide a reference to your template file.
|
||||||
|
|
||||||
3. Use your new CPUIF definition when exporting!
|
3. Use your new CPUIF definition when exporting.
|
||||||
|
4. If you think the CPUIF protocol is something others might find useful, let me know and I can add it to PeakRDL!
|
||||||
|
|||||||
@@ -11,9 +11,13 @@ onread/onwrite
|
|||||||
^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^
|
||||||
|OK|
|
|OK|
|
||||||
|
|
||||||
|
All onread/onwrite actions are supported (except for ruser/wuser)
|
||||||
|
|
||||||
rclr/rset
|
rclr/rset
|
||||||
^^^^^^^^^
|
^^^^^^^^^
|
||||||
See ``onread``
|
|OK|
|
||||||
|
|
||||||
|
See ``onread``. These are effectively aliases of the onread property.
|
||||||
|
|
||||||
singlepulse
|
singlepulse
|
||||||
^^^^^^^^^^^
|
^^^^^^^^^^^
|
||||||
@@ -32,6 +36,7 @@ If set, field will get cleared back to zero after being written.
|
|||||||
sw
|
sw
|
||||||
^^^
|
^^^
|
||||||
|OK|
|
|OK|
|
||||||
|
All sw access modes are supported except for ``w1`` and ``rw1``.
|
||||||
|
|
||||||
swacc
|
swacc
|
||||||
^^^^^
|
^^^^^
|
||||||
@@ -83,8 +88,9 @@ reference
|
|||||||
|
|
||||||
woclr/woset
|
woclr/woset
|
||||||
^^^^^^^^^^^
|
^^^^^^^^^^^
|
||||||
See ``onwrite``
|
|OK|
|
||||||
|
|
||||||
|
See ``onwrite``. These are effectively aliases of the onwrite property.
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -126,6 +132,9 @@ boolean
|
|||||||
reference
|
reference
|
||||||
|OK|
|
|OK|
|
||||||
|
|
||||||
|
Reference to any single-bit internal object to drive this control.
|
||||||
|
|
||||||
|
|
||||||
hwenable/hwmask
|
hwenable/hwmask
|
||||||
^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^
|
||||||
|OK|
|
|OK|
|
||||||
@@ -157,6 +166,7 @@ boolean
|
|||||||
reference
|
reference
|
||||||
|OK|
|
|OK|
|
||||||
|
|
||||||
|
Reference to any single-bit internal object to drive this control.
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -535,8 +545,14 @@ precedence
|
|||||||
^^^^^^^^^^
|
^^^^^^^^^^
|
||||||
|OK|
|
|OK|
|
||||||
|
|
||||||
|
Control whether hardware or software has precedence when field value update
|
||||||
|
contention occurs. Software has precedence by default.
|
||||||
|
|
||||||
reset
|
reset
|
||||||
^^^^^
|
^^^^^
|
||||||
|
Control the reset value of the field's storage element.
|
||||||
|
If not specified, the field will not be reset.
|
||||||
|
|
||||||
integer
|
integer
|
||||||
|OK|
|
|OK|
|
||||||
|
|
||||||
@@ -546,3 +562,5 @@ reference
|
|||||||
resetsignal
|
resetsignal
|
||||||
^^^^^^^^^^^
|
^^^^^^^^^^^
|
||||||
|OK|
|
|OK|
|
||||||
|
|
||||||
|
Provide an alternate reset trigger for this field.
|
||||||
|
|||||||
@@ -13,3 +13,5 @@ Only ``accesswidth`` that is equal to the ``regwidth`` is supported (default if
|
|||||||
regwidth
|
regwidth
|
||||||
--------
|
--------
|
||||||
|OK|
|
|OK|
|
||||||
|
|
||||||
|
Control the bit-width of the register.
|
||||||
|
|||||||
Reference in New Issue
Block a user