This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

AMBA TLM 2.0 Library & AMBA-PV Extensions to TLM

I am trying to use AMBA TLM library developer guid in order to build a simple system of 2 masters and a memory as slave  that will use 
AXI protocol to comunicate.

Using only the  AMBA TLM library developer guid I was able to create simple master and slave that talks AXI :

Monitor mon1("mon1");
TransARMToGeneric<128> a_to_g("ARM_to_generic", ARM::TLM::PROTOCOL_AXI4);
TransGenericToARM<128> g_to_a("generic_to_ARM", ARM::TLM::PROTOCOL_AXI4);
Monitor mon2("mon2");
Memory mem("mem");

Can I add an interconnect to this code ? 

I see the examples that are in the AMBA-PV Extensions to TLM developer guid, the DMA example and the EXcluseve example, it is 
not cleare on what protocol the master and slave are communicating, Can this example be configured to work in AXI ? 

Parents
  • > Can I add an interconnect to this code ? 

    AMBA TLM library is intended for use with Cycle Models or custom AT/CA models (See the link #1 below), while AMBA-PV Extensions to TLM 2.0 is intended for use with Fast Models or custom LT models (See the link #2 below) so AMBA-TLM (AT/CA) and AMBA-PV (LT) cannot be directly connected. You will need to make a bridge component.

    1. developer.arm.com/.../amba-tlm
    --
    This library is intended for use with:
    - Arm Cycle Models
    - Custom AT and CA models used for virtual prototype development
    - Third-party models that use supported AMBA interfaces
    --

    2. https://developer.arm.com/documentation/100962/0200/Introduction/AMBA-PV-extensions
    --
    The key features are:
    ...
    - Targeted at Loosely Timed (LT) coding style of TLM 2.0, this class includes blocking transport, Direct Memory Interface (DMI), and debug interfaces.
    --

    > I see the examples that are in the AMBA-PV Extensions to TLM developer guid, the DMA example and the EXcluseve example, it is 
    > not cleare on what protocol the master and slave are communicating, Can this example be configured to work in AXI ? 

    As described in the doc of AMBA-PV Extension to TLM 2.0 developer guide, you can find the DMA example and the Exclusive example at the following directories in the Fast Models installation path respectively.

    - $MAXCORE_HOME/AMBA-PV/examples/dma_example
    - $MAXCORE_HOME/AMBA-PV/examples/exclusive_example

    AMBA-PV Extensions are optional extensions so if you don't need to replicate any of the AMBA bus protocols (e.g. ACE, AXI, AHB, and APB) in your system, you don't need to use the extensions. In this case, the system can be AMBA bus protocol agnostic.

    The Exclusive example doesn't use any of the AMBA bus specific attributes (they only use some mandatory attributes such as AMBA_PV_OKAY, AMBA_PV_EXOKAY, AMBA_PV_SLVERR) so it is a generic system not tied to any of AMBA bus protocols.

    The DMA example uses AMBA_PV_INCR (which is used for the Burst type attribute) so this is specific to AMBA bus protocols. Since APB doesn't support burst type, the bus protocol in the system can be regarded as ACE, AXI, or AHB.

    Answer to your question - Yes, if you add AXI specific attributes to the system, it can be an AXI based system.

Reply
  • > Can I add an interconnect to this code ? 

    AMBA TLM library is intended for use with Cycle Models or custom AT/CA models (See the link #1 below), while AMBA-PV Extensions to TLM 2.0 is intended for use with Fast Models or custom LT models (See the link #2 below) so AMBA-TLM (AT/CA) and AMBA-PV (LT) cannot be directly connected. You will need to make a bridge component.

    1. developer.arm.com/.../amba-tlm
    --
    This library is intended for use with:
    - Arm Cycle Models
    - Custom AT and CA models used for virtual prototype development
    - Third-party models that use supported AMBA interfaces
    --

    2. https://developer.arm.com/documentation/100962/0200/Introduction/AMBA-PV-extensions
    --
    The key features are:
    ...
    - Targeted at Loosely Timed (LT) coding style of TLM 2.0, this class includes blocking transport, Direct Memory Interface (DMI), and debug interfaces.
    --

    > I see the examples that are in the AMBA-PV Extensions to TLM developer guid, the DMA example and the EXcluseve example, it is 
    > not cleare on what protocol the master and slave are communicating, Can this example be configured to work in AXI ? 

    As described in the doc of AMBA-PV Extension to TLM 2.0 developer guide, you can find the DMA example and the Exclusive example at the following directories in the Fast Models installation path respectively.

    - $MAXCORE_HOME/AMBA-PV/examples/dma_example
    - $MAXCORE_HOME/AMBA-PV/examples/exclusive_example

    AMBA-PV Extensions are optional extensions so if you don't need to replicate any of the AMBA bus protocols (e.g. ACE, AXI, AHB, and APB) in your system, you don't need to use the extensions. In this case, the system can be AMBA bus protocol agnostic.

    The Exclusive example doesn't use any of the AMBA bus specific attributes (they only use some mandatory attributes such as AMBA_PV_OKAY, AMBA_PV_EXOKAY, AMBA_PV_SLVERR) so it is a generic system not tied to any of AMBA bus protocols.

    The DMA example uses AMBA_PV_INCR (which is used for the Burst type attribute) so this is specific to AMBA bus protocols. Since APB doesn't support burst type, the bus protocol in the system can be regarded as ACE, AXI, or AHB.

    Answer to your question - Yes, if you add AXI specific attributes to the system, it can be an AXI based system.

Children