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 ?
> 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_exampleAMBA-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.
Thanks for your reply, "You will need to make a bridge component." what component you are refering to ? it is the bridge in the AMBA-PV user guid ? Do you have a simple example that doese such thing ? Can the AMBA TLM libray used to create an interconnect, so we can create a system with 2 MAsters compeeting over the memory ?Can we get support from ARM ?
Arm don't supply such a bridge and don't have an example, unfortunately, but if you have a valid entitle for our product e.g. Cycle Models or Fast Models, you can contact Arm support and we are happy to help you create a bridge.
Or, our EDA partners might help out in this area so if you use a 3rd party's Virtual Prototyping system, it is worth to contact them if they have such a bridge or provide you with consulting services.