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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5.3.1 Slave <strong>Model</strong> Operation<br />

The PLB slave model operation section discusses the slave bus commands and modes, internal<br />

slave data memory structure and look-up algorithms, ordered write cycles (PLB_ordered), internal<br />

slave memory checking, burst modes, conversion cycles with different PLB device sizes, and pipeline<br />

modes.<br />

5.3.2 Slave <strong>Bus</strong> Commands and Modes<br />

The PLB slave model responds to PLB memory cycles (PLB_type=000) when there is a valid request<br />

on the PLB bus and the PLB address is within the PLB slave’s configured address space. Separate<br />

read_response and write_response commands allow programmable, overlapped read and write data<br />

phases. The slave model stores the read and write response parameters in separate command<br />

arrays which allows independent and parallel control of the data buses. Although address phases<br />

occur sequentially, it is possible for a slave to perform out of order memory access relative to the<br />

address phases depending on how the master cycles are generated and how the slave model is<br />

programmed to respond to the bus cycles. The PLB slave model memory uses the Sl_rdDAck and<br />

Sl_wrDAck signals to perform internal memory accesses needed to satisfy PLB read and write bus<br />

cycle requests.<br />

In the PLB slave model, memory access for reads always occurs one clock before the Sl_rdDAck<br />

assertion, and the memory access for writes always occurs in the clock that Sl_wrDAck is asserted.<br />

Also, writes have precedence in the memory access logic of the PLB slave memory model. If<br />

Sl_rdDAck is asserted in a cycle after a wrDAck, then the read data always reflects the new data<br />

written. If a rdDAck is asserted in a cycle before or during a wrDAck, then the read data always<br />

reflects the old data. Since the PLB architecture allows out of order rd/wrDAcks with respect to<br />

addrAck from the same slave, it is the responsibility of the system designer to resolve data coherency<br />

issues when simultaneous write/read cycles occur.<br />

Slave memory and configuration parameters are initialized at simulation time 0 with the command file<br />

generated by the PLB bus functional compiler. The slave response commands are initialized in the<br />

slave command array at simulation time 0, but they are executed sequentially during simulation.<br />

Separate read and write internal command pointers advance when bus transfers complete, a<br />

rearbitrate occurs, or a master abort occurs. Intermediate data checking during simulation can be<br />

done by using memory check commands which are executed when an intercommunication signal is<br />

received by the slave. These memory check commands are independent of the slave response<br />

command flow.<br />

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

updating the PLB_slave_CMD_array_size parameter in the PLB_DCL declaration HDL file of the<br />

toolkit.<br />

5.3.3 Command Modes<br />

This section discusses the possible modes that are available for a PLB slave device. PLB slaves may<br />

be configured to act in either Configuration mode, Command mode, or Auto mode. A description of<br />

these modes are:<br />

• Configuration Mode<br />

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

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

Saved successfully!

Ooh no, something went wrong!