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 mode enables the user to generate PLB read/write bus transactions and perform other<br />

operations using commands which are decoded and executed from within the PLB master model.<br />

These commands are parsed by the BFC, loaded into the PLB master model at simulation time 0,<br />

and decoded from an internal command array after PLB reset is de-asserted. The following is an<br />

example of how to specify a 32-bit single read transaction:<br />

read(addr=00001000,size=0000,be=1111)<br />

Command mode is the default mode for the master model, and the user is not required to specify a<br />

BFL configuration parameter for this mode.<br />

• Auto Mode<br />

This mode enables PLB read/write bus cycles to be generated automatically without the need for<br />

read/write master commands in the bfl. In this mode, the PLB master model will generate PLB<br />

cycles automatically based on an internal random number generator and pre-programmed<br />

minimum and maximum delays of the available parameters. The random number generator selects<br />

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

minimum and maximum range may be initialized by the user through a configuration command.<br />

The PLB master model will use auto mode when a configuration command enables it, such as:<br />

configure(master_auto_mode=true)<br />

5.2.5 Burst Operations<br />

The PLB master model supports the PLB burst protocol. The model accesses the internal master<br />

memory during the initial bus request and also during each data phases of the burst transfer. The PLB<br />

master model terminates a burst transfer when the user specified number of data transfers has<br />

occurred or when a slave terminates the burst transfer with a burst terminate signal. The PLB master<br />

model supports a burst_continue_mode where the PLB master will request the bus again if a slave<br />

terminate signal is received and the PLB master has more data to transfer. To configure the PLB<br />

master model for burst_continue_mode, use the following configuration statement:<br />

configure(burst_continue_mode=true)<br />

The PLB master model also supports the PLB fixed length burst protocol. The master model will<br />

automatically de-assert the M_rd/wrBurst signal when: the ‘BE’ parameter is non-zero; the ‘size’<br />

parameter indicates a burst cycle; the corresponding number of data transfers takes place.<br />

Note: For fixed length bursts, the PLB architecture allows the pre-mature de-assertion of the<br />

M_rd/wrburst signal before the number of data beat transfers specified by the byte enables.<br />

The PLB architecture also allows masters to continue bursting beyond the fixed length burst<br />

beat count if a slave burst terminate signal is NOT received during a fixed length burst transfer.<br />

To allow verification of this architectural flexibility, the BURST_COUNT parameter can be<br />

programmed to a different number of beats than that specified on the byte enables. When the<br />

BURST_COUNT parameter is less than the BE data beat count, the burst signal will be prematurely<br />

de-asserted. When the BURST_COUNT is greater than the BE data beat count, the<br />

master will continue bursting IF a slave burst terminate signal was not asserted to the master.<br />

IT IS STRONGLY RECOMMENDED THAT LOGIC DESIGNS WHICH SUPPORT BURST<br />

AND FIXED LENGTH BURST BE TESTED THOROUGHLY WITH ALL COMBINATIONS OF<br />

BYTE ENABLES, MASTER BURST ABORTS, AND SLAVE BURST TERMINATES TO<br />

MAXIMIZE CORE COMPATIBILITY AND COMPLIANCE.<br />

Version 4.9.2 PLB <strong>Bus</strong> <strong>Model</strong>s 19

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

Saved successfully!

Ooh no, something went wrong!