Editing Arbiter Component Ports
The OpenBus Editor provides various features and commands for the manipulation of ports with respect to an Arbiter component. The following sections look at the management of ports for a placed Arbiter component – how they can be added and removed, and how they can be rearranged with respect to their order.
Port Addition/Removal
When you initially place an Arbiter component it will have a default number of ports – specifically one master port (m0
) and two slave ports (s0
and s1
).
You may have a design where more than two masters require access to a shared resource, for example a processor and several memory-based peripheral I/O devices. The Arbiter component used to handle connection between masters and slave resource will therefore have to be modified to have the correct number of ports.
To add a port, simply click on the button on the OpenBus toolbar (or use the Place » Add OpenBus Port command). A dimmed port shape will appear floating on the cursor. As you move the shape next to the perimeter of an Arbiter component, it will become solid – darker gray with a blue outline (Figure 1). Position the new port as required and click to effect placement.
Ports can also be clustered into groups around an Arbiter component. Up to four cluster groups are possible (analogous to the four main points on a compass). To add a new port to an existing group, ensure you place the port directly next to an existing port in that group (Figure 2).
To remove a port, simply click to select it in the workspace, then press the Delete key. The port will be removed from the Arbiter component, providing such removal is valid. Arbiter components must always have at least one master and one slave port, which cannot be removed.
Rearranging Ports
You may find, during the course of wiring up the OpenBus components, that certain ports could be better placed to ease wiring and make the system more readable. The OpenBus Editor provides the ability to change the location of a port (or ports) around a component.
To change the location of a port, simply click on the port and drag it to the required location on the perimeter of its parent component. The port number displayed on each slave port of an Arbiter component enables you to quickly identify each slave port (Figure 3).