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.

When the decode unit issues a bus request, it continues decoding and executing additional<br />

instructions from the command memory as long as it is not waiting on an external event. An example<br />

of an external event would be a synchronization signal. In addition, a request delay parameter may<br />

suspend the decode unit issuance of commands to the bus unit until an internal command delay<br />

counter has expired.<br />

The default size of the bus command array is 1024 entries. This may be increased or decreased by<br />

updating the PLB_Master_CMD_Array_Size constant in the declarations HDL file of the toolkit.<br />

5.2.3 Internal Master Data Memory<br />

The PLB master 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 is maintained by the master<br />

model during simulation. During this initialization with mem_init commands, a valid bit is set for each<br />

address entry. Any bus functional commands which specify an address that matches a valid entry in<br />

the memory array will use the memory array for the bus functional command operation. The data<br />

used in mem_init statements provides the expect data that is used for the read data comparison<br />

checks within the master model. It also provides the data used during a write transfer to a memory<br />

address.<br />

For write cycles, the internal master data memory will be used as source data when the bus functional<br />

command address matches the command array. For read cycles, the data which is received from the<br />

PLB bus will automatically be compared with the internal master data memory.<br />

Error messages will be generated when data miscompares occur. Only the valid bytes for a particular<br />

command will be checked. The valid bytes are determined by the transfer size as defined in the PLB<br />

architecture.<br />

The memory array is declared as a linear array of 64-bit address/control and 128-bit data for each<br />

array entry:<br />

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

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

The valid bit is set during model initialization for each memory entry used and when a memory entry is<br />

allocated in the case of a read memory access miss. When a read command reloads a memory entry<br />

with bus data, the dirty bit is set. This may be used with test environments to check if bus commands<br />

have executed and caused a master memory update in addition to data miscompares.<br />

The default size of the master memory array is 64k bytes. This may be increased or decreased by<br />

updating the PLB_Master_Mem_Size in the declaration HDL file of the toolkit.<br />

5.2.4 Command Modes<br />

This section discusses the possible modes that are available for a PLB master device. PLB masters<br />

may be configured to act in either Command mode or Auto mode. A description of these modes are:<br />

• Command Mode<br />

18 <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!