TestBencher Pro and Reactive Test Bench Help

7.2 Master and Slave Transactions

7.2 Master and Slave Transactions

Previous topic Next topic  

7.2 Master and Slave Transactions

Previous topic Next topic  

Many bus specifications differentiate between master and slave devices. A master device initiates transactions on a bus and a slave device performs an action in response to a transaction initiated by a master device. Master transactions are used to model transactions initiated by a master device, where the user makes an Apply call to initiate a single transaction. Slave transactions, by contrast, run continuously after an Apply call is made, so they are typically designed to block until a master transaction is initiated to the slave device, respond appropriately, then resume waiting for another master transaction.

For TestBencher, any timing diagram can be a Master or a Slave transactor by appropriately setting the Diagram Execution radio buttons in the Diagram Settings dialog (see Section 9.8: Diagram Setting Dialog for more information about the Diagram Execution settings). TestBencher generates appropriate transaction calls for each timing diagram based on this setting. The following table describes the typical operations available for master and slave transactions:

Desired Operation

Method call to initiate operation

Initiate a single master transaction

Apply

Execute pipelined master transactions

Consecutive Apply-nowait calls (pipeling controlled by pipeline markers within the diagrams)

Abort a master transaction

Abort

Start slave device or clock generator

Apply-looping_nowait

Stop slave device or clock generator

Abort

Section 7.1: Template, Sequencer, and Transaction Calls has more information about the Insert Diagram Subroutine Call dialog. The PCI example in the SynaptiCAD>Examples>TestBencher directory has both the master and slave diagrams drawn for the specification. You can load the project for your particular language and experiment with the transactions.