Move SV interface files into a common location. Add license info (#20)

This commit is contained in:
Alex Mykyta
2022-09-27 20:52:06 -07:00
parent 6fa5031ada
commit 1aa9d8b603
11 changed files with 19 additions and 41 deletions

View File

@@ -29,7 +29,7 @@ The APB3 CPU interface comes in two i/o port flavors:
SystemVerilog Interface SystemVerilog Interface
Class: :class:`peakrdl_regblock.cpuif.apb3.APB3_Cpuif` Class: :class:`peakrdl_regblock.cpuif.apb3.APB3_Cpuif`
Interface Definition: :download:`apb3_intf.sv <../../tests/lib/cpuifs/apb3/apb3_intf.sv>` Interface Definition: :download:`apb3_intf.sv <../../hdl-src/apb3_intf.sv>`
Flattened inputs/outputs Flattened inputs/outputs
Flattens the interface into discrete input and output ports. Flattens the interface into discrete input and output ports.
@@ -49,7 +49,7 @@ The APB4 CPU interface comes in two i/o port flavors:
SystemVerilog Interface SystemVerilog Interface
Class: :class:`peakrdl_regblock.cpuif.apb4.APB4_Cpuif` Class: :class:`peakrdl_regblock.cpuif.apb4.APB4_Cpuif`
Interface Definition: :download:`apb4_intf.sv <../../tests/lib/cpuifs/apb4/apb4_intf.sv>` Interface Definition: :download:`apb4_intf.sv <../../hdl-src/apb4_intf.sv>`
Flattened inputs/outputs Flattened inputs/outputs
Flattens the interface into discrete input and output ports. Flattens the interface into discrete input and output ports.

View File

@@ -1,31 +0,0 @@
AMBA 4 APB
==========
Implements the register block using an
`AMBA 4 APB <https://developer.arm.com/documentation/ihi0024/d/?lang=en>`_
CPU interface.
The APB4 CPU interface comes in two i/o port flavors:
SystemVerilog Interface
Class: :class:`peakrdl_regblock.cpuif.apb4.APB4_Cpuif`
Interface Definition: :download:`apb4_intf.sv <../../tests/lib/cpuifs/apb4/apb4_intf.sv>`
Flattened inputs/outputs
Flattens the interface into discrete input and output ports.
Class: :class:`peakrdl_regblock.cpuif.apb4.APB4_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.

View File

@@ -12,7 +12,7 @@ The AXI4-Lite CPU interface comes in two i/o port flavors:
SystemVerilog Interface SystemVerilog Interface
Class: :class:`peakrdl_regblock.cpuif.axi4lite.AXI4Lite_Cpuif` Class: :class:`peakrdl_regblock.cpuif.axi4lite.AXI4Lite_Cpuif`
Interface Definition: :download:`axi4lite_intf.sv <../../tests/lib/cpuifs/axi4lite/axi4lite_intf.sv>` Interface Definition: :download:`axi4lite_intf.sv <../../hdl-src/axi4lite_intf.sv>`
Flattened inputs/outputs Flattened inputs/outputs
Flattens the interface into discrete input and output ports. Flattens the interface into discrete input and output ports.

View File

@@ -13,7 +13,7 @@ to customize and existing CPUIF definition.
As an example, let's use the SystemVerilog interface definition for As an example, let's use the SystemVerilog interface definition for
:ref:`cpuif_axi4lite` that is bundled with this project. This interface uses :ref:`cpuif_axi4lite` that is bundled with this project. This interface uses
following style and naming conventions: the 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``

9
hdl-src/README.md Normal file
View File

@@ -0,0 +1,9 @@
# HDL Source Files
This folder contains some SystemVerilog definitions that are useful collateral
to be used alongside this project.
These reference files are free to use for any purpose and are not covered by
this project's GPLv3 license.
If for whatever reason you feel the need to reference a license when using
these, then lets go with the [MIT License](https://choosealicense.com/licenses/mit/)

View File

@@ -5,10 +5,10 @@ from peakrdl_regblock.cpuif.apb3 import APB3_Cpuif, APB3_Cpuif_flattened
class APB3(CpuifTestMode): class APB3(CpuifTestMode):
cpuif_cls = APB3_Cpuif cpuif_cls = APB3_Cpuif
rtl_files = [ rtl_files = [
"apb3_intf.sv", "../../../../hdl-src/apb3_intf.sv",
] ]
tb_files = [ tb_files = [
"apb3_intf.sv", "../../../../hdl-src/apb3_intf.sv",
"apb3_intf_driver.sv", "apb3_intf_driver.sv",
] ]
tb_template = "tb_inst.sv" tb_template = "tb_inst.sv"

View File

@@ -5,10 +5,10 @@ from peakrdl_regblock.cpuif.apb4 import APB4_Cpuif, APB4_Cpuif_flattened
class APB4(CpuifTestMode): class APB4(CpuifTestMode):
cpuif_cls = APB4_Cpuif cpuif_cls = APB4_Cpuif
rtl_files = [ rtl_files = [
"apb4_intf.sv", "../../../../hdl-src/apb4_intf.sv",
] ]
tb_files = [ tb_files = [
"apb4_intf.sv", "../../../../hdl-src/apb4_intf.sv",
"apb4_intf_driver.sv", "apb4_intf_driver.sv",
] ]
tb_template = "tb_inst.sv" tb_template = "tb_inst.sv"

View File

@@ -5,10 +5,10 @@ from peakrdl_regblock.cpuif.axi4lite import AXI4Lite_Cpuif, AXI4Lite_Cpuif_flatt
class AXI4Lite(CpuifTestMode): class AXI4Lite(CpuifTestMode):
cpuif_cls = AXI4Lite_Cpuif cpuif_cls = AXI4Lite_Cpuif
rtl_files = [ rtl_files = [
"axi4lite_intf.sv", "../../../../hdl-src/axi4lite_intf.sv",
] ]
tb_files = [ tb_files = [
"axi4lite_intf.sv", "../../../../hdl-src/axi4lite_intf.sv",
"axi4lite_intf_driver.sv", "axi4lite_intf_driver.sv",
] ]
tb_template = "tb_inst.sv" tb_template = "tb_inst.sv"