ADM-XRC SDK 2.8.1 User Guide (Linux)
© Copyright 2001-2009 Alpha Data
procedure plxsim_read_const_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 constant 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_const_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_const_demand. When called, the procedure 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 local bus byte address of the transfer, which will not be incremented during the transfer. The address need not be aligned to the word size of the local data bus, although an unaligned address generally makes little sense when using constant addressing. The manner in which the address is output on the local bus depends upon the type of local bus agent being used:
After the first word of data has been transferred, LBE# will revert to being determined by the be parameter, and on the last word of the transfer, also determined by any residual bytes that do not comprise a full word 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.