Local bus arbitration
The local bus protocol permits multiple master-capable agents to reside on the local bus. The bus arbiter on an ADM-XRC series card permits at most one master-capable agent on the local bus to be a master at any time. This section describes the arbitration protocol.
Each master-capable agent on the local bus has a pair of signals HOLD and HOLDA. These are not bussed to other agents; each agent has its own pair. These signals work as follows:
- HOLD is driven by a local bus agent to the arbiter, and must be asserted when that agent wishes to initiate one or more bursts on the local bus.
- HOLDA is driven by the bus arbiter to a local bus agent, and is asserted when ownership of the bus is granted to that agent.
- The length of its tenure on the local bus is at the discretion of an agent, and a local bus agent must voluntarily give up the bus by deasserting its HOLD signal when it has finished. On some models, sideband signals connected between agents can cause a master to relinquish the bus at the request of another agent.
- Once an agent deasserts its HOLD signal, it must wait for the arbiter to deassert its HOLDA signal before reasserting HOLD.
In an ADM-XRC series card, the respective HOLD/HOLDA pairs are given different names to avoid confusion between the two:
- The FPGA's pair are named FHOLD and FHOLDA. The FPGA should generally use !FHOLDA to qualify the assertion of LADS# when deciding whether or not to respond to a burst as a slave.
- The local bus bridge's pair are named LHOLD and LHOLDA.
The HDL source code samples use this convention.
The following timing diagrams illustrate the arbitration protocol:
Single-burst bus tenure
Multi-burst bus tenure
Two bus tenures
Single-burst bus tenure
The following timing diagram illustrates a bus tenure that consists of a single burst.

Multi-burst bus tenure
The following timing diagram illustrates a bus tenure that consists of a more than one burst.

Note:
- A master may perform an arbitrary number of bursts during its bus tenure. A master voluntarily gives up the bus when it has finished with the bus, by deasserting its HOLD signal.
- On some models, sideband signals connected between agents can cause an agent to relinquish the bus at the request of another agent.
- Strictly speaking, since the master retains ownership of the bus between the bursts that make up its tenure, it could drive LADS#, LBLAST# etc. between bursts with no possibility of contention.
Two bus tenures
The following timing diagram illustrates two bus tenures by the same master.

Note:
- After an agent transitions HOLD, it must wait for the arbiter to acknowledge the change via HOLDA, before transitioning HOLD again.