09.03.2013 Views

Processor Local Bus Functional Model Toolkit User's Manual

Processor Local Bus Functional Model Toolkit User's Manual

Processor Local Bus Functional Model Toolkit User's Manual

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

This response mode allows the user to change the slave read/write response on a test case basis.<br />

For each PLB master cycle that is received, the PLB slave model uses an internal configuration<br />

register to respond to all PLB read or write memory cycles which are active within its address<br />

space. This mode is the default configuration of the PLB slave model. The configuration delay<br />

values can be initialized using configuration commands such as:<br />

configure(read_aack_delay=2,read_dack_delay=2-1-1-<br />

1,write_aack_delay=1,write_dack_delay=1-1-1-1)<br />

This mode is the default mode of the PLB Slave model, and the user is not required to specify a<br />

BFL configuration parameter for this mode.<br />

• Command Mode<br />

This response mode enables the user to change the slave read/write response on a transaction<br />

basis. For each PLB master cycle that is received, the PLB slave model uses a response<br />

command from an internal read or write command array when a PLB read or write memory cycle is<br />

active within its address space. The PLB slave model uses command mode instead of<br />

configuration mode when read/write response commands are programmed in a test case such as:<br />

read_response(aack_delay=2,dack_delay=3)<br />

When the BFC parses “response” commands, it automatically initializes the appropriate internal<br />

slave model register to enable “command” mode. The user is not required to specify a BFL<br />

configuration parameter to use this mode.<br />

• Auto Mode<br />

This response mode enables various cycle responses without using pre-programmed read/write<br />

slave response commands. In this mode, the PLB slave model generates address and data phase<br />

completion signals automatically, based on an internal random number generator and preprogrammed<br />

minimum and maximum delays. The random number generator selects a new delay<br />

value between the minimum and maximum using a uniform distribution function. The minimum and<br />

maximum range may be initialized by the user using a configuration command. The PLB slave<br />

model requires a configuration command for enabling auto mode. The following configure<br />

statement is an example:<br />

configure(slave_auto_mode=true)<br />

5.3.4 Internal Slave Data Memory Structure and Look-Up Algorithms<br />

The PLB slave model contains an internal memory array which can be initialized by the user with<br />

mem_init bus functional commands. Each entry of the memory array represents a 64-bit address and<br />

128-bit data.<br />

– PLB_slave_addr_array(0 to 63) - bits 0 to 61:address, bit 62:dirty bit, bit 63:valid bit<br />

– PLB_slave_data_array(0 to 127) - 4 word data field<br />

– PLB_slave_dirty_array(0 to 15) - bytes written (half word) field<br />

Bits 62 and 63of the PLB_slave_addr_array are not used for addressing bytes within the PLB slave<br />

model memory, but they are used by the internal slave model memory interface logic to maintain the<br />

status of memory array elements. The valid bit is set during model initialization for each memory entry<br />

used and also during simulation when a memory entry is allocated in the case of a write memory<br />

access miss. When a write command reloads a memory entry with bus data, the dirty bit is set. This<br />

24 <strong>Processor</strong> <strong>Local</strong> <strong>Bus</strong> <strong>Functional</strong> <strong>Model</strong> <strong>Toolkit</strong> Version 4.9.2

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!