From c3bfc2d4160e9213ac3ec9774c84609da8a7196a Mon Sep 17 00:00:00 2001 From: Alex Mykyta Date: Mon, 21 Feb 2022 22:16:56 -0800 Subject: [PATCH] documentation --- docs/api.rst | 5 ++ docs/architecture.rst | 4 ++ docs/conf.py | 2 + docs/cpuif/addressing.rst | 9 --- docs/cpuif/apb3.rst | 34 +++++++-- docs/cpuif/axi4lite.rst | 28 ++++++-- docs/cpuif/introduction.rst | 26 +++++++ docs/cpuif/passthrough.rst | 9 +++ docs/diagrams/diagrams.odg | Bin 14506 -> 14545 bytes docs/diagrams/readback.png | Bin 0 -> 90728 bytes docs/hwif.rst | 51 ++++++++++++-- docs/index.rst | 65 +++++++++++++++--- .../regblock/cpuif/axi4lite/axi4lite_tmpl.sv | 5 +- peakrdl/regblock/exporter.py | 50 +++++++++++++- 14 files changed, 251 insertions(+), 37 deletions(-) create mode 100644 docs/api.rst delete mode 100644 docs/cpuif/addressing.rst create mode 100644 docs/cpuif/introduction.rst create mode 100644 docs/cpuif/passthrough.rst create mode 100644 docs/diagrams/readback.png diff --git a/docs/api.rst b/docs/api.rst new file mode 100644 index 0000000..8101436 --- /dev/null +++ b/docs/api.rst @@ -0,0 +1,5 @@ +Exporter API +============ + +.. autoclass:: peakrdl.regblock.RegblockExporter + :members: diff --git a/docs/architecture.rst b/docs/architecture.rst index 8492ad9..4de1188 100644 --- a/docs/architecture.rst +++ b/docs/architecture.rst @@ -49,6 +49,10 @@ fanin re-timing stage can be enabled. This stage is automatically inserted at a balanced point in the read-data reduction so that fanin and logic-levels are optimally reduced. +.. figure:: diagrams/readback.png + :width: 65% + :align: center + A second optional read response retiming register can be enabled in-line with the path back to the CPU interface layer. This can be useful if the CPU interface protocol used has a fully combinational response path, and the design's complexity requires diff --git a/docs/conf.py b/docs/conf.py index ccb7faf..82fc076 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -29,6 +29,8 @@ author = 'Alex Mykyta' # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.napoleon', "sphinxcontrib.wavedrom", ] render_using_wavedrompy = True diff --git a/docs/cpuif/addressing.rst b/docs/cpuif/addressing.rst deleted file mode 100644 index b1b758f..0000000 --- a/docs/cpuif/addressing.rst +++ /dev/null @@ -1,9 +0,0 @@ -CPU Interface Addressing -======================== - -TODO: write about the following: - -* cpuif addressing is always 0-based (aka relative to the block's root) -* It is up to the decoder to handle the offset -* Address bus width is pruned down -* recommend that the decoder/interconnect reserve a full ^2 block of addresses to simplify decoding diff --git a/docs/cpuif/apb3.rst b/docs/cpuif/apb3.rst index 4c44e71..351f674 100644 --- a/docs/cpuif/apb3.rst +++ b/docs/cpuif/apb3.rst @@ -1,11 +1,31 @@ -AMBA APB3 -========= +AMBA 3 APB +========== -TODO: Describe the following +Implements the register block using an +`AMBA 3 APB `_ +CPU interface. -* List of interface signals +The APB3 CPU interface comes in two i/o port flavors: - * interface name & modports (link to advanced topics in case user wants to override) - * flattened equivalents +SystemVerilog Interface + Class: :class:`peakrdl.regblock.cpuif.apb3.APB3_Cpuif` -* Download link to SV interface definition + Interface Definition: :download:`apb3_intf.sv <../../test/lib/cpuifs/apb3/apb3_intf.sv>` + +Flattened inputs/outputs + Flattens the interface into descrete input and output ports. + + Class: :class:`peakrdl.regblock.cpuif.apb3.APB3_Cpuif_flattened` + + +.. warning:: + Some IP vendors will incorrectly implement the address signalling + assuming word-addresses. (that each increment of ``PADDR`` is the next word) + + For this exporter, values on the interface's ``PADDR`` input are interpreted + as byte-addresses. (a 32-bit APB bus increments ``PADDR`` in steps of 4) + Although APB protocol does not allow for unaligned transfers, this is in + accordance to the official AMBA bus specification. + + Be sure to double-check the interpretation of your interconnect IP. A simple + bit-shift operation can be used to correct this if necessary. diff --git a/docs/cpuif/axi4lite.rst b/docs/cpuif/axi4lite.rst index 465626b..a8861f7 100644 --- a/docs/cpuif/axi4lite.rst +++ b/docs/cpuif/axi4lite.rst @@ -1,11 +1,29 @@ AMBA AXI4-Lite ============== -TODO: Describe the following +Implements the register block using an +`AMBA AXI4-Lite `_ +CPU interface. -* List of interface signals +The AXI4-Lite CPU interface comes in two i/o port flavors: - * interface name & modports (link to advanced topics in case user wants to override) - * flattened equivalents +SystemVerilog Interface + Class: :class:`peakrdl.regblock.cpuif.axi4lite.AXI4Lite_Cpuif` -* Download link to SV interface definition + Interface Definition: :download:`apb3_intf.sv <../../test/lib/cpuifs/axi4lite/axi4lite_intf.sv>` + +Flattened inputs/outputs + Flattens the interface into descrete input and output ports. + + Class: :class:`peakrdl.regblock.cpuif.axi4lite.AXI4Lite_Cpuif_flattened` + + +Pipelined Performance +--------------------- +This implementation of the AXI4-Lite interface supports transaction pipelining +which can significantly improve performance of back-to-back transfers. + +In order to support transaction pipelining, the CPU interface will accept multiple +concurrent transactions. The number of outstanding transactions allowed is automatically +determined based on the register file pipeline depth (affected by retiming options), +and influences the depth of the internal transaction response skid buffer. diff --git a/docs/cpuif/introduction.rst b/docs/cpuif/introduction.rst new file mode 100644 index 0000000..3d622de --- /dev/null +++ b/docs/cpuif/introduction.rst @@ -0,0 +1,26 @@ +Introduction +============ + +The CPU interface logic layer provides an abstraction between the +application-specific bus protocol and the internal register file logic. +When exporting a design, you can select from a variety of popular CPU interface +protocols. These are described in more detail in the pages that follow. + + +Addressing +^^^^^^^^^^ + +The regblock exporter will always generate its address decoding logic using local +address offsets. The absolute address offset of your device shall be +handled by your system interconnect, and present addresses to the regblock that +only include the local offset. + +For example, consider a fictional AXI4-Lite device that: + +- Consumes 4 kB of address space (``0x000``-``0xFFF``). +- The device is instantiated in your system at global address ``0x80_0000``-``0x80_0FFF``. +- After decoding transactions destined to the device, the system interconnect shall + ensure that AxADDR values are presented to the device as relative addresses - within + the range of ``0x000``-``0xFFF``. +- If care is taken to align the global address offset to the size of the device, + creating a relative address is as simple as pruning down address bits. diff --git a/docs/cpuif/passthrough.rst b/docs/cpuif/passthrough.rst new file mode 100644 index 0000000..9b2640b --- /dev/null +++ b/docs/cpuif/passthrough.rst @@ -0,0 +1,9 @@ +CPUIF Passthrough +================= + +This CPUIF mode bypasses the protocol converter stage and directly exposes the +internal CPUIF handshake signals to the user. + +Class: :class:`peakrdl.regblock.cpuif.passthrough.PassthroughCpuif` + +For more details on the protocol itself, see: :ref:`cpuif_protocol`. diff --git a/docs/diagrams/diagrams.odg b/docs/diagrams/diagrams.odg index 5d500fe10549edb8edbe84388643c7afbc67f459..fdc1d82284c0a8708e205e5c87c67fdcffb7c753 100644 GIT binary patch literal 14545 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 literal 14506 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 aVSJU90Q<?#iC2d(O<9 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.`` + +For example, a simple design such as: + +.. code-block:: systemrdl + + addrmap my_design { + reg { + field { + sw = rw; + hw = rw; + we; + } my_field; + } my_reg[2]; + }; + +... results in the following struct members: + +.. code-block:: text + + hwif_out.my_reg[0].my_field.value + hwif_in.my_reg[0].my_field.next + hwif_in.my_reg[0].my_field.we + hwif_out.my_reg[1].my_field.value + hwif_in.my_reg[1].my_field.next + hwif_in.my_reg[1].my_field.we + +For brevity in this documentation, hwif features will be described using shorthand +notation that omits the hierarchcal path: ``hwif_out..`` diff --git a/docs/index.rst b/docs/index.rst index 0165210..2b0b814 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,17 +1,25 @@ -PeakRDL-regblock -================ +Introduction +============ -.. important:: +PeakRDL-regblock is a free and open-source control & status register (CSR) compiler. +This code generator that will translate your SystemRDL register descripton into +a synthesizable SystemVerilog RTL module that can be easily instantiated into +your hardware design. - This project has no official releases yet and is still under active development! +* Generates fully synthesizable SystemVerilog RTL (IEEE 1800-2012) +* Options for many popular CPU interface protocols (AMBA APB, AXI4-Lite, and more) +* Configurable pipelining options for designs with fast clock rates. +* Broad support for SystemRDL 2.0 features -TODO: Intro text - Installing ---------- +.. important:: + + This project has no official releases yet and is still under active development! + Install from `PyPi`_ using pip .. code-block:: bash @@ -22,6 +30,45 @@ Install from `PyPi`_ using pip .. _PyPi: https://pypi.org/project/peakrdl-regblock + +Quick Start +----------- + +Below is a simple example that demonstrates how to generate a SystemVerilog +implementation from SystemRDL source. + +.. code-block:: python + :emphasize-lines: 2-3, 23-27 + + from systemrdl import RDLCompiler, RDLCompileError + from peakrdl.regblock import RegblockExporter + from peakrdl.regblock.cpuif.apb3 import APB3_Cpuif + + input_files = [ + "PATH/TO/my_register_block.rdl" + ] + + # Create an instance of the compiler + rdlc = RDLCompiler() + try: + # Compile your RDL files + for input_file in input_files: + rdlc.compile_file(input_file) + + # Elaborate the design + root = rdlc.elaborate() + except RDLCompileError: + # A compilation error occurred. Exit with error code + sys.exit(1) + + # Export a SystemVerilog implementation + exporter = RegblockExporter() + exporter.export( + root, "path/to/output_dir", + cpuif_cls=APB3_Cpuif + ) + + Links ----- @@ -39,17 +86,19 @@ Links self architecture hwif + api limitations .. toctree:: :hidden: :caption: CPU Interfaces - cpuif/addressing + cpuif/introduction cpuif/apb3 cpuif/axi4lite - cpuif/advanced + cpuif/passthrough cpuif/internal_protocol + cpuif/advanced .. toctree:: :hidden: diff --git a/peakrdl/regblock/cpuif/axi4lite/axi4lite_tmpl.sv b/peakrdl/regblock/cpuif/axi4lite/axi4lite_tmpl.sv index 5ca4753..287cc3a 100644 --- a/peakrdl/regblock/cpuif/axi4lite/axi4lite_tmpl.sv +++ b/peakrdl/regblock/cpuif/axi4lite/axi4lite_tmpl.sv @@ -1,5 +1,4 @@ -// LATENCY = {{cpuif.regblock_latency}} -// MAX OUTSTANDING = {{cpuif.max_outstanding}} +// Max Outstanding Transactions: {{cpuif.max_outstanding}} logic [{{clog2(cpuif.max_outstanding+1)-1}}:0] axil_n_in_flight; logic axil_prev_was_rd; logic axil_arvalid; @@ -11,6 +10,8 @@ logic axil_wvalid; logic [{{cpuif.data_width-1}}:0] axil_wdata; logic axil_aw_accept; logic axil_resp_acked; + +// Transaction request accpetance always_ff {{get_always_ff_event(cpuif.reset)}} begin if({{get_resetsignal(cpuif.reset)}}) begin axil_prev_was_rd <= '0; diff --git a/peakrdl/regblock/exporter.py b/peakrdl/regblock/exporter.py index dbb677d..e4e075e 100644 --- a/peakrdl/regblock/exporter.py +++ b/peakrdl/regblock/exporter.py @@ -16,7 +16,7 @@ from .utils import get_always_ff_event from .scan_design import DesignScanner class RegblockExporter: - def __init__(self, **kwargs): + def __init__(self, **kwargs) -> None: user_template_dir = kwargs.pop("user_template_dir", None) # Check for stray kwargs @@ -57,7 +57,53 @@ class RegblockExporter: ) - def export(self, node: Union[RootNode, AddrmapNode], output_dir:str, **kwargs): + def export(self, node: Union[RootNode, AddrmapNode], output_dir:str, **kwargs) -> None: + """ + Parameters + ---------- + node: AddrmapNode + Top-level SystemRDL node to export. + output_dir: str + Path to the output directory where generated SystemVerilog will be written. + Output includes two files: a module definition and package definition. + cpuif_cls: :class:`peakrdl.regblock.cpuif.CpuifBase` + Specify the class type that implements the CPU interface of your choice. + Defaults to AMBA APB3. + module_name: str + Override the SystemVerilog module name. By default, the module name + is the top-level node's name. + package_name: str + Override the SystemVerilog package name. By default, the package name + is the top-level node's name with a "_pkg" suffix. + reuse_hwif_typedefs: bool + By default, the exporter will attempt to re-use hwif struct definitions for + nodes that are equivalent. This allows for better modularity and type reuse. + Struct type names are derived using the SystemRDL component's type + name and declared lexical scope path. + + If this is not desireable, override this parameter to ``False`` and structs + will be generated more naively using their hierarchical paths. + retime_read_fanin: bool + Set this to ``True`` to enable additional read path retiming. + For large register blocks that operate at demanding clock rates, this + may be necessary in order to manage large readback fan-in. + + The retiming flop stage is automatically placed in the most optimal point in the + readback path so that logic-levels and fanin are minimized. + + Enabling this option will increase read transfer latency by 1 clock cycle. + retime_read_response: bool + Set this to ``True`` to enable an additional retiming flop stage between + the readback mux and the CPU interface response logic. + This option may be beneficial for some CPU interfaces that implement the + response logic fully combinationally. Enabling this stage can better + isolate timing paths in the register file from the rest of your system. + + Enabling this when using CPU interfaces that already implement the + response path sequentially may not result in any meaningful timing improvement. + + Enabling this option will increase read transfer latency by 1 clock cycle. + """ # If it is the root node, skip to top addrmap if isinstance(node, RootNode): self.top_node = node.top