AMBA_APB

Parent Previous Next

Interfaces and Buses / AMBA / AMBA_APB
Block Name: AMBA_APB

Code File Location: VisualSim/actor/arch/Buses/AMBA_APB

Block Overview

o   The AMBA_APB Local bus protocol is a high performance bus for interconnecting peripheral chips to any independent processor/memory subsystems. 

Description

The AMBA bus block can be used as interconnect between high bandwidth peripherals closer to the CPU for performance gains.

To change the Bus Width, Open Instance and modify the Linear_Controller block to a different value.

AMBA APB features: 

- High performance 

- Pipelined operation

- Multiple bus masters

- Burst transfers

- Split transactions

Statistics collected for the AMBA Bus includes:

- Throughput in Mbps

- Utilization percentage

- Input Output transactions per sec (IOs_per_second)

- Input buffer occupancy in words

This model has been fully validated against the specification. Refer to the Bus Documentation section to see the validation details. This library component is used to assemble complex systems that contain one or more AMBA buses. The default AMBA comes with split-and-retry turned on and uses a First Come-First Server arbitration. The user can modify these two attributes to turn off Split-Retry and make the protocol Round-Robin. It is preferable to make this change on a per model instance basis and not in the original block implementation. To carryout this activity:

  1. Right-click on the block and select "Open Instance". 
  2. Configure APB_Controller and deselect Split-Retry.
  3. Select Custom for the Arbiter_Mode.


Parameter

Explanation

Example

Architecture_Name

ArchitectureSetup that this block is associated with for routing and statistics.

"Arch_Bus_1"

Bus_Name

Unique name for this bus in the model. it is used to generate statistics from ArchitectureSetup.

“Bus_1”

Bus_Speed_Mhz

Speed of the Bus.

100.0

Burst_Size_Bytes

Set to 64 Bytes. Determines the maximum length of a transaction. If a higher priority transaction coms, the next burst will wait until the higher priority item is transfered.

64

Bus_Width

4 (Int)

Width, needs to be set inside the block (use Right-click->Open Instance) as it is a menu pull-down.

Enable_Plots

Checkbox (Default is false)

Timing diagram showing activity of each port

Devices_Attached_To_Slave_By_Port

{{"Device_1"},

{"Device_2"},

{"Device_3"},

{"Device_4"},

{"Device_5"},

{"Device_6"},

{"Device_7"},

{"Device_8"}}
(Array of Strings)

This is an array that lists all the slaves that are connected via this port. The ports are match in order.

Round_Robin_Port_Array

{Bus_Name+"_Port_1",
Bus_Name+"_Port_2",
Bus_Name+"_Port_3",
Bus_Name+"_Port_4",
Bus_Name+"_Port_5",
Bus_Name+"_Port_6",
Bus_Name+"_Port_7",
Bus_Name+"_Port_8"}
(Array of Strings)

This is an array of the Round Robin order of execution.  User needs to Select RR for the Arbiter_Mode (use Right-click->Open Instance) as it is a menu pull-down.


Created with the Personal Edition of HelpNDoc: Free Web Help generator