ADM-XRC SDK 2.8.1 User Guide (Linux)
© Copyright 2001-2009 Alpha Data
procedure plxsim_read_demand( order : in natural; address : in std_logic_vector; be : in byte_enable_t; data : out byte_vector_t; nxfered : out natural; signal bus_in : in locbus_in_t; signal bus_out : out locbus_out_t; signal dd_in : in locbus_ddma_in_t; signal dd_out : out locbus_ddma_out_t);
Performs a demand-mode DMA local bus read transfer with incrementing local bus address.
This procedure uses the bus_in, bus_out, dd_in, and dd_out signals to drive a local bus agent as shown in this figure, where the stimulus process makes calls to plxsim_read_demand:
Before calling this procedure, a stimulus process should ensure that the FPGA (ie. the unit under test) has asserted LDREQ#. This can be accomplished by calling plxsim_wait_demand before calling plxsim_read_demand.
When called, plxsim_read_demand will continue to perform transfers until one of two conditions is met:
During the transfer(s), LDACK# will be asserted with the proper timing with respect to LADS# etc.
The order parameter specifies the width of the local data bus. Valid values are:
The address parameter specifies the starting local bus byte address of the transfer, which will be incremented during the transfer. It need not be aligned to the word size of the local data bus. The manner in which the address is output on the local bus depends upon the type of local bus agent being used:
The be parameter specifies the byte enables to be used for the transfer. They are active high, and so a '1' in a particular element of be results in a '0' in the corresponding bit of LBE#. The length of be must be the same as the length of data.
The data parameter returns the data read from the local bus. For a nonmultiplexed address/data bus, the data comes from the LD signal, whereas for a multiplexed address/data bus, the data comes from the LAD signal. The length of data must be the same as the length of be.
The nxfered parameter returns the actual number of bytes read from the local bus.