Xilinx Yard Vacuum UG018 User Manual

PowerPC™ 405 Processor  
Block Reference Guide  
Embedded Development Kit  
UG018 (v2.0) August 20, 2004  
R
Download from Www.Somanuals.com. All Manuals Search And Download.  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
The following table shows the revision history for this document.  
Version  
1.0  
Revision  
09/ 16/ 02  
09/ 02/ 03  
04/ 26/ 04  
06/ 15/ 04  
08/ 20/ 04  
Initial Embedded Development Kit (EDK) release.  
Updated for EDK 6.1 release  
1.1  
DRAFT  
DRAFT  
2.0  
Early Access release (DRAFT).  
Second Early Access release (DRAFT).  
Updated to include Virtex-4 functionality.  
UG018 (v2.0) August 20, 2004  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Table of Contents  
Guide Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9  
Additional Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10  
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10  
Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12  
Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13  
PowerPC Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17  
PowerPC 405 Software Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21  
PowerPC 405 Hardware Organization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25  
PowerPC 405 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30  
Signal Naming Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34  
Clock and Power Management Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35  
CPU Control Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41  
Reset Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43  
Instruction-Side Processor Local Bus Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
5
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Data-Side Processor Local Bus Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68  
Device-Control Register Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98  
Internal Device Control Register (DCR) Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99  
External DCR Bus Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101  
External Interrupt Controller Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109  
PPC405 JTAG Debug Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111  
Debug Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128  
Trace Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131  
Additional FPGA Specific Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136  
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139  
Comparison of Virtex-II Pro and Virtex-4 OCM Controllers . . . . . . . . . . . . . . . . . 140  
Functional Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140  
OCM Controller Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142  
6
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Programmers Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158  
Application Notes and Reference Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181  
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181  
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183  
FCM Instruction Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184  
APU Controller Configuration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191  
Interface Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193  
FCM Interface Timing Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
7
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
RISCWatch Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207  
RISCTrace Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209  
Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213  
Timing Parameter Tables and Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224  
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233  
8
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Preface  
About This Guide  
This guide serves as a technical reference describing the hardware interface to the  
PowerPC® 405 processor block. It contains information on input/ output signals, timing  
relationships between signals, and the mechanisms software can use to control the  
interface operation. The document is intended for use by FPGA and system hardware  
designers and by system programmers who need to understand how certain operations  
affect hardware external to the processor.  
Guide Contents  
This manual contains the following chapters:  
x
x
x
PowerPC embedded-environment architecture and the features supported by the  
PowerPC 405.  
Chapter 2, “Input/ Output Interfaces,” describes the interface signals into and out of  
the PowerPC 405 processor block. Where appropriate, timing diagrams are provided  
to assist in understanding the functional relationship between multiple signals.  
Chapter 3, “PowerPC 405 OCM Controller,” describes the features, interface signals,  
timing specifications, and programming model for the PowerPC 405 on-chip memory  
(OCM) controller. The OCM controller serves as a dedicated interface between the  
block RAMs in the FPGA and OCM signals available on the embedded PowerPC 405  
core.  
x
x
Chapter 4, “PowerPC 405 APU Controller,” describes the Auxiliary Processor Unit  
controller, which allows the designer to extend the native PowerPC 405 instruction set  
with custom instructions that are executed by an FPGA Fabric Co-processor Module  
(FCM). The APU controller is available only for Virtex-4 family devices.  
requirements between the PowerPC 405 processor block and the RISCWatch and  
RISCTrace tools.  
x
x
Appendix B, Signal Summary,” lists all PowerPC 405 interface signals in alphabetical  
order.  
Appendix C, “Processor Block Timing Model,” explains all of the timing parameters  
associated with the IBM PPC405 Processor Block.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
9
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Preface: About This Guide  
Additional Resources  
For additional information, go to http:/ / support.xilinx.com. The following table lists  
some of the resources you can access from this website. You can also directly access these  
resources using the provided URLs.  
Resource  
Tutorials  
Description/URL  
Tutorials covering Xilinx design flows, from design entry to  
verification and debugging  
Answer Browser  
Database of Xilinx solution records  
Application Notes Descriptions of device-specific design techniques and approaches  
Data Sheets  
Device-specific information on Xilinx device characteristics,  
including readback, boundary scan, configuration, length count,  
and debugging  
Problem Solvers  
Tech Tips  
Interactive tools that allow you to troubleshoot your design issues  
Latest news, design tips, and patch information for the Xilinx  
design environment  
The following documents contain additional information of potential interest to readers of  
this manual:  
x
x
XILINX PowerPC Processor Reference Guide  
XILINX Virtex-II Pro Platform FPGA Handbook  
Conventions  
This document uses the following conventions. An example illustrates each convention.  
Typographical  
The following typographical conventions are used in this document:  
Convention  
Meaning or Use  
Example  
Messages, prompts, and  
Courier font  
program files that the system speed grade: - 100  
displays  
Literal commands that you  
ngdbuild design_name  
enter in a syntactical statement  
Courier bold  
10  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Convention  
Meaning or Use  
Example  
File o Open  
Ctrl+C  
Commands that you select  
from a menu  
Helvetica bold  
Keyboard shortcuts  
Variables in a syntax  
statement for which you must ngdbuild design_name  
supply values  
See the Development System  
Italic font  
References to other manuals  
Emphasis in text  
Reference Guide for more  
information.  
If a wire is drawn so that it  
overlaps the pin of a symbol,  
the two nets are not connected.  
An optional entry or  
parameter. However, in bus  
specifications, such as  
bus[7:0], they are required.  
ngdbuild [option_name]  
design_name  
Square brackets [ ]  
Braces { }  
A list of items from which you  
must choose one or more  
lowpwr ={on|off}  
lowpwr ={on|off}  
Separates items in a list of  
choices  
Vertical bar  
|
IOB #1: Name = QOUT’  
IOB #2: Name = CLKIN’  
.
.
.
Vertical ellipsis  
.
.
.
Repetitive material that has  
been omitted  
Repetitive material that has  
been omitted  
allow block block_name  
loc1 loc2 ... locn;  
Horizontal ellipsis . . .  
Online Document  
The following conventions are used in this document:  
Convention  
Meaning or Use  
Example  
See the section “Additional  
Resources” for details.  
Cross-reference link to a  
location in the current  
document  
Blue text  
Refer to Title Formats” in  
Chapter 1 for details.  
Reference to a location in  
another document  
See Figure 2-5 in the Virtex-II  
Handbook.  
Red text  
Go to http:/ / www.xilinx.com  
for the latest speed files.  
Blue, underlined text  
Hyperlink to a website (URL)  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
11  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Preface: About This Guide  
General Conventions  
Table 1-1 lists the general notational conventions used throughout this document.  
Table 1-1: General Notational Conventions  
Convention  
Definition  
mnemonic  
variable  
ActiveLow  
n
Instruction mnemonics are shown in lower-case bold.  
Variable items are shown in italic.  
An overbar indicates an active-low signal.  
A decimal number  
0xn  
A hexadecimal number  
0bn  
A binary number  
OBJECTb  
A single bit in any object (a register, an instruction, an  
address, or a field) is shown as a subscripted number or  
name  
OBJECTb:b  
A range of bits in any object (a register, an instruction,  
an address, or a field)  
OBJECTb,b, . . .  
A list of bits in any object (a register, an instruction, an  
address, or a field)  
REGISTER[FIELD]  
Fields within any register are shown in square brackets  
A list of fields in any register  
REGISTER[FIELD, FIELD . . .  
REGISTER[FIELD:FIELD]  
]
A range of fields in any register  
Registers  
Table 1-2 lists the PowerPC 405 registers used in this document and their descriptive  
names.  
Table 1-2: PowerPC 405 Registers  
Register  
CCR0  
Descriptive Name  
Core-configuration register 0  
DBCRn  
DBSR  
ESR  
Debug-control register n  
Debug-status register  
Exception-syndrome register  
Machine-state register  
Programmable-interval timer  
Time-base lower  
MSR  
PIT  
TBL  
TBU  
Time-base upper  
12  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Table 1-2: PowerPC 405 Registers (Continued)  
Register Descriptive Name  
TCR  
Timer-control register  
Timer-status register  
TSR  
Terms  
active  
As applied to signals, this term indicates a signal is in a state  
that causes an action to occur in the receiving device, or  
indicates an action occurred in the sending device. An active-  
high signal drives a logic 1 when active. An active-low signal  
drives a logic 0 when active.  
assert  
As applied to signals, this term indicates a signal is driven to its  
active state.  
atomic access  
A memory access that attempts to read from and write to the  
same address uninterrupted by other accesses to that address.  
The term refers to the fact that such transactions are indivisible.  
big endian  
Book-E  
A memory byte ordering where the address of an item  
corresponds to the most-significant byte.  
An version of the PowerPC architecture designed specifically  
for embedded applications.  
cache block  
cache line  
Synonym for cache line.  
A portion of a cache array that contains a copy of contiguous  
system-memory addresses. Cache lines are 32-bytes long and  
aligned on a 32-byte address.  
cache set  
clear  
Synonym for congruence class.  
To write a bit value of 0.  
clock  
Unless otherwise specified, this term refers to the PowerPC 405  
processor clock.  
congruence class  
cycle  
A collection of cache lines with the same index.  
The time between two successive rising edges of the associated  
clock.  
dead cycle  
deassert  
dirty  
A cycle in which no useful activity occurs on the associated  
interface.  
As applied to signals, this term indicates a signal is driven to its  
inactive state.  
An indication that cache information is more recent than the  
copy in memory.  
doubleword  
Eight bytes, or 64 bits.  
effective address  
The untranslated memory address as seen by a program.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
13  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Preface: About This Guide  
exception  
An abnormal event or condition that requires the processors  
attention. They can be caused by instruction execution or an  
external device. The processor records the occurrence of an  
exception and they often cause an interrupt to occur.  
fill buffer  
flush  
A buffer that receives and sends data and instructions between  
the processor and PLB. It is used when cache misses occur and  
when access to non-cacheable memory occurs.  
A cache operation that involves writing back a modified entry  
to memory, followed by an invalidation of the entry.  
GB  
Gigabyte, or one-billion bytes.  
Two bytes, or 16 bits.  
halfword  
hit  
An indication that requested information exists in the accessed  
cache array, the associated fill buffer, or on the corresponding  
OCM interface.  
inactive  
As applied to signals, this term indicates a signal is in a state  
that does not cause an action to occur, nor does it indicate an  
action occurred. An active-high signal drives a logic 0 when  
inactive. An active-low signal drives a logic 1 when inactive.  
interrupt  
The process of stopping the currently executing program so that  
an exception can be handled.  
invalidate  
A cache or TLB operation that causes an entry to be marked as  
invalid. An invalid entry can be subsequently replaced.  
KB  
Kilobyte, or one-thousand bytes.  
line buffer  
A buffer located in the cache array that can temporarily hold the  
contents of an entire cache line. It is loaded with the contents of  
a cache line when a cache hit occurs.  
line fill  
A transfer of the contents of the instruction or data line buffer  
into the appropriate cache.  
line transfer  
A transfer of an aligned, sequentially addressed 4-word or 8-  
word quantity (instructions or data) across the PLB interface.  
The transfer can be from the PLB slave (read) or to the PLB slave  
(write).  
little endian  
A memory byte ordering where the address of an item  
corresponds to the least-significant byte.  
logical address  
MB  
Synonym for effective address.  
Megabyte, or one-million bytes.  
memory  
miss  
Collectively, cache memory and system memory.  
An indication that requested information does not exist in the  
accessed cache array, the associated fill buffer, or on the  
corresponding OCM interface.  
14  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
OEA  
The PowerPC operating-environment architecture, which  
defines the memory-management model, supervisor-level  
registers and instructions, synchronization requirements, the  
exception model, and the time-base resources as seen by  
supervisor programs.  
on chip  
In system-on-chip implementations, this indicates on the same  
FPGA chip as the processor core, but external to the processor  
core.  
pending  
As applied to interrupts, this indicates that an exception  
occurred, but the interrupt is disabled. The interrupt occurs  
when it is later enabled.  
physical address  
The address used to access physically-implemented memory.  
This address can be translated from the effective address. When  
address translation is not used, this address is equal to the  
effective address.  
PLB  
Processor local bus.  
privileged mode  
The operating mode typically used by system software.  
Privileged operations are allowed and software can access all  
registers and memory.  
problem state  
process  
Synonym for user mode.  
A program (or portion of a program) and any data required for  
the program to run.  
real address  
scalar  
Synonym for physical address.  
Individual data objects and instructions. Scalars are of arbitrary  
size.  
set  
To write a bit value of 1.  
sleep  
A state in which the PowerPC 405 processor clock is prevented  
from toggling. The execution state of the PowerPC 405 does not  
change when in the sleep state.  
sticky  
A bit that can be set by software, but cleared only by the  
processor. Alternatively, a bit that can be cleared by software,  
but set only by the processor.  
string  
A sequence of consecutive bytes.  
supervisor state  
system memory  
Synonym for privileged mode.  
Physical memory installed in a computer system external to the  
processor core, such RAM, ROM, and flash.  
tag  
As applied to caches, a set of address bits used to uniquely  
identify a specific cache line within a congruence class. As  
applied to TLBs, a set of address bits used to uniquely identify  
a specific entry within the TLB.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
15  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Preface: About This Guide  
UISA  
The PowerPC user instruction-set architecture, which defines  
the base user-level instruction set, registers, data types, the  
memory model, the programming model, and the exception  
model as seen by user programs.  
user mode  
VEA  
The operating mode typically used by application software.  
Privileged operations are not allowed in user mode, and  
software can access a restricted set of registers and memory.  
The PowerPC virtual-environment architecture, which defines  
a multi-access memory model, the cache model, cache-control  
instructions, and the time-base resources as seen by user  
programs.  
virtual address  
An intermediate address used to translate an effective address  
into a physical address. It consists of a process ID and the  
effective address. It is only used when address translation is  
enabled.  
wake up  
word  
The transition of the PowerPC 405 out of the sleep state. The  
PowerPC 405 processor clock begins toggling and the execution  
state of the PowerPC 405 advances from that of the sleep state.  
Four bytes, or 32 bits.  
16  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 1  
Introduction to the  
PowerPC 405 Processor  
The PowerPC 405 is a 32-bit implementation of the PowerPC embedded-environment  
architecture that is derived from the PowerPC architecture. Specifically, the PowerPC 405 is  
an embedded PowerPC 405D5 (for Virtex-II Pro) or 405F6 (for Virtex-4) processor core. The  
term processor block is used throughout this document to refer to the combination of a  
PPC405D5 or PPC405F6 core, on-chip memory logic (OCM), an APU controller (Virtex-4  
only), and the gasket logic and interface.  
The PowerPC architecture provides a software model that ensures compatibility between  
implementations of the PowerPC family of microprocessors. The PowerPC architecture  
defines parameters that guarantee compatible processor implementations at the  
application-program level, allowing broad flexibility in the development of derivative  
PowerPC implementations that meet specific market requirements.  
This chapter provides an overview of the PowerPC architecture and an introduction to the  
features of the PowerPC 405 core. The following topics are included:  
x
x
x
x
PowerPC Architecture  
The PowerPC architecture is a 64-bit architecture with a 32-bit subset. The various features  
of the PowerPC architecture are defined at three levels. This layering provides flexibility  
by allowing degrees of software compatibility across a wide range of implementations. For  
example, an implementation such as an embedded controller can support the user  
instruction set, but not the memory management, exception, and cache models where it  
might be impractical to do so.  
The three levels of the PowerPC architecture are defined in Table 1-1.  
PowerPC™ 405 Processor Block Reference Guide  
17  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
R
Chapter 1: Introduction to the PowerPC 405 Processor  
Table 1-1: Three Levels of PowerPC Architecture  
User Instruction-Set Architecture Virtual Environment Architecture  
Operating Environment  
Architecture (OEA)  
(UISA)  
(VEA)  
x Defines the architecture level to  
which user-level (sometimes  
referred to as problem state)  
software should conform  
x Defines additional user-level  
functionality that falls outside  
typical user-level software  
requirements  
x Defines supervisor-level  
resources typically required by  
an operating system  
x Defines the memory-  
management model, supervisor-  
level registers, synchronization  
requirements, and the exception  
model  
x Defines the base user-level  
instruction set, user-level  
x Describes the memory model for  
an environment in which  
multiple devices can access  
memory  
registers, data types, floating-  
point memory conventions,  
exception model as seen by user  
programs, memory model, and  
the programming model  
x Defines aspects of the cache  
model and cache-control  
instructions  
x Defines the time-base resources  
from a supervisor-level  
perspective  
x Defines the time-base resources  
from a user-level perspective  
x
Note: All PowerPC implementations  
adhere to the UISA.  
Note: Implementations that conform to Note: Implementations that conform to  
the VEA level are guaranteed to conform the OEA level are guaranteed to conform  
to the UISA level.  
to the UISA and VEA levels.  
The PowerPC architecture requires that all PowerPC implementations adhere to the UISA,  
offering compatibility among all PowerPC application programs. However, different  
versions of the VEA and OEA are permitted.  
Embedded applications written for the PowerPC 405 are compatible with other PowerPC  
implementations. Privileged software generally is not compatible. The migration of  
privileged software from the PowerPC architecture to the PowerPC 405 is in many cases  
straightforward because of the simplifications made by the PowerPC embedded-  
environment architecture. Refer to the PowerPC Processor Reference Guide for more  
information on programming the PowerPC 405.  
PowerPC Embedded-Environment Architecture  
The PowerPC 405 is an implementation of the PowerPC embedded-environment  
architecture. This architecture is optimized for embedded controllers and is a forerunner to  
the PowerPC Book-E architecture. The PowerPC embedded-environment architecture  
provides an alternative definition for certain features specified by the PowerPC VEA and  
OEA. Implementations that adhere to the PowerPC embedded-environment architecture  
also adhere to the PowerPC UISA. PowerPC embedded-environment processors are 32-bit  
only implementations and thus do not include the special 64-bit extensions to the PowerPC  
UISA. Also, floating-point support can be provided either in hardware or software by  
PowerPC embedded-environment processors.  
The following are features of the PowerPC embedded-environment architecture:  
x
x
Memory management optimized for embedded software environments.  
Cache-management instructions for optimizing performance and memory control in  
complex applications that are graphically and numerically intensive.  
x
Storage attributes for controlling memory-system behavior.  
18  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
x
x
Special-purpose registers for controlling the use of debug resources, timer resources,  
interrupts, real-mode storage attributes, memory-management facilities, and other  
architected processor resources.  
A device-control-register address space for managing on-chip peripherals such as  
memory controllers.  
x
x
x
A dual-level interrupt structure and interrupt-control instructions.  
Multiple timer resources.  
Debug resources that enable hardware-debug and software-debug functions such as  
instruction breakpoints, data breakpoints, and program single-stepping.  
Virtual Environment  
The virtual environment defines architectural features that enable application programs to  
create or modify code, to manage storage coherency, and to optimize memory-access  
performance. It defines the cache and memory models, the timekeeping resources from a  
user perspective, and resources that are accessible in user mode but are primarily used by  
system-library routines. The following summarizes the virtual-environment features of the  
PowerPC embedded-environment architecture:  
x
Storage model:  
i
Storage-control instructions as defined in the PowerPC virtual-environment  
architecture. These instructions are used to manage instruction caches and data  
caches, and for synchronizing and ordering instruction execution.  
i
i
Storage attributes for controlling memory-system behavior. These are: write-  
through, cacheability, memory coherence (optional), guarded, and endian.  
Operand-placement requirements and their effect on performance.  
x
The time-base function as defined by the PowerPC virtual-environment architecture,  
for user-mode read access to the 64-bit time base.  
Operating Environment  
The operating environment describes features of the architecture that enable operating  
systems to allocate and manage storage, to handle errors encountered by application  
programs, to support I/ O devices, and to provide operating-system services. It specifies  
the resources and mechanisms that require privileged access, including the memory-  
protection and address-translation mechanisms, the exception-handling model, and  
privileged timer resources. Table 1-2 summarizes the operating-environment features of  
the PowerPC embedded-environment architecture.  
PowerPC™ 405 Processor Block Reference Guide  
19  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 1: Introduction to the PowerPC 405 Processor  
Table 1-2: OEA Features of the PowerPC Embedded-Environment Architecture  
Operating  
Environment  
Features  
Register model  
x Privileged special-purpose registers (SPRs) and instructions for accessing those  
registers  
x Device control registers (DCRs) and instructions for accessing those registers  
Storage model  
x Privileged cache-management instructions  
x Storage-attribute controls  
x Address translation and memory protection  
x Privileged TLB-management instructions  
Exception model  
x Dual-level interrupt structure supporting various exception types  
x Specification of interrupt priorities and masking  
x Privileged SPRs for controlling and handling exceptions  
x Interrupt-control instructions  
x Specification of how partially executed instructions are handled when an interrupt  
occurs  
Debug model  
x Privileged SPRs for controlling debug modes and debug events  
x Specification for seven types of debug events  
x Specification for allowing a debug event to cause a reset  
x The ability of the debug mechanism to freeze the timer resources  
Time-keeping model  
x 64-bit time base  
x 32-bit decrementer (the programmable-interval timer)  
x Three timer-event interrupts:  
i Programmable-interval timer (PIT)  
i Fixed-interval timer (FIT)  
i Watchdog timer (WDT)  
x Privileged SPRs for controlling the timer resources  
x The ability to freeze the timer resources using the debug mechanism  
x
Requirements for special registers and the TLB  
Synchronization  
requirements  
x
x
Requirements for instruction fetch and for data access  
Specifications for context synchronization and execution synchronization  
Reset and initialization x Specification for two internal mechanisms that can cause a reset:  
requirements  
i Debug-control register (DBCR)  
i Timer-control register (TCR)  
x Contents of processor resources after a reset  
x The software-initialization requirements, including an initialization code example  
20  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
PowerPC 405 Software Features  
The PowerPC 405 processor core is an implementation of the PowerPC embedded-  
environment architecture. The processor provides fixed-point embedded applications with  
high performance at low power consumption. It is compatible with the PowerPC UISA.  
Much of the PowerPC 405 VEA and OEA support is also available in implementations of  
the PowerPC Book-E architecture. Key software features of the PowerPC 405 include:  
x
A fixed-point execution unit fully compliant with the PowerPC UISA:  
32-bit architecture, containing thirty-two 32-bit general purpose registers (GPRs).  
i
x
PowerPC embedded-environment architecture extensions providing additional  
support for embedded-systems applications:  
i
i
i
i
i
i
True little-endian operation  
Flexible memory management  
Multiply-accumulate instructions for computationally intensive applications  
Enhanced debug capabilities  
64-bit time base  
3 timers: programmable interval timer (PIT), fixed interval timer (FIT), and  
watchdog timer (all are synchronous with the time base)  
x
Performance-enhancing features, including:  
i
i
Static branch prediction  
Five-stage pipeline with single-cycle execution of most instructions, including  
loads and stores  
i
i
Multiply-accumulate instructions  
Hardware multiply/ divide for faster integer arithmetic (4-cycle multiply, 35-cycle  
divide)  
i
i
Enhanced string and multiple-word handling  
Support for unaligned loads and unaligned stores to cache arrays, main memory,  
and on-chip memory (OCM)  
i
Minimized interrupt latency  
x
Integrated instruction-cache:  
i
i
i
i
i
i
16 KB, 2-way set associative  
Eight words (32 bytes) per cache line  
Fetch line buffer  
Instruction-fetch hits are supplied from the fetch line buffer  
Programmable prefetch of next-sequential line into the fetch line buffer  
Programmable prefetch of non-cacheable instructions: full line (eight words) or  
half line (four words)  
i
Non-blocking during fetch line fills  
x
Integrated data-cache:  
i
i
i
i
16 KB, 2-way set associative  
Eight words (32 bytes) per cache line  
Read and write line buffers  
Load and store hits are supplied from/ to the line buffers  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
21  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 1: Introduction to the PowerPC 405 Processor  
i
i
i
i
Write-back and write-through support  
Programmable load and store cache line allocation  
Operand forwarding during cache line fills  
Non-blocking during cache line fills and flushes  
x
x
Support for on-chip memory (OCM) that can provide memory-access performance  
identical to a cache hit  
Flexible memory management:  
i
i
Translation of the 4 GB logical-address space into the physical-address space  
Independent control over instruction translation and protection, and data  
translation and protection  
i
i
i
Page-level access control using the translation mechanism  
Software control over the page-replacement strategy  
Write-through, cacheability, user-defined 0, guarded, and endian (WIU0GE)  
storage-attribute control for each virtual-memory region  
i
i
WIU0GE storage-attribute control for thirty-two 128 MB regions in real mode  
Additional protection control using zones  
x
x
Enhanced debug support with logical operators:  
i
i
i
i
i
Four instruction-address compares  
Two data-address compares  
Two data-value compares  
JTAG instruction for writing into the instruction cache  
Forward and backward instruction tracing  
Advanced power management support  
The following sections describe the software resources available in the PowerPC 405. Refer  
to the PowerPC Processor Reference Guide for more information on using these resources.  
Privilege Modes  
Software running on the PowerPC 405 can do so in one of two privilege modes: privileged  
and user.  
Privileged Mode  
Privileged mode allows programs to access all registers and execute all instructions  
supported by the processor. Normally, the operating system and low-level device drivers  
operate in this mode.  
User Mode  
User mode restricts access to some registers and instructions. Normally, application  
programs operate in this mode.  
Address Translation Modes  
The PowerPC 405 also supports two modes of address translation: real and virtual.  
22  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
Real Mode  
In real mode, programs address physical memory directly.  
Virtual Mode  
In virtual mode, programs address virtual memory and virtual-memory addresses are  
translated by the processor into physical-memory addresses. This allows programs to  
access much larger address spaces than might be implemented in the system.  
Addressing Modes  
Whether the PowerPC 405 is running in real mode or virtual mode, data addressing is  
supported by the load and store instructions using one of the following addressing modes:  
x
Register-indirect with immediate index — A base address is stored in a register, and a  
displacement from the base address is specified as an immediate value in the  
instruction.  
x
x
Register-indirect with index — A base address is stored in a register, and a  
displacement from the base address is stored in a second register.  
Register indirect — The data address is stored in a register.  
Instructions that use the two indexed forms of addressing also allow for automatic updates  
to the base-address register. With these instruction forms, the new data address is  
calculated, used in the load or store data access, and stored in the base-address register.  
With sequential instruction execution, the next-instruction address is calculated by adding  
four bytes to the current-instruction address. In the case of branch instructions, the next-  
instruction address is determined using one of four branch-addressing modes:  
x
Branch to relative — The next-instruction address is at a location relative to the  
current-instruction address.  
x
Branch to absolute — The next-instruction address is at an absolute location in  
memory.  
x
x
Branch to link register — The next-instruction address is stored in the link register.  
Branch to count register — The next-instruction address is stored in the count register.  
Data Types  
PowerPC 405 instructions support byte, halfword, and word operands. Multiple-word  
operands are supported by the load/ store multiple instructions and byte strings are  
supported by the load/ store string instructions. Integer data are either signed or unsigned,  
and signed data is represented using twos-complement format.  
The address of a multi-byte operand is determined using the lowest memory address  
occupied by that operand. For example, if the four bytes in a word operand occupy  
addresses 4, 5, 6, and 7, the word address is 4. The PowerPC 405 supports both big-endian  
(an operands most significant byte is at the lowest memory address) and little-endian (an  
operands least significant byte is at the lowest memory address) addressing.  
Register Set Summary  
Figure 1-1 shows the registers contained in the PowerPC 405. Descriptions of the registers  
are in the following sections.  
PowerPC™ 405 Processor Block Reference Guide  
23  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
R
Chapter 1: Introduction to the PowerPC 405 Processor  
Privileged Registers  
User Registers  
Machine-State Register  
Storage-Attribute Control  
Registers  
General-Purpose Registers  
MSR  
r0  
r1  
.
.
.
DCCR  
DCWR  
ICCR  
SGR  
Core-Configuration Register  
CCR0  
SPR General-Purpose  
Registers  
SLER  
SU0R  
r31  
SPRG0  
SPRG1  
SPRG2  
SPRG3  
SPRG4  
SPRG5  
SPRG6  
SPRG7  
Condition Register  
CR  
Debug Registers  
DBSR  
DBCR0  
DBCR1  
DAC1  
DAC2  
DVC1  
DVC2  
IAC1  
Fixed-Point Exception Register  
XER  
Link Register  
LR  
Count Register  
CTR  
Exception-Handling Registers  
EVPR  
ESR  
IAC2  
IAC3  
User-SPR General-Purpose  
Registers  
DEAR  
SRR0  
SRR1  
SRR2  
SRR3  
IAC4  
ICDBR  
USPRG0  
Timer Registers  
SPR General-Purpose  
Registers (read only)  
TCR  
TSR  
PIT  
SPRG4  
SPRG5  
SPRG6  
SPRG7  
Memory-Management  
Registers  
PID  
Processor-Version Register  
PVR  
ZPR  
Time-Base Registers  
(read only)  
Time-Base Registers  
TBU  
TBL  
TBU  
TBL  
UG018_36_102401  
Figure 1-1: PowerPC 405 Registers  
General-Purpose Registers  
The processor contains thirty-two 32-bit general-purpose registers (GPRs), identified as r0  
through r31. The contents of the GPRs are read from memory using load instructions and  
written to memory using store instructions. Computational instructions often read  
operands from the GPRs and write their results in GPRs. Other instructions move data  
between the GPRs and other registers. GPRs can be accessed by all software.  
24  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Special-Purpose Registers  
The processor contains a number of 32-bit special-purpose registers (SPRs). SPRs provide  
access to additional processor resources, such as the count register, the link register, debug  
resources, timers, interrupt registers, and others. Most SPRs are accessed only by  
privileged software, but a few, such as the count register and link register, are accessed by  
all software.  
Machine-State Register  
The 32-bit machine-state register (MSR) contains fields that control the operating state of the  
processor. This register can be accessed only by privileged software.  
Condition Register  
The 32-bit condition register (CR) contains eight 4-bit fields, CR0–CR7. The values in the CR  
fields can be used to control conditional branching. Arithmetic instructions can set CR0  
and compare instructions can set any CR field. Additional instructions are provided to  
perform logical operations and tests on CR fields and bits within the fields. The CR can be  
accessed by all software.  
Device Control Registers  
The 32-bit device control registers (not shown) are used to configure, control, and report  
status for various external devices that are not part of the PowerPC 405 processor. The  
OCM controllers are examples of devices that contain DCRs. Although the DCRs are not  
part of the PowerPC 405 implementation, they are accessed using the mtdcr and mfdcr  
instructions. The DCRs can be accessed only by privileged software.  
PowerPC 405 Hardware Organization  
As shown in Figure 1-2, the PowerPC 405 processor contains the following elements:  
x
x
A 5-stage pipeline consisting of fetch, decode, execute, write-back, and load write-  
back stages  
A virtual-memory-management unit that supports multiple page sizes and a variety  
of storage-protection attributes and access-control options  
x
x
x
Separate instruction-cache and data-cache units  
Debug support, including a JTAG interface  
Three programmable timers  
The following sections provide an overview of each element. Refer to the PowerPC  
Processor Reference Guide for more information on how software interacts with these  
elements.  
PowerPC™ 405 Processor Block Reference Guide  
25  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
R
Chapter 1: Introduction to the PowerPC 405 Processor  
PLB Master  
Read Interface  
Instruction  
OCM  
MMU  
CPU  
I-Cache  
Array  
I-Cache  
Controller  
Fetch  
Instruction  
Shadow-TLB  
(4-Entry)  
and  
Decode  
Logic  
3-Element  
Fetch Queue  
Timers  
Instruction-Cache  
Unit  
Timers  
and  
Debug  
Unified TLB  
(64-Entry)  
Cache Units  
Data-Cache  
Unit  
Execute Unit  
Data  
Shadow-TLB  
(8-Entry)  
Debug  
Logic  
D-Cache D-Cache  
32x32  
GPR  
ALU  
MAC  
Array  
Controller  
PLB Master  
PLB Master  
Data  
OCM  
External-Interrupt  
Controller Interface  
Instruction  
Read Interface Write Interface  
JTAG  
Trace  
UG018_35_102401  
Figure 1-2: PowerPC 405 Organizationa  
a. Figure 1-2 is specific to PPC405D5.  
Central-Processing Unit  
The PowerPC 405 central-processing unit (CPU) implements a 5-stage instruction pipeline  
consisting of fetch, decode, execute, write-back, and load write-back stages.  
The fetch and decode logic sends a steady flow of instructions to the execute unit. All  
instructions are decoded before they are forwarded to the execute unit. Instructions are  
queued in the fetch queue if execution stalls. The fetch queue consists of three elements:  
two prefetch buffers and a decode buffer. If the prefetch buffers are empty instructions  
flow directly to the decode buffer.  
Up to two branches are processed simultaneously by the fetch and decode logic. If a branch  
cannot be resolved prior to execution, the fetch and decode logic predicts how that branch  
is resolved, causing the processor to speculatively fetch instructions from the predicted  
path. Branches with negative-address displacements are predicted as taken, as are  
branches that do not test the condition register or count register. The default prediction can  
be overridden by software at assembly or compile time.  
The PowerPC 405 has a single-issue execute unit containing the general-purpose register  
file (GPR), arithmetic-logic unit (ALU), and the multiply-accumulate unit (MAC). The  
GPRs consist of thirty-two 32-bit registers that are accessed by the execute unit using three  
26  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
read ports and two write ports. During the decode stage, data is read out of the GPRs for  
use by the execute unit. During the write-back stage, results are written to the GPR. The  
use of five read/ write ports on the GPRs allows the processor to execute load/ store  
operations in parallel with ALU and MAC operations.  
The execute unit supports all 32-bit PowerPC UISA integer instructions in hardware, and is  
compliant with the PowerPC embedded-environment architecture specification. Floating-  
point operations are not supported.  
The MAC unit supports implementation-specific multiply-accumulate instructions and  
multiply-halfword instructions. MAC instructions operate on either signed or unsigned  
16-bit operands, and they store their results in a 32-bit GPR. These instructions can  
produce results using either modulo arithmetic or saturating arithmetic. All MAC  
instructions have a single cycle throughput.  
Exception Handling Logic  
Exceptions are divided into two classes: critical and noncritical. The PowerPC 405 CPU  
services exceptions caused by error conditions, the internal timers, debug events, and the  
external interrupt controller (EIC) interface. Across the two classes, a total of 19 possible  
exceptions are supported, including the two provided by the EIC interface.  
Each exception class has its own pair of save/ restore registers. SRR0 and SRR1 are used for  
noncritical interrupts, and SRR2 and SRR3 are used for critical interrupts. The exception-  
return address and the machine state are written to these registers when an exception  
occurs, and they are automatically restored when an interrupt handler exits using the  
return-from-interrupt (rfi) or return-from critical-interrupt (rfci) instruction. Use of  
separate save/ restore registers allows the PowerPC 405 to handle critical interrupts  
independently of noncritical interrupts.  
Memory Management Unit  
The PowerPC 405 supports 4 GB of flat (non-segmented) address space. The memory-  
management unit (MMU) provides address translation, protection functions, and storage-  
attribute control for this address space. The MMU supports demand-paged virtual  
memory using multiple page sizes of 1 KB, 4 KB, 16 KB, 64 KB, 256 KB, 1 MB, 4 MB and  
16 MB. Multiple page sizes can improve memory efficiency and minimize the number of  
TLB misses. When supported by system software, the MMU provides the following  
functions:  
x
x
Translation of the 4 GB logical-address space into a physical-address space.  
Independent enabling of instruction translation and protection from that of data  
translation and protection.  
x
x
x
x
Page-level access control using the translation mechanism.  
Software control over the page-replacement strategy.  
Additional protection control using zones.  
Storage attributes for cache policy and speculative memory-access control.  
The translation look-aside buffer (TLB) is used to control memory translation and  
protection. Each one of its 64 entries specifies a page translation. It is fully associative, and  
can simultaneously hold translations for any combination of page sizes. To prevent TLB  
contention between data and instruction accesses, a 4-entry instruction and an 8-entry data  
shadow-TLB are maintained by the processor transparently to software.  
PowerPC™ 405 Processor Block Reference Guide  
27  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
R
Chapter 1: Introduction to the PowerPC 405 Processor  
Software manages the initialization and replacement of TLB entries. The PowerPC 405  
includes instructions for managing TLB entries by software running in privileged mode.  
This capability gives significant control to system software over the implementation of a  
page replacement strategy. For example, software can reduce the potential for TLB  
thrashing or delays associated with TLB-entry replacement by reserving a subset of TLB  
entries for globally accessible pages or critical pages.  
Storage attributes are provided to control access of memory regions. When memory  
translation is enabled, storage attributes are maintained on a page basis and read from the  
TLB when a memory access occurs. When memory translation is disabled, storage  
attributes are maintained in storage-attribute control registers. A zone-protection register  
(ZPR) is provided to allow system software to override the TLB access controls without  
requiring the manipulation of individual TLB entries. For example, the ZPR can provide a  
simple method for denying read access to certain application programs.  
Instruction and Data Caches  
The PowerPC 405 accesses memory through the instruction-cache unit (ICU) and data-  
cache unit (DCU). Each cache unit includes a PLB-master interface, cache arrays, and a  
cache controller. Hits into the instruction cache and data cache appear to the CPU as single-  
cycle memory accesses. Cache misses are handled as requests over the PLB bus to another  
PLB device, such as an external-memory controller.  
The PowerPC 405 implements separate instruction-cache and data-cache arrays. Each is 16  
KB in size, is two-way set-associative, and operates using 8 word (32 byte) cache lines. The  
caches are non-blocking, allowing the PowerPC 405 to overlap instruction execution with  
reads over the PLB (when cache misses occur).  
The cache controllers replace cache lines according to a least-recently used (LRU)  
replacement policy. When a cache line fill occurs, the most-recently accessed line in the  
cache set is retained and the other line is replaced. The cache controller updates the LRU  
during a cache line fill.  
The ICU supplies up to two instructions every cycle to the fetch and decode unit. The ICU  
can also forward instructions to the fetch and decode unit during a cache line fill,  
minimizing execution stalls caused by instruction-cache misses. When the ICU is accessed,  
four instructions are read from the appropriate cache line and placed temporarily in a line  
buffer. Subsequent ICU accesses check this line buffer for the requested instruction prior to  
accessing the cache array. This allows the ICU cache array to be accessed as little as once  
every four instructions, significantly reducing ICU power consumption.  
The DCU can independently process load/ store operations and cache-control instructions.  
The DCU can also dynamically reprioritize PLB requests to reduce the length of an  
execution stall. For example, if the DCU is busy with a low-priority request and a  
subsequent storage operation requested by the CPU is stalled, the DCU automatically  
increases the priority of the current (low-priority) request. The current request is thus  
finished sooner, allowing the DCU to process the stalled request sooner. The DCU can  
forward data to the execute unit during a cache line fill, further minimizing execution stalls  
caused by data-cache misses.  
Additional features allow programmers to tailor data-cache performance to a specific  
application. The DCU can function in write-back or write-through mode, as determined by  
the storage-control attributes. Loads and stores that do not allocate cache lines can also be  
specified. Inhibiting certain cache line fills can reduce potential pipeline stalls and  
unwanted external-bus traffic.  
28  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
R
Timer Resources  
The PowerPC 405 contains a 64-bit time base and three timers. The time base is  
incremented synchronously using the CPU clock or an external clock source. The three  
timers are incremented synchronously with the time base. The three timers supported by  
the PowerPC 405 are:  
x
x
x
Programmable Interval Timer  
Fixed Interval Timer  
Watchdog Timer  
Programmable Interval Timer  
The programmable interval timer (PIT) is a 32-bit register that is decremented at the time-base  
increment frequency. The PIT register is loaded with a delay value. When the PIT count  
reaches 0, a PIT interrupt occurs. Optionally, the PIT can be programmed to automatically  
reload the last delay value and begin decrementing again.  
Fixed Interval Timer  
The fixed interval timer (FIT) causes an interrupt when a selected bit in the time-base register  
changes from 0 to 1. Programmers can select one of four predefined bits in the time-base  
for triggering a FIT interrupt.  
Watchdog Timer  
The watchdog timer causes a hardware reset when a selected bit in the time-base register  
changes from 0 to 1. Programmers can select one of four predefined bits in the time-base  
for triggering a reset, and the type of reset can be defined by the programmer.  
Debug  
The PowerPC 405 debug resources include special debug modes that support the various  
types of debugging used during hardware and software development. These are:  
x
x
x
Internal-debug mode for use by ROM monitors and software debuggers  
External-debug mode for use by JTAG debuggers  
Debug-wait mode, which allows the servicing of interrupts while the processor appears  
to be stopped  
x
Real-time trace mode, which supports event triggering for real-time tracing  
Debug events are supported that allow developers to manage the debug process. Debug  
modes and debug events are controlled using debug registers in the processor. The debug  
registers are accessed either through software running on the processor or through the  
JTAG port.  
The debug modes, events, controls, and interfaces provide a powerful combination of  
debug resources for hardware and software development tools.  
PowerPC 405 Interfaces  
The PowerPC 405 provides the following set of interfaces that support the attachment of  
cores and user logic:  
x
Processor local bus interface  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
29  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
R
Chapter 1: Introduction to the PowerPC 405 Processor  
x
x
x
x
x
Device control register interface  
Clock and power management interface  
JTAG port interface  
On-chip interrupt controller interface  
On-chip memory controller interface  
Processor Local Bus  
The processor local bus (PLB) interface provides a 32-bit address and three 64-bit data buses  
attached to the instruction-cache and data-cache units. Two of the 64-bit buses are attached  
to the data-cache unit, one supporting read operations and the other supporting write  
operations. The third 64-bit bus is attached to the instruction-cache unit to support  
instruction fetching.  
Device Control Register  
The device control register (DCR) bus interface supports the attachment of on-chip registers  
for device control. Software can access these registers using the mfdcr and mtdcr  
instructions.  
Clock and Power Management  
The clock and power-management interface supports several methods of clock distribution  
and power management.  
JTAG Port  
The JTAG port interface supports the attachment of external debug tools. Using the JTAG  
test-access port, a debug tool can single-step the processor and examine internal-processor  
state to facilitate software debugging.  
On-Chip Interrupt Controller  
The on-chip interrupt controller interface is an external interrupt controller that combines  
asynchronous interrupt inputs from on-chip and off-chip sources and presents them to the  
core using a pair of interrupt signals (critical and noncritical). Asynchronous interrupt  
sources can include external signals, the JTAG and debug units, and any other on-chip  
peripherals.  
On-Chip Memory Controller  
An on-chip memory (OCM) interface supports the attachment of additional memory to the  
instruction and data caches that can be accessed at performance levels matching the cache  
arrays.  
PowerPC 405 Performance  
The PowerPC 405 executes instructions at sustained speeds approaching one cycle per  
instruction. Table 1-3 lists the typical execution speed (in processor cycles) of the  
instruction classes supported by the PowerPC 405.  
Instructions that access memory (loads and stores) consider only the “first order” effects of  
cache misses. The performance penalty associated with a cache miss involves a number of  
second-order effects. This includes PLB contention between the instruction and data  
30  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
caches and the time associated with performing cache-line fills and flushes. Unless stated  
otherwise, the number of cycles described applies to systems having zero-wait-state  
memory access.  
Table 1-3: PowerPC 405 Cycles per Instruction  
Instruction Class  
Execution Cycles  
Arithmetic  
Trap  
1
2
Logical  
1
Shift and Rotate  
1
Multiply (32-bit, 48-bit, 64-bit results, respectively)  
Multiply Accumulate  
1, 2, 4  
1
Divide  
35  
Load  
1
Load Multiple and Load String (cache hit)  
Store  
1 per data transfer  
1
Store Multiple and Store String (cache hit or miss)  
Move to/ from device-control register  
Move to/ from special-purpose register  
Branch known taken  
1 per data transfer  
3
1
1 or 2  
1
Branch known not taken  
Predicted taken branch  
1 or 2  
1
Predicted not-taken branch  
Mispredicted branch  
2 or 3  
PowerPC™ 405 Processor Block Reference Guide  
31  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 1: Introduction to the PowerPC 405 Processor  
32  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
R
Chapter 2  
Input/Output Interfaces  
This chapter describes all PowerPC 405 input/ output signals associated with the following  
processor block interfaces:  
x
x
x
x
x
x
x
x
x
x
x
x
x
x
The sections within this chapter provide the following information:  
x
x
An overview summarizing the purpose of the interface.  
An I/ O symbol providing a quick view of the signal names and the direction of  
information flow with respect to the processor block.  
x
A signal table that summarizes the function of each signal. The I/ O column in these  
tables specifies the direction of information flow with respect to the processor block.  
x
x
Detailed descriptions for each signal.  
Detailed timing diagrams (where appropriate) that more clearly describe the  
operation of the interface. The diagrams typically illustrate best-case performance  
when the core is attached to the FPGA processor local bus (PLB) core, or to custom  
bus interface unit (BIU) designs.  
The instruction-side and data-side OCM controller interfaces are described separately in  
The Fabric Co-Processor Module (FCM) interface associated with the Virtex-4-FX family  
PowerPC 405 APU controller, is described separately in Chapter 4, “PowerPC 405 APU  
PowerPC™ 405 Processor Block Reference Guide  
33  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Chapter 2: Input/Output Interfaces  
Appendix B, Signal Summary,” alphabetically lists the signals described in this chapter.  
The l/ O designation and a description summary are included for each signal.  
Signal Naming Conventions  
The following convention is used for signal names throughout this document:  
PREFIX1PREFIX2SIGNAME1[SIGNAME2][NEG][(m:n)]  
The components of a signal name are as follows:  
x
PREFIX1 is an uppercase prefix identifying the source of the signal. This prefix  
specifies either a unit (for example, CPU) or a type of interface (for example, DCR). If  
PREFIX1 specifies the processor block, the signal is considered an output signal.  
Otherwise, it is an input signal.  
x
PREFIX2 is an uppercase prefix identifying the destination of the signal. This prefix  
specifies either a unit (for example, CPU) or a type of interface (for example, DCR). If  
PREFIX2 specifies the processor block, the signal is considered an input signal.  
Otherwise, it is an output signal.  
x
x
x
SIGNAME1 is an uppercase name identifying the primary function of the signal.  
SIGNAME2 is an uppercase name identifying the secondary function of the signal.  
[NEG] is an optional notation that indicates a signal is active low. If this notation is not  
use, the signal is active high.  
x
[m:n] is an optional notation that indicates a bussed signal. “m” designates the most-  
significant bit of the bus and “n” designates the least-significant bit of the bus.  
Table 2-1 defines the prefixes used in the signal names. The “Location” column in the table  
identifies whether the functional unit resides inside or outside the processor block.  
Table 2-1: Signal Name Prefix Definitions  
Prefix1 or Prefix2  
Definition  
Clock and power management  
Processor block  
Location  
Outside  
CPM  
C405  
DBG  
DCR  
DSOCM  
EIC  
Inside  
Debug unit  
Inside  
Device control register  
Data-side on-chip memory (DSOCM)  
External interrupt controller  
Instruction-side on-chip memory (ISOCM)  
JTAG  
Outside  
Outsidea  
Outside  
Outsidea  
Inside  
ISOCM  
JTG  
PLB  
Processor local bus  
Inside  
RST  
Reset  
Inside  
TIE  
TIE (signal tied statically to GND or VDD  
Trace  
)
Outside  
Inside  
TRC  
APU  
FCM  
Auxiliary Processor Unit Controller  
Fabric Co-Processor Module  
Inside  
Outside  
34  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Table 2-1: Signal Name Prefix Definitions (Continued)  
Prefix1 or Prefix2  
BRAM  
Definition  
Location  
Outside  
Outside  
BlockSelect RAM  
Unspecified FPGA unit  
XXX  
a. Not to be confused with the OCM controllers, which are located inside the processor block.  
Clock and Power Management Interface  
The clock and power management (CPM) interface enables power-sensitive applications  
to control the processor clock using external logic. The OCM controllers are clocked  
separately from the processor core. In addition to this, the Virtex-4-FX family PowerPC 405  
also use separate clocks for the APU and DCR controller. Two types of processor clock  
control are possible:  
x
Global local enables control a clock zone within the processor. These signals are used to  
disable the clock splitters within a zone so that the clock signal is prevented from  
propagating to the latches within the zone. The PowerPC 405 is divided into three  
clock zones: core, timer, and JTAG. Control over a zone is exercised as follows:  
i
The core clock zone contains most of the logic comprising the PowerPC 405 core  
and controllers. It does not contain logic that belongs to the timer or JTAG zones,  
or other logic within the processor block. The core zone is controlled by the  
CPMC405CPUCLKEN signal.  
i
The timer clock zone contains the PowerPC 405 timer logic. It does not contain  
logic that belongs to the core or JTAG zones, or other logic within the processor  
block. This zone is separated from the core zone so that timer events can be used  
to “wake up” the core logic if a power management application has put it to sleep.  
The timer zone is controlled by the CPMC405TIMERCLKEN signal.  
i
The JTAG clock zone contains the PowerPC 405 JTAG logic. It does not contain  
logic that belongs to the core or timer zones, or other logic within the processor  
block. The JTAG zone is controlled by the CPMC405JTAGCLKEN signal.  
Although an enable is provided for this zone, the JTAG standard does not allow  
local gating of the JTAG clock. This enables basic JTAG functions to be maintained  
when the rest of the chip (including the CPM FPGA macro) is not running.  
x
Global gating controls the toggling of the PowerPC 405 clock, CPMC405CLOCK.  
Instead of using the global-local enables to prevent the clock signal from propagating  
through a zone, CPM logic can stop the PowerPC 405 clock input from toggling. If this  
method of power management is employed, the clock signal should be held active  
(logic 1). The CPMC405CLOCK is used by the core and timer zones, but not the JTAG  
zone.  
CPM logic should be designed to wake the PowerPC 405 from sleep mode when any of the  
following occurs:  
i
i
A timer interrupt or timer reset is asserted by the PowerPC 405.  
A chip-reset or system-reset request is asserted (this request comes from a source  
other than the PowerPC 405).  
i
An external interrupt or critical interrupt input is asserted and the corresponding  
interrupt is enabled by the appropriate machine-state register (MSR) bit.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
35  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                     
R
Chapter 2: Input/Output Interfaces  
i
The DBGC405DEBUGHALT chip-input signal (if provided) is asserted. Assertion  
of this signal indicates that an external debug tool wants to control the PowerPC  
405 processor. See “DBGC405DEBUGHALT (Input)” for more information.  
CPM Interface I/O Signal Summary  
Figure 2-1 shows the block symbol for the CPM interface. The BRAM clocks associated  
with the data-side and instruction-side OCM are described in chapter Chapter 3,  
“PowerPC 405 OCM Controller.” The signals are summarized in Table 2-2.  
CPMC405CLOCK  
PLBCLK  
C405CPMMSREE  
PPC405  
C405CPMMSRCE  
CPMC405CPUCLKEN  
CPMC405TIMERCLKEN  
CPMC405JTAGCLKEN  
CPMC405CORECLKINACTIVE  
CPMC405TIMERTICK  
CPMC405SYNCBYPASS  
CPMDCRCLK  
C405CPMTIMERIRQ  
C405CPMTIMERRESETREQ  
C405CPMCORESLEEPREQ  
CPMFCMCLK  
UG018_02_01_051204  
Figure 2-1: CPM Interface Block Symbol  
Table 2-2: CPM Interface I/O Signals  
I/O  
Type  
Signal  
If Unused  
Function  
CPMC405CLOCK  
PLBCLK  
I
Required  
PowerPC 405 clock input (for all non-JTAG logic,  
including timers).  
I
Required  
PLB clock interface clock (lacks CPM prefix due  
to legacy naming).  
CPMC405CPUCLKEN  
I
I
I
I
1
1
1
0
Enables the core clock zone.  
Enables the timer clock zone.  
Enables the JTAG clock zone.  
CPMC405TIMERCLKEN  
CPMC405JTAGCLKEN  
CPMC405CORECLKINACTIVE  
Indicates the CPM logic disabled the clocks to the  
core.  
CPMC405TIMERTICK  
CPMC405SYNCBYPASS  
I
I
1
1
Increments or decrements the PowerPC 405  
timers every time it is active with the  
CPMC405CLOCK.  
Virtex-4-FX only. Bypass PLB re-synchronization  
inside the PowerPC 405 core for Virtex-II Pro  
compatibility.  
CPMDCRCLK  
CPMFCMCLK  
I
I
0
0
Virtex-4-FX only. DCR bus interface clock for  
PPC405 synchronization.  
Virtex-4-FX only. FCM interface clock for the  
APU Controller.  
36  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                         
R
Table 2-2: CPM Interface I/O Signals (Continued)  
I/O  
Type  
Signal  
C405CPMMSREE  
If Unused  
Function  
O
No Connect  
No Connect  
No Connect  
No Connect  
Indicates the value of MSR[EE].  
C405CPMMSRCE  
O
Indicates the value of MSR[CE].  
C405CPMTIMERIRQ  
C405CPMTIMERRESETREQ  
O
Indicates a timer-interrupt request occurred.  
O
Indicates a watchdog-timer reset request  
occurred.  
C405CPMCORESLEEPREQ  
O
No Connect  
Indicates the core is requesting to be put into  
sleep mode.  
CPM Interface I/O Signal Descriptions  
The following sections describe the operation of the CPM interface I/ O signals.  
CPMC405CLOCK (Input)  
This signal is the source clock for all PowerPC 405 logic (including timers). It is not the  
source clock for the JTAG logic. External logic can implement a power management mode  
that stops toggling of this signal. If such a method is employed, the clock signal should be  
held active (logic 1).  
PLBCLK (Input)  
This signal is the source clock for all PLB logic.  
CPMC405CPUCLKEN (Input)  
Enables the core clock zone when asserted and disables the zone when deasserted. If logic  
is not implemented to control this signal, it must be held active (tied to 1).  
CPMC405TIMERCLKEN (Input)  
Enables the timer clock zone when asserted and disables the zone when deasserted. If logic  
is not implemented to control this signal, it must be held active (tied to 1).  
CPMC405JTAGCLKEN (Input)  
Enables the JTAG clock zone when asserted and disables the zone when deasserted. CPM  
logic should not control this signal. The JTAG standard requires that it be held active (tied  
to 1).  
CPMC405CORECLKINACTIVE (Input)  
This signal is a status indicator that is latched by an internal PowerPC 405 register (JDSR).  
An external debug tool (such as RISCWatch) can read this register and determine that the  
PowerPC 405 is in sleep mode. This signal should be asserted by the CPM when it places  
the PowerPC 405 in sleep mode using either of the following methods:  
x
x
Deasserting CPMC405CPUCLKEN to disable the core clock zone.  
Stopping CPMC405CLOCK from toggling by holding it active (logic 1).  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
37  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                         
R
Chapter 2: Input/Output Interfaces  
CPMC405TIMERTICK (Input)  
This signal is used to control the update frequency of the PowerPC 405 time base and PIT  
(the FIT and WDT are timer events triggered by the time base). The time base is  
incremented and the PIT is decremented every cycle that CPMC405TIMERTICK and  
CPMC405CLOCK are both active. CPMC405TIMERTICK should be synchronous with  
CPMC405CLOCK for the timers to operate predictably. The timers are updated at the  
PowerPC 405 clock frequency if CPMC405TIMERTICK is held active.  
CPMC405SYNCBYPASS (Input, Virtex-4-FX Only)  
Allows the user to bypass the PLB synchronization module inside the PowerPC core and  
instead use a Virtex-II Pro compatible synchronizer in the processor block. When this  
signal is enabled, integer clock ratios between 1:1 and 16:1 are possible. If disabled, the user  
can use fractional clock ratios of N/ 2 and N/ 3 for any integer N, but must also ensure that  
PLB and CPU clocks are rising-edge aligned, and accept additional latency for the  
synchronization.  
CPMDCRCLK (Input, Virtex-4-FX Only)  
This is the DCR interface clock used by the PPC to synchronize communication between  
the PowerPCs internal clock domain (CPMC405CLOCK) and the DCR bus transactions  
performed using the DCR slave clocks. The PowerPC core to DCR interface clock ratio can  
be any integer between 1:1 and 16:1. Clocks must be rising-edge aligned.  
CPMFCMCLK (Input, Virtex-4-FX Only)  
This is the re-synchronization clock for transactions between the APU controller and an  
FCM. Allows the APU controller internally to run at the CPMC405CLOCK speed,  
independently of the FCM interface transaction speed. CPMFCMCLK would typically be  
the same clock that clocks the FCM internally. PowerPC core to FCM interface clock ratio  
can be any integer between 1:1 and 16:1. Clocks must be rising-edge aligned.  
C405CPMMSREE (Output)  
This signal indicates the state of the MSR[EE] (external-interrupt enable) bit. When  
asserted, external interrupts are enabled (MSR[EE]=1). When deasserted, external  
interrupts are disabled (MSR[EE]=0). The CPM can use this signal to wake the processor  
from sleep mode when an external noncritical interrupt occurs.  
When the processor wakes up, it deasserts the C405CPMMSREE, C405CPMMSRCE, and  
C405CPMTIMERIRQ signals one processor clock cycle before it deasserts the  
C405CPMCORESLEEPREQ signal. Consequently, the CPM should latch the  
C405CPMMSREE, C405CPMMSRCE, and C405CPMTIMERIRQ signals before using them  
to control the processor clocks.  
C405CPMMSRCE (Output)  
This signal indicates the state of the MSR[CE] (critical-interrupt enable) bit. When asserted,  
critical interrupts are enabled (MSR[CE]=1). When deasserted, critical interrupts are  
disabled (MSR[CE]=0). The CPM can use this signal to wake the processor from sleep  
mode when an external critical interrupt occurs.  
When the processor wakes up, it deasserts the C405CPMMSREE, C405CPMMSRCE, and  
C405CPMTIMERIRQ signals one processor clock cycle before it deasserts the  
C405CPMCORESLEEPREQ signal. For this reason, the CPM should latch the  
38  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
C405CPMMSREE, C405CPMMSRCE, and C405CPMTIMERIRQ signals before using them  
to control the processor clocks.  
C405CPMTIMERIRQ (Output)  
When asserted, this signal indicates a timer exception occurred within the PowerPC 405  
and an interrupt request is pending to handle the exception. When deasserted, no timer-  
interrupt request is pending. This signal is the logical OR of interrupt requests from the  
programmable-interval timer (PIT), the fixed-interval timer (FIT), and the watchdog timer  
(WDT). The CPM can use this signal to wake the processor from sleep mode when an  
internal timer exception occurs.  
When the processor wakes up, it deasserts the C405CPMMSREE, C405CPMMSRCE, and  
C405CPMTIMERIRQ signals one processor clock cycle before it deasserts the  
C405CPMCORESLEEPREQ signal. Consequently, the CPM should latch the  
C405CPMMSREE, C405CPMMSRCE, and C405CPMTIMERIRQ signals before using them  
to control the processor clocks.  
C405CPMTIMERRESETREQ (Output)  
When asserted, this signal indicates a watchdog time-out occurred and a reset request is  
pending. When deasserted, no reset request is pending. This signal is the logical OR of the  
core, chip, and system reset modes that are programmed using the watchdog timer  
mechanism. The CPM can use this signal to wake the processor from sleep mode when a  
watchdog time-out occurs.  
C405CPMCORESLEEPREQ (Output)  
When asserted, this signal indicates the PowerPC 405 has requested to be put into sleep  
mode. When deasserted, no request exists. This signal is asserted after software enables the  
wait state by setting the MSR[WE] (wait-state enable) bit to 1. The processor completes  
execution of all prior instructions and memory accesses before asserting this signal. The  
CPM can use this signal to place the processor in sleep mode at the request of software.  
When the processor gets out of sleep mode at a later time, it deasserts the  
C405CPMMSREE, C405CPMMSRCE, and C405CPMTIMERIRQ signals one processor  
clock cycle before it deasserts the C405CPMCORESLEEPREQ signal. Consequently, the  
CPM should latch the C405CPMMSREE, C405CPMMSRCE, and C405CPMTIMERIRQ  
signals before using them to control the processor clocks.  
System Design Considerations for Clock Domains  
The high-level view of an embedded system with the PowerPC 405 processor and  
CoreConnect bus architecture includes:  
x
x
x
x
x
PowerPC 405 Processor.  
Processor Local Bus (PLB) peripherals.  
Instruction-side and Data-side On-Chip Memory Controller (OCM).  
Device Control Register (DCR) peripherals.  
Fabric Co-Processor Module (FCM): Virtex-4 only.  
These clocks communicate to the processor block the specific clock ratio between the  
processor block clock and the other system clocks in the design.  
x
CPMC405CLOCK, main Processor Block clock.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
39  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
Chapter 2: Input/Output Interfaces  
x
x
x
x
x
PLBCLK, primary PLB I/ O Bus clock.  
BRAMISOCMCLK, reference clock for the I-Side OCM controller.  
BRAMDSOCMCLK, reference clock for the D-Side OCM controller.  
CPMFCMCLK, reference clock for the APU controller (Virtex-4 only).  
CPMDCRCLK, reference clock for the external DCR bus (Virtex-4 only).  
The PowerPC405 processor block supports multiple clock domains. Using several DCM  
and BUFG components are recommended to create and drive the clock domains. The clock  
domains include the PLB, FCM, DCR, and OCM clocks.  
PLB  
The PLB is used as an interface between the processor block and the higher performance  
peripherals. The processor block has some internal logic to generate the appropriate  
enabling signals for controlling the PLB. The PLB clock must be phased-aligned to the  
processor block. All communication between the processor block and the PLB are based  
upon the rising edge of the CPMC405CLOCK. The PLB is synchronous with the processor  
block. The allowed supported integer clock frequency ratios between the processor block  
and the PLB are 1:1, 2:1, 3:1 . . . up to 16:1. As an example, the processor block can be run at  
300 MHz while the PLB bus is run at 100 MHz, in a 3:1 ratio.  
DCR  
The processor block clock and the DCR clock must come from the same source and be in  
phase with each other. The DCR clock covers both of the processor block DCR and the  
memory mapped DCR. The clock ratio between the DCR clock domain and the processor  
block can run at any integer clock ratio from 1:1 to 16:1 as long as the bus transaction  
completes in 64 processor block cycles. If the bus transaction does not complete in 64  
processor block clock cycles, the processor block will time out and move on to the next  
instruction.  
Virtex-II Pro and ProX Specific  
For Virtex-II Pro and Virtex-II ProX devices, there is no CPMDCRCLK input to the  
processor block. Users can either set appropriate timing constraints (multi-cycle path, false  
path, etc.), or simply include DCR re-synchronization logic to simply the steps to analyze  
the timing related to DCR interface.  
Virtex-4 Specific  
For Virtex-4-FX parts there is a dedicated DCR clock input and re-synchronization registers  
handling the clock boundary.  
FCM (Virtex-4-FX only)  
An FCM is used for highest performance integration of custom functionality defined in the  
FPGA fabric with the execution pipeline of the PowerPC. The FCM clock would typically  
be the same clock that clocks the FCM internally. PowerPC core to FCM interface clock  
ratios can range from 1:1 to 16:1. The clocks must be rising-edge aligned.  
OCM  
For high speed access, the OCM clock domain covers the interface between the processor  
block and the block RAM surrounding the processor block. There are two independent  
40  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
clocks for the OCM controllers in the processor block: BRAMDSOCMCLK (data side  
controller) and BRAMISOCMCLK (instruction side controllers).  
The data side controller and the instruction side controllers can run at different  
frequencies, based upon the access time of the BRAM. When the processor block, OCM  
controller, and BRAMs run at the same clock frequency, the processor is in single-cycle  
mode. Multi-cycle mode occurs when the processor is running at a higher frequency than  
the BRAMs. In the single-cycle mode and multi-cycle mode, the BRAMISOCMCLK and  
BRAMDSOCMCLK signals are provided to the OCM controller as inputs.  
Through timing analysis, the clock ratio between the processor block clock and the BRAMs  
clocks is determined by the worst case access time between the OCM controller interface  
and the BRAMs interface. Based upon the timing analysis, most designs use multi-cycle  
mode.  
The processor block clock and the BRAMDSOCMCLK must be integer multiples. The  
same is true for the BRAMISOCMCLK with respect to the processor block clock. They need  
not share the same integer values nor integer clock ratio with respect to the PLB clock.  
Because the clock ratio between the processor block and the OCM clocks is unknown, the  
processor block has control registers in the OCM controllers. The control registers are  
ISCNTL[0:7] and DSCNTL[0:7] for the instruction side and data side, respectively. Refer to  
CPU Control Interface  
The CPU control interface is used primarily to provide CPU setup information to the  
PowerPC 405. It is also used to report the detection of a machine check condition within the  
PowerPC 405.  
CPU Control Interface I/O Signal Summary  
Figure 2-2 shows the block symbol for the CPU control interface. The signals are  
summarized in Table 2-3.  
PPC405  
TIEC405MMUEN  
TIEC405DETERMINISTICMULT  
TIEC405DISOPERANDFWD  
C405XXXMACHINECHECK  
UG018_02_102001  
Figure 2-2: CPU Control Interface Block Symbol  
Table 2-3: CPU Control Interface I/O Signals  
I/O  
Type  
Signal  
If Unused  
Function  
TIEC405MMUEN  
TIEC405DETERMINISTICMULT  
I
I
Required  
0
Enables the memory-management unit (MMU).  
Important: This signal should always be driven low.  
Specifies whether all multiply operations complete in  
a fixed number of cycles or have an early-out  
capability  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
41  
         
R
Chapter 2: Input/Output Interfaces  
Table 2-3: CPU Control Interface I/O Signals (Continued)  
I/O  
Type  
Signal  
If Unused  
Function  
TIEC405DISOPERANDFWD  
C405XXXMACHINECHECK  
I
Required  
Disables operand forwarding for load instructions.  
O
No Connect Indicates a machine-check error has been detected by  
the PowerPC 405.  
CPU Control Interface I/O Signal Descriptions  
The following sections describe the operation of the CPU control-interface I/ O signals.  
TIEC405MMUEN (Input)  
When held active (tied to logic 1), this signal enables the PowerPC 405 memory-  
management unit (MMU). When held inactive (tied to logic 0), this signal disables the  
MMU. The MMU is used for virtual to address translation and for memory protection. Its  
operation is described in the PowerPC Processor Reference Guide.  
TIEC405DETERMINISTICMULT (Input)  
Note: This signal should always be driven low. Setting it high may produce erroneous results.  
When held active (tied to logic 1), this signal disables the hardware multiplier early-out  
capability. All multiply instructions have a 4-cycle reissue rate and a 5-cycle latency rate.  
When held inactive (tied to logic 0), this signal enables the hardware multiplier early-out  
capability. If early out is enabled, multiply instructions are executed in the number of  
cycles specified in Table 2-4. The performance of multiply instructions is described in the  
PowerPC Processor Reference Guide.  
Table 2-4: Multiply and MAC Instruction Timing  
Issue-Rate  
Cycles  
Latency  
Cycles  
Operations  
MAC and Negative MAC  
1
1
2
4
2
2
3
5
Halfword uꢀHalfword (32-bit result)  
Halfword uꢀWord (48-bit result)  
Word uꢀWord (64-bit result)  
Note: In Table 2-4, above, words are treated as halfwords if the upper 16 bits of the operand contain  
a sign extension of the lower 16 bits. For example, if the upper 16 bits of a word operand are zero, the  
operand is considered a halfword when calculating the execution time.  
TIEC405DISOPERANDFWD (Input)  
When held active (tied to logic 1), this signal disables operand forwarding. When held  
inactive (tied to logic 0), this signal enables operand forwarding. The processor uses  
operand forwarding to send load-instruction data from the data cache to the execution  
units as soon as it is available. Operand forwarding often saves a clock cycle when  
42  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
R
instructions following the load require the loaded data. Disabling operand forwarding  
may improve the performance (clock frequency) of the PowerPC 405.  
C405XXXMACHINECHECK (Output)  
When asserted, this signal indicates the PowerPC 405 detected an instruction machine-  
check error. When deasserted, no error exists. This signal is asserted when the processor  
attempts to execute an instruction that was transferred to the PowerPC 405 with the  
PLBC405ICUERR signal asserted. This signal remains asserted until software clears the  
instruction machine-check bit in the exception-syndrome register (ESR[MCI]).  
Reset Interface  
A reset causes the processor block to perform a hardware initialization. It always occurs  
when the processor block is powered up and can occur at any time during normal  
operation. If it occurs during normal operation, instruction execution is immediately  
halted and all processor state is lost.  
The processor block recognizes three types of reset:  
x
A processor reset affects only the processor block, including PowerPC 405 execution  
units, cache units, the device control register controller (DCR), and the on-chip  
memory controller (OCM). On Virtex-4-FX, it also resets the auxiliary processor unit  
controller (APU). External devices (on-chip and off-chip) are not affected. This type of  
reset is also referred to as a core reset.  
x
x
A chip reset affects the processor block and all other devices or peripherals located on  
the same chip as the processor.  
A system reset affects the processor chip and all other devices or peripherals external to  
the processor chip that are connected to the same system-reset network. The scope of  
a system reset depends on the system implementation. Power-on reset (POR) is a form  
of system reset.  
Input signals are provided to the processor block for each reset type. The signals are used  
to reset the processor block and to record the reset type in the debug-status register  
(DBSR[MRR]). The processor block can produce reset-request output signals for each reset  
type. External reset logic can process these output signals and generate the appropriate  
reset input signals to the processor block. Reset activity does not occur when the processor  
block requests the reset. Reset activity occurs only when external logic asserts the  
appropriate reset input signal.  
Reset Requirements  
FPGA logic (external to the processor block) is required to generate the reset input signals  
to the processor block. The reset input signals can be based on the reset-request output  
signals from the processor block, system-specific reset-request logic, or a combination of  
the two. Reset input signals must meet the following minimum requirements:  
x
x
The reset input signals must be synchronized with the PowerPC 405 clock.  
The reset input signals must be asserted for at least eight (CPMC405CLOCK) clock  
cycles.  
x
Only the combinations of signals shown in Table 2-5 are used to cause a reset.  
POR (power-on reset) is handled by logic within the processor block. This logic asserts the  
RSTC405RESETCORE, RSTC405RESETCHIP, RSTC405RESETSYS, and  
PowerPC™ 405 Processor Block Reference Guide  
43  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
R
Chapter 2: Input/Output Interfaces  
JTGC405TRSTNEG signals for at least sixteen clock cycles. FPGA designers cannot modify  
the processor block power-on reset mechanism.  
The reset logic is not required to support all three types of reset. However, distinguishing  
resets by type can make it easier to isolate errors during system debug. For example, a  
system could reset the core to recover from an external error that affects software  
operation. Following the core reset, a debugger could be used to locate the external error  
source that is preserved because neither a chip or system reset occurred.  
Table 2-5 shows the valid combinations of reset signals and their effect on the DBSR[MRR]  
field following reset.  
Table 2-5: Valid Reset Signal Combinations and Effect on DBSR(MRR)  
Reset Type  
Reset Input Signal  
None  
Core  
Assert  
Chip  
Assert  
Assert  
Deassert  
Deassert  
0b10  
System Power-Ona  
RSTC405RESETCORE  
RSTC405RESETCHIP  
RSTC405RESETSYS  
JTGC405TRSTNEG  
Deassert  
Deassert  
Deassert  
Deassert  
Assert  
Assert  
Assert  
Deassert  
0b11  
Assert  
Assert  
Assert  
Assert  
0b11  
Deassert  
Deassert  
Deassert  
0b01  
Value of DBSR[MRR]  
following reset  
Previous  
DBSR[MRR]  
a. Handled automatically by logic within the processor block.  
Reset Interface I/O Signal Summary  
Figure 2-3 shows the block symbol for the reset interface. The signals are summarized in  
Table 2-6.  
PPC405  
RSTC405RESETCORE  
RSTC405RESETCHIP  
RSTC405RESETSYS  
JTGC405TRSTNEG  
C405RSTCORERESETREQ  
C405RSTCHIPRESETREQ  
C405RSTSYSRESETREQ  
UG018_03_102001  
Figure 2-3: Reset Interface Block Symbol  
Table 2-6: Reset Interface I/O Signals  
I/O  
Type  
Signal  
If Unused  
Function  
C405RSTCORERESETREQ  
O
Required Indicates a core-reset request  
occurred.  
C405RSTCHIPRESETREQ  
C405RSTSYSRESETREQ  
O
O
Required Indicates a chip-reset request  
occurred.  
Required Indicates a system-reset request  
occurred.  
44  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
Table 2-6: Reset Interface I/O Signals (Continued)  
I/O  
Type  
Signal  
If Unused  
Function  
RSTC405RESETCORE  
I
Required Resets the processor block, including  
the PowerPC 405 core logic, data  
cache, instruction cache, and interface  
controllers.  
RSTC405RESETCHIP  
RSTC405RESETSYS  
I
I
Required Indicates a chip-reset occurred.  
Required Indicates a system-reset occurred.  
Resets the logic in the PowerPC 405  
JTAG unit.  
JTGC405TRSTNEG  
I
Required Performs a JTAG test reset (TRST).  
Reset Interface I/O Signal Descriptions  
The following sections describe the operation of the reset interface I/ O signals.  
C405RSTCORERESETREQ (Output)  
When asserted, this signal indicates the processor block is requesting a core reset. If  
asserted, this signal remains active until two clock cycles after external logic asserts the  
RSTC405RESETCORE input to the processor block. When deasserted, no core-reset request  
exists.  
The processor asserts this signal when one of the following occurs:  
x
A JTAG debugger sets the reset field in the debug-control register 0 (DBCR0[RST]) to  
0b01.  
x
x
Software sets the reset field in the debug-control register 0 (DBCR0[RST]) to 0b01.  
The timer-control register watchdog-reset control field (TCR[WRC]) is set to 0b01 and  
a watchdog time-out causes the watchdog-event state machine to enter the reset state.  
C405RSTCHIPRESETREQ (Output)  
When asserted, this signal indicates the processor block is requesting a chip reset. If this  
signal is asserted, it remains active until two clock cycles after external logic asserts the  
RSTC405RESETCHIP input to the processor block. When deasserted, no chip-reset request  
exists. Unlike GSR, this output has no associated reset connectivity in the FPGA.  
The processor asserts this signal when one of the following occurs:  
x
A JTAG debugger sets the reset field in the debug-control register 0 (DBCR0[RST]) to  
0b10.  
x
x
Software sets the reset field in the debug-control register 0 (DBCR0[RST]) to 0b10.  
The timer-control register watchdog-reset control field (TCR[WRC]) is set to 0b10 and  
a watchdog time-out causes the watchdog-event state machine to enter the reset state.  
C405RSTSYSRESETREQ (Output)  
When asserted, this signal indicates the processor block is requesting a system reset. If this  
signal is asserted, it remains active until two clock cycles after external logic asserts the  
PowerPC™ 405 Processor Block Reference Guide  
45  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
R
Chapter 2: Input/Output Interfaces  
RSTC405RESETSYS input to the processor block. When deasserted, no system-reset  
request exists. Unlike GSR, this output has no associated reset connectivity in the FPGA.  
The processor asserts this signal when one of the following occurs:  
x
A JTAG debugger sets the reset field in the debug-control register 0 (DBCR0[RST]) to  
0b11.  
x
x
Software sets the reset field in the debug-control register 0 (DBCR0[RST]) to 0b11.  
The timer-control register watchdog-reset control field (TCR[WRC]) is set to 0b11 and  
a watchdog time-out causes the watchdog-event state machine to enter the reset state.  
RSTC405RESETCORE (Input)  
External logic asserts this signal to reset the processor block (core). This includes the  
PowerPC 405 core logic, data cache, instruction cache, and the interface controllers. The  
PowerPC 405 also uses this signal to record a core reset type in the DBSR[MRR] field. This  
signal should be asserted for at least eight clock cycles to guarantee that the processor  
block initiates its reset sequence. No reset occurs and none is recorded in DBSR[MRR]  
when this signal is deasserted.  
Table 2-5, page 44 shows the valid combinations of the RSTC405RESETCORE,  
RSTC405RESETCHIP, and RSTC405RESETSYS signals and their effect on the DBSR[MRR]  
field following reset.  
RSTC405RESETCHIP (Input)  
External logic asserts this signal to reset the chip. A chip reset involves the FPGA logic, on-  
chip peripherals, and the processor block (the PowerPC 405 core logic, data cache,  
instruction cache, and the interface controllers). The signal does not reset logic in the  
processor block. The PowerPC 405 uses this signal only to record a chip reset type in the  
DBSR[MRR] field. The RSTC405RESETCORE signal must be asserted with this signal to  
cause a core reset. Both signals must be asserted for at least eight clock cycles to guarantee  
that the processor block recognizes the reset type and initiates the core-reset sequence. The  
PowerPC 405 does not record a chip reset type in DBSR[MRR] when this signal is  
deasserted.  
Table 2-5, page 44 shows the valid combinations of the RSTC405RESETCORE,  
RSTC405RESETCHIP, and RSTC405RESETSYS signals and their effect on the DBSR[MRR]  
field following reset.  
RSTC405RESETSYS (Input)  
External logic asserts this signal to reset the system. A system reset involves logic external  
to the FPGA, the FPGA logic, on-chip peripherals, and the processor block (the PowerPC  
405 core logic, data cache, instruction cache, and the interface controllers). This signal  
resets the logic in the PowerPC 405 JTAG unit, but it does not reset any other processor  
block logic. The PowerPC 405 uses this signal to record a system reset type in the  
DBSR[MRR] field. The RSTC405RESETCORE signal must be asserted with this signal to  
cause a core reset. The RSTC405RESETCORE, RSTC405RESETCHIP, and  
RSTC405RESETSYS signals must be asserted for at least eight clock cycles to guarantee  
that the processor block recognizes the reset type and initiates the core-reset sequence. The  
PowerPC 405 does not record a system reset type in DBSR[MRR] when this signal is  
deasserted.  
This signal must be asserted during a power-on reset to initialize the JTAG unit properly.  
46  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
R
Table 2-5, page 44 shows the valid combinations of the RSTC405RESETCORE,  
RSTC405RESETCHIP, and RSTC405RESETSYS signals and their effect on the DBSR[MRR]  
field following reset.  
JTGC405TRSTNEG (Input)  
This input is the JTAG test reset (TRST) signal. It can be connected to the chip-level TRST  
signal. Although optional in IEEE Standard 1149.1, this signal is automatically used by the  
processor block during power-on reset to properly reset all processor block logic, including  
the JTAG and debug logic. When deasserted, no JTAG test reset exists.  
This is a negative active signal.  
Instruction-Side Processor Local Bus Interface  
The instruction-side processor local bus (ISPLB) interface enables the PowerPC 405  
instruction cache unit (ICU) to fetch (read) instructions from any memory device  
connected to the processor local bus (PLB). The ICU cannot write to memory. This interface  
has a dedicated 30-bit address bus output and a dedicated 64-bit read-data bus input. The  
interface is designed to attach as a master to a 64-bit PLB, but it also supports attachment  
as a master to a 32-bit PLB. The interface is capable of one transfer (64 or 32 bits) every PLB  
cycle.  
At the chip level, the ISPLB can be combined with the data-side read-data bus (also a PLB  
master) to create a shared read-data bus. This is done if a single PLB arbiter services both  
PLB masters, and the PLB arbiter implementation only returns data to one PLB master at a  
time.  
Refer to the PowerPC Processor Reference Guide for more information on the operation of the  
PowerPC 405 ICU.  
Instruction-Side PLB Operation  
Fetch requests are produced by the ICU and communicated over the PLB interface. Fetch  
requests occur when an access misses the instruction cache or when the accessed memory  
location is non-cacheable. A fetch request contains the following information:  
x
A fetch request is indicated by C405PLBICUREQUEST. See “C405PLBICUREQUEST  
(Output)”.  
x
The target address of the instruction to be fetched is specified by the address bus,  
C405PLBICUABUS[0:29]. See “C405PLBICUABUS[0:29] (Output)”. Bits 30:31 of the  
32-bit instruction-fetch address are always zero and must be tied to zero at the PLB  
arbiter. The ICU always requests an aligned doubleword of data, so the byte enables  
are not used.  
x
x
x
The transfer size is specified as four words (quadword) or eight words (cache line)  
using C405PLBICUSIZE[2:3]. See “C405PLBICUSIZE[2:3] (Output)”. The remaining  
bits of the transfer size (0:1) must be tied to zero at the PLB arbiter.  
The cacheability storage attribute is indicated by C405PLBICUCACHEABLE. See  
“C405PLBICUCACHEABLE (Output). Cacheable transfers are always performed  
with an eight-word transfer size.  
The user-defined storage attribute is indicated by C405PLBICUU0ATTR. See  
“C405PLBICUU0ATTR (Output)”.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
47  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
R
Chapter 2: Input/Output Interfaces  
x
The request priority is indicated by C405PLBICUPRIORITY[0:1]. See  
“C405PLBICUPRIORITY[0:1] (Output)”. The PLB arbiter uses this information to  
prioritize simultaneous requests from multiple PLB masters.  
The processor can abort a PLB fetch request using C405PLBICUABORT. See  
“C405PLBICUABORT (Output)”. This can occur when a branch instruction is executed or  
when an interrupt occurs.  
Fetched instructions are returned to the ICU by a PLB slave device over the PLB interface.  
A fetch response contains the following information:  
x
x
x
The fetch-request address is acknowledged by the PLB slave using  
PLBC405ICUADDRACK. See “PLBC405ICUADDRACK (Input)”.  
Instructions sent from the PLB slave to the ICU during a line transfer are indicated as  
valid using PLBC405ICURDDACK. See “PLBC405ICURDDACK (Input)”.  
The PLB-slave bus width, or size (32-bit or 64-bit), is specified by PLBC405ICUSSIZE1.  
See “PLBC405ICUSSIZE1 (Input)”. The PLB slave is responsible for packing data  
bytes from non-word devices so that the information sent to the ICU is presented  
appropriately, as determined by the transfer size.  
x
The instructions returned to the ICU by the PLB slave are sent using four-word or  
eight-word line transfers, as specified by the transfer size in the fetch request. These  
instructions are returned over the ICU read-data bus, PLBC405ICURDDBUS[0:63].  
See “PLBC405ICURDDBUS[0:63] (Input)”. Line transfers operate as follows:  
i
A four-word line transfer returns the quadword aligned on the address specified  
by C405PLBICUABUS[0:27]. This quadword contains the target instruction  
requested by the ICU. The quadword is returned using two doubleword or four  
word transfer operations, depending on the PLB slave bus width (64-bit or 32-bit,  
respectively).  
i
An eight-word line transfer returns the eight-word cache line aligned on the  
address specified by C405PLBICUABUS[0:26]. This cache line contains the target  
instruction requested by the ICU. The cache line is returned using four  
doubleword or eight word transfer operations, depending on the PLB slave bus  
width (64-bit or 32-bit, respectively).  
x
The words returned during a line transfer can be sent from the PLB slave to the ICU in  
any order (target-word-first, sequential, other). This transfer order is specified by  
PLBC405ICURDWDADDR[1:3]. See “PLBC405ICURDWDADDR[1:3] (Input)”.  
Interaction with the ICU Fill Buffer  
As mentioned above, the PLB slave can transfer instructions to the ICU in any order  
(target-word-first, sequential, other). When instructions are received by the ICU from the  
PLB slave, they are placed in the ICU fill buffer. When the ICU receives the target  
instruction, it forwards it immediately from the fill buffer to the instruction-fetch unit so  
that pipeline stalls due to instruction-fetch delays are minimized. This operation is referred  
to as a bypass. The remaining instructions are received from the PLB slave and placed in the  
fill buffer. Subsequent instruction fetches read from the fill buffer if the instruction is  
already present in the buffer. For the best possible software performance, the PLB slave  
should be designed to return the target word first.  
Non-cacheable instructions are transferred using a four-word or eight-word line-transfer  
size. Software controls this transfer size using the non-cacheable request-size bit in the core-  
configuration register (CCR0[NCRS]). This enables non-cacheable transfers to take  
advantage of the PLB line-transfer protocol to minimize PLB-arbitration delays and bus  
delays associated with multiple, single-word transfers. The transferred instructions are  
48  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
placed in the ICU fill buffer, but not in the instruction cache. Subsequent instruction fetches  
from the same non-cacheable line are read from the fill buffer instead of requiring a  
separate arbitration and transfer sequence across the PLB. Instructions in the fill buffer are  
fetched with the same performance as a cache hit. The non-cacheable line remains in the fill  
buffer until the fill buffer is needed by another line transfer.  
Cacheable instructions are always transferred using an eight-word line-transfer size. The  
transferred instructions are placed in the ICU fill buffer as they are received from the PLB  
slave. Subsequent instruction fetches from the same cacheable line are read from the fill  
buffer during the time the line is transferred from the PLB slave. When the fill buffer is full,  
its contents are transferred to the instruction cache. Software can prevent this transfer by  
setting the fetch without allocate bit in the core-configuration register (CCR0[FWOA]). In  
this case, the cacheable line remains in the fill buffer until the fill buffer is needed by  
another line transfer. An exception is that the contents of the fill buffer are always  
transferred if the line was fetched because an icbt instruction was executed.  
Prefetch and Address Pipelining  
A prefetch is a request for the eight-word cache line that sequentially follows the current  
eight-word fetch request. Prefetched instructions are fetched before it is known that they  
are needed by the sequential execution of software.  
The ICU can overlap a single prefetch request with the prior fetch request. This process,  
known as address pipelining, enables a second address to be presented to a PLB slave while  
the slave is returning data associated with the first address. Address pipelining can occur  
if a prefetch request is produced before all instructions from the previous fetch request are  
transferred by the slave. This capability maximizes PLB-transfer throughput by reducing  
dead cycles between instruction transfers associated with the two requests. The ICU can  
pipeline the prefetch with any combination of sequential, branch, and interrupt fetch  
requests. A prefetch request is communicated over the PLB two or more cycles after the  
prior fetch request is acknowledged by the PLB slave.  
Address pipelining of prefetch requests never occurs under any one of the following  
conditions:  
x
x
The PLB slave does not support address pipelining.  
The prefetch address falls outside the 1 KB physical page holding the current fetch  
address. This limitation avoids potential problems due to protection violations or  
storage-attribute mismatches.  
x
Non-cacheable transfers are programmed to use a four-word line-transfer size  
(CCR0[NCRS] 0).  
x
x
For non-cacheable transfers, prefetching is disabled (CCR0[PFNC] 0).  
For cacheable transfers, prefetching is disabled (CCR0[PFC] 0).  
Address pipelining of non-cacheable prefetch requests can occur if all of the following  
conditions are met:  
x
x
x
Address pipelining is supported by the PLB slave.  
The ICU is not already involved in an address-pipelined PLB transfer.  
A branch or interrupt does not modify the sequential execution of the current (first)  
instruction-fetch request.  
x
x
Non-cacheable prefetching is enabled (CCR0[PFNC] 1).  
A non-cacheable instruction-prefetch is requested, and the instruction is not in the fill  
buffer or being returned over the ISOCM interface.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
49  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
Chapter 2: Input/Output Interfaces  
x
The prefetch address does not fall outside the current 1 KB physical page.  
Address pipelining of cacheable prefetch requests can occur if all of the following  
conditions are met:  
x
x
x
Address pipelining is supported by the PLB slave.  
The ICU is not already involved in an address-pipelined PLB transfer.  
A branch or interrupt does not modify the sequential execution of the current (first)  
instruction-fetch request.  
x
x
Cacheable prefetching is enabled (CCR0[PFC] 1).  
A cacheable instruction-prefetch is requested, and the instruction is not in the  
instruction cache, the fill buffer, or being returned over the ISOCM interface.  
x
The prefetch address does not fall outside the current 1 KB physical page.  
Guarded Storage  
Accesses to guarded storage are not indicated by the ISPLB interface. This is because the  
PowerPC Architecture allows instruction prefetching when:  
x
x
The processor is in real mode (instruction address translation is disabled).  
The fetched instruction is located in the same physical page (1 KB) as an instruction  
that is required by the sequential execution model.  
x
The fetched instruction is located in the next physical page (1 KB) as an instruction  
that is required by the sequential execution model.  
Memory should be organized such that real-mode instruction prefetching from the same  
or next 1 KB page does not affect sensitive addresses, such as memory-mapped I/ O  
devices.  
If the processor is in virtual mode, an attempt to prefetch from guarded storage causes an  
instruction-storage interrupt. In this case, the prefetch never appears on the ISPLB.  
Instruction-Side PLB I/O Signal Table  
Figure 2-4 shows the block symbol for the instruction-side PLB interface. The signals are  
summarized in Table 2-7.  
PPC405  
PLBC405ICUADDRACK  
C405PLBICUREQUEST  
C405PLBICUABUS[0:29]  
C405PLBICUSIZE[2:3]  
C405PLBICUCACHEABLE  
C405PLBICUU0ATTR  
PLBC405ICUSSIZE1  
PLBC405ICURDDACK  
PLBC405ICURDDBUS[0:63]  
PLBC405ICURDWDADDR[1:3]  
PLBC405ICUBUSY  
C405PLBICUPRIORITY[0:1]  
C405PLBICUABORT  
PLBC405ICUERR  
UG018_04_051204  
Figure 2-4: Instruction-Side PLB Interface Block Symbol  
50  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
Table 2-7: Instruction-Side PLB Interface Signal Summary  
I/O  
Type  
Signal  
If Unused  
Function  
C405PLBICUREQUEST  
O
No Connect Indicates the ICU is making an instruction-fetch  
request.  
C405PLBICUABUS[0:29]  
O
No Connect Specifies the memory address of the instruction-fetch  
request. Bits 30:31 of the 32-bit address are assumed to  
be zero.  
C405PLBICUSIZE[2:3]  
O
O
No Connect Specifies a four word or eight word line-transfer size.  
C405PLBICUCACHEABLE  
No Connect Indicates the value of the cacheability storage  
attribute for the target address.  
C405PLBICUU0ATTR  
O
No Connect Indicates the value of the user-defined storage  
attribute for the target address.  
C405PLBICUPRIORITY[0:1]  
C405PLBICUABORT  
O
O
No Connect Indicates the priority of the ICU fetch request.  
No Connect Indicates the ICU is aborting an unacknowledged  
fetch request.  
PLBC405ICUADDRACK  
PLBC405ICUSSIZE1  
I
I
I
I
I
0
0
0
Indicates a PLB slave acknowledges the current ICU  
fetch request.  
Specifies the bus width (size) of the PLB slave that  
accepted the request.  
PLBC405ICURDDACK  
Indicates the ICU read-data bus contains valid  
instructions for transfer to the ICU.  
PLBC405ICURDDBUS[0:63]  
PLBC405ICURDWDADDR[1:3]  
0x0000_0000 The ICU read-data bus used to transfer instructions  
_0000_0000 from the PLB slave to the ICU.  
0b000  
Indicates which word or doubleword of a four-word  
or eight-word line transfer is present on the ICU read-  
data bus.  
PLBC405ICUBUSY  
PLBC405ICUERR  
I
I
0
0
Indicates the PLB slave is busy performing an  
operation requested by the ICU.  
Indicates an error was detected by the PLB slave  
during the transfer of instructions to the ICU.  
Instruction-Side PLB Interface I/O Signal Descriptions  
The following sections describe the operation of the instruction-side PLB interface I/ O  
signals.  
Throughout these descriptions and unless otherwise noted, the term clock refers to the PLB  
clock signal, PLBCLK (see “PLBCLK (Input)” for information on this clock signal). The  
term cycle refers to a PLB cycle. To simplify the signal descriptions, it is assumed that  
PLBCLK and the PowerPC 405 clock (CPMC405CLOCK) operate at the same frequency.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
51  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
R
Chapter 2: Input/Output Interfaces  
C405PLBICUREQUEST (Output)  
When asserted, this signal indicates the ICU is requesting instructions from a PLB slave  
device. The PLB slave asserts PLBC405ICUADDRACK to acknowledge the request. The  
request can be acknowledged in the same cycle it is presented by the ICU. The request is  
deasserted in the cycle after it is acknowledged by the PLB slave. When deasserted, no  
unacknowledged instruction-fetch request exists.  
The following output signals contain information for the PLB slave device and are valid  
when the request is asserted. The PLB slave must latch these signals by the end of the same  
cycle during which it acknowledges the request:  
x
x
x
C405PLBICUABUS[0:31] contains the word address of the instruction-fetch request.  
C405PLBICUSIZE[2:3] indicates the instruction-fetch line-transfer size.  
C405PLBICUCACHEABLE indicates whether the instruction-fetch address is  
cacheable.  
x
C405PLBICUU0ATTR indicates the value of the user-defined storage attribute for the  
instruction-fetch address.  
C405PLBICUPRIORITY[0:1] is also valid when the request is asserted. This signal indicates  
the priority of the instruction-fetch request. It is used by the PLB arbiter to prioritize  
simultaneous requests from multiple PLB masters.  
The ICU supports two outstanding fetch requests over the PLB. The ICU can make a  
second fetch request (a prefetch) after the current request is acknowledged. The ICU  
deasserts C405PLBICUREQUEST for at least one cycle after the current request is  
acknowledged and before the subsequent request is asserted.  
If the PLB slave supports address pipelining, it must respond to the two fetch requests in  
the order in which they the ICU presents them. All instructions associated with the first  
request must be returned before any instruction associated with the second request is  
returned. The ICU cannot present a third fetch request until the first request is completed  
by the PLB slave. This third request can be presented two cycles after the last read  
acknowledge (PLBC405ICURDDACK) is sent from the PLB slave to the ICU, completing  
the first request.  
The ICU can abort a fetch request if it no longer requires the requested instruction. The ICU  
removes a request by asserting C405PLBICUABORT while the request is asserted. In the  
next cycle the request is deasserted and remains deasserted for at least one cycle.  
C405PLBICUABUS[0:29] (Output)  
This bus specifies the memory address of the instruction-fetch request. Bits 30:31 of the 32-  
bit address are assumed to be zero so that all fetch requests are aligned on a word  
boundary. The fetch address is valid during the time the fetch request signal  
(C405PLBICUREQUEST) is asserted. It remains valid until the cycle following  
acknowledgement of the request by the PLB slave (the PLB slave asserts  
PLBC405ICUADDRACK to acknowledge the request).  
C405PLBICUSIZE[2:3] indicates the instruction-fetch line-transfer size. The PLB slave uses  
memory-address bits [0:27] to specify an aligned four-word address for a four-word  
transfer size. Memory-address bits [0:26] are used to specify an aligned eight-word address  
for an eight-word transfer size.  
52  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
C405PLBICUSIZE[2:3] (Output)  
These signals are used to specify the line-transfer size of the instruction-fetch request. A  
four-word transfer size is specified when C405PLBICUSIZE[2:3] 0b01. An eight-word  
transfer size is specified when C405PLBICUSIZE[2:3] 0b10. The transfer size is valid in the  
cycles during which the fetch-request signal (C405PLBICUREQUEST) is asserted. It  
remains valid until the cycle following acknowledgement of the request by the PLB slave  
(the PLB slave asserts PLBC405ICUADDRACK to acknowledge the request).  
A four-word line transfer returns the quadword aligned on the address specified by  
C405PLBICUABUS[0:27]. This quadword contains the target instruction requested by the  
ICU. The quadword is returned using two doubleword or four word transfer operations,  
depending on the PLB slave bus width (64-bit or 32-bit, respectively).  
An eight-word line transfer returns the eight-word cache line aligned on the address  
specified by C405PLBICUABUS[0:26]. This cache line contains the target instruction  
requested by the ICU. The cache line is returned using four doubleword or eight word  
transfer operations, depending on the PLB slave bus width (64-bit or 32-bit, respectively).  
The words returned during a line transfer can be sent from the PLB slave to the ICU in any  
order (target-word-first, sequential, other). This transfer order is specified by  
PLBC405ICURDWDADDR[1:3].  
C405PLBICUCACHEABLE (Output)  
This signal indicates whether the requested instructions are cacheable. It reflects the value  
of the cacheability storage attribute for the target address. The requested instructions are  
non-cacheable when the signal is deasserted (0). They are cacheable when the signal is  
asserted (1). This signal is valid during the time the fetch-request signal  
(C405PLBICUREQUEST) is asserted. It remains valid until the cycle following  
acknowledgement of the request by the PLB slave (the PLB slave asserts  
PLBC405ICUADDRACK to acknowledge the request).  
Non-cacheable instructions are transferred using a four-word or eight-word line-transfer  
size. Software controls this transfer size using the non-cacheable request-size bit in the core-  
configuration register (CCR0[NCRS]). This enables non-cacheable transfers to take  
advantage of the PLB line-transfer protocol to minimize PLB-arbitration delays and bus  
delays associated with multiple, single-word transfers. The transferred instructions are  
placed in the ICU fill buffer, but not in the instruction cache. Subsequent instruction fetches  
from the same non-cacheable line are read from the fill buffer instead of requiring a  
separate arbitration and transfer sequence across the PLB. Instructions in the fill buffer are  
fetched with the same performance as a cache hit. The non-cacheable line remains in the fill  
buffer until the fill buffer is needed by another line transfer.  
Cacheable instructions are always transferred using an eight-word line-transfer size. The  
transferred instructions are placed in the ICU fill buffer as they are received from the PLB  
slave. Subsequent instruction fetches from the same cacheable line are read from the fill  
buffer during the time the line is transferred from the PLB slave. When the fill buffer is full,  
its contents are transferred to the instruction cache. Software can prevent this transfer by  
setting the fetch without allocate bit in the core-configuration register (CCR0[FWOA]). In  
this case, the cacheable line remains in the fill buffer until the fill buffer is needed by  
another line transfer. An exception is that the contents of the fill buffer are always  
transferred if the line was fetched because an icbt instruction was executed.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
53  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Chapter 2: Input/Output Interfaces  
C405PLBICUU0ATTR (Output)  
This signal reflects the value of the user-defined (U0) storage attribute for the target  
address. The requested instructions are not in memory locations characterized by this  
attribute when the signal is deasserted (0). They are in memory locations characterized by  
this attribute when the signal is asserted (1). This signal is valid during the time the fetch-  
request signal (C405PLBICUREQUEST) is asserted. It remains valid until the cycle  
following acknowledgement of the request by the PLB slave (the PLB slave asserts  
PLBC405ICUADDRACK to acknowledge the request).  
The system designer can use this signal to assign special behavior to certain memory  
addresses. Its use is optional.  
C405PLBICUABORT (Output)  
When asserted, this signal indicates the ICU is aborting the current fetch request. It is used  
by the ICU to abort a request that has not been acknowledged, or is in the process of being  
acknowledged by the PLB slave. The fetch request continues normally if this signal is not  
asserted. This signal is only valid during the time the fetch-request signal  
(C405PLBICUREQUEST) is asserted. It must be ignored by the PLB slave if the fetch-  
request signal is not asserted. In the cycle after the abort signal is asserted, the fetch-request  
signal is deasserted and remains deasserted for at least one cycle.  
If the abort signal is asserted in the same cycle that the fetch request is acknowledged by  
the PLB slave (PLBC405ICUADDRACK is asserted), the PLB slave is responsible for  
ensuring that the transfer does not proceed further. The PLB slave cannot assert the ICU  
read-data bus acknowledgement signal (PLBC405ICURDDACK) for an aborted request.  
The ICU can abort an address-pipelined fetch request while the PLB slave is responding to  
a previous fetch request. The PLB slave is responsible for completing the previous fetch  
request and aborting the new (pipelined) request.  
C405PLBICUPRIORITY[0:1] (Output)  
These signals are used to specify the priority of the instruction-fetch request. Table 2-8  
shows the encoding of the 2-bit PLB-request priority signal. The priority is valid during the  
cycles the fetch-request signal (C405PLBICUREQUEST) is asserted. It remains valid until  
the cycle following acknowledgement of the request by the PLB slave. (The PLB slave  
asserts PLBC405ICUADDRACK to acknowledge the request.)  
Table 2-8: PLB-Request Priority Encoding  
Bit 0  
Bit 1  
Definition  
Lowest PLB-request priority.  
0
0
1
1
0
1
0
1
Next-to-lowest PLB-request priority.  
Next-to-highest PLB-request priority.  
Highest PLB-request priority.  
Software establishes the instruction-fetch request priority by writing the appropriate value  
into the ICU PLB-priority bits 0:1 of the core-configuration register (CCR0[IPP]). After a  
reset, the priority is set to the highest level (CCR0[IPP] 0b11).  
54  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
PLBC405ICUADDRACK (Input)  
When asserted, this signal indicates the PLB slave acknowledges the ICU fetch request  
(indicated by the ICU assertion of C405PLBICUREQUEST). When deasserted, no such  
acknowledgement exists. A fetch request can be acknowledged by the PLB slave in the  
same cycle the request is asserted by the ICU. The PLB slave must latch the following fetch-  
request information in the same cycle it asserts the fetch acknowledgement:  
x
C405PLBICUABUS[0:29], which contains the word address of the instruction-fetch  
request.  
x
x
C405PLBICUSIZE[2:3], which indicates the instruction-fetch line-transfer size.  
C405PLBICUCACHEABLE, which indicates whether the instruction-fetch address is  
cacheable.  
x
C405PLBICUU0ATTR, which indicates the value of the user-defined storage attribute  
for the instruction-fetch address. (Use of this signal is optional.)  
During the acknowledgement cycle, the PLB slave must return its bus width indicator (32  
bits or 64 bits) using the PLBC405ICUSSIZE1 signal.  
The acknowledgement signal remains asserted for one cycle. In the next cycle, both the  
fetch request and acknowledgement are deasserted. Instructions can be returned to the  
ICU from the PLB slave beginning in the cycle following the acknowledgement. The PLB  
slave must abort an ICU fetch request (return no instructions) if the ICU asserts  
C405PLBICUABORT in the same cycle the PLB slave acknowledges the request.  
The ICU supports two outstanding fetch requests over the PLB. The ICU can make a  
second fetch request after the current request is acknowledged. The ICU deasserts  
C405PLBICUREQUEST for at least one cycle after the current request is acknowledged and  
before the subsequent request is asserted.  
If the PLB slave supports address pipelining, it must respond to the two fetch requests in  
the order they are presented by the ICU. All instructions associated with the first request  
must be returned before any instruction associated with the second request is returned.  
The ICU cannot present a third fetch request until the first request is completed by the PLB  
slave. This third request can be presented two cycles after the last read acknowledge  
(PLBC405ICURDDACK) is sent from the PLB slave to the ICU, completing the first  
request.  
PLBC405ICUSSIZE1 (Input)  
This signal indicates the bus width (size) of the PLB slave device that acknowledged the  
ICU fetch request. A 32-bit PLB slave responded when the signal is deasserted (0). A 64-bit  
PLB slave responded when the signal is asserted (1). This signal is valid during the cycle  
the acknowledge signal (PLBC405ICUADDRACK) is asserted.  
The size signal is used by the ICU to determine how instructions are read from the 64-bit  
PLB interface during a transfer cycle (a transfer occurs when the PLB slave asserts  
PLBC405ICURDDACK). The ICU uses the size signal as follows:  
x
When a 32-bit PLB slave responds, an aligned word is sent from the slave to the ICU  
during each transfer cycle. The 32-bit PLB slave bus should be connected to both the  
high and low 32 bits of the 64-bit ICU read-data bus (see Figure 2-5). This type of  
connection duplicates the word returned by the slave across the 64-bit bus. The ICU  
reads either the low 32 bits or the high 32 bits of the 64-bit interface, depending on the  
order of the transfer (PLBC405ICURDWDADDR[1:3]).  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
55  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
Chapter 2: Input/Output Interfaces  
x
When a 64-bit PLB slave responds, an aligned doubleword is sent from the slave to the  
ICU during each transfer cycle. Both words are read from the 64-bit interface by the  
ICU in this cycle.  
Table 2-10, page 58, shows the location of instructions on the ICU read-data bus as a  
function of PLB-slave size, line-transfer size, and transfer order.  
PLBC405ICURDDACK (Input)  
When asserted, this signal indicates the ICU read-data bus contains valid instructions sent  
by the PLB slave to the ICU (read data is acknowledged). The ICU latches the data from the  
bus at the end of the cycle this signal is asserted. The contents of the ICU read-data bus are  
not valid when this signal is deasserted.  
Read-data acknowledgement is asserted for one cycle per transfer. There is no limit to the  
number of cycles between two transfers. The number of transfers (and the number of read-  
data acknowledgements) depends on the following:  
x
x
x
x
The PLB slave size (bus width) specified by PLBC405ICUSSIZE1.  
The line-transfer size specified by C405PLBICUSIZE[2:3].  
The cacheability of the fetched instructions specified by C405PLBICUCACHEABLE.  
The value of the non-cacheable request-size bit (CCR0[NCRS]).  
Table 2-9 summarizes the effect these parameters have on the number of transfers.  
Table 2-9: Number of Transfers Required for Instruction-Fetch Requests  
PLB-Slave  
Size  
Line-Transfer  
Size  
Instruction  
Cacheability  
Number of  
Transfers  
CCR0[NCRS]  
32-Bit  
Four Words  
Eight Words  
Eight Words  
Four Words  
Eight Words  
Eight Words  
Non-Cacheable  
0
1
4
8
8
2
4
4
Cacheable  
0
64-Bit  
Non-Cacheable  
1
Cacheable  
PLBC405ICURDDBUS[0:63] (Input)  
This read-data bus contains the instructions transferred from a PLB slave to the ICU. The  
contents of the bus are valid when the read-data acknowledgement signal  
(PLBC405ICURDDACK) is asserted. This acknowledgment is asserted for one cycle per  
transfer. There is no limit to the number of cycles between two transfers. The bus contents  
are not valid when the read-data acknowledgement signal is deasserted.  
The PLB slave returns either a single instruction (an aligned word) or two instructions (an  
aligned doubleword) per transfer. The number of instructions sent per transfer depends on  
the PLB slave size (bus width), as follows:  
x
When a 32-bit PLB slave responds, an aligned word is sent from the slave to the ICU  
during each transfer cycle. The 32-bit PLB slave bus should be connected to both the  
high and low 32 bits of the 64-bit read-data bus, as shown in Figure 2-5 below. This  
type of connection duplicates the word returned by the slave across the 64-bit bus.  
56  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
The ICU reads either the low 32 bits or the high 32 bits of the 64-bit interface,  
depending on the value of PLBC405ICURDWDADDR[1:3].  
x
When a 64-bit PLB slave responds, an aligned doubleword is sent from the slave to the  
ICU during each transfer cycle. Both words are read from the 64-bit interface by the  
ICU in this cycle.  
Table 2-10 shows the location of instructions on the ICU read-data bus as a function of PLB-  
slave size, line-transfer size, and transfer order.  
64-Bit PLB Master  
32-Bit PLB Slave  
PLBC405ICURDDBUS[0:31]  
PLBC405ICURDDBUS[32:63]  
PLBC405ICURDDBUS[0:31]  
C405PLBICUABUS[0:29]  
C405PLBICUABUS[0:29]  
C405PLBICUABUS[30:31]  
00  
UG018_10_102001  
Figure 2-5: Attachment of ISPLB Between 32-Bit Slave and 64-Bit Master  
PLBC405ICURDWDADDR[1:3] (Input)  
These signals are used to specify the transfer order. They identify which word or  
doubleword of a line transfer is present on the ICU read-data bus when the PLB slave  
returns instructions to the ICU. The words returned during a line transfer can be sent from  
the PLB slave to the ICU in any order (target-word-first, sequential, other). The transfer-  
order signals are valid when the read-data acknowledgement signal  
(PLBC405ICURDDACK) is asserted. This acknowledgment is asserted for one cycle per  
transfer. There is no limit to the number of cycles between two transfers. The transfer-order  
signals are not valid when the read-data acknowledgement signal is deasserted.  
Table 2-10 shows the location of instructions on the ICU read-data bus as a function of PLB-  
slave size, line-transfer size, and transfer order. In this table, the Transfer Order column  
contains the possible values of PLBC405ICURDWDADDR[1:3]. For 64-bit PLB slaves,  
PLBC405ICURDWDADDR[3] should always be 0 during a transfer. In this case, the  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
57  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 2: Input/Output Interfaces  
transfer order is invalid if this signal asserted. The entries for a 32-bit PLB slave assume the  
connection to a 64-bit master shown in Figure 2-5, above.  
Table 2-10: Contents of ICU Read-Data Bus During Line Transfer  
PLB Slave  
Size  
Line Transfer  
Size  
ICU Read-Data Bus  
[32:63]  
Transfer Ordera ICU Read-Data Bus [0:31]  
32-Bit  
Four Words  
Eight Words  
x00  
x01  
x10  
x11  
000  
001  
010  
011  
100  
101  
110  
111  
x00  
x10  
xx1  
000  
010  
100  
110  
xx1  
Instruction 0  
Instruction 1  
Instruction 2  
Instruction 3  
Instruction 0  
Instruction 1  
Instruction 2  
Instruction 3  
Instruction 4  
Instruction 5  
Instruction 6  
Instruction 7  
Instruction 0  
Instruction 2  
Instruction 0  
Instruction 1  
Instruction 2  
Instruction 3  
Instruction 0  
Instruction 1  
Instruction 2  
Instruction 3  
Instruction 4  
Instruction 5  
Instruction 6  
Instruction 7  
Instruction 1  
Instruction 3  
64-Bit  
Four Words  
Eight Words  
Invalid  
Instruction 0  
Instruction 2  
Instruction 4  
Instruction 6  
Instruction 1  
Instruction 3  
Instruction 5  
Instruction 7  
Invalid  
a. An “x” indicates a dont-care value in PLBC405ICURDWDADDR[1:3].  
PLBC405ICUBUSY (Input)  
When asserted, this signal indicates the PLB slave acknowledged and is responding to (is  
busy with) an ICU fetch request. When deasserted, the PLB slave is not responding to an  
ICU fetch request.  
This signal should be asserted in the cycle after an ICU fetch request is acknowledged by  
the PLB slave and remain asserted until the request is completed by the PLB slave. It  
should be deasserted in the cycle after the last read-data acknowledgement signal is  
asserted by the PLB slave, completing the transfer. If multiple fetch requests are initiated  
and overlap, the busy signal should be asserted in the cycle after the first request is  
acknowledged and remain asserted until the cycle after the final read-data  
acknowledgement is completed for the last request.  
58  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
Following reset, the processor block prevents the ICU from fetching instructions until the  
busy signal is deasserted for the first time. This is useful in situations where the processor  
block is reset by a core reset, but PLB devices are not reset. Waiting for the busy signal to be  
deasserted prevents fetch requests following reset from interfering with PLB activity that  
was initiated before reset.  
PLBC405ICUERR (Input)  
When asserted, this signal indicates the PLB slave detected an error when attempting to  
access or transfer the instructions requested by the ICU. This signal should be asserted  
with the read-data acknowledgement signal that corresponds to the erroneous transfer.  
The error signal should be asserted for only one cycle. When deasserted, no error is  
detected.  
If a cacheable instruction is transferred with an error indication, it is loaded into the ICU fill  
buffer. However, the cache line held in the fill buffer is not transferred to the instruction  
cache.  
The PLB slave must not terminate instruction transfers when an error is detected. The  
processor block is responsible for responding to any error detected by the PLB slave. A  
machine-check exception occurs if the PowerPC 405 attempts to execute an instruction that  
was transferred to the ICU with an error indication. If an instruction is transferred with an  
error indication but is never executed, no machine-check exception occurs.  
The PLB slave should latch error information in DCRs so that software diagnostic routines  
can attempt to report and recover from the error. A bus-error address register (BEAR)  
should be implemented for storing the address of the access that caused the error. A bus-  
error syndrome register (BESR) should be implemented for storing information about  
cause of the error.  
Instruction-Side PLB Interface Timing Diagrams  
The following timing diagrams show typical transfers that can occur on the ISPLB interface  
between the ICU and a bus-interface unit (BIU). These timing diagrams represent the  
optimal timing relationships supported by the processor block. The BIU can be  
implemented using the FPGA processor local bus (PLB) or using customized hardware.  
Not all BIU implementations support these optimal timing relationships.  
The ICU only performs reads (fetches) when accessing instructions across the ISPLB  
interface.  
ISPLB Timing Diagram Assumptions  
The following assumptions and simplifications were made in producing the optimal  
timing relationships shown in the timing diagrams:  
x
Fetch requests are acknowledged by the BIU in the same cycle they are presented by  
the ICU. This represents the earliest cycle a BIU can acknowledge a fetch request.  
x
The first read-data acknowledgement for a line transfer is asserted in the cycle  
immediately following the fetch-request acknowledgement. This represents the  
earliest cycle a BIU can begin transferring instructions to the ICU in response to a  
fetch request. However, the earliest the FPGA PLB begins transferring instructions is  
two cycles after the fetch request is acknowledged.  
x
Subsequent read-data acknowledgements for a line transfer are asserted in the cycle  
immediately following the prior read-data acknowledgement. This represents the  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
59  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
R
Chapter 2: Input/Output Interfaces  
fastest rate at which a BIU can transfer instructions to the ICU (there is no limit to the  
number of cycles between two transfers).  
x
All line transfers assume the target instruction (word) is returned first. Subsequent  
instructions in the line are returned sequentially by address, wrapping as necessary to  
the lower addresses in the same line.  
x
x
x
x
The rate at which the ICU makes instruction-fetch requests to the BIU is not limited by  
the rate instructions are executed.  
An ICU fetch request to the BIU occurs two cycles after a miss is determined by the  
ICU.  
The ICU latches instructions into the fill buffer in the cycle after the instructions are  
received from the BIU on the PLB.  
The transfer of instructions from the fill buffer to the instruction cache takes three  
cycles. This transfer takes place after all instructions are read into the fill buffer from  
the BIU.  
x
x
x
x
x
The BIU size (bus width) is 64 bits, so PLBC405ICUSSIZE1 is not shown.  
No instruction-access errors occur, so PLBC405ICUERR is not shown.  
The abort signal, C405PLBICUABORT is shown only in the last example.  
The storage attribute signals are not shown.  
The ICU activity is shown only as an aide in describing the examples. The occurrence  
and duration of this activity is not observable on the ISPLB.  
The abbreviations that appear in the timing diagrams are defined in Table 2-11.  
Table 2-11: ISPLB Timing Diagram Abbreviations  
Abbreviationa  
Description  
Where Used  
rl#  
Fetch-request identifier  
Request  
Request acknowledge  
(C405PLBICUREQUEST)  
(PLBC405ICUADDRACK)  
Read-data acknowledge (PLBC405ICURDDACK)  
adr#  
d##  
Fetch-request address  
Request address  
(C405PLBICUABUS[0:29])  
Doublewords (two instructions)  
transferred as a result of a fetch  
request  
ICU read-data bus  
(PLBC405ICURDDBUS[0:63])  
miss#  
fill#  
The ICU detects a cache miss that ICU  
causes a fetch request on the PLB  
The ICU is busy performing a fill ICU  
operation  
byp#  
The ICU forwards instructions to ICU  
the PowerPC 405 instruction-  
fetch unit from the fill buffer as  
they become available (bypass)  
prefetch#  
The ICU speculatively prefetches ICU  
instructions from the BIU  
60  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
 
R
Table 2-11: ISPLB Timing Diagram Abbreviations (Continued)  
Abbreviationa  
Description  
Where Used  
Subscripts  
Used to identify the instruction  
words returned by a transfer  
Read-data acknowledge (PLBC405ICURDDACK)  
ICU read-data bus  
(PLBC405ICURDDBUS[0:63])  
ICU forward (bypass)  
#
Used to identify the order  
Transfer order  
(PLBC405ICURDWDADDR[1:3])  
doublewords are sent to the ICU  
a. The “#” symbol indicates a number.  
ISPLB Non-Pipelined Cacheable Sequential Fetch (Case 1)  
The timing diagram in Figure 2-6 shows two consecutive eight-word line fetches that are  
not address pipelined. The example assumes instructions are fetched sequentially from the  
beginning of the first line through the end of the second line.  
The first line read (rl1) is requested by the ICU in cycle 3 in response to a cache miss  
(represented by the miss1 transaction in cycles 1 and 2). Instructions are sent from the BIU  
to the ICU fill buffer in cycles 4 through 7. Instructions in the fill buffer are bypassed to the  
instruction fetch unit to prevent a processor stall during sequential execution (represented  
by the byp1 transaction in cycles 5 through 8). After all instructions are received, they are  
transferred by the ICU from the fill buffer to the instruction cache. This is represented by  
the fill1 transaction in cycles 9 through 11.  
After the last instruction in the line is fetched, a sequential fetch from the next cache line  
causes a miss in cycle 13 (miss2). The second line read (rl2) is requested by the ICU in cycle  
15 in response to the cache miss. Instructions are sent from the BIU to the ICU fill buffer in  
cycles 16 through 19. Instructions in the fill buffer are bypassed to the instruction fetch unit  
to prevent a processor stall during sequential execution (represented by the byp2  
transaction in cycles 17 through 20). After all instructions are received, they are transferred  
by the ICU from the fill buffer to the instruction cache (not shown).  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
ICU  
miss1  
byp1  
fill1  
miss2  
byp2  
PPC405 Outputs:  
C405PLBICUREQUEST  
rl1  
rl2  
adr1  
adr2  
C405PLBICUABUS[0:29]  
PLB/BIU Outputs:  
PLBC405ICUADDRACK  
rl1  
rl2  
PLBC405ICURDDACK  
rl1 rl1 rl1 rl1  
01 23 45  
rl2 rl2 rl2 rl2  
67  
01  
23  
45  
67  
d1 d1 d1 d1  
01 23 45  
d2 d2 d2 d2  
01 23 45  
PLBC405ICURDDBUS[0:63]  
67  
67  
0
2
4
6
0
2
4
6
PLBC405ICURDWDADDR[1:3]  
PLBC405ICUBUSY  
UG018_11_101701  
Figure 2-6: ISPLB Non-Pipelined Cacheable Sequential Fetch (Case 1)  
PowerPC™ 405 Processor Block Reference Guide  
61  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 2: Input/Output Interfaces  
ISPLB Non-Pipelined Cacheable Sequential Fetch (Case 2)  
The timing diagram in Figure 2-7 shows two consecutive eight-word line fetches that are  
not address pipelined. The example assumes instructions are fetched sequentially from the  
end of the first line through the end of the second line. It provides an illustration of a  
transfer where the target instruction returned first by the BIU is not located at the start of  
the cache line.  
The first line read (rl1) is requested by the ICU in cycle 3 in response to a cache miss  
(represented by the miss1 transaction in cycles 1 and 2). Instructions are sent from the BIU  
to the ICU fill buffer in cycles 4 through 7. The target instruction is bypassed to the  
instruction fetch unit in cycle 5 (byp1). After all instructions are received, they are  
transferred by the ICU from the fill buffer to the instruction cache. This is represented by  
the fill1 transaction in cycles 8 through 10.  
After the target instruction is bypassed, a sequential fetch from the next cache line causes a  
miss in cycle 6 (miss2). The second line read (rl2) is requested by the ICU in cycle 8 in  
response to the cache miss. After the first line is read from the BIU, instructions for the  
second line are sent from the BIU to the ICU fill buffer. This occurs in cycles 9 through 12.  
Instructions in the fill buffer are bypassed to the instruction fetch unit to prevent a  
processor stall during sequential execution (represented by the byp2 transaction in cycles  
11 through 13). After all instructions are received, they are transferred by the ICU from the  
fill buffer to the instruction cache (represented by the fill2 transaction in cycles 14 through  
16).  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
ICU  
miss1  
byp1 miss2  
fill1  
byp2  
fill2  
PPC405 Outputs:  
C405PLBICUREQUEST  
rl1  
rl2  
adr1  
adr2  
C405PLBICUABUS[0:29]  
PLB/BIU Outputs:  
PLBC405ICUADDRACK  
rl1  
rl2  
PLBC405ICURDDACK  
PLBC405ICURDDBUS[0:63]  
PLBC405ICURDWDADDR[1:3]  
PLBC405ICUBUSY  
rl1 rl1 rl1 rl1  
67 01 23  
rl2 rl2 rl2 rl2  
01 23 45  
45  
67  
d1 d1 d1 d1  
67 01 23  
d2 d2 d2 d2  
01 23 45  
45  
67  
6
0
2
4
0
2
4
6
UG018_12_101701  
Figure 2-7: ISPLB Non-Pipelined Cacheable Sequential Fetch (Case 2)  
ISPLB Pipelined Cacheable Sequential Fetch (Case 1)  
The timing diagram in Figure 2-8 shows two consecutive eight-word line fetches that are  
address pipelined. The example assumes instructions are fetched sequentially from the  
beginning of the first line through the end of the second line. It shows the fastest speed at  
which the ICU can request and receive instructions over the PLB.  
62  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
The first line read (rl1) is requested by the ICU in cycle 3 in response to a cache miss  
(represented by the miss1 transaction in cycles 1 and 2). Instructions are sent from the BIU  
to the ICU fill buffer in cycles 4 through 7. Instructions in the fill buffer are bypassed to the  
instruction fetch unit to prevent a processor stall during sequential execution (represented  
by the byp1 transaction in cycles 5 through 8). After all instructions are received, they are  
transferred by the ICU from the fill buffer to the instruction cache. This is represented by  
the fill1 transaction in cycles 9 through 11.  
After the first miss is detected, the ICU performs a prefetch in anticipation of requiring  
instructions from the next cache line (represented by the prefetch2 transaction in cycles 3  
and 4). The second line read (rl2) is requested by the ICU in cycle 5 in response to the  
prefetch. After the first line is read from the BIU, instructions for the second line are sent  
from the BIU to the ICU fill buffer. This occurs in cycles 8 through 11. After all instructions  
are received, they are transferred by the ICU from the fill buffer to the instruction cache  
(represented by the fill2 transaction in cycles 13 through 15). Instructions from this second  
line are not bypassed because the fill buffer is transferred to the cache before the  
instructions are required.  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
ICU  
miss1  
prefetch2  
byp1  
fill1  
fill2  
PPC405 Outputs:  
C405PLBICUREQUEST  
rl1  
rl2  
adr1  
adr2  
C405PLBICUABUS[0:29]  
PLB/BIU Outputs:  
PLBC405ICUADDRACK  
rl1  
rl2  
PLBC405ICURDDACK  
PLBC405ICURDDBUS[0:63]  
PLBC405ICURDWDADDR[1:3]  
PLBC405ICUBUSY  
rl1 rl1 rl1 rl1 rl2 rl2 rl2 rl2  
01  
23  
45  
67  
01  
23  
45  
67  
d1 d1 d1 d1  
01 23 45  
d2 d2 d2 d2  
01 23 45  
67  
67  
0
2
4
6
0
2
4
6
UG018_13_101701  
Figure 2-8: ISPLB Pipelined Cacheable Sequential Fetch (Case 1)  
ISPLB Pipelined Cacheable Sequential Fetch (Case 2)  
The timing diagram in Figure 2-9 shows two consecutive eight-word line fetches that are  
address pipelined. The example assumes instructions are fetched sequentially from the  
end of the first line through the end of the second line. As with the previous example, it  
shows the fastest speed at which the ICU can request and receive instructions over the  
PLB. It also illustrates a transfer where the target instruction returned first by the BIU is not  
located at the start of the cache line.  
The first line read (rl1) is requested by the ICU in cycle 3 in response to a cache miss  
(represented by the miss1 transaction in cycles 1 and 2). Instructions are sent from the BIU  
to the ICU fill buffer in cycles 4 through 7. The target instruction is bypassed to the  
instruction fetch unit in cycle 5 (byp1). After all instructions are received, they are  
transferred by the ICU from the fill buffer to the instruction cache. This is represented by  
the fill1 transaction in cycles 8 through 10.  
PowerPC™ 405 Processor Block Reference Guide  
63  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 2: Input/Output Interfaces  
After the first miss is detected, the ICU performs a prefetch in anticipation of requiring  
instructions from the next cache line (represented by the prefetch2 transaction in cycles 3  
and 4). The second line read (rl2) is requested by the ICU in cycle 5 in response to the  
prefetch. After the first line is read from the BIU, instructions for the second line are sent  
from the BIU to the ICU fill buffer. This occurs in cycles 8 through 11. Instructions in the fill  
buffer are bypassed to the instruction fetch unit to prevent a processor stall during  
sequential execution (represented by the byp2 transaction in cycles 11 through 12). After all  
instructions are received, they are transferred by the ICU from the fill buffer to the  
instruction cache (represented by the fill2 transaction in cycles 13 through 15).  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
ICU  
miss1  
prefetch2 byp1  
fill1  
byp2  
fill2  
PPC405 Outputs:  
C405PLBICUREQUEST  
rl1  
rl2  
adr1  
adr2  
C405PLBICUABUS[0:29]  
PLB/BIU Outputs:  
PLBC405ICUADDRACK  
rl1  
rl2  
PLBC405ICURDDACK  
PLBC405ICURDDBUS[0:63]  
PLBC405ICURDWDADDR[1:3]  
PLBC405ICUBUSY  
rl1 rl1 rl1 rl1 rl2 rl2 rl2 rl2  
67  
01  
23  
45  
01  
23  
45  
67  
d1 d1 d1 d1  
67 01 23  
d2 d2 d2 d2  
01 23 45  
45  
67  
6
0
2
4
0
2
4
6
UG018_14_101701  
Figure 2-9: ISPLB Pipelined Cacheable Sequential Fetch (Case 2)  
ISPLB Non-Pipelined Non-Cacheable Sequential Fetch  
The timing diagram in Figure 2-10 shows two consecutive eight-word line fetches that are  
not address pipelined. The example assumes the instructions are not cacheable. It also  
assumes the instructions are fetched sequentially from the end of the first line through the  
end of the second line. It provides an illustration of how all instructions in a line must be  
transferred even though some of the instructions are discarded.  
The first line read (rl1) is requested by the ICU in cycle 3 in response to a cache miss  
(represented by the miss1 transaction in cycles 1 and 2). Instructions are sent from the BIU  
to the ICU fill buffer in cycles 4 through 7. The target instruction is bypassed to the  
instruction fetch unit in cycle 5 (byp1). Because the instructions are executing sequentially,  
the target instruction is the only instruction in the line that is executed. The line is not  
cacheable, so instructions are not transferred from the fill buffer to the instruction cache.  
After the target instruction is bypassed, a sequential fetch from the next cache line causes a  
miss in cycle 6 (miss2). The second line read (rl2) is requested by the ICU in cycle 8 in  
response to the cache miss. After the first line is read from the BIU, instructions for the  
second line are sent from the BIU to the ICU fill buffer. This occurs in cycles 9 through 12.  
These instructions overwrite the instructions from the previous line. After loading into the  
fill buffer, instructions from the second line are bypassed to the instruction fetch unit to  
prevent a processor stall during sequential execution (represented by the byp2 transaction  
64  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
in cycles 10 through 15). The line is not cacheable, so instructions are not transferred from  
the fill buffer to the instruction cache.  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
ICU  
miss1  
byp1 miss2  
byp2  
PPC405 Outputs:  
C405PLBICUREQUEST  
rl1  
rl2  
adr1  
adr2  
C405PLBICUABUS[0:29]  
PLB/BIU Outputs:  
PLBC405ICUADDRACK  
rl1  
rl2  
PLBC405ICURDDACK  
PLBC405ICURDDBUS[0:63]  
PLBC405ICURDWDADDR[1:3]  
PLBC405ICUBUSY  
rl1 rl1 rl1 rl1  
67 01 23  
rl2 rl2 rl2 rl2  
01 23 45  
45  
67  
d1 d1 d1 d1  
67 01 23  
d2 d2 d2 d2  
01 23 45  
45  
67  
6
0
2
4
0
2
4
6
UG018_15_101701  
Figure 2-10: ISPLB Non-Pipelined Non-Cacheable Sequential Fetch  
ISPLB Pipelined Non-Cacheable Sequential Fetch  
The timing diagram in Figure 2-11 shows two consecutive eight-word line fetches that are  
address pipelined. The example assumes the instructions are not cacheable. It also assumes  
the instructions are fetched sequentially from the end of the first line through the end of the  
second line. As with the previous example, it provides an illustration of how all  
instructions in a line must be transferred even though some of the instructions are  
discarded.  
The first line read (rl1) is requested by the ICU in cycle 3 in response to a cache miss  
(represented by the miss1 transaction in cycles 1 and 2). Instructions are sent from the BIU  
to the ICU fill buffer in cycles 4 through 7. The target instruction is bypassed to the  
instruction fetch unit in cycle 5 (byp1). Because the instructions are executing sequentially,  
the target instruction is the only instruction in the line that is executed. The line is not  
cacheable, so instructions are not transferred from the fill buffer to the instruction cache.  
After the first miss is detected, the ICU performs a prefetch in anticipation of requiring  
instructions from the next cache line (represented by the prefetch2 transaction in cycles 3  
and 4). The second line read (rl2) is requested by the ICU in cycle 5 in response to the  
prefetch. After the first line is read from the BIU, instructions for the second line are sent  
from the BIU to the ICU fill buffer. This occurs in cycles 8 through 11. These instructions  
overwrite the instructions from the previous line. After loading into the fill buffer,  
instructions from the second line are bypassed to the instruction fetch unit to prevent a  
processor stall during sequential execution (represented by the byp2 transaction in cycles 9  
through 14). The line is not cacheable, so instructions are not transferred from the fill buffer  
to the instruction cache.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
65  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 2: Input/Output Interfaces  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
ICU  
miss1  
prefetch2 byp1  
byp2  
PPC405 Outputs:  
C405PLBICUREQUEST  
rl1  
rl2  
adr1  
adr2  
C405PLBICUABUS[0:29]  
PLB/BIU Outputs:  
PLBC405ICUADDRACK  
rl1  
rl2  
PLBC405ICURDDACK  
PLBC405ICURDDBUS[0:63]  
PLBC405ICURDWDADDR[1:3]  
PLBC405ICUBUSY  
rl1 rl1 rl1 rl1 rl2 rl2 rl2 rl2  
67  
01  
23  
45  
01  
23  
45  
67  
d1 d1 d1 d1  
67 01 23  
d2 d2 d2 d2  
01 23 45  
45  
67  
6
0
2
4
0
2
4
6
UG018_16_101701  
Figure 2-11: ISPLB Pipelined Non-Cacheable Sequential Fetch  
ISPLB 2:1 Core-to-PLB Line Fetch  
The timing diagram in Figure 2-12 shows an eight-word line fetch in a system with a PLB  
clock that runs at one half the frequency of the PowerPC 405 clock.  
The line read (rl1) is requested by the ICU in PLB cycle 2, which corresponds to PowerPC  
405 cycle 3. The BIU responds in the same cycle. Instructions are sent from the BIU to the  
ICU fill buffer in PLB cycles 3 through 6 (PowerPC 405 cycles 5 through 12). After all  
instructions associated with this line are read, the line is transferred by the ICU from the fill  
buffer to the instruction cache (not shown).  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
CPMC405CLK  
PLBCLK  
ICU  
miss1  
PPC405 Outputs:  
C405PLBICUREQUEST  
rl1  
adr1  
C405PLBICUABUS[0:29]  
PLB/BIU Outputs:  
PLBC405ICUADDRACK  
rl1  
PLBC405ICURDDACK  
PLBC405ICURDDBUS[0:63]  
PLBC405ICURDWDADDR[1:3]  
PLBC405ICUBUSY  
rl1  
01  
rl1  
23  
rl1  
45  
rl1  
67  
d1  
01  
d1  
23  
d1  
45  
d1  
67  
0
2
4
6
UG018_18_101701  
Figure 2-12: ISPLB 2:1 Core-to-PLB Line Fetch  
66  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
ISPLB 3:1 Core-to-PLB Line Fetch  
The timing diagram in Figure 2-13 shows an eight-word line fetch in a system with a PLB  
clock that runs at one third the frequency of the PowerPC 405 clock.  
The line read (rl1) is requested by the ICU in PLB cycle 2, which corresponds to PowerPC  
405 cycle 4. The BIU responds in the same cycle. Instructions are sent from the BIU to the  
ICU fill buffer in PLB cycles 3 through 6 (PowerPC 405 cycles 7 through 18). After all  
instructions associated with this line are read, the line is transferred by the ICU from the fill  
buffer to the instruction cache (not shown).  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
CPMC405CLK  
PLBCLK  
ICU  
miss1  
PPC405 Outputs:  
C405PLBICUREQUEST  
rl1  
adr1  
C405PLBICUABUS[0:29]  
PLB/BIU Outputs:  
PLBC405ICUADDRACK  
rl1  
PLBC405ICURDDACK  
PLBC405ICURDDBUS[0:63]  
PLBC405ICURDWDADDR[1:3]  
PLBC405ICUBUSY  
rl1  
rl1  
d1  
rl1  
d1  
rl1  
67  
01  
23  
45  
d1  
d1  
67  
01  
23  
45  
0
2
4
6
UG018_19_101701  
Figure 2-13: ISPLB 3:1 Core-to-PLB Line Fetch  
ISPLB Aborted Fetch Request  
The timing diagram in Figure 2-14 shows an aborted fetch request. The request is aborted  
because of an instruction-flow change, such as a taken branch or an interrupt. It shows the  
earliest-possible subsequent fetch-request that can be produced by the ICU.  
The first line read (rl1) is requested by the ICU in cycle 3 in response to a cache miss  
(represented by the miss1 transaction in cycles 1 and 2). The BIU responds in the same  
cycle the request is made by the ICU. However, the processor also aborts the request in  
cycle 3, possibly because a branch was mispredicted or an interrupt occurred. Therefore,  
the BIU ignores the request and does not transfer instructions associated with the request.  
The change in control flow causes the ICU to fetch instructions from a non-sequential  
address. The second line read (rl2) is requested by the ICU in cycle 7 in response to a cache  
miss of the new instructions. (represented by the miss2 transaction in cycles 5 and 6).  
Instructions are sent from the BIU to the ICU fill buffer in cycles 8 through 11.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
67  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 2: Input/Output Interfaces  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
ICU  
miss1  
miss2  
PPC405 Outputs:  
C405PLBICUREQUEST  
rl1  
rl2  
adr1  
adr2  
C405PLBICUABUS[0:29]  
C405PLBICUABORT  
PLB/BIU Outputs:  
PLBC405ICUADDRACK  
rl1  
rl2  
PLBC405ICURDDACK  
PLBC405ICURDDBUS[0:63]  
PLBC405ICURDWDADDR[1:3]  
PLBC405ICUBUSY  
rl2 rl2 rl2 rl2  
01 23 45  
67  
d2 d2 d2 d2  
01 23 45  
67  
0
2
4
6
UG018_17_101701  
Figure 2-14: ISPLB Aborted Fetch Request  
Data-Side Processor Local Bus Interface  
The data-side processor local bus (DSPLB) interface enables the PowerPC 405 data cache  
unit (DCU) to load (read) and store (write) data from any memory device connected to the  
processor local bus (PLB). This interface has a dedicated 32-bit address bus output, a  
dedicated 64-bit read-data bus input, and a dedicated 64-bit write-data bus output. The  
interface is designed to attach as a master to a 64-bit PLB, but it also supports attachment  
as a master to a 32-bit PLB. The interface is capable of one data transfer (64 or 32 bits) every  
PLB cycle.  
At the chip level, the DSPLB can be combined with the instruction-side read-data bus (also  
a PLB master) to create a shared read-data bus. This is done if a single PLB arbiter services  
both PLB masters and the PLB arbiter implementation only returns data to one PLB master  
at a time.  
Refer to the PowerPC Processor Reference Guide for more information on the operation of the  
PowerPC 405 DCU.  
Data-Side PLB Operation  
Data-access (read and write) requests are produced by the DCU and communicated over  
the PLB interface. A request occurs when an access misses the data cache or the memory  
location that is accessed is non-cacheable. A data-access request contains the following  
information:  
x
The request is indicated by C405PLBDCUREQUEST. See “C405PLBDCUREQUEST  
(Output)”.  
x
The type of request (read or write) is indicated by C405PLBDCURNW. See  
“C405PLBDCURNW (Output)”.  
68  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
R
x
x
The target address of the data to be accessed is specified by the address bus,  
C405PLBDCUABUS[0:31]. See “C405PLBDCUABUS[0:31] (Output)”.  
The transfer size is specified as a single word or as eight words (cache line) using  
C405PLBDCUSIZE2. See “C405PLBDCUSIZE2 (Output)”. The remaining bits of the  
transfer size (0, 1, and 3) must be tied to zero at the PLB arbiter.  
x
x
The byte enables for single-word accesses are specified using C405PLBDCUBE[0:7]  
(see “C405PLBDCUBE[0:7] (Output)”). The byte enables specify one, two, three, or  
four contiguous bytes in either the upper or lower four byte word of the 64-bit data  
bus. The byte enables are not used by the processor during line transfers and must be  
ignored by the PLB slave.  
The cacheability storage attribute is indicated by C405PLBDCUCACHEABLE. See  
“C405PLBDCUCACHEABLE (Output)”. Cacheable transfers are performed using  
word or line transfer sizes.  
x
x
x
x
The write-through storage attribute is indicated by C405PLBDCUWRITETHRU. See  
“C405PLBDCUWRITETHRU (Output)”.  
The guarded storage attribute is indicated by C405PLBDCUGUARDED. See  
“C405PLBDCUGUARDED (Output)”.  
The user-defined storage attribute is indicated by C405PLBDCUU0ATTR. See  
“C405PLBDCUU0ATTR (Output)”.  
The request priority is indicated by C405PLBDCUPRIORITY[0:1]. See  
“C405PLBDCUPRIORITY[0:1] (Output)”. The PLB arbiter uses this information to  
prioritize simultaneous requests from multiple PLB masters.  
The processor can abort a PLB data-access request using C405PLBDCUABORT. See  
“C405PLBDCUABORT (Output)”. This occurs only when the processor is reset.  
Data is returned to the DCU by a PLB slave device over the PLB interface. The response to  
a data-access request contains the following information:  
x
The address of the data-access request is acknowledged by the PLB slave using  
PLBC405DCUADDRACK. See “PLBC405DCUADDRACK (Input)”.  
x
Data sent during a read transfer from the PLB slave to the DCU over the read-data bus  
are indicated as valid using PLBC405DCURDDACK. See “PLBC405DCURDDACK  
(Input)”. Data sent during a write transfer from the DCU to the PLB slave over the  
write-data bus are indicated as valid using PLBC405DCUWRDACK. See  
“PLBC405DCUWRDACK (Input)”.  
x
x
The PLB-slave bus width, or size (32-bit or 64-bit), is specified by  
PLBC405DCUSSIZE1. See “PLBC405DCUSSIZE1 (Input)”. The PLB slave is  
responsible for packing (during reads) or unpacking (during writes) data bytes from  
non-word devices so that the information sent to the DCU is presented appropriately,  
as determined by the transfer size.  
The data transferred between the DCU and the PLB slave is sent as a single word or as  
an eight-word line transfer, as specified by the transfer size in the data-access request.  
Data reads are transferred from the PLB slave to the DCU over the DCU read-data  
bus, PLBC405DCURDDBUS[0:63]. See “PLBC405DCURDDBUS[0:63] (Input)”. Data  
writes are transferred from the DCU to the PLB slave over the DCU write-data bus,  
C405PLBDCUWRDBUS[0:63]. See “C405PLBDCUWRDBUS[0:63] (Output)”. Data  
transfers operate as follows:  
i
A word transfer moves the entire word specified by the address of the data-access  
request. The specific bytes being accessed are indicated by the byte enables,  
C405PLBDCUBE[0:7]. See “C405PLBDCUBE[0:7] (Output)”. The word is  
transferred using one transfer operation.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
69  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 2: Input/Output Interfaces  
i
An eight-word line transfer moves the eight-word cache line aligned on the  
address specified by C405PLBDCUABUS[0:26]. See “C405PLBDCUABUS[0:31]  
(Output)”. This cache line contains the target data accessed by the DCU. The  
cache line is transferred using four doubleword or eight word transfer operations,  
depending on the PLB slave bus width (64-bit or 32-bit, respectively). The byte  
enables are not used by the processor for this type of transfer and they must be  
ignored by the PLB slave.  
x
The words read during a data-read transfer can be sent from the PLB slave to the DCU  
in any order (target-word-first, sequential, other). This transfer order is specified by  
PLBC405DCURDWDADDR[1:3]. See “PLBC405DCURDWDADDR[1:3] (Input)”. For  
data-write transfers, data is transferred from the DCU to the PLB slave in ascending-  
address order.  
Interaction with the DCU Fill Buffer  
As mentioned above, the PLB slave can transfer data to the DCU in any order (target-word-  
first, sequential, other). When data is received by the DCU from the PLB slave, it is placed  
in the DCU fill buffer. When the DCU receives the target (requested) data, it forwards it  
immediately from the fill buffer to the load/ store unit so that pipeline stalls due to load-  
miss delays are minimized. This operation is referred to as a bypass. The remaining data is  
received from the PLB slave and placed in the fill buffer. Subsequent data is read from the  
fill buffer if the data is already present in the buffer. For the best possible software  
performance, the PLB slave should be designed to return the target word first.  
Non-cacheable data is usually transferred as a single word. Software can indicate that non-  
cacheable reads be loaded using an eight-word line transfer by setting the load-word-as-line  
bit in the core-configuration register (CCR0[LWL]) to 1. This enables non-cacheable reads  
to take advantage of the PLB line-transfer protocol to minimize PLB-arbitration delays and  
bus delays associated with multiple, single-word transfers. The transferred data is placed  
in the DCU fill buffer, but not in the data cache. Subsequent data reads from the same non-  
cacheable line are read from the fill buffer instead of requiring a separate arbitration and  
transfer sequence across the PLB. Data in the fill buffer is read with the same performance  
as a cache hit. The non-cacheable line remains in the fill buffer until the fill buffer is needed  
by another line transfer.  
Non-cacheable reads from guarded storage and all non-cacheable writes are transferred as  
a single word, regardless of the value of CCR0[LWL].  
Cacheable data is transferred as a single word or as an eight-word line, depending on  
whether the transfer allocates a cache line. Transfers that allocate cache lines use eight-  
word transfer sizes. Transfers that do not allocate cache lines use a single-word transfer  
size. Line allocation of cacheable data is controlled by the core-configuration register. The  
load without allocate bit CCR0[LWOA] controls line allocation for cacheable loads and the  
store without allocate bit CCR0[SWOA] controls line allocation for cacheable stores. Clearing  
the appropriate bit to 0 enables line allocation (this is the default) and setting the bit to 1  
disables line allocation. The dcbt and dcbtst instructions always allocate a cache line and  
ignore the CCR0 bits.  
Data read during an eight-word line transfer (one that allocates a cache line) is placed in  
the DCU fill buffer as it is received from the PLB slave. Cacheable writes that allocate a  
cache line also cause an eight-word read transfer from the PLB slave. The cacheable write  
replaces the appropriate bytes in the fill buffer after they are read from the PLB.  
Subsequent data accesses to and from the same cacheable line access the fill buffer during  
the time the remaining bytes are transferred from the PLB slave. When the fill buffer is full,  
its contents are transferred to the data cache.  
70  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
R
An eight-word line-write transfer occurs when the fill buffer replaces an existing data-  
cache line containing modified data. The existing cache line is written to memory before it  
is replaced with the fill-buffer contents. The write is performed using a separate PLB  
transaction than the previous transfer that caused the replacement. Execution of the dcbf  
and dcbst instructions also cause an eight-word line write.  
Address Pipelining  
The DCU can overlap a data-access request with a previous request. This process, known  
as address pipelining, enables a second address to be presented to a PLB slave while the  
slave is transferring data associated with the first address. Address pipelining can occur if  
a data-access request is produced before all data from a previous request are transferred by  
the slave. This capability maximizes PLB-transfer throughput by reducing dead cycles  
between multiple requests. The DCU can pipeline up to two read requests and one write  
request. (Multiple write requests cannot be pipelined.) A pipelined request is  
communicated over the PLB two or more cycles after the prior request is acknowledged by  
the PLB slave.  
Unaligned Accesses  
If necessary, the processor automatically decomposes accesses to unaligned operands into  
two data-access requests that are presented separately to the PLB. This occurs if an  
operand crosses a word boundary (for a word transfer) or a cache line boundary (for an  
eight-word line transfer). For example, assume software reads the unaligned word at  
address 0x1F. This word crosses a cache line boundary: the byte at address 0x1F is in one  
cache line and the bytes at addresses 0x20:0x22 are in another cache line. If neither cache  
line is in the data cache, two consecutive read requests are presented by the DCU to the  
PLB slave. If one cache line is already in the data cache, only the missing portion is  
requested by the DCU.  
Because write requests are not address pipelined by the DCU, writes to unaligned data that  
cross cache line boundaries can take significantly longer than aligned writes.  
Guarded Storage  
No bytes can be accessed speculatively from guarded storage. The PLB slave must return  
only the requested data when guarded storage is read and update only the specified  
memory locations when guarded storage is written. For single word transfers, only the  
bytes indicated by the byte enables are transferred. For line transfers, all eight words in the  
line are transferred.  
Data-Side PLB Interface I/O Signal Table  
Figure 2-15 shows the block symbol for the data-side PLB interface. The signals are  
summarized in Table 2-12.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
71  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
R
Chapter 2: Input/Output Interfaces  
PPC405  
PLBC405DCUADDRACK  
PLBC405DCUSSIZE1  
C405PLBDCUREQUEST  
C405PLBDCURNW  
PLBC405DCURDDACK  
PLBC405DCURDDBUS[0:63]  
PLBC405DCURDWDADDR[1:3]  
PLBC405DCUWRDACK  
PLBC405DCUBUSY  
C405PLBDCUABUS[0:31]  
C405PLBDCUSIZE2  
C405PLBDCUCACHEABLE  
C405PLBDCUWRITETHRU  
C405PLBDCUU0ATTR  
C405PLBDCUGUARDED  
C405PLBDCUBE[0:7]  
PLBC405DCUERR  
C405PLBDCUPRIORITY[0:1]  
C405PLBDCUABORT  
C405PLBDCUWRDBUS[0:63]  
UG018_05_102001  
Figure 2-15: Data-Side PLB Interface Block Symbol  
Table 2-12: Data-Side PLB Interface I/O Signal Summary  
I/O  
Type  
Signal  
If Unused  
Function  
C405PLBDCUREQUEST  
C405PLBDCURNW  
O
No Connect Indicates the DCU is making a data-access request.  
O
No Connect Specifies whether the data-access request is a read or  
a write.  
C405PLBDCUABUS[0:31]  
O
No Connect Specifies the memory address of the data-access  
request.  
C405PLBDCUSIZE2  
O
O
No Connect Specifies a single word or eight-word transfer size.  
C405PLBDCUCACHEABLE  
No Connect Indicates the value of the cacheability storage  
attribute for the target address.  
C405PLBDCUWRITETHRU  
C405PLBDCUU0ATTR  
C405PLBDCUGUARDED  
C405PLBDCUBE[0:7]  
O
O
O
O
No Connect Indicates the value of the write-through storage  
attribute for the target address.  
No Connect Indicates the value of the user-defined storage  
attribute for the target address.  
No Connect Indicates the value of the guarded storage attribute  
for the target address.  
No Connect Specifies which bytes are transferred during single-  
word transfers.  
C405PLBDCUPRIORITY[0:1]  
C405PLBDCUABORT  
O
O
No Connect Indicates the priority of the data-access request.  
No Connect Indicates the DCU is aborting an unacknowledged  
data-access request.  
C405PLBDCUWRDBUS[0:63]  
PLBC405DCUADDRACK  
PLBC405DCUSSIZE1  
O
I
No Connect The DCU write-data bus used to transfer data from  
the DCU to the PLB slave.  
0
Indicates a PLB slave acknowledges the current data-  
access request.  
I
0
Specifies the bus width (size) of the PLB slave that  
accepted the request.  
72  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                       
R
Table 2-12: Data-Side PLB Interface I/O Signal Summary (Continued)  
I/O  
Type  
Signal  
If Unused  
Function  
PLBC405DCURDDACK  
I
0
Indicates the DCU read-data bus contains valid data  
for transfer to the DCU.  
PLBC405DCURDDBUS[0:63]  
I
I
0x0000_0000 The DCU read-data bus used to transfer data from the  
_0000_0000 PLB slave to the DCU.  
PLBC405DCURDWDADDR[1:3]  
0b000  
Indicates which word or doubleword of an eight-  
word line transfer is present on the DCU read-data  
bus.  
PLBC405DCUWRDACK  
PLBC405DCUBUSY  
PLBC405DCUERR  
I
I
I
0
0
0
Indicates the data on the DCU write-data bus is being  
accepted by the PLB slave.  
Indicates the PLB slave is busy performing an  
operation requested by the DCU.  
Indicates an error was detected by the PLB slave  
during the transfer of data to or from the DCU.  
Data-Side PLB Interface I/O Signal Descriptions  
The following sections describe the operation of the data-side PLB interface I/ O signals.  
Throughout these descriptions and unless otherwise noted, the term clock refers to the PLB  
clock signal, PLBCLK. See “PLBCLK (Input)” for information on this clock signal. The term  
cycle refers to a PLB cycle. To simplify the signal descriptions, it is assumed that PLBCLK  
and the PowerPC 405 clock (CPMC405CLOCK) operate at the same frequency.  
C405PLBDCUREQUEST (Output)  
When asserted, this signal indicates the DCU is presenting a data-access request to a PLB  
slave device. The PLB slave asserts PLBC405DCUADDRACK to acknowledge the request.  
The request can be acknowledged in the same cycle it is presented by the DCU. The request  
is deasserted in the cycle after it is acknowledged by the PLB slave. When deasserted, no  
unacknowledged data-access request exists.  
The following output signals contain information for the PLB slave device and are valid  
when the request is asserted. The PLB slave must latch these signals by the end of the same  
cycle it acknowledges the request:  
x
C405PLBDCURNW, which specifies whether the data-access request is a read or a  
write.  
x
x
x
x
x
C405PLBDCUABUS[0:31], which contains the address of the data-access request.  
C405PLBDCUSIZE2, which indicates the transfer size of the data-access request.  
C405PLBDCUCACHEABLE, which indicates whether the data address is cacheable.  
C405PLBDCUWRITETHRU, which specifies the caching policy of the data address.  
C405PLBDCUU0ATTR, which indicates the value of the user-defined storage  
attribute for the instruction-fetch address.  
x
C405PLBDCUGUARDED, which indicates whether the data address is in guarded  
storage.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
73  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
Chapter 2: Input/Output Interfaces  
If the transfer size is a single word, C405PLBDCUBE[0:7] is also valid when the request is  
asserted. These signals specify which bytes are transferred between the DCU and PLB  
slave. If the transfer size is an eight-word line, C405PLBDCUBE[0:7] is not used and must  
be ignored by the PLB slave.  
C405PLBDCUPRIORITY[0:1] is valid when the request is asserted. This signal indicates  
the priority of the data-access request. It is used by the PLB arbiter to prioritize  
simultaneous requests from multiple PLB masters.  
The DCU supports up to three outstanding requests over the PLB (two reads and one  
write). The DCU can make a subsequent request after the current request is acknowledged.  
The DCU deasserts C405PLBDCUREQUEST for at least one cycle after the current request  
is acknowledged and before the subsequent request is asserted.  
If the PLB slave supports address pipelining, it must respond to multiple requests in the  
order they are presented by the DCU. All data associated with a prior request must be  
transferred before any data associated with a subsequent request is transferred. Multiple  
write requests are not pipelined. The DCU does not present a second write request until at  
least two cycles after the last write acknowledge (PLBC405DCUWRDACK) is sent from the  
PLB slave to the DCU, completing the first request.  
The DCU only aborts a data-access request if the processor is reset. The DCU removes a  
request by asserting C405PLBDCUABORT while the request is asserted. In the next cycle  
the request is deasserted and remains deasserted until after the processor is reset.  
C405PLBDCURNW (Output)  
When asserted, this signal indicates the DCU is making a read request. When deasserted,  
this signal indicates the DCU is making a write request. This signal is valid when the DCU  
is presenting a data-access request to the PLB slave. The signal remains valid until the cycle  
following acknowledgement of the request by the PLB slave. (The PLB slave asserts  
PLBC405DCUADDRACK to acknowledge the request.)  
C405PLBDCUABUS[0:31] (Output)  
This bus specifies the memory address of the data-access request. The address is valid  
during the time the data-access request signal (C405PLBDCUREQUEST) is asserted. It  
remains valid until the cycle following acknowledgement of the request by the PLB slave  
(the PLB slave asserts PLBC405DCUADDRACK to acknowledge the request).  
C405PLBDCUSIZE2 indicates the data-access transfer size. If an eight-word transfer size is  
used, memory-address bits [0:26] specify the aligned eight-word cache line to be  
transferred. If a single word transfer size is used, the byte enables (C405PLBDCUBE[0:7])  
specify which bytes on the data bus are involved in the transfer.  
C405PLBDCUSIZE2 (Output)  
This signal specifies the transfer size of the data-access request. When asserted, an eight-  
word transfer size is specified. When deasserted, a single word transfer size is specified.  
This signal is valid when the DCU is presenting a data-access request to the PLB slave. The  
signal remains valid until the cycle following acknowledgement of the request by the PLB  
slave. (The PLB slave asserts PLBC405DCUADDRACK to acknowledge the request.)  
A single word transfer moves one to four consecutive data bytes beginning at the memory  
address of the data-access request. For this transfer size, C405PLBDCUBE[0:7] specifies  
which bytes on the data bus are involved in the transfer.  
74  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
An eight-word line transfer moves the cache line aligned on the address specified by  
C405PLBDCUABUS[0:26]. This cache line contains the target data accessed by the DCU.  
The cache line is transferred using four doubleword or eight word transfer operations,  
depending on the PLB slave bus width (64-bit or 32-bit, respectively).  
The words moved during an eight-word line transfer can be sent from the PLB slave to the  
DCU in any order (target-word-first, sequential, other). This transfer order is specified by  
PLBC405DCURDWDADDR[1:3].  
C405PLBDCUCACHEABLE (Output)  
This signal indicates whether the accessed data is cacheable. It reflects the value of the  
cacheability storage attribute for the target address. The data is non-cacheable when the  
signal is deasserted (0). The data is cacheable when the signal is asserted (1). This signal is  
valid when the DCU is presenting a data-access request to the PLB slave. The signal  
remains valid until the cycle following acknowledgement of the request by the PLB slave.  
(The PLB slave asserts PLBC405DCUADDRACK to acknowledge the request.)  
Non-cacheable data is usually transferred as a single word. Software can indicate that non-  
cacheable reads be loaded using an eight-word line transfer by setting the load-word-as-line  
bit in the core-configuration register (CCR0[LWL]) to 1. This enables non-cacheable reads  
to take advantage of the PLB line-transfer protocol to minimize PLB-arbitration delays and  
bus delays associated with multiple, single-word transfers. The transferred data is placed  
in the DCU fill buffer, but not in the data cache. Subsequent data reads from the same non-  
cacheable line are read from the fill buffer instead of requiring a separate arbitration and  
transfer sequence across the PLB. Data in the fill buffer are read with the same performance  
as a cache hit. The non-cacheable line remains in the fill buffer until the fill buffer is needed  
by another line transfer.  
Cacheable data is transferred as a single word or as an eight-word line, depending on  
whether the transfer allocates a cache line. Transfers that allocate cache lines use an eight-  
word transfer size. Transfers that do not allocate cache lines use a single-word transfer size.  
Line allocation of cacheable data is controlled by the core-configuration register. The load  
without allocate bit CCR0[LWOA] controls line allocation for cacheable loads and the store  
without allocate bit CCR0[SWOA] controls line allocation for cacheable stores. Clearing the  
appropriate bit to 0 enables line allocation (this is the default) and setting the bit to 1  
disables line allocation. The dcbt and dcbtst instructions always allocate a cache line and  
ignore the CCR0 bits.  
C405PLBDCUWRITETHRU (Output)  
This signal indicates whether the accessed data is in write-through or write-back cacheable  
memory. It reflects the value of the write-through storage attribute which controls the  
caching policy of the target address. The data is in write-back memory when the signal is  
deasserted (0). The data is in write-through memory when the signal is asserted (1). This  
signal is valid when the DCU is presenting a data-access request to the PLB slave and when  
the data cacheability signal is asserted. The signal remains valid until the cycle following  
acknowledgement of the request by the PLB slave (the PLB slave asserts  
PLBC405DCUADDRACK to acknowledge the request).  
The system designer can use this signal in systems that require shared memory coherency.  
Stores to write-through memory update both the data cache and system memory. Stores to  
write-back memory update the data cache but not system memory. Write-back memory  
locations are updated in system memory when a cache line is flushed due to a line  
replacement or by executing a dcbf or dcbst instruction. See the PowerPC Processor  
Reference Guide for more information on memory coherency and caching policy.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
75  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 2: Input/Output Interfaces  
C405PLBDCUU0ATTR (Output)  
This signal reflects the value of the user-defined (U0) storage attribute for the target  
address. The accessed data is not in a memory location characterized by this attribute  
when the signal is deasserted (0). It is in a memory location characterized by this attribute  
when the signal is asserted (1). This signal is valid when the DCU is presenting a data-  
access request to the PLB slave. The signal remains valid until the cycle following  
acknowledgement of the request by the PLB slave. (The PLB slave asserts  
PLBC405DCUADDRACK to acknowledge the request.)  
The system designer can use this signal to assign special behavior to certain memory  
addresses. Its use is optional.  
C405PLBDCUGUARDED (Output)  
This signal indicates whether the accessed data is in guarded storage. It reflects the value  
of the guarded storage attribute for the target address. The data is not in guarded storage  
when the signal is deasserted (0). The data is in guarded storage when the signal is asserted  
(1). This signal is valid when the DCU is presenting a data-access request to the PLB slave.  
The signal remains valid until the cycle following acknowledgement of the request by the  
PLB slave (the PLB slave asserts PLBC405DCUADDRACK to acknowledge the request).  
No bytes are accessed speculatively from guarded storage. The PLB slave must return only  
the requested data when guarded storage is read and update only the specified memory  
locations when guarded storage is written. For single word transfers, only the bytes  
indicated by the byte enables are transferred. For line transfers, all eight words in the line  
are transferred.  
C405PLBDCUBE[0:7] (Output)  
These signals, referred to as byte enables, indicate which bytes on the DCU read-data bus  
or write-data bus are valid during a word transfer. The byte enables are not used by the  
DCU during line transfers and must be ignored by the PLB slave. The byte enables are  
valid when the DCU is presenting a data-access request to the PLB slave. They remain  
valid until the cycle following acknowledgement of the request by the PLB slave (the PLB  
slave asserts PLBC405DCUADDRACK to acknowledge the request).  
Attachment of a 32-bit PLB slave to the DCU (a 64-bit PLB master) requires the connections  
shown in Figure 2-16. These connections enable the byte enables to be presented properly  
to the 32-bit slave. Address bit 29 is used to select between the upper byte enables [0:3] and  
the lower byte enables [4:7] when making a request to the 32-bit slave. Words are always  
transferred to the 32-bit PLB slave using write-data bus bits [0:31], so bits [32:63] are not  
connected. The 32-bit read-data bus from the PLB slave is attached to both the high and  
low words of the 64-bit read-data bus into the DCU.  
76  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
64-Bit PLB Master  
32-Bit PLB Slave  
PLBC405DCURDDBUS[0:31]  
PLBC405DCURDDBUS[32:63]  
PLBC405DCURDDBUS[0:31]  
C405PLBDCUWRDBUS[0:31]  
C405PLBDCUWRDBUS[32:63]  
C405PLBDCUWRDBUS[0:31]  
Unconnected  
C405PLBDCUABUS[0:31]  
C405PLBDCUABUS[0:31]  
C405PLBDCUBE[0:3]  
[29]  
C405PLBDCUBE[0:3]  
C405PLBDCUBE[4:7]  
UG018_20_101501  
Figure 2-16: Attachment of DSPLB Between 32-Bit Slave and 64-Bit Master  
Table 2-13 shows the possible values that can be presented by the byte enables and how  
they are interpreted by the PLB slave. All encoding of the byte enables not shown are  
invalid and are not generated by the DCU. The column headed “32-Bit PLB Slave Data  
Bus” assumes an attachment to a 64-bit PLB master as shown in Figure 2-16, above.  
Table 2-13: Interpretation of DCU Byte Enables During Word Transfers  
32-Bit PLB Slave Data Bus  
64-Bit PLB Slave Data Bus  
Byte Enables [0:7]  
Valid Bytes  
Byte 0  
Bits  
Valid Bytes  
Byte 0  
Bits  
0:7  
1000_0000  
1100_0000  
1110_0000  
1111_0000  
0100_0000  
0110_0000  
0111_0000  
0010_0000  
0011_0000  
0001_0000  
0000_1000  
0000_1100  
0000_1110  
0000_1111  
0000_0100  
0000_0110  
0:7  
Bytes 0:1 (Halfword 0)  
Bytes 0:2  
0:15 Bytes 0:1 (Halfword 0)  
0:23 Bytes 0:2  
0:15  
0:23  
Bytes 0:3 (Word 0)  
Byte 1  
0:31 Bytes 0:3 (Word 0)  
8:15 Byte 1  
0:31  
8:15  
Bytes 1:2  
8:23 Bytes 1:2  
8:23  
Bytes 1:3  
8:31 Bytes 1:3  
8:31  
Byte 2  
16:23 Byte 2  
16:23  
16:31  
24:31  
32:39  
32:47  
32:55  
32:63  
40:47  
40:55  
Bytes 2:3 (Halfword 1)  
Byte 3  
16:31 Bytes 2:3 (Halfword 1)  
24:31 Byte 3  
Byte 0  
0:7  
Byte 4  
Bytes 0:1 (Halfword 0)  
Bytes 0:2  
0:15 Bytes 4:5 (Halfword 2)  
0:23 Bytes 4:6  
Bytes 0:3 (Word 0)  
Byte 1  
0:31 Bytes 4:7 (Word 1)  
8:15 Byte 5  
Bytes 1:2  
8:23 Bytes 5:6  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
77  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 2: Input/Output Interfaces  
Table 2-13: Interpretation of DCU Byte Enables During Word Transfers (Continued)  
32-Bit PLB Slave Data Bus  
Valid Bytes Bits  
Bytes 1:3  
64-Bit PLB Slave Data Bus  
Byte Enables [0:7]  
Valid Bytes  
Bits  
40:63  
48:55  
48:63  
56:63  
0000_0111  
0000_0010  
0000_0011  
0000_0001  
8:31 Bytes 5:7  
Byte 2  
16:23 Byte 6  
Bytes 2:3 (Halfword 1)  
Byte 3  
16:31 Bytes 6:7 (Halfword 3)  
24:31 Byte 7  
C405PLBDCUPRIORITY[0:1] (Output)  
These signals are used to specify the priority of the data-access request. Table 2-14 shows  
the encoding of the 2-bit PLB-request priority signal. The priority is valid when the DCU is  
presenting a data-access request to the PLB slave. It remains valid until the cycle following  
acknowledgement of the request by the PLB slave (the PLB slave asserts  
PLBC405DCUADDRACK to acknowledge the request).  
Table 2-14: PLB-Request Priority Encoding  
Bit 0  
Bit 1  
Definition  
Lowest PLB-request priority.  
0
0
1
1
0
1
0
1
Next-to-lowest PLB-request priority.  
Next-to-highest PLB-request priority.  
Highest PLB-request priority.  
Bit 1 of the request priority is controlled by the DCU. It is asserted whenever a data-read  
request is presented on the PLB. The DCU can also assert this bit if the processor stalls due  
to an unacknowledged request. Software controls bit 0 of the request priority by writing  
the appropriate value into the DCU PLB-priority bit 1 of the core-configuration register  
(CCR0[DPP1]).  
If the least significant bits of the DCU and ICU PLB priority signals are 1 and the most  
significant bits are equal, the PLB arbiter should let the DCU win the arbitration. This  
generally results in better processor performance.  
C405PLBDCUABORT (Output)  
When asserted, this signal indicates the DCU is aborting the current data-access request. It  
is used by the DCU to abort a request that has not been acknowledged, or is in the process  
of being acknowledged by the PLB slave. The data-access request continues normally if  
this signal is not asserted. This signal is only valid during the time the data-access request  
signal is asserted. It must be ignored by the PLB slave if the data-access request signal is  
not asserted. In the cycle after the abort signal is asserted, the data-access request signal is  
deasserted and remains deasserted for at least one cycle.  
If the abort signal is asserted in the same cycle that the data-access request is  
acknowledged by the PLB slave (PLBC405DCUADDRACK is asserted), the PLB slave is  
responsible for ensuring that the transfer does not proceed further. The PLB slave must not  
assert the DCU read-data bus acknowledgement signal for an aborted request. It is  
possible for a PLB slave to return the first write acknowledgement when acknowledging  
78  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
an aborted data-write request. In this case, memory must not be updated by the PLB slave  
and no further write acknowledgements can be presented by the PLB slave for the aborted  
request.  
The DCU only aborts a data-access request when the processor is reset. Such an abort can  
occur during an address-pipelined data-access request while the PLB slave is responding  
to a previous data-access request. If the PLB is not also reset (as is the case during a core  
reset), the PLB slave is responsible for completing the previous request and aborting the  
new (pipelined) request.  
C405PLBDCUWRDBUS[0:63] (Output)  
This write-data bus contains the data transferred from the DCU to a PLB slave during a  
write transfer. The operation of this bus depends on the transfer size, as follows:  
x
During a single word write, the write-data bus is valid when the write request is  
presented by the DCU. The data remains valid until the PLB slave accepts the data.  
The PLB slave asserts the write-data acknowledgement signal when it latches data  
transferred on the write-data bus, indicating that it accepts the data. This completes  
the word write.  
The DCU replicates the data on the high and low words of the write data bus (bits  
[0:31] and [32:63], respectively) during a single word write. The byte enables indicate  
which bytes on the high word or low word are valid and should be latched by the PLB  
slave.  
x
During an eight-word line transfer, the write-data bus is valid when the write request  
is presented by the DCU. The data remains valid until the PLB slave accepts the data.  
The PLB slave asserts the write-data acknowledgement signal when it latches data  
transferred on the write-data bus, indicating that it accepts the data. In the cycle after  
the PLB slave accepts the data, the DCU presents the next word or doubleword of  
data (depending on the PLB slave size). Again, the PLB slave asserts the write-data  
acknowledgement signal when it latches data transferred on the write-data bus,  
indicating that it accepts the data. This continues until all eight words are transferred  
to the PLB slave.  
Data is transferred from the DCU to the PLB slave in ascending address order. Word 0  
(lowest address of the cache line) is transferred first, and word 7 (highest address) is  
transferred last. The byte enables are not used during a line transfer and must be  
ignored by the PLB slave.  
The location of data on the write-data bus depends on the size of the PLB slave, as  
follows:  
i
If the slave has a 64-bit bus, the DCU transfers even words (words 0, 2, 4, and 6)  
on write-data bus bits [0:31] and odd words (words 1, 3, 5, and 7) on write-data  
bus bits [32:63]. Four doubleword writes are required to complete the eight-word  
line transfer. The first transfer writes words 0 and 1, the second transfer writes  
words 2 and 3, and so on.  
i
If the slave has a 32-bit bus, the DCU transfers all words on write-data bus bits  
[0:31]. Eight doubleword writes are required to complete the eight-word line  
transfer. The first transfer writes word 0, the second transfer writes word 1, and so  
on.  
Table 2-15 summarizes the location of words on the write-data bus during an eight-  
word line transfer.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
79  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 2: Input/Output Interfaces  
Table 2-15: Contents of DCU Write-Data Bus During Eight-Word Line Transfer  
PLB-Slave  
Size  
DCU Write-Data Bus  
[0:31]  
DCU Write-Data Bus  
[32:63]  
Transfer  
32-Bit  
First  
Second  
Third  
Word 0  
Word 1  
Word 2  
Word 3  
Word 4  
Word 5  
Word 6  
Word 7  
Word 0  
Word 2  
Word 4  
Word 6  
Not Applicable  
Fourth  
Fifth  
Sixth  
Seventh  
Eighth  
First  
64-Bit  
Word 1  
Word 3  
Word 5  
Word 7  
Second  
Third  
Fourth  
PLBC405DCUADDRACK (Input)  
When asserted, this signal indicates the PLB slave acknowledges the DCU data-access  
request (indicated by the DCU assertion of C405PLBDCUREQUEST). When deasserted, no  
such acknowledgement exists. A data-access request can be acknowledged by the PLB  
slave in the same cycle the request is asserted by the DCU. The PLB slave must latch the  
following data-access request information in the same cycle it asserts the request  
acknowledgement:  
x
C405PLBDCURNW, which specifies whether the data-access request is a read or a  
write.  
x
x
x
x
x
C405PLBDCUABUS[0:31], which contains the address of the data-access request.  
C405PLBDCUSIZE2, which indicates the transfer size of the data-access request.  
C405PLBDCUCACHEABLE, which indicates whether the data address is cacheable.  
C405PLBDCUWRITETHRU, which specifies the caching policy of the data address.  
C405PLBDCUU0ATTR, which indicates the value of the user-defined storage  
attribute for the instruction-fetch address.  
x
C405PLBDCUGUARDED, which indicates whether the data address is in guarded  
storage.  
During the acknowledgement cycle, the PLB slave must return its bus width indicator (32  
bits or 64 bits) using the PLBC405DCUSSIZE1 signal.  
The acknowledgement signal remains asserted for one cycle. In the next cycle, both the  
data-access request and acknowledgement are deasserted. The PLB slave can begin  
receiving data from the DCU in the same cycle the address is acknowledged. Data can be  
sent to the DCU beginning in the cycle after the address acknowledgement. The PLB slave  
80  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
must abort a DCU request (move no data) if the DCU asserts C405PLBDCUABORT in the  
same cycle the PLB slave acknowledges the request.  
The DCU supports up to three outstanding requests over the PLB (two read and one write).  
The DCU can make a subsequent request after the current request is acknowledged. The  
DCU deasserts C405PLBDCUREQUEST for at least one cycle after the current request is  
acknowledged and before the subsequent request is asserted.  
If the PLB slave supports address pipelining, it must respond to multiple requests in the  
order they are presented by the DCU. All data associated with a prior request must be  
moved before data associated with a subsequent request is accessed. The DCU cannot  
present a third read request until the first read request is completed by the PLB slave, or a  
second write request until the first write request is completed. Such a request (third read or  
second write) can be presented two cycles after the last acknowledge is sent from the PLB  
slave to the DCU, completing the first request (read or write, respectively).  
PLBC405DCUSSIZE1 (Input)  
This signal indicates the bus width (size) of the PLB slave device that acknowledged the  
DCU request. A 32-bit PLB slave responded when the signal is deasserted (0). A 64-bit PLB  
slave responded when the signal is asserted (1). This signal is valid during the cycle the  
acknowledge signal (PLBC405DCUADDRACK) is asserted.  
A 32-bit PLB slave must be attached to a 64-bit PLB master, as shown in Figure 2-16,  
page 77. In this figure, the 32-bit read-data bus from the PLB slave is attached to both the  
high word and low word of the 64-bit read-data bus at the PLB master. The 32-bit write-  
data bus into the PLB slave is attached to the high word of the 64-bit write-data bus at the  
PLB master. The low word of the 64-bit write-data bus is not connected. When a 64-bit PLB  
master recognizes a 32-bit PLB slave (the size signal is deasserted), data transfers operate  
as follows:  
x
During a single word read, data is received by the 64-bit master over the high word  
(bits 0:31) or the low word (bits 32:63) of the read-data bus as specified by the byte  
enable signals.  
x
During an eight-word line read, data is received by the 64-bit master over the high  
word (bits 0:31) or the low word (bits 32:63) of the read-data bus as specified by bit 3  
of the transfer order (PLBC405DCURDWDADDR[1:3]). Table 2-10, page 58, shows the  
location of data on the DCU read-data bus as a function of transfer order when an  
eight-word line read from a 32-bit PLB slave occurs.  
x
During a single word write or an eight-word line write, data is sent by the 64-bit  
master over the high word (bits 0:31) of the write-data bus. Table 2-15, page 80, shows  
the order data is transferred to a 32-bit PLB slave during an eight-word line write.  
All bits of the read-data bus and write-data bus are directly connected between a 64-bit  
PLB slave and a 64-bit PLB master. When a 64-bit PLB master recognizes a 64-bit PLB slave  
(the size signal is asserted), data transfers operate as follows:  
x
During a single word read, data is received by the 64-bit master over the high word  
(bits 0:31) or the low word (bits 32:63) of the read-data bus as specified by the byte  
enable signals.  
x
During an eight-word line read, data is received by the 64-bit master over the entire  
read-data bus. Table 2-10, page 58, shows the location of data on the DCU read-data  
bus as a function of transfer order when an eight-word line read from a 64-bit PLB  
slave occurs.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
81  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 2: Input/Output Interfaces  
x
x
During a single word write, the DCU replicates the data on the high and low words of  
the write data bus. The byte enables indicate which bytes on the high word or low  
word are valid and should be latched by the PLB slave.  
During an eight-word line write, data is sent by the 64-bit master over the entire  
write-data bus. Table 2-15, page 80, shows the order data is transferred to a 64-bit PLB  
slave during an eight-word line write. Data is written in order of ascending address,  
so the transfer order signals are not used during a line write.  
PLBC405DCURDDACK (Input)  
When asserted, this signal indicates the DCU read-data bus contains valid data sent by the  
PLB slave to the DCU (read data is acknowledged). The DCU latches the data from the bus  
at the end of the cycle this signal is asserted. The contents of the DCU read-data bus are not  
valid when this signal is deasserted.  
Read-data acknowledgement is asserted for one cycle per transfer. There is no limit to the  
number of cycles between two transfers. The number of transfers (and the number of read-  
data acknowledgements) depends on the PLB slave size (specified by  
PLBC405DCUSSIZE1) and the line-transfer size (specified by C405PLBDCUSIZE2). The  
number of transfers are summarized as follows:  
x
x
x
Single word reads require one transfer, regardless of the PLB slave size.  
Eight-word line reads require eight transfers when sent from a 32-bit PLB slave.  
Eight-word line reads require four transfers when sent from a 64-bit PLB slave.  
PLBC405DCURDDBUS[0:63] (Input)  
This read-data bus contains the data transferred from a PLB slave to the DCU. The contents  
of the bus are valid when the read-data acknowledgement signal is asserted. This  
acknowledgment is asserted for one cycle per transfer. There is no limit to the number of  
cycles between two transfers. The bus contents are not valid when the read-data  
acknowledgement signal is deasserted.  
The PLB slave returns data as an aligned word or an aligned doubleword. This depends on  
the PLB slave size (bus width), as follows:  
x
When a 32-bit PLB slave responds, an aligned word is sent from the slave to the DCU  
during each transfer cycle. The 32-bit PLB slave bus should be connected to both the  
high and low 32 bits of the 64-bit read-data bus (see Figure 2-16, page 77). This type of  
connection duplicates the word returned by the slave across the 64-bit bus. The DCU  
reads either the low 32 bits or the high 32 bits of the 64-bit interface, depending on the  
value of PLBC405DCURDWDADDR[1:3].  
x
When a 64-bit PLB slave responds, an aligned doubleword is sent from the slave to the  
DCU during each transfer cycle. Both words are read from the 64-bit interface by the  
DCU in this cycle.  
For a single word transfer, the bytes enables are used to select the valid data bytes from the  
aligned word or doubleword. Table 2-13, page 77 shows how the byte enables are  
interpreted by the processor when reading data during single word transfers from 32-bit  
and 64-bit PLB slaves. Table 2-16 shows the location of data on the DCU read-data bus as a  
function of PLB-slave size and transfer order when an eight-word line read occurs.  
82  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
PLBC405DCURDWDADDR[1:3] (Input)  
These signals are used to specify the transfer order. They identify which word or  
doubleword of an eight-word line transfer is present on the DCU read-data bus when the  
PLB slave returns instructions to the DCU. The words returned during a line transfer can  
be sent from the PLB slave to the DCU in any order (target-word-first, sequential, other).  
The transfer-order signals are valid when the read-data acknowledgement signal  
(PLBC405DCURDDACK) is asserted. This acknowledgment is asserted for one cycle per  
transfer. There is no limit to the number of cycles between two transfers. The transfer-order  
signals are not valid when the read-data acknowledgement signal is deasserted.  
These signals are ignored by the processor during single word transfers.  
Table 2-16 shows the location of data on the DCU read-data bus as a function of PLB-slave  
size and transfer order when an eight-word line read occurs. In this table, the “Transfer  
Order” column contains the possible values of PLBC405DCURDWDADDR[1:3]. For 64-bit  
PLB slaves, PLBC405DCURDWDADDR[3] should always be 0 during a transfer. In this  
case, the transfer order is invalid if this signal asserted. For 32-bit slaves, the connection to  
a 64-bit master shown in Figure 2-16, page 77 is assumed.  
Table 2-16: Contents of DCU Read-Data Bus During Eight-Word Line Transfer  
PLB-Slave  
Size  
Transfer  
Ordera  
DCU Read-Data Bus  
[0:31]  
DCU Read-Data Bus  
[32:63]  
32-Bit  
000  
001  
010  
011  
100  
101  
110  
111  
000  
010  
100  
110  
xx1  
Word 0  
Word 1  
Word 2  
Word 3  
Word 4  
Word 5  
Word 6  
Word 7  
Word 0  
Word 2  
Word 4  
Word 6  
Word 0  
Word 1  
Word 2  
Word 3  
Word 4  
Word 5  
Word 6  
Word 7  
Word 1  
Word 3  
Word 5  
Word 7  
64-Bit  
Invalid  
a. An “x” indicates a dont-care value in PLBC405DCURDWDADDR[1:3].  
PLBC405DCUWRDACK (Input)  
When asserted, this signal indicates the PLB slave latched the data on the write-data bus  
sent from the DCU (write data is acknowledged). The DCU holds this data valid until the  
end of the cycle this signal is asserted. In the following cycle, the DCU presents new data  
and holds it valid until acknowledged by the PLB slave. This continues until all write data  
PowerPC™ 405 Processor Block Reference Guide  
83  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
Chapter 2: Input/Output Interfaces  
is transferred from the DCU to the PLB slave. If this signal is deasserted, valid data on the  
write data bus has not been latched by the PLB slave.  
Write-data acknowledgement is asserted for one cycle per transfer. There is no limit to the  
number of cycles between two transfers. The number of transfers (and the number of  
write-data acknowledgements) depends on the PLB slave size (specified by  
PLBC405DCUSSIZE1 and the line-transfer size (specified by C405PLBDCUSIZE2). The  
number of transfers are summarized as follows:  
x
x
x
Single word writes require one transfer, regardless of the PLB slave size.  
Eight-word line writes require eight transfers when sent to a 32-bit PLB slave.  
Eight-word line writes require four transfers when sent to a 64-bit PLB slave.  
PLBC405DCUBUSY (Input)  
When asserted, this signal indicates the PLB slave acknowledged and is responding to (is  
busy with) a DCU data-access request. When deasserted, the PLB slave is not responding  
to a DCU data-access request.  
This signal should be asserted in the cycle after a DCU request is acknowledged by the PLB  
slave and remain asserted until the request is completed by the PLB slave. For read  
requests, it should be deasserted in the cycle after the last read-data acknowledgement. For  
write requests, it should be deasserted in the cycle after the target memory device is  
updated by the PLB slave. If multiple requests are initiated and overlap, the busy signal  
should be asserted in the cycle after the first request is acknowledged and remain asserted  
until the cycle after the last request is completed.  
The processor monitors the busy signal when executing a sync instruction. The sync  
instruction requires that all storage operations initiated prior to the sync be completed  
before subsequent instructions are executed. Storage operations are considered complete  
when there are no pending DCU requests and the busy signal is deasserted.  
Following reset, the processor block prevents the DCU from accessing data until the busy  
signal is deasserted for the first time. This is useful in situations where the processor block  
is reset by a core reset, but PLB devices are not reset. Waiting for the busy signal to be  
deasserted prevents data accesses following reset from interfering with PLB activity that  
was initiated before reset.  
PLBC405DCUERR (Input)  
When asserted, this signal indicates the PLB slave detected an error when attempting to  
transfer data to or from the DCU. The error signal should be asserted for only one cycle.  
When deasserted, no error is detected.  
For read operations, this signal should be asserted with the read-data acknowledgement  
signal that corresponds to the erroneous transfer. For write operations, it is possible for the  
error to not be detected until some time after the data is accepted by the PLB slave. Thus,  
the signal can be asserted independently of the write-data acknowledgement signal that  
corresponds to the erroneous transfer. However, it must be asserted while the busy signal  
is asserted.  
The PLB slave must not terminate data transfers when an error is detected. The processor  
block is responsible for responding to any error detected by the PLB slave. A machine-  
check exception occurs if the exception is enabled by software (MSR[ME] 1) and data is  
transferred between the processor block and a PLB slave while the error signal is asserted.  
84  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
R
The PLB slave should latch error information in DCRs so that software diagnostic routines  
can attempt to report and recover from the error. A bus-error address register (BEAR)  
should be implemented for storing the address of the access that caused the error. A bus-  
error syndrome register (BESR) should be implemented for storing information about  
cause of the error.  
Data-Side PLB Interface Timing Diagrams  
The following timing diagrams show typical transfers that can occur on the DSPLB  
interface between the DCU and a bus-interface unit (BIU). These timing diagrams  
represent the optimal timing relationships supported by the processor block. The BIU can  
be implemented using the FPGA processor local bus (PLB) or using customized hardware.  
Not all BIU implementations support these optimal timing relationships.  
DSPLB Timing Diagram Assumptions  
The following assumptions and simplifications were made in producing the optimal  
timing relationships shown in the timing diagrams:  
x
Requests are acknowledged by the BIU in the same cycle they are presented by the  
DCU if the BIU is not busy. This represents the earliest cycle a BIU can acknowledge a  
request. If the BIU is busy, the request is acknowledged in a later cycle.  
x
The first read-data acknowledgement for a data read is asserted in the cycle  
immediately following the read-request acknowledgement. This represents the  
earliest cycle a BIU can begin transferring data to the DCU in response to a read  
request. However, the earliest the FPGA PLB begins transferring data is two cycles  
after the read request is acknowledged.  
x
Subsequent read-data acknowledgements for eight-word line transfers are asserted in  
the cycle immediately following the prior read-data acknowledgement. This  
represents the fastest rate at which a BIU can transfer data to the DCU (there is no  
limit to the number of cycles between two transfers).  
x
x
The first write-data acknowledgement for a data write is asserted in the same cycle as  
the write-request acknowledgement. This represents the earliest cycle a BIU can begin  
accepting data from the DCU in response to a write request.  
Subsequent write-data acknowledgements for eight-word line transfers are asserted  
in the cycle immediately following the prior write-data acknowledgement. This  
represents the fastest rate at which the DCU can transfer data to the BIU (there is no  
limit to the number of cycles between two transfers).  
x
x
x
All eight-word line reads assume the target data (word) is returned first. Subsequent  
data in the line is returned sequentially by address, wrapping as necessary to the  
lower addresses in the same line.  
The transfer of read data from the fill buffer to the data cache (fill operation) takes  
three cycles. This transfer takes place after all data is read into the fill buffer from the  
BIU.  
The queuing of data flushed from the data cache (flush operation) takes two cycles.  
The PowerPC 405 can queue up to two flush operations.  
x
x
x
x
The BIU size (bus width) is 64 bits, so PLBC405DCUSSIZE1 is not shown.  
No data-access errors occur, so PLBC405DCUERR is not shown.  
The abort signal, C405PLBDCUABORT is shown only in the last example.  
The storage attribute signals are not shown.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
85  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Chapter 2: Input/Output Interfaces  
x
The DCU activity is shown only as an aide in describing the examples. The occurrence  
and duration of this activity is not observable on the DSPLB.  
The following abbreviations appear in the timing diagrams:  
Table 2-17: DSPLB Timing Diagram Abbreviations  
Abbreviationa  
Description  
Where Used  
(C405PLBDCUREQUEST)  
rl#, wl#  
Eight-word line read-request  
or write-request identifier,  
respectively  
Request  
Request acknowledge  
Read-data acknowledge  
Write-data acknowledge  
(PLBC405DCUADDRACK)  
(PLBC405DCURDDACK)  
(PLBC405DCUWRDACK)  
rw#, ww#  
Single word read-request or  
write-request identifier,  
respectively  
Request  
(C405PLBDCUREQUEST)  
(PLBC405DCUADDRACK)  
(PLBC405DCURDDACK)  
(PLBC405DCUWRDACK)  
Request acknowledge  
Read-data acknowledge  
Write-data acknowledge  
adr#  
d##  
Data-access request address  
A doubleword (eight data  
bytes) transferred as a result of DCU write-data bus  
an eight-word line transfer  
request  
Request address  
(C405PLBDCUABUS[0:31])  
DCU read-data bus  
(PLBC405DCURDDBUS[0:63])  
(C405PLBDCUWRDBUS[0:63])  
d#  
A word (four data bytes)  
transferred as a result of a  
single word transfer request  
DCU read-data bus  
DCU write-data bus  
(PLBC405DCURDDBUS[0:63])  
(C405PLBDCUWRDBUS[0:63])  
val  
Byte enables are valid  
Byte enables  
(C405PLBDCUBE[0:7])  
flush#  
The DCU is busy performing a DCU  
flush operation  
fill#  
The DCU is busy performing a DCU  
fill operation  
Subscripts  
Used to identify the data  
Read-data acknowledge  
(PLBC405DCURDDACK)  
words transferred between the DCU read-data bus  
(PLBC405DCURDDBUS[0:63])  
(PLBC405DCUWRDACK)  
(C405PLBDCUWRDBUS[0:63])  
BIU and DCU  
Write-data acknowledge  
DCU write-data bus  
#
Used to identify the order  
doublewords are sent to the  
DCU  
Transfer order  
(PLBC405DCURDWDADDR[1:3])  
a. The “#” symbol indicates a number.  
DSPLB Three Consecutive Line Reads  
The timing diagram in Figure 2-17 shows three consecutive eight-word line reads that are  
address-pipelined between the DCU and BIU. It provides an example of the fastest speed  
at which the DCU can request and receive data over the PLB. All reads are cacheable.  
The first line read (rl1) is requested by the DCU in cycle 2. Data is sent from the BIU to the  
DCU fill buffer in cycles 3 through 6. After all data associated with this line is read, it is  
transferred by the DCU from the fill buffer to the data cache. This is represented by the fill1  
transaction in cycles 7 through 9.  
86  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
The second line read (rl2) is requested by the DCU in cycle 4. The BIU responds to this  
request after it has completed all transactions associated with the first request (rl1). Data is  
sent from the BIU to the DCU fill buffer in cycles 7 through 10. After all data associated  
with this line is read, it is transferred by the DCU from the fill buffer to the data cache. This  
is represented by the fill2 transaction in cycles 11 through 13.  
The third line read (rl3) cannot be requested until the first request (rl1) is complete. The  
earliest this request can occur is in cycle 7. However, the request is delayed to cycle 10  
because the DCU is busy transferring the fill buffer to the data cache in cycles 7 through 9  
(fill1). The BIU responds to the rl3 request after it has completed all transactions associated  
with the second request (rl2). Data is sent from the BIU to the DCU fill buffer in cycles 11  
through 14. After all data associated with this line is read, it is transferred by the DCU from  
the fill buffer to the data cache. This is represented by the fill3 transaction in cycles 15  
through 17.  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
DCU  
fill1  
fill2  
fill3  
PPC405 Outputs:  
C405PLBDCUREQUEST  
rl1  
rl2  
rl3  
adr1  
adr2  
adr3  
C405PLBDCUABUS[0:31]  
C405PLBDCURNW  
C405PLBDCUSIZE2  
C405PLBDCUBE[0:7]  
C405PLBDCUWRDBUS[0:63]  
PLB/BIU Outputs:  
PLBC405DCUADDRACK  
rl1  
rl2  
rl3  
PLBC405DCURDDACK  
PLBC405DCURDDBUS[0:63]  
PLBC405DCURDWDADDR[1:3]  
PLBC405DCUWRDACK  
rl1 rl1 rl1 rl1 rl2 rl2 rl2 rl2 rl3 rl3 rl3 rl3  
01 23 45 67 01 23 45 67 01 23 45  
67  
d1 d1 d1 d1 d2 d2 d2 d2 d3 d3 d3 d3  
01 23 45 67 01 23 45 67 01 23 45  
67  
0
2
4
6
0
2
4
6
0
2
4
6
PLBC405DCUBUSY  
UG018_21_101701  
Figure 2-17: DSPLB Three Consecutive Line Reads  
DSPLB Line Read/Word Read/Line Read  
The timing diagram in Figure 2-18 shows a sequence involving an eight-word line read, a  
word read, and another an eight-word line read. These requests are address-pipelined  
between the DCU and BIU. The line reads are cacheable and the word read is not  
cacheable.  
The first line read (rl1) is requested by the DCU in cycle 2 and the BIU responds in the same  
cycle. Data is sent from the BIU to the DCU fill buffer in cycles 3 through 6. After all data  
associated with this line is read, it is transferred by the DCU from the fill buffer to the data  
cache. This is represented by the fill1 transaction in cycles 7 through 9.  
The word read (rw2) is requested by the DCU in cycle 4. The BIU responds to this request  
after it has completed all transactions associated with the first request (rl1). A single word  
PowerPC™ 405 Processor Block Reference Guide  
87  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 2: Input/Output Interfaces  
is sent from the BIU to the DCU fill buffer in cycle 7. The DCU uses the byte enables to  
select the appropriate bytes from the read-data bus. The data is not cacheable, so the fill  
buffer is not transferred to the data cache after this transaction is completed.  
The third line read (rl3) cannot be requested until the first request (rl1) is complete. The  
earliest this request can occur is in cycle 7. However, the request is delayed to cycle 10  
because the DCU is busy transferring the fill buffer to the data cache in cycles 7 through 9  
(fill1). The BIU can respond immediately to the rl3 request because all transactions  
associated with the second request (rw2) are complete. Data is sent from the BIU to the  
DCU fill buffer in cycles 11 through 14. After all data associated with this line is read, it is  
transferred by the DCU from the fill buffer to the data cache. This is represented by the fill3  
transaction in cycles 15 through 17.  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
DCU  
fill1  
fill3  
PPC405 Outputs:  
C405PLBDCUREQUEST  
rl1  
rw2  
rl3  
adr1  
adr2  
adr3  
C405PLBDCUABUS[0:31]  
C405PLBDCURNW  
C405PLBDCUSIZE2  
val  
C405PLBDCUBE[0:7]  
C405PLBDCUWRDBUS[0:63]  
PLB/BIU Outputs:  
PLBC405DCUADDRACK  
rl1  
rw2  
rl3  
PLBC405DCURDDACK  
PLBC405DCURDDBUS[0:63]  
PLBC405DCURDWDADDR[1:3]  
PLBC405DCUWRDACK  
rl1 rl1 rl1 rl1  
01 23 45  
rw2  
d2  
rl3 rl3 rl3 rl3  
67  
01  
23  
45  
67  
d1 d1 d1 d1  
01 23 45  
d3 d3 d3 d3  
01 23 45  
67  
67  
0
2
4
6
0
2
4
6
PLBC405DCUBUSY  
UG018_22_101701  
Figure 2-18: DSPLB Line Read/Word Read/Line Read  
DSPLB Three Consecutive Word Reads  
The timing diagram in Figure 2-19 shows three consecutive word reads. The word reads  
could be in response to non-cacheable loads or cacheable loads that do not allocate a cache  
line.  
Figure 2-19 provides an example of the fastest speed at which the PowerPC 405 DCU can  
request and receive single words over the PLB. The DCU is designed to wait for the current  
single-word read request to be satisfied before making a subsequent request. This  
requirement results in the delay between requests shown in the figure. It is possible for  
other PLB masters to request and receive single words at a faster rate than shown in this  
example.  
The first word read (rw1) is requested by the DCU in cycle 2 and the BIU responds in the  
same cycle. A single word is sent from the BIU to the DCU in cycle 3. The DCU uses the  
byte enables to select the appropriate bytes from the read-data bus.  
88  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
The second word read (rw2) is requested by the DCU in cycle 7 and the BIU responds in the  
same cycle. A single word is sent from the BIU to the DCU in cycle 8. The DCU uses the  
byte enables to select the appropriate bytes from the read-data bus.  
The third word read (rw3) is requested by the DCU in cycle 12 and the BIU responds in the  
same cycle. A single word is sent from the BIU to the DCU in cycle 13. The DCU uses the  
byte enables to select the appropriate bytes from the read-data bus.  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
DCU  
PPC405 Outputs:  
C405PLBDCUREQUEST  
rw1  
rw2  
rw3  
adr1  
adr2  
adr3  
C405PLBDCUABUS[0:31]  
C405PLBDCURNW  
C405PLBDCUSIZE2  
val  
val  
val  
C405PLBDCUBE[0:7]  
C405PLBDCUWRDBUS[0:63]  
PLB/BIU Outputs:  
PLBC405DCUADDRACK  
rw1  
rw2  
rw3  
PLBC405DCURDDACK  
PLBC405DCURDDBUS[0:63]  
PLBC405DCURDWDADDR[1:3]  
PLBC405DCUWRDACK  
rw1  
d1  
rw2  
d2  
rw3  
d3  
PLBC405DCUBUSY  
UG018_23_101701  
Figure 2-19: DSPLB Three Consecutive Word Reads  
DSPLB Three Consecutive Line Writes  
The timing diagram in Figure 2-20 shows three consecutive eight-word line writes. It  
provides an example of the fastest speed at which the DCU can request and send data over  
the PLB. All writes are cacheable. Consecutive writes cannot be address pipelined between  
the DCU and BIU.  
The first line write (wl1) is requested by the DCU in cycle 3 in response to a cache flush  
(represented by the flush1 transaction in cycles 1 through 2). The BIU responds in the same  
cycle the request is made by the DCU. Data is sent from the DCU to the BIU in cycles 3  
through 6.  
The second line write (wl2) cannot be started until the first request is complete. This  
request is made by the DCU in cycle 8 in response to the cache flush in cycles 3 through 4  
(flush2). The BIU responds in the same cycle the request is made by the DCU. Data is sent  
from the DCU to the BIU in cycles 8 through 11.  
The DCU can queue two outstanding data-cache flush requests. In this example, a third  
flush request cannot be queued until the first is complete. The third flush request (flush3)  
is queued in cycles 8 and 9.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
89  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 2: Input/Output Interfaces  
The third line write (wl3) cannot be started until the second request (wl2) is complete. This  
request is made by the DCU in cycle 13 in response to the flush3 request. The BIU responds  
in the same cycle the request is made by the DCU. Data is sent from the DCU to the BIU in  
cycles 13 through 16.  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
DCU  
flush1  
flush2  
flush3  
PPC405 Outputs:  
C405PLBDCUREQUEST  
wl1  
wl2  
wl3  
adr1  
adr2  
adr3  
C405PLBDCUABUS[0:31]  
C405PLBDCURNW  
C405PLBDCUSIZE2  
C405PLBDCUBE[0:7]  
C405PLBDCUWRDBUS[0:63]  
d1 d1 d1 d1  
d2 d2 d2 d2  
67  
d3 d3 d3 d3  
01 23 45 67  
01  
23  
45  
67  
01  
23  
45  
PLB/BIU Outputs:  
PLBC405DCUADDRACK  
wl1  
wl2  
wl3  
PLBC405DCURDDACK  
PLBC405DCURDDBUS[0:63]  
PLBC405DCURDWDADDR[1:3]  
PLBC405DCUWRDACK  
wl1 wl1 wl1 wl1  
01 23 45 67  
wl2 wl2 wl2 wl2  
01 23 45 67  
wl3 wl3 wl3 wl3  
01 23 45 67  
PLBC405DCUBUSY  
UG018_24_101701  
Figure 2-20: DSPLB Three Consecutive Line Writes  
DSPLB Line Write/Word Write/Line Write  
The timing diagram in Figure 2-21 shows a sequence involving an eight-word line write, a  
word write, and another an eight-word line write. Consecutive writes cannot be address  
pipelined between the DCU and BIU. The line writes are cacheable. The word writes could  
be in response to non-cacheable stores, cacheable stores to write-through memory, or  
cacheable stores that do not allocate a cache line.  
The first line write (wl1) is requested by the DCU in cycle 3 in response to a cache flush  
(represented by the flush1 transaction in cycles 1 through 2). The BIU responds in the same  
cycle the request is made by the DCU. Data is sent from the DCU to the BIU in cycles 3  
through 6.  
The word write (ww2) cannot be started until the first request is complete. This request is  
made by the DCU in cycle 8 and the BIU responds in the same cycle. A single word is sent  
from the DCU to the BIU in cycle 8. The BIU uses the byte enables to select the appropriate  
bytes from the write-data bus.  
The DCU queues the second flush request, flush3. The second line write (wl3) cannot be  
started until the second request (ww2) is complete. This request is made by the DCU in  
cycle 10 in response to the flush3 request. The BIU responds in the same cycle the request  
is made by the DCU. Data is sent from the DCU to the BIU in cycles 10 through 13.  
90  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
DCU  
flush1  
flush3  
PPC405 Outputs:  
C405PLBDCUREQUEST  
wl1  
ww2  
adr2  
wl3  
adr1  
adr3  
C405PLBDCUABUS[0:31]  
C405PLBDCURNW  
C405PLBDCUSIZE2  
val  
d2  
C405PLBDCUBE[0:7]  
C405PLBDCUWRDBUS[0:63]  
d1 d1 d1 d1  
d3 d3 d3 d3  
67  
01  
23  
45  
67  
01  
23  
45  
PLB/BIU Outputs:  
PLBC405DCUADDRACK  
wl1  
ww2  
wl3  
PLBC405DCURDDACK  
PLBC405DCURDDBUS[0:63]  
PLBC405DCURDWDADDR[1:3]  
PLBC405DCUWRDACK  
wl1 wl1 wl1 wl1  
01 23 45 67  
ww2  
wl3 wl3 wl3 wl3  
01 23 45 67  
PLBC405DCUBUSY  
UG018_25_101701  
Figure 2-21: DSPLB Line Write/Word Write/Line Write  
DSPLB Three Consecutive Word Writes  
The timing diagram in Figure 2-22 shows three consecutive word writes. It provides an  
example of the fastest speed at which the DCU can request and send single words over the  
PLB. The word writes could be in response to non-cacheable stores, cacheable stores to  
write-through memory, or cacheable stores that do not allocate a cache line. Consecutive  
writes cannot be address pipelined between the DCU and BIU.  
The first word write (ww1) is requested by the DCU in cycle 2. The BIU responds in the  
same cycle the request is made by the DCU. A single word is sent from the DCU to the BIU  
in cycle 2. The BIU uses the byte enables to select the appropriate bytes from the write-data  
bus.  
The second word write (ww2) is requested after the first write is complete. The DCU  
makes the request in cycle 4 and the BIU responds in the same cycle. A single word is sent  
from the DCU to the BIU in cycle 4. The BIU uses the byte enables to select the appropriate  
bytes from the write-data bus.  
The third word write (ww3) is requested after the second write is complete. The DCU  
makes the request in cycle 6 and the BIU responds in the same cycle. A single word is sent  
from the DCU to the BIU in cycle 6. The BIU uses the byte enables to select the appropriate  
bytes from the write-data bus.  
PowerPC™ 405 Processor Block Reference Guide  
91  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 2: Input/Output Interfaces  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
DCU  
PPC405 Outputs:  
C405PLBDCUREQUEST  
ww1  
adr1  
ww2  
adr2  
ww3  
adr3  
C405PLBDCUABUS[0:31]  
C405PLBDCURNW  
C405PLBDCUSIZE2  
val  
d1  
val  
d2  
val  
d3  
C405PLBDCUBE[0:7]  
C405PLBDCUWRDBUS[0:63]  
PLB/BIU Outputs:  
PLBC405DCUADDRACK  
ww1  
ww2  
ww3  
PLBC405DCURDDACK  
PLBC405DCURDDBUS[0:63]  
PLBC405DCURDWDADDR[1:3]  
PLBC405DCUWRDACK  
ww1  
ww2  
ww3  
PLBC405DCUBUSY  
UG018_26_101701  
Figure 2-22: DSPLB Three Consecutive Word Writes  
DSPLB Line Write/Line Read/Word Write  
The timing diagram in Figure 2-23 shows a sequence involving an eight-word line write,  
an eight-word line read, and a word write. It provides an example of address pipelining  
involving writes and reads. It also demonstrates how read and write operations can  
overlap due to the split read-data and write-data busses.  
The first line write (wl1) is requested by the DCU in cycle 3 in response to a cache flush  
(represented by the flush1 transaction in cycles 1 through 2). The BIU responds in the same  
cycle the request is made by the DCU. Data is sent from the DCU to the BIU in cycles 3  
through 6.  
The first line read (rl2) is address pipelined with the previous line write. The rl2 request is  
made by the DCU in cycle 5 and the BIU responds in the same cycle. Data is sent from the  
BIU to the DCU fill buffer in cycles 6 through 9. Because of the split data bus, a read  
operation overlaps with a previous write operation in cycle 6. After all data associated  
with this line is read, it is transferred by the DCU from the fill buffer to the data cache. This  
is represented by the fill2 transaction in cycles 10 through 12.  
The word write (ww3) cannot be requested until the first write request (wl1) is complete  
because address pipelining of multiple write requests is not supported. However, this  
request is address pipelined with the previous line read request (rl2). The ww3 request is  
made by the DCU in cycle 8 and the BIU responds in the same cycle. A single word is sent  
from the DCU to the BIU in cycle 8. The BIU uses the byte enables to select the appropriate  
bytes from the write-data bus. Because of the split data bus, this write operation overlaps  
with a read operation from the previous read request (rl2).  
92  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
DCU  
flush1  
fill2  
PPC405 Outputs:  
C405PLBDCUREQUEST  
wl1  
rl2  
ww3  
adr3  
adr1  
adr2  
C405PLBDCUABUS[0:31]  
C405PLBDCURNW  
C405PLBDCUSIZE2  
val  
d3  
C405PLBDCUBE[0:7]  
C405PLBDCUWRDBUS[0:63]  
d1 d1 d1 d1  
01 23 45 67  
PLB/BIU Outputs:  
PLBC405DCUADDRACK  
wl1  
rl2  
ww3  
PLBC405DCURDDACK  
PLBC405DCURDDBUS[0:63]  
PLBC405DCURDWDADDR[1:3]  
PLBC405DCUWRDACK  
rl2 rl2 rl2 rl2  
01 23 45  
67  
d2 d2 d2 d2  
01 23 45  
67  
0
2
4
6
wl1 wl1 wl1 wl1  
01 23 45 67  
ww3  
PLBC405DCUBUSY  
UG018_27_101701  
Figure 2-23: DSPLB Line Write/Line Read/Word Write  
DSPLB Word Write/Word Read/Word Write/Line Read  
The timing diagram in Figure 2-24 shows a sequence involving a word write, a word read,  
another word write, and an eight-word line read.  
The first word write (ww1) is requested by the DCU in cycle 2 and the BIU responds in the  
same cycle. A single word is sent from the DCU to the BIU in cycle 2. The BIU uses the byte  
enables to select the appropriate bytes from the write-data bus.  
The first word read (rw2) is requested by the DCU in cycle 4. Even though the previous  
request is completed in cycle 2, this is the earliest an address pipelined request can be  
started by the DCU. The BIU responds in the same cycle the rw2 request is made by the  
DCU. A single word is sent from the BIU to the DCU in cycle 5. The DCU uses the byte  
enables to select the appropriate bytes from the write-data bus.  
The second word write (ww3) is requested by the DCU in cycle 6. Again, this is the earliest  
an address pipelined request can be started by the DCU. The BIU responds in the same  
cycle the ww3 request is made by the DCU. A single word is sent from the DCU to the BIU  
in cycle 6. The BIU uses the byte enables to select the appropriate bytes from the write-data  
bus.  
The line read (rl4) is address pipelined with the word write. The rl4 request is made by the  
DCU in cycle 8 and the BIU responds in the same cycle. Data is sent from the BIU to the  
DCU fill buffer in cycles 9 through 12. After all data associated with this line is read, it is  
transferred by the DCU from the fill buffer to the data cache. This is represented by the fill4  
transaction in cycles 13 through 15.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
93  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 2: Input/Output Interfaces  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
DCU  
fill4  
PPC405 Outputs:  
C405PLBDCUREQUEST  
ww1  
adr1  
rw2  
ww3  
adr3  
rl4  
adr2  
adr4  
C405PLBDCUABUS[0:31]  
C405PLBDCURNW  
C405PLBDCUSIZE2  
val  
d1  
val  
val  
d3  
C405PLBDCUBE[0:7]  
C405PLBDCUWRDBUS[0:63]  
PLB/BIU Outputs:  
PLBC405DCUADDRACK  
ww1  
rw2  
ww3  
rl4  
PLBC405DCURDDACK  
PLBC405DCURDDBUS[0:63]  
PLBC405DCURDWDADDR[1:3]  
PLBC405DCUWRDACK  
rw2  
d2  
rl4 rl4 rl4 rl4  
01 23 45  
67  
d4 d4 d4 d4  
01 23 45  
67  
0
2
4
6
ww1  
ww3  
PLBC405DCUBUSY  
UG018_28_101701  
Figure 2-24: DSPLB Word Write/Word Read/Word Write/Line Read  
DSPLB Word Write/Line Read/Line Write  
The timing diagram in Figure 2-25 shows a sequence involving a word write, an eight-  
word line read, and an eight-word line write. It demonstrates how read and write  
operations can overlap due to the split read-data and write-data busses.  
The word write (ww1) is requested by the DCU in cycle 2 and the BIU responds in the same  
cycle. A single word is sent from the DCU to the BIU in cycle 2. The BIU uses the byte  
enables to select the appropriate bytes from the write-data bus.  
The line read (rl2) is address pipelined with the previous word write. The rl2 request is  
made by the DCU in cycle 4 and the BIU responds in the same cycle. Data is sent from the  
BIU to the DCU fill buffer in cycles 5 through 8. After all data associated with this line is  
read, it is transferred by the DCU from the fill buffer to the data cache. This is represented  
by the fill2 transaction in cycles 9 through 11.  
The line write (wl3) is address pipelined with the previous line read. The wl3 request is  
made by the DCU in cycle 6 in response to the cache flush in cycles 4 through 5 (flush3).  
The BIU responds to the wl3 request in the same cycle it is asserted by the DCU. Data is  
sent from the DCU to the BIU in cycles 6 through 9. Because of the split data bus, the write  
operations in cycles 6 through 8 overlap read operations from the previous read request  
(rl2).  
94  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
DCU  
flush3  
fill2  
PPC405 Outputs:  
C405PLBDCUREQUEST  
ww1  
adr1  
rl2  
wl3  
adr2  
adr3  
C405PLBDCUABUS[0:31]  
C405PLBDCURNW  
C405PLBDCUSIZE2  
val  
d1  
C405PLBDCUBE[0:7]  
d3 d3 d3 d3  
67  
C405PLBDCUWRDBUS[0:63]  
01  
23  
45  
PLB/BIU Outputs:  
PLBC405DCUADDRACK  
ww1  
rl2  
wl3  
PLBC405DCURDDACK  
PLBC405DCURDDBUS[0:63]  
PLBC405DCURDWDADDR[1:3]  
PLBC405DCUWRDACK  
rl2 rl2 rl2 rl2  
01 23 45  
67  
d2 d2 d2 d2  
01 23 45  
67  
0
2
4
6
wl3 wl3 wl3 wl3  
01 23 45 67  
ww1  
PLBC405DCUBUSY  
UG018_29_101701  
Figure 2-25: DSPLB Word Write/Line Read/Line Write  
DSPLB 2:1 Core-to-PLB Line Read  
The timing diagram in Figure 2-26 shows a line read in a system with a PLB clock that runs  
at one half the frequency of the PowerPC 405 clock.  
The line read (rl1) is requested by the DCU in PLB cycle 2, which corresponds to PowerPC  
405 cycle 3. The BIU responds in the same cycle. Data is sent from the BIU to the DCU fill  
buffer in PLB cycles 3 through 6 (PowerPC 405 cycles 5 through 12). After all data  
associated with this line is read, it is transferred by the DCU from the fill buffer to the data  
cache. This is represented by the fill1 transaction in PowerPC 405 cycles 13 through 15.  
PowerPC™ 405 Processor Block Reference Guide  
95  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 2: Input/Output Interfaces  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
CPMC405CLK  
PLBCLK  
fill1  
DCU  
PPC405 Outputs:  
C405PLBDCUREQUEST  
rl1  
adr1  
C405PLBDCUABUS[0:31]  
C405PLBDCURNW  
C405PLBDCUSIZE2  
C405PLBDCUBE[0:7]  
C405PLBDCUWRDBUS[0:63]  
PLB/BIU Outputs:  
PLBC405DCUADDRACK  
rl1  
PLBC405DCURDDACK  
PLBC405DCURDDBUS[0:63]  
PLBC405DCURDWDADDR[1:3]  
PLBC405DCUWRDACK  
rl1  
01  
rl1  
23  
rl1  
45  
rl1  
67  
d1  
01  
d1  
23  
d1  
45  
d1  
67  
0
2
4
6
PLBC405DCUBUSY  
UG018_30_101701  
Figure 2-26: DSPLB 2:1 Core-to-PLB Line Read  
DSPLB 3:1 Core-to-PLB Line Write  
The timing diagram in Figure 2-27 shows a line write in a system with a PLB clock that  
runs at one third the frequency of the PowerPC 405 clock.  
The line write (wl1) is requested by the DCU in PLB cycle 2, which corresponds to  
PowerPC 405 cycle 4. The BIU responds in the same cycle. The request is made in response  
to a flush in PowerPC 405 cycles 1 and 2 (flush1). Data is sent from the DCU to the BIU in  
PLB cycles 2 through 5 (PowerPC 405 cycles 4 through 15).  
96  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
CPMC405CLK  
PLBCLK  
flush1  
DCU  
PPC405 Outputs:  
C405PLBDCUREQUEST  
wl1  
adr1  
C405PLBDCUABUS[0:31]  
C405PLBDCURNW  
C405PLBDCUSIZE2  
C405PLBDCUBE[0:7]  
C405PLBDCUWRDBUS[0:63]  
d1  
01  
d1  
23  
d1  
45  
d1  
67  
PLB/BIU Outputs:  
PLBC405DCUADDRACK  
wl1  
PLBC405DCURDDACK  
PLBC405DCURDDBUS[0:63]  
PLBC405DCURDWDADDR[1:3]  
PLBC405DCUWRDACK  
wl1  
01  
wl1  
23  
wl1  
45  
wl1  
67  
PLBC405DCUBUSY  
UG018_31_101701  
Figure 2-27: DSPLB 3:1 Core-to-PLB Line Write  
DSPLB Aborted Data-Access Request  
The timing diagram in Figure 2-28 shows an aborted data-access request. The request is  
aborted because of a core reset. The BIU is not reset.  
A line write (wl1) is requested by the DCU in cycle 3 in response to a cache flush  
(represented by the flush1 transaction in cycles 1 through 2). The BIU responds in the same  
cycle the request is made by the DCU. Data is sent from the DCU to the BIU in cycles 3  
through 6.  
A line read (rl2) is address pipelined with the previous line write. The rl2 request is made  
by the DCU in cycle 5 and the BIU responds in the same cycle. However, the processor also  
aborts the request in cycle 5. Therefore, no data is transferred from the BIU to the DCU in  
response to this request.  
Because the BIU is not reset, it must complete the first line write even though the processor  
asserts the PLB abort signal during the line write.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
97  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 2: Input/Output Interfaces  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
PLBCLK and CPMC405CLK  
DCU  
flush1  
PPC405 Outputs:  
C405PLBDCUREQUEST  
wl1  
rl2  
adr1  
adr2  
C405PLBDCUABUS[0:31]  
C405PLBDCURNW  
C405PLBDCUSIZE2  
C405PLBDCUBE[0:7]  
C405PLBDCUWRDBUS[0:63]  
C405PLBDCUABORT  
d1 d1 d1 d1  
01 23 45 67  
PLB/BIU Outputs:  
PLBC405DCUADDRACK  
wl1  
rl2  
PLBC405DCURDDACK  
PLBC405DCURDDBUS[0:63]  
PLBC405DCURDWDADDR[1:3]  
PLBC405DCUWRDACK  
wl1 wl1 wl1 wl1  
01 23 45 67  
PLBC405DCUBUSY  
UG018_32_101701  
Figure 2-28: DSPLB Aborted Data-Access Request  
Device-Control Register Interfaces  
The device-control register (DCR) interface provides a mechanism for the processor block  
to initialize and control peripheral devices that reside on the same FPGA chip. For  
example, the memory-transfer characteristics and address assignments for a bus-interface  
unit (BIU) can be configured by software using DCRs. The DCRs are accessed using the  
PowerPC mfdcr and mtdcr instructions. The addressing used by these instructions is not  
memory mapped and thus does not interfere with OCM/ PLB memory addressing. All  
device control registers are defined in a 10-bit, word-aligned range.  
The following types of device-control register (DCR) interfaces exist:  
x
x
x
PowerPC block internal device-control register interface.  
General purpose DCR bus interface.  
Dedicated EMAC DCR bus interface (Virtex-4-FX only).  
The subsequent sections will describe these interfaces and highlight differences between  
the Virtex-II Pro/ ProX and Virtex-4-FX DCR functionary  
98  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
Internal Device Control Register (DCR) Interface  
The PowerPC 405 Processor block contains several internal device-control registers, which  
can be used to control, configure, and hold status for various functional units in the  
Processor block. These registers are accessed on internal DCR busses, which share their  
address range with the device-control registers accessed on the external DCR bus. This  
means that the address locations assigned for internal PowerPC DCR registers must not be  
populated by registers accessed over the external DCR bus.  
Virtex-II Pro and Virtex-II ProX  
In Virtex-II Pro and Virtex-II ProX processor blocks, there are two functional units that  
contain device-control registers:  
1. The data-side OCM (DSOCM) controller, which contains the DSCNTL and DSARC  
registers.  
2. The instruction-side OCM (ISOCM) controller, which contains the ISCNTL, ISARC,  
ISINIT, and ISFILL registers.  
See Chapter 3 for address mapping for these registers and for details on how Virtex-II Pro  
and Virtex-II ProX address mapping differs from Virtex-4.  
The registers contained by the DSOCM and ISOCM controllers are located in two address  
blocks, which are independently located in the 10-bit DCR address space The locations are  
defined by the input ports TIEDSOCMDCRADDR[0:7] and TIEISOCMDCRADDR[0:7].  
They define the eight most significant address bits for the DSOCM and ISOCM register  
block addresses respectively. The individual register offset in each block is defined by the  
tables below:  
Table 2-18: Virtex-II Pro/ProX DSOCM DCR Address Offset  
Device Control Register  
Offset  
DSCNTL  
DSARC  
reserved  
reserved  
3
2
1
0
Table 2-19: Virtex-II Pro/ProX ISOCM DCR Address Offset  
Device Control Register Offset  
ISCNTL  
ISARC  
ISFILL  
ISINIT  
3
2
1
0
For more information, please refer to the “OCM Controller Operation” section of  
Note: Virtex-II Pro and ProX address mapping differs from the mapping in Virtex-4-FX. To simplify  
porting of a design from a Virtex-II Pro or ProX to a Virtex-4-FX part, the user must ensure that the  
most significant six bits of the two TIE signals are identical and that TIEISOCMDCRADDR[6:7]=00  
and TIEDSOCMDCRADDR[6:7]=01.  
PowerPC™ 405 Processor Block Reference Guide  
99  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Chapter 2: Input/Output Interfaces  
In Virtex-II Pro/ ProX, a DCR access addressing the internal DCR logic could be visible on  
the external DCR bus interface as an access.  
Virtex-4-FX  
In Virtex-4-FX processor blocks, there are four functional units that contain device-control  
registers:  
1. The data-side OCM (DSOCM) controller, which contains the DSCNTL and DSARC  
registers.  
2. The instruction-side OCM (ISOCM) controller, which contains the ISCNTL, ISARC,  
ISINIT, and ISFILL registers.  
3. The APU Controller, which contains the APUCFG and UDICFG registers.  
4. The Ethernet MAC DCR Bus Interface (with a fixed connection to the hard EMAC  
controller), which contains the RDYstatus, cntlReg, dataRegLSW, and dataRegMSW  
registers.  
These registers are located in a single address block in the 10-bit DCR address space using  
the input port TIEDCRADDR[0:5]. This input port defines the six most significant address  
bits of the register block address. The individual register offset in each block is defined in  
Table 2-20: Virtex-4-FX Internal DCR Address Offset  
Block  
EMAC  
Device Control Register  
Offset  
15  
RDYstatus  
cntlReg  
14  
13  
12  
8:11  
7
dataRegLSW  
dataRegMSW  
-
Reserved  
DSOCM  
DSCNT  
DSARC  
APUCFG  
UDICFG  
ISCNT  
6
APU  
5
4
ISOCM  
3
ISARC  
2
ISFILL  
1
ISINIT  
0
For more information on DCR functionality in the OCM controller, refer to the “OCM  
For more information on DCR functionality in the APU controller, refer to Chapter 4,  
The Ethernet MAC DCR Bus interface looks like a complete DCR bus interface on the  
processor block symbol, however, this interface is hard wired to the pair of Ethernet MAC  
100  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
blocks that are associated with each PowerPC. Thus, this interface is not available to the  
user for connection to the FPGA fabric. Figure 2-29 shows the block symbol for the  
dedicated EMAC DCR interface.  
EMACDCRACK  
EMACDCRDATA  
DCREMACCLK  
PPC405  
DCREMACENABLER  
DCREMACREAD  
DCREMACWRITE  
DCREMACABUS  
DCREMACDBUS  
UG018_02_29_042304  
Note: This block symbol is provided for completeness. Though not available to the user, the user  
will be able to see these signals when modeling the hardware.  
Figure 2-29: Dedicated EMAC DCR Bus Interface Block Symbol  
For more information on DCR functionality in the EMAC controller, refer to the separate  
Virtex-4 EMAC documentation.  
In Virtex-4-FX, a DCR access addressing the internal DCR logic will not be visible on the  
external DCR bus interface as an access.  
External DCR Bus Interface  
The DCR interface of CoreConnect DCR bus peripherals consists of the following:  
x
x
x
x
A 10-bit address bus.  
Separate 32-bit input and output data busses.  
Separate read and write control signals.  
A read/ write acknowledgement signal.  
On Virtex-4-FX parts there is also a clock associated with the interface: CPMDCRCLK (see  
the “Clock and Power Management Interface” section of this chapter).  
The preferred implementation of the DCR data bus is as a distributed, multiplexed chain.  
Each peripheral in the chain has a DCR input-data bus connected to the DCR output-data  
bus of the previous peripheral in the chain (the first peripheral is attached to the processor  
block). Each peripheral multiplexes this bus with the outputs of its DCRs and passes the  
resulting DCR bus as an output to the next peripheral in the chain. The last peripheral in  
the chain has its DCR output-data bus attached to the processor block DCR input-data  
interface. This implementation enables future DCR expansion without requiring changes  
to I/ O devices due to additional loading.  
There are two options for connecting the acknowledge signals. The acknowledge signals  
from the DCRs can be latched and forwarded in the chain with the DCR data bus.  
Alternatively, combinatorial logic, such as OR gates, can be used to combine and forward  
the acknowledge signal to the processor block.  
Figure 2-30 shows an example DCR chain implementation in an FPGA chip. The  
acknowledge signal in this example is formed using combinatorial logic (OR gate).  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
101  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 2: Input/Output Interfaces  
DCRABUS[0:9]  
DCRDBUSOUT[0:31]  
DCR Slave 1  
DCRWRITE  
PowerPC 405  
Block  
DCRREAD  
DCRACK  
DCRs  
OR  
CPMDCRCLK  
(for Virtex-4 only)  
DCR Slave 2  
DCRs  
DCR Slave 3  
DCRs  
DCRDBUSIN[0:31]  
UG018_52_042304  
Note: Abbreviated signal names are used.  
Figure 2-30: DCR Chain Block Diagram  
In Virtex-II Pro/ ProX the PowerPC external DCR interface is clocked by the processor core  
clock (CPMC405CLOCK), but in Virtex-4-FX the external interface is clocked by an input to  
the processor block (CPMDCRCLK).  
DCR slaves can use clock frequencies that are different (faster or slower) from the one the  
PowerPC 405 external DCR interface is using. The only requirement is that every rising  
edge of the slower clock align with a rising edge of the faster clock. This means that the  
clocks for the external DCR slaves and the clock for the PowerPC 405 interface must be  
derived from a common source. The reason different frequencies are possible is that the  
access protocol of the bus implements full handshaking, meaning that the Acknowledge  
signal sent on a Read/ Write access is only deasserted after the Read/ Write signal has been  
deasserted. If a DCR access is not acknowledged within 64 processor core cycles  
102  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
(CPMC405CLOCK), the access times out. No error is flagged on time-out. The processor  
just continues to execute the next instruction.  
Figure 2-31 illustrates a logical implementation of the DCR bus interface. This  
implementation enables a DCR slave to run at a different clock speed than the PowerPC  
405. The acknowledge signal is latched and forwarded with the DCR bus. The bypass  
multiplexor minimizes data-bus path delays when the DCR is not selected. To ensure  
reusability across multiple FPGA environments, all DCR slave logic should use the  
specified implementation.  
Processor Core  
DCR Slave  
DCRWRITE  
L1  
L2  
L1  
L2  
L1  
L2  
DCRREAD  
DCRABUS[0:9]  
Full  
Address  
Decode  
Lower  
Address  
Decode  
DCRACK  
DCR1  
1
0
L2  
L1  
1
DCRDBUSIN[0:31]  
DCRDBUSOUT[0:31]  
L2  
L1  
DCR2  
0
Bypass Mux  
UG018_53_051204  
Figure 2-31: DCR Bus Implementation  
External DCR Bus Interface I/O Signal Summary  
Virtex-II Pro and Virtex-II ProX  
Figure 2-32 shows the block symbol for the DCR interface. The signals are summarized in  
Table 2-21.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
103  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Chapter 2: Input/Output Interfaces  
PPC405  
DCRC405ACK  
C405DCRREAD  
DCRC405DBUSIN[0:31]  
C405DCRWRITE  
C405DCRABUS[0:9]  
C405DCRDBUSOUT[0:31]  
UG018_06_020702  
Figure 2-32: Virtex-II Pro and Virtex-II ProX DCR Interface Block Symbol  
Table 2-21: Virtex-II Pro and Virtex-II ProX DCR Interface I/O Signals  
I/O  
Type  
Signal  
C405DCRREAD  
If Unused  
Function  
O
No Connect  
No Connect  
No Connect  
Indicates a DCR read request occurred.  
Indicates a DCR write request occurred.  
Specifies the address of the DCR access request.  
The 32-bit DCR write-data bus.  
C405DCRWRITE  
O
C405DCRABUS[0:9]  
C405DCRDBUSOUT[0:31]  
O
O
No Connect  
or attach to  
input bus  
DCRC405ACK  
I
I
0
Indicates a DCR access has been completed by a  
peripheral.  
DCRC405DBUSIN[0:31]  
0x0000_0000 The 32-bit DCR read-data bus.  
or attach to  
output bus  
Virtex-4-FX  
The external general purpose DCR interface in Virtex-4-FX is identical to its predecessors  
with the following exceptions:  
x
x
Dedicated, re-synchronization registers implemented in the PowerPC block.  
Interface signals have been renamed  
The re-synchronization registers allow decoupling of the internal PowerPC clock  
frequency from the DCR bus transactions by re-synchronizing the interface to a dedicated  
DCR clock (CPMDCRCLK, see “Clock and Power Management Interface”). This ensures  
that the internal PowerPC clock frequency can be kept high regardless of DCR transaction  
speed.  
The table below describes the name mapping between the DCR interface signals in  
Virtex-4-FX relative to Virtex-II Pro and Virtex-II ProX.  
Table 2-22: Virtex-4-FX DCR Interface Name Correlation with Virtex-II Pro/ProX  
Virtex-4-FX Name Virtex-II Pro/ProX Name  
C405DCRREAD  
C405DCRWRITE  
EXTDCRREAD  
EXTDCRWRITE  
104  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
             
R
Table 2-22: Virtex-4-FX DCR Interface Name Correlation with Virtex-II Pro/ProX (Continued)  
Virtex-4-FX Name Virtex-II Pro/ProX Name  
EXTDCRABUS[0:9] C405DCRABUS[0:9]  
EXTDCRDBUSOUT[0:31]  
EXTDCRACK  
C405DCRDBUSOUT[0:31]  
DCRC405ACK  
EXTDCRDBUSIN[0:31]  
DCRC405DBUSIN[0:31]  
External DCR Bus Interface I/O Signal Descriptions  
The following sections describe the operation of the DCR interface I/ O signals. Signals are  
presented with both Virtex-II Pro and Virtex-4-FX names.  
C405DCRREAD/EXTDCRREAD (Output)  
When asserted, this signal indicates the processor block is requesting the contents of a DCR  
(reading from the DCR) in response to the execution of a move-from DCR instruction  
(mfdcr). The contents of the DCR address bus are valid when this request is asserted.  
In Virtex-II Pro/ ProX the request is asserted one CPMC405CLOCK cycle after the  
processor block begins driving the DCR address bus and it is deasserted two cycles after  
the DCR acknowledge signal is asserted. In Virtex-4-FX the request is asserted in the same  
CPMDCRCLK cycle as, or one cycle after, the processor block begins driving the DCR  
address bus and it is deasserted at least one cycle after the DCR acknowledge signal is  
asserted. DCR read requests are not interrupted by the processor block. If this signal is  
asserted, only a DCR acknowledgement or read time-out will deassert it. For details see  
signal “DCRC405ACK/ EXTDCRACK (Input)”.  
This signal is deasserted during reset.  
C405DCRWRITE/EXTDCRWRITE (Output)  
When asserted, this signal indicates the processor block is requesting that the contents of a  
DCR be updated (writing to the DCR) in response to the execution of a move-to DCR  
instruction (mtdcr).  
In Virtex-II Pro/ ProX the request is asserted one CPMC405CLOCK cycle after the  
processor block begins driving the DCR address and write-data bus. It is deasserted two  
cycles after the DCR acknowledge signal is asserted. In Virtex-4-FX the request is asserted  
in the same CPMDCRCLK cycle as, or one cycle after, the processor block begins driving  
the DCR address and write-data bus. It is deasserted at least one cycle after the DCR  
acknowledge signal is asserted. DCR write requests are not interrupted by the processor  
block. If this signal is asserted, only a DCR acknowledgement or write time-out will  
deassert it. For details see signal “DCRC405ACK/ EXTDCRACK (Input)”.  
This signal is deasserted during reset.  
C405DCRABUS[0:9]/EXTDCRABUS[0:9] (Output)  
This bus specifies the address of the DCR access request. This bus remains stable during  
the execution of a mfdcr or mtdcr instruction. However, the contents of this bus are valid  
only when either a DCR read request or DCR write request are asserted by the processor.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
105  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
R
Chapter 2: Input/Output Interfaces  
The processor does not begin driving a new DCR address until the DCR acknowledge  
signal corresponding to the previous DCR access has been deasserted for at least one cycle.  
C405DCRDBUSOUT[0:31]/EXTDCRDBUSOUT[0:31] (Output)  
This write-data bus is driven by the processor block when a mtdcr or mfdcr instruction is  
executed. Its contents are valid only when a DCR write-request or DCR read-request is  
asserted. When a mtdcr instruction is executed, this bus contains the data to be written into  
a DCR. When a mfdcr instruction is executed, this bus contains the value 0x0000_0000.  
During reset, this bus is driven with the value 0x0000_0000. Peripherals can use this value  
to initialize the DCRs.  
DCRC405ACK/EXTDCRACK (Input)  
When asserted, this signal indicates a peripheral device acknowledges the processor block  
request for DCR access. A peripheral device should assert this signal only when all of the  
following are true:  
x
x
x
x
The peripheral device contains the addressed DCR.  
A DCR read or write request exists.  
The peripheral device is driving the DCR data bus (read access).  
The peripheral device latched the DCR data bus (write access).  
The acknowledgement should not be deasserted until the read/ write signal is deasserted.  
This allows the PowerPC 405 and peripheral device to be clocked at different frequencies  
without affecting the interface handshaking protocol.  
The processor block waits up to 64 processor core clock (CPMC405CLOCK) cycles for a  
read/ write request to be acknowledged. If a DCR does not acknowledge the request in this  
time, the access times out. No error occurs when a DCR access is timed-out, the processor  
simply goes on to execute the next instruction.  
DCRC405DBUSIN[0:31]/EXTDCRDBUSIN[0:31] (Input)  
This read-data bus is latched by the processor block when a peripheral device asserts the  
DCR acknowledge signal in response to a DCR read-access request. A peripheral device  
must drive this bus only when it contains the accessed DCR and the DCR read-access  
signal is asserted by the processor block.  
Peripheral devices should drive only the bits implemented by the specified DCR. A value  
of 0x0000_0000 is driven onto the DCR write-data bus by the processor block during a  
read-access request. This value is passed along the DCR chain until modified by the  
appropriate peripheral. The end of the DCR chain is attached to the DCR read-data bus  
input to the processor block. Thus, the processor reads the updated value of all  
implemented bits, and unimplemented (and unattached) bits retain a value of 0.  
External DCR Bus Interface Timing Diagrams  
The following timing diagrams show typical transfers that can occur on the DCR interface  
using the two interface modes. Unless otherwise noted, optimal timing relationships are  
used to improve the readability of the timing diagrams. The assertion of  
DCRREAD/ DCRWRITE refers to a read or write operation, not both. The processor block  
cannot perform a simultaneous read and write of the DCR bus.  
106  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
DCR Interface 1:1 Clocking, Latched Acknowledge  
The example in Figure 2-33 assumes the following:  
x
x
x
The PowerPC 405 and the peripheral containing the DCR are clocked at the same  
frequency.  
The acknowledge signal is latched and forwarded with the DCR bus as shown in  
After the acknowledge signal is asserted, it is not deasserted until the appropriate  
read-access or write-access request signal is deasserted.  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
CPMC405CLOCK (Virtex-II Pro)/  
CPMDCRCLK (Virtex-4 FX)  
DCR (FPGA) Clock  
PPC405 Outputs:  
DCRWRITE/DCRREAD  
addr0  
data0  
addr1  
data1  
DCRABUS[0:9]  
DCRDBUSOUT[0:31]  
DCR Outputs:  
DCRACK  
data0  
data1  
DCRDBUSIN[0:31]  
UG018_41_032504  
Note: Abbreviated signal names are used.  
Figure 2-33: DCR Interface 1:1 Clocking, Latched Acknowledge  
DCR Interface 1:1 Clocking, Combinatorial Acknowledge  
The example in Figure 2-34 assumes the following:  
x
x
x
The PowerPC 405 and the peripheral containing the DCR are clocked at the same  
frequency.  
The acknowledge signal is generated by combinatorial logic from the DCR read/ write  
signal.  
After the acknowledge signal is asserted, it is not deasserted until the appropriate  
read-access or write-access request signal is deasserted.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
107  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 2: Input/Output Interfaces  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
CPMC405CLOCK (Virtex-II Pro)/  
CPMDCRCLK (Virtex-4 FX)  
DCR (FPGA) Clock  
PPC405 Outputs:  
DCRWRITE/DCRREAD  
addr0  
data0  
addr1  
data1  
addr2  
data2  
DCRABUS[0:9]  
DCRDBUSOUT[0:31]  
DCR Outputs:  
DCRACK  
data0  
data1  
data2  
DCRDBUSIN[0:31]  
UG018_42_032504  
Note: Abbreviated signal names are used.  
Figure 2-34: DCR Interface 1:1 Clocking, Combinatorial Acknowledge  
DCR Interface 2:1 Clocking, Latched Acknowledge  
The example in Figure 2-35 assumes the following:  
x
x
x
The PowerPC 405 DCR interface is clocked at twice the frequency of the peripheral  
containing the addressed DCR.  
The acknowledge signal is latched and forwarded with the DCR bus as shown in  
After the acknowledge signal is asserted, it is not deasserted until the appropriate  
read-access or write-access request signal is deasserted.  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
CPMC405CLOCK (Virtex-II Pro)/  
CPMDCRCLK (Virtex-4 FX)  
DCR (FPGA) Clock  
PPC405 Outputs:  
DCRWRITE/DCRREAD  
addr0  
data0  
addr1  
data1  
DCRABUS[0:9]  
DCRDBUSOUT[0:31]  
DCR Outputs:  
DCRACK  
data0  
data1  
DCRDBUSIN[0:31]  
UG018_43_042304  
Note: Abbreviated signal names are used.  
Figure 2-35: DCR Interface 2:1 Clocking, Latched Acknowledge  
108  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
DCR Interface 1:2 Clocking, Latched Acknowledge  
The example in Figure 2-36 assumes the following:  
x
x
x
The PowerPC 405 DCR interface is clocked at half the frequency of the peripheral  
containing the addressed DCR.  
The acknowledge signal is latched and forwarded with the DCR bus as shown in  
After the acknowledge signal is asserted, it is not deasserted until the appropriate  
read-access or write-access request signal is deasserted.  
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20  
Cycle  
CPMC405CLOCK (Virtex-II Pro)/  
CPMDCRCLK (Virtex-4 FX)  
DCR (FPGA) Clock  
PPC405 Outputs:  
DCRWRITE/DCRREAD  
addr0  
addr1  
data1  
DCRABUS[0:9]  
data0  
DCRDBUSOUT[0:31]  
DCR Outputs:  
DCRACK  
data0  
data1  
DCRDBUSIN[0:31]  
UG018_44_032504  
Note: Abbreviated signal names are used.  
Figure 2-36: DCR Interface 1:2 Clocking, Latched Acknowledge  
External DCR Timing Consideration (Virtex-II Pro/ProX Only)  
Users need to be aware that there is no DCR clock input to the processor block of the  
Virtex-II Pro and Virtex-II ProX devices. When dealing with signals that cross CPU clock  
domain and DCR clock domain, users may want to add re-synchronization flip-flops to  
simply timing constraints, or set up appropriate multi-cycle/ false path constraints in the  
UCF file.  
An example for the re-synchronization of DCR interface can be found in Xilinx Embedded  
Development Kit (EDK). Please refer to the Virtex-II Pro PowerPC405 wrapper IP in the  
“Processor IP Reference Guide” for details.  
The Virtex-4-FX family does have a DCR clock input and does not have the  
synchronization issues mentioned here.  
External Interrupt Controller Interface  
The PowerPC embedded-environment architecture defines two classes of interrupts:  
critical and noncritical. The interrupt handler for an external critical interrupt is located at  
exception-vector offset 0x0100. The interrupt handler for an external noncritical interrupt  
is located at exception-vector offset 0x0200. Generally, the processor prioritizes critical  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
109  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
Chapter 2: Input/Output Interfaces  
interrupts ahead of noncritical interrupts when they occur simultaneously (certain debug  
exceptions are handled at a lower priority). Critical interrupts use a different save/ restore  
register pair (SRR2 and SRR3) than is used by noncritical interrupts (SRR0 and SRR1). This  
enables a critical interrupt to interrupt a noncritical-interrupt handler. The state saved by  
the noncritical interrupt is not overwritten by the critical interrupt. See the <RD Red><EM  
EmphasisItalic>PowerPC Processor Reference Guide for more information on exception and  
interrupt processing.  
Logic external to the processor block can be used to cause critical and noncritical  
interrupts. External interrupt sources are collected by the external interrupt controller  
(EIC) and presented to the processor block as either a critical or noncritical interrupt. Once  
an external interrupt request is asserted, the EIC must keep the signal asserted until  
software deasserts it. This is typically done by writing to a DCR in the EIC peripheral logic.  
Software can enable and disable external interrupts using the following bits in the  
machine-state register MSR:  
x
Noncritical interrupts are controlled by MSR[EE]. When set to 1, noncritical interrupts  
are enabled. When cleared to 0, they are disabled.  
x
Critical interrupts are controlled by MSR[CE]. When set to 1, critical interrupts are  
enabled. When cleared to 0, they are disabled.  
The states of the EE and CE bits are reflected by output signals on the processor block CPM  
interface. See “Clock and Power Management Interface,” page 35, for more information.  
An external interrupt is considered pending if it occurs while the corresponding class is  
disabled. The EIC continues to assert the interrupt request. When software later enables  
the interrupt class, the interrupt occurs and the interrupt handler deasserts the request by  
writing to a DCR in the EIC.  
EIC Interface I/O Signal Summary  
Figure 2-37 shows the block symbol for the EIC interface. The signals are summarized in  
Table 2-23.  
PPC405  
EICC405CRITINPUTIRQ  
EICC405EXTINPUTIRQ  
UG018_07_102001  
Figure 2-37: EIC Interface Block Symbol  
Table 2-23: EIC Interface I/O Signals  
I/O  
Type  
Signal  
If Unused  
Function  
EICC405CRITINPUTIRQ  
I
0
0
Indicates an external critical  
interrupt occurred.  
EICC405EXTINPUTIRQ  
I
Indicates an external noncritical  
interrupt occurred.  
110  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                 
R
EIC Interface I/O Signal Descriptions  
The following sections describe the operation of the EIC interface I/ O signals.  
EICC405CRITINPUTIRQ (Input)  
When asserted, this signal indicates the EIC is requesting that the processor block respond  
to an external critical interrupt. When deasserted, no request exists. The EIC is responsible  
for collecting critical interrupt requests from other peripherals and presenting them as a  
single request to the processor block. Once asserted, this signal remains asserted by the EIC  
until software deasserts the request (this is typically done by writing to a DCR in the EIC).  
EICC405EXTINPUTIRQ (Input)  
When asserted, this signal indicates the EIC is requesting that the processor block respond  
to an external noncritical interrupt. When deasserted, no request exists. The EIC is  
responsible for collecting noncritical interrupt requests from other peripherals and  
presenting them as a single request to the processor block. Once asserted, this signal  
remains asserted by the EIC until software deasserts the request (this is typically done by  
writing to a DCR in the EIC).  
PPC405 JTAG Debug Port  
The PPC405 core features a JTAG interface to support software debugging. Many  
debuggers, such as RISCWatch from IBM, SingleStep from Wind River and the GNU  
Debugger (GDB) in the Xilinx Embedded Development Kit (EDK), use the PPC405 JTAG  
interface for this purpose.  
Like all other signals on the PPC405 core, the user must define the connections from the  
JTAG interface to the outside world. Since these connections can only be made through  
programmable interconnect, the FPGA must be configured before the PPC405 JTAG  
interface is available.  
The PPC405 JTAG logic may be connected through the native JTAG port (series  
connection) of the FPGA, or directly to programmable I/ O (individual connection). The  
primary consideration in choosing a connection style is knowing which connection your  
software debugger requires.  
JTAG Interface I/O Signals  
Figure 2-38 shows the block symbol for the JTAG interface.  
PPC405  
JTGC405TCK  
JTGC405TMS  
C405JTGTDO  
C405JTGTDOEN  
JTGC405TDI  
C405JTGEXTEST  
C405JTGCAPTUREDR  
C405JTGSHIFTDR  
C405JTGUPDATEDR  
C405JTGPGMOUT  
JTGC405TRSTNEG  
JTGC405BNDSCANTDO  
UG018_08_102001  
Figure 2-38: JTAG Interface Block Symbol  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
111  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
             
R
Chapter 2: Input/Output Interfaces  
JTAG Interface I/O Signal Descriptions  
The following sections describe the operation of the JTAG interface I/ O signals.  
JTGC405TCK (Input)  
This input is the JTAG TCK (Test ClocK) signal. The TMS and TDI signals are latched on  
the rising edge of TCK, while TDO is valid on the falling edge of TCK. The maximum TCK  
frequency is one-half the CPMC405CLOCK frequency.  
JTGC405TMS (Input)  
This input is the JTAG TMS (Test Mode Select) signal. It is latched by the processor on the  
rising edge of TCK. The value of the signal is typically changed by external logic on the  
falling edge of TCK. The TMS signal is used to select the next state in the TAP (JTAG) state  
machine.  
JTGC405TDI (Input)  
This input is the JTAG TDI signal. It is latched by the processor on the rising edge of TCK.  
The value of the signal is typically changed by external logic on the falling edge of TCK.  
Data received on this input signal is placed into the Instruction Register or the appropriate  
Data Register as specified by the TAP state machine.  
JTGC405TRSTNEG (Input)  
This input is the active-low JTAG test reset (TRST) signal. This signal may be either tied  
high or wired to a user I/ O. Note that the device does not implement the TRST signal. If  
JTC405TRSTNEG is tied high, the PPC405 TAP may be reset synchronously by clocking  
five 1’s on TMS. This signal is automatically used by the processor block during power-on  
reset to reset the JTAG logic.  
JTGC405BNDSCANTDO (Input)  
This input should not be used; leave it unconnected.  
C405JTGTDO (Output)  
This output is the JTAG TDO (Test Data Out) signal. It is driven by the processor with a  
new value on the falling edge of the JTAG clock when the PPC405 TAP is in either the Shift-  
DR or Shift-IR state. The C405JTGTDO output is not valid in other TAP states.  
C405JTGTDOEN (Output)  
This output is asserted (logic High) when the C405JTGTDO signal is valid.  
C405JTGEXTEST (Output)  
This output should not be used; leave it unconnected.  
C405JTGCAPTUREDR (Output)  
This output is asserted (logic High) when the PPC405 TAP is in the Capture-DR state. Most  
designs do not require this signal and should leave it unconnected.  
112  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
R
C405JTGSHIFTDR (Output)  
This output is asserted (logic High) when the PPC405 TAP is in the Shift-DR state. Most  
designs do not require this signal and should leave it unconnected.  
C405JTGUPDATEDR (Output)  
This output is asserted (logic High) when the PPC405 TAP is in the Update-DR state. Most  
designs do not require this signal and should leave it unconnected.  
C405JTGPGMOUT (Output)  
This signal indicates the state of a general purpose program bit in the JTAG debug control  
register (JDCR), and is used by some software debuggers. Its function and operation are  
determined by the external application. This signal should be left unconnected in most  
cases.  
JTAG Instruction Register  
Virtex-II Pro, Virtex-II ProX and Virtex-4-FX devices contain zero, one, or two PowerPC405  
cores. The Instruction Register length depends upon the number of PPC405 cores the  
device features, but it does not matter whether or not those cores are used. Table 2-24 gives  
the IR length for all Virtex-II Pro, Virtex-II ProX, and Virtex-4-FX devices.  
Table 2-24: Virtex-II Pro, Virtex-II ProX, and Virtex-4-FX IR Lengths  
Device  
XC2VP2  
# PPC405 Cores  
IR Length  
0
1
1
2
1
2
2
2
2
2
2
1
1
1
2
2
6
XC2VP4  
10  
10  
14  
10  
14  
14  
14  
14  
14  
14  
10  
10  
10  
14  
14  
XC2VP7  
XC2VP20  
XC2VPX20  
XC2VP30  
XC2VP40  
XC2VP50  
XC2VP70  
XC2VPX70  
XC2VP100  
XC4VFX20  
XC4VFX40  
XC4VFX60  
XC4VFX100  
XC4VFX140  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
113  
       
R
Chapter 2: Input/Output Interfaces  
The six least significant bits of the parts Instruction Register always comprise the FPGA  
Instruction Register. The remaining bits are ignored unless the PPC405 cores are connected  
in series with the FPGA JTAG logic, as described in the “Connecting PPC405 JTAG Logic in  
Series with the Dedicated Device JTAG Logic” section below. When the PPC405 JTAG logic  
is connected in this way, its Instruction Register automatically replaces the “dummy”  
register for the upper IR bits. Figure 2-39 illustrates the default Instruction Register data  
path, and Figure 2-40 illustrates the data path for the series PPC405 JTAG connection.  
DUMMY (3:0)  
405 IR (3:0)  
405 DR  
FPGA IR (5:0)  
TDI  
TDO  
FPGA DR  
UG018_70_100803  
Figure 2-39: Default Instruction Register Data Path in Virtex with Single PPC405 core  
DUMMY (3:0)  
405 IR (3:0)  
405 DR  
FPGA IR (5:0)  
TDI  
TDO  
FPGA DR  
UG018_71_100803  
Figure 2-40: Instruction Register Data Path for Series PPC405 JTAG Connection  
The PPC405 JTAG logic implements eight instructions: PPC_DEBUG_1,  
PPC_DEBUG_2 . . . PPC_DEBUG_8. If the PPC405 JTAG logic is connected in series with  
the FPGA JTAG logic, the value “100000” must be loaded into the FPGA Instruction  
Register.  
Table 2-25: PPC405 Instruction Opcodes  
Instruction  
Opcode  
PPC_BYPASS  
1111  
PPC_DEBUG_1 0101  
PPC_DEBUG_2 0111  
PPC_DEBUG_3 1001  
PPC_DEBUG_4 1010  
PPC_DEBUG_5 1011  
PPC_DEBUG_6 1100  
PPC_DEBUG_7 1101  
PPC_DEBUG_8 1110  
114  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
R
The PPC405 cores do not have their own BSDL files; instead, the necessary  
INSTRUCTION_OPCODES and other information are incorporated in the device BSDL  
file. The PPC405 cores are not available for interconnect tests (i.e., EXTEST,  
SAMPLE/ PRELOAD), as they do not have a boundary scan register. All device boundary  
scan tests are performed through the FPGA boundary scan register.  
Connecting PPC405 JTAG Logic Directly to Programmable I/O  
The simplest way to access the PPC405 JTAG logic is to wire the processor cores JTAG  
signals directly to programmable I/ O. For devices with multiple PPC405 cores, users may  
wire each set of PPC405 JTAG signals directly to programmable I/ O (Figure 2-42); chain  
the processors together with programmable interconnect and wire the combined PPC405  
JTAG chain to programmable I/ O (Figure 2-43) or multiplex a single set of JTAG pins to  
multiple cores (Figure 2-44).  
Each of these connection styles requires additional I/ O and a separate JTAG chain for the  
PPC405 core(s). The PPC405 cores must not be placed in the same JTAG chain as the  
dedicated device JTAG pins because the chain will be broken by the missing PPC405 JTAG  
logic prior to FPGA configuration (Figure 2-41).  
The / TRST signal, which is not implemented on any Xilinx devices, is available on the IBM  
PPC405 core. This signal may be wired to user I/ O or internally tied high. If wired to user  
I/ O, an external 10 KOhm pullup resistor should be placed on the trace.  
PPC405 Core  
TDO  
JTGC405TDI  
C405JTGTDO  
JTGC405TMS  
C405JTGTDOEN  
JTGC405TCK  
TDI  
JTGC405TRSTNEG  
TDI  
TDO  
TMS  
TCK  
TMS  
TCK  
UG018_76_032504  
Figure 2-41: Incorrect Wiring of JTAG Chain with Individual PPC405 Connections  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
115  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 2: Input/Output Interfaces  
PPC405 Core  
TDI  
TDO  
JTGC405TDI  
JTGC405TMS  
JTGC405TCK  
C405JTGTDO  
TMS  
TCK  
C405JTGTDOEN  
JTGC405TRSTNEG  
TRST  
PPC405 Core  
TDI  
TDO  
JTGC405TDI  
JTGC405TMS  
JTGC405TCK  
C405JTGTDO  
TMS  
TCK  
C405JTGTDOEN  
JTGC405TRSTNEG  
TRST  
TDI  
TDI  
TMS  
TCK  
TMS  
TCK  
TDO  
TDO  
UG018_75_032504  
Figure 2-42: Correct Wiring of JTAG Chains with Individual PPC405 Connections (Separate JTAG Chains)  
116  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
PPC405 Core  
TDI  
JTGC405TDI  
C405JTGTDO  
TMS  
TCK  
JTGC405TMS  
JTGC405TCK  
JTGC405TRSTNEG  
C405JTGTDOEN  
TRST  
PPC405 Core  
JTGC405TDI  
TDO  
C405JTGTDO  
JTGC405TMS  
JTGC405TCK  
JTGC405TRSTNEG  
C405JTGTDOEN  
TDI  
TDI  
TMS  
TCK  
TMS  
TCK  
TDO  
TDO  
UG018_72_032504  
Figure 2-43: Correct Wiring of JTAG Chains with Individual PPC405 JTAG Connections (Internally Chained  
PPC405 Cores)  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
117  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 2: Input/Output Interfaces  
1
1
1
1
0
1
TDI  
PPC405 Core  
0
1
JTGC405TDI  
C405JTGTDO  
TMS  
TCK  
JTGC405TMS  
JTGC405TCK  
JTGC405TRSTNEG  
C405JTGTDOEN  
0
1
0
1
TRST  
SEL  
SEL  
0
1
1
0
TDO  
1
PPC405 Core  
0
1
JTGC405TDI  
C405JTGTDO  
1
1
1
JTGC405TMS  
JTGC405TCK  
JTGC405TRSTNEG  
C405JTGTDOEN  
0
1
0
1
TDI  
TDO  
TDI  
TDO  
TMS  
TMS  
TCK  
TCK  
UG018_73_032504  
Figure 2-44: Correct Wiring of JTAG Chain with Multiplexed PPC405 Connection  
118  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Connecting PPC405 JTAG Logic in Series with the Dedicated Device  
JTAG Logic  
An alternative to connecting the PPC405 JTAG logic directly to programmable I/ O is to  
wire it in series with the dedicated device JTAG logic. This is done by wiring the JTAG  
signals on the PPC405 core to a special design element called the JTAGPPC primitive in the  
user design. As described in the JTAG Instruction Register” section above, the Instruction  
Register length remains constant, regardless of how the PPC405 cores are used and  
regardless of whether or not the device is configured.  
Prior to configuration, the most-significant IR bits are placed in a dummy register which is  
either 4, 8, or 16 bits in length, depending on the number of available PPC405 cores in the  
device (see Table 2-20). This register is used as a placeholder only. After configuration, if  
the user connects the PPC405 JTAG logic in series with the dedicated device JTAG logic,  
the most significant IR bits are used by the PPC405 cores. Thus, the overall IR length  
remains the same for the device at all times.  
When the PPC405 JTAG logic is connected in series with the dedicated JJTAG logic, the  
C405JTGTDO signal of each core is connected to the JTGC405TDI of the next. The  
JTGC405TCK and JTGC405TMS signals are connected to each PPC405 core in parallel. The  
C405JTGTDOEN output of each PPC405 cores must be ORed to the TDO_TS_PPC input of  
the JTAGPPC primitive (for devices with only one PPC405 core, wire the C405JTGTDOEN  
output directly to the TDO_TS_INPUT on the JTAGPPC primitive). The / TRST signal,  
which is not implemented on the device, is implemented on the IBM PPC405 core. When  
wiring the PPC405 JTAG logic in series with the FPGA JTAG logic, this signal must be  
pulled High as shown in Figure 2-45.  
For more information, see the appropriate Virtex-series user guide.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
119  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 2: Input/Output Interfaces  
FPGA  
PPC405 Core  
JTGC405TDI  
C405JTGTDO  
JTGC405TMS  
JTGC405TCK  
JTGC405TRSTNEG  
C405JTGTDOEN  
PPC405 Core  
JTGC405TDI  
C405JTGTDO  
JTGC405TMS  
JTGC405TCK  
JTGC405TRSTNEG  
C405JTGTDOEN  
JTAGPPC Primitive  
TDIPPC  
TMS  
TDOPPC  
TCK  
TDOTSPPC  
v
cco  
200  
TDI  
TDO  
TDI  
TDO  
TMS  
TCK  
TMS  
TCK  
UG018_74_040604  
Figure 2-45: PPC405 Core JTAG Logic Connected in Series with FPGA JTAG Logic Using the JTAGPPC  
Primitive  
When the PPC405 JTAG logic is connected in series with the dedicated device JTAG logic,  
only one JTAG chain is required on the printed circuit board. All JTAG logic is accessed  
through the dedicated JTAG pins with this connection style.  
120  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
For devices with more than one PPC405 core, users must connect the JTAG logic for ALL of  
the PPC405 cores on the device when using this connection style, even if some are not  
otherwise used. The JTAG signals are the only signals on unused PPC405 cores need to be  
connected. The PPC405 core that first sees TDI from the JTAGPPC primitive recognizes the  
first four most significant bits in the Instruction Register; the next PPC405 core sees the  
next four most significant bits, and so on.  
VHDL and Verilog Instantiation Templates  
VHDL and Verilog instantiation templates for some connection styles are provided:  
x
x
x
Single PPC Core: Individual Connection to user I/ O  
(SINGLE_PPC_JTAG_INDIVIDUAL)  
Single PPC Core: Serial Connection through dedicated JTAG pins  
(SINGLE_PPC_JTAG_SERIAL)  
Two PPC Cores: Serial Connection through dedicated JTAG pins  
(TWO_PPC_JTAG_SERIAL)  
For clarity, these instantiation templates only describe connections for the JTAG-related  
I/ Os on the PPC405 core. Not all PPC405 I/ Os are shown.  
-- Module: SINGLE_PPC_JTAG_INDIVIDUAL  
-- Description: VHDL instantiation template for individual connection  
-- of a single PPC405 core to user I/O  
library IEEE;  
use IEEE.std_logic_1164.all;  
entity SINGLE_PPC_JTAG_INDIVIDUAL is  
port (  
TCK_IN: in std_logic;  
TDI_IN: in std_logic;  
TMS_IN: in std_logic;  
TRSTNEG_IN: in std_logic;  
TDO_OUT: out std_logic;  
end SINGLE_PPC_JTAG_INDIVIDUAL;  
architecture SINGLE_PPC_JTAG_INDIVIDUAL_arch of  
SINGLE_PPC_JTAG_INDIVIDUAL is  
-- Component Declaration  
component PPC405  
port(  
...  
JTGC405TCK: in std_logic;  
JTGC405TMS: in std_logic;  
JTGC405TDI: in std_logic;  
JTGC405TRSTNEG: in std_logic;  
C405JTGTDO: out std_logic;  
JTGC405BNDSCANTDO: in std_logic;  
C405JTGTDOEN: out std_logic;  
C405JTGEXTEST: out std_logic;  
C405JTGCAPTUREDR: out std_logic;  
C405JTGSHIFTDR: out std_logic;  
C405JTGUPDATEDR: out std_logic;  
C405JTGPGMOUT: out std_logic;  
...  
PowerPC™ 405 Processor Block Reference Guide  
121  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 2: Input/Output Interfaces  
);  
end component  
begin  
-- Component Instantiation  
U_PPC1 : PPC405  
port map (  
...  
JTGC405TCK => TCK_IN,  
JTGC405TDI => TDI_IN,  
JTGC405TMS => TMS_IN,  
JTGC405TRSTNEG => TRSTNEG_IN,  
C405JTGTDO => TDO_OUT,  
JTGC405BNDSCANTDO => open,  
C405JTGTDOEN => open,  
C405JTGEXTEST => open,  
C405JTGCAPTUREDR => open,  
C405JTGSHIFTDR => open,  
C405JTGUPDATEDR=> open,  
C405JTGPGMOUT=> open,  
...  
);  
end SINGLE_PPC_JTAG_INDIVIDUAL_arch;  
// Module: SINGLE_PPC_JTAG_INDIVIDUAL  
// Description: Verilog instantiation template for individual  
// connection of a single PPC405 core to user I/O  
module SINGLE_PPC_JTAG_INDIVIDUAL (  
TCK_IN,  
TDI_IN,  
TMS_IN,  
TRSTNEG_IN  
TDO_OUT  
);  
input TCK_IN;  
input TDI_IN;  
input TMS_IN;  
input TRSTNEG_IN;  
output TDO_OUT;  
// Component Instantiation  
PPC405 U_PPC1(  
...  
.JTGC405TCK (TCK_IN),  
.JTGC405TDI (TDI_IN),  
.JTGC405TMS (TMS_IN),  
.JTGC405TRSTNEG (TRSTNEG_IN),  
.C405JTGTDO (TDO_OUT),  
.JTGC405BNDSCANTDO (),  
.C405JTGTDOEN (),  
.C405JTGEXTEST (),  
.C405JTGCAPTUREDR (),  
122  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
.C405JTGSHIFTDR (),  
.C405JTGUPDATEDR (),  
.C405JTGPGMOUT (),  
...  
);  
endmodule;  
-- Module: SINGLE_PPC_JTAG_SERIAL  
-- Description: VHDL instantiation template for serial connection of a  
-- single PPC405 core to dedicated JTAG logic  
library IEEE;  
use IEEE.std_logic_1164.all;  
entity SINGLE_PPC_JTAG_SERIAL is  
port (  
);  
end SINGLE_PPC_JTAG_SERIAL;  
architecture SINGLE_PPC_JTAG_SERIAL_arch of SINGLE_PPC_JTAG_SERIAL is  
-- Component Declaration  
component PPC405  
port(  
...  
JTGC405TCK : in std_logic;  
JTGC405TMS: in std_logic;  
JTGC405TDI: in std_logic;  
JTGC405TRSTNEG: in std_logic;  
C405JTGTDO: out std_logic;  
JTGC405BNDSCANTDO: in std_logic;  
C405JTGTDOEN: out std_logic;  
C405JTGEXTEST: out std_logic;  
C405JTGCAPTUREDR: out std_logic;  
C405JTGSHIFTDR: out std_logic;  
C405JTGUPDATEDR: out std_logic;  
C405JTGPGMOUT: out std_logic;  
...  
);  
end component;  
component JTAGPPC  
port(  
TDOTSPPC : in std_logic;  
TDOPPC : in std_logic;  
TMS : out std_logic;  
TDIPPC : out std_logic;  
TCK : out std_logic;  
);  
end component;  
signal TDO_TS_PPC : std_logic;  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
123  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 2: Input/Output Interfaces  
signal TDO_PPC : std_logic;  
signal TMS_PPC : std_logic;  
signal TDI_PPC : std_logic;  
signal TCK_PPC : std_logic;  
begin  
-- Component Instantiation  
U_PPC1 : PPC405  
port map (  
...  
JTGC405TCK => TCK_PPC,  
JTGC405TDI => TDI_PPC,  
JTGC405TMS => TMS_PPC,  
JTGC405TRSTNEG => 1,  
C405JTGTDO => TDO_PPC,  
JTGC405BNDSCANTDO => open,  
C405JTGTDOEN => TDO_TS_PPC,  
C405JTGEXTEST => open,  
C405JTGCAPTUREDR => open,  
C405JTGSHIFTDR => open,  
C405JTGUPDATEDR=> open,  
05JTGPGMOUT=> open,  
...  
);  
U_JTAG : JTAGPPC  
port map (  
TDOTSPPC => TDO_TS_PPC,  
TDOPPC => TDO_PPC,  
TMS => TMS_PPC,  
TDIPPC => TDI_PPC,  
TCK => TCK_PPC  
);  
end SINGLE_PPC_JTAG_SERIAL_arch;  
// Module: SINGLE_PPC_JTAG_SERIAL  
// Description: Verilog instantiation template for serial connection of  
// a single PPC405 core to dedicated JTAG logic  
module SINGLE_PPC_JTAG_SERIAL ();  
wire TDO_TS_PPC;  
wire TDO_PPC;  
wire TMS_PPC;  
wire TDI_PPC;  
wire TCK_PPC;  
// Component Instantiation  
PPC405 U_PPC1(  
...  
.JTGC405TCK (TCK_PPC),  
.JTGC405TDI (TDI_PPC),  
.JTGC405TMS (TMS_PPC),  
.JTGC405TRSTNEG (1’b1),  
124  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
.C405JTGTDO (TDO_PPC),  
.JTGC405BNDSCANTDO (),  
.C405JTGTDOEN (TDO_TS_PPC),  
.C405JTGEXTEST (),  
.C405JTGCAPTUREDR (),  
.C405JTGSHIFTDR (),  
.C405JTGUPDATEDR (),  
.C405JTGPGMOUT (),  
...  
);  
JTAGPPC U_JTAG(  
TDOTSPPC (TDO_TS_PPC),  
TDOPPC (TDO_PPC),  
TMS (TMS_PPC),  
TDIPPC (TDI_PPC),  
TCK (TCK_PPC)  
);  
endmodule;  
-- Module: TWO_PPC_JTAG_SERIAL  
-- Description: VHDL instantiation template for serial connection of  
-- two PPC405 cores to dedicated JTAG logic  
library IEEE;  
use IEEE.std_logic_1164.all;  
entity TWO_PPC_JTAG_SERIAL is  
port (  
);  
end TWO_PPC_JTAG_SERIAL  
architecture TWO_PPC_JTAG_SERIAL_arch of TWO_PPC_JTAG_SERIAL is  
-- Component Declaration  
component PPC405  
port(  
...  
JTGC405TCK : in std_logic;  
JTGC405TMS: in std_logic;  
JTGC405TDI: in std_logic;  
JTGC405TRSTNEG: in std_logic;  
C405JTGTDO: out std_logic;  
JTGC405BNDSCANTDO: in std_logic;  
C405JTGTDOEN: out std_logic;  
C405JTGEXTEST: out std_logic;  
C405JTGCAPTUREDR: out std_logic;  
C405JTGSHIFTDR: out std_logic;  
C405JTGUPDATEDR: out std_logic;  
C405JTGPGMOUT: out std_logic;  
...  
);  
end component  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
125  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 2: Input/Output Interfaces  
component JTAGPPC  
port(  
TDOTSPPC : in std_logic;  
TDOPPC : in std_logic;  
TMS : out std_logic;  
TDIPPC : out std_logic;  
TCK : out std_logic;  
);  
end component;  
signal TDO_TS_PPC : std_logic;  
signal TMS_PPC : std_logic;  
signal TDI_PPC : std_logic;  
signal TCK_PPC : std_logic;  
signal TDO_OUT1 : std_logic;  
signal TDO_OUT2 : std_logic;  
signal TDO_TS_OUT1 : std_logic;  
signal TDO_TS_OUT2 : std_logic;  
begin  
TDO_TS_PPC <= TDO_TS_OUT1 OR TDO_TS_OUT2;  
-- Component Instantiation  
U_PPC1 : PPC405  
port map (  
...  
JTGC405TCK => TCK_PPC,  
JTGC405TDI => TDI_PPC  
JTGC405TMS => TMS_PPC  
JTGC405TRSTNEG => 1,  
C405JTGTDO => TDO_OUT1,  
JTGC405BNDSCANTDO => open,  
C405JTGTDOEN =>TDO_TS_OUT1;  
C405JTGEXTEST => open,  
C405JTGCAPTUREDR => open,  
C405JTGSHIFTDR => open,  
C405JTGUPDATEDR=> open,  
C405JTGPGMOUT=> open,  
...  
);  
U_PPC2 : PPC405  
port map (  
...  
JTGC405TCK => TCK_PPC,  
JTGC405TDI => TDO_OUT1,  
JTGC405TMS => TMS_PPC,  
JTGC405TRSTNEG => 1,  
C405JTGTDO => TDO_OUT2,  
JTGC405BNDSCANTDO => open,  
C405JTGTDOEN => TDO_TS_OUT2,  
C405JTGEXTEST => open,  
C405JTGCAPTUREDR => open,  
C405JTGSHIFTDR => open,  
C405JTGUPDATEDR=> open,  
C405JTGPGMOUT=> open,  
...  
);  
126  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
U_JTAG : JTAGPPC  
port map (  
TDOTSPPC => TDO_TS_PPC,  
TDOPPC => TDO_OUT2,  
TMS => TMS_PPC,  
TDIPPC => TDI_PPC,  
TCK => TCK_PPC  
);  
end TWO_PPC_JTAG_SERIAL_arch;  
// Module: TWO_PPC_JTAG_SERIAL  
// Description: Verilog instantiation template for serial connection of  
// two PPC405 cores to dedicated JTAG logic  
module TWO_PPC_JTAG_SERIAL ();  
wire TDO_TS_PPC;  
wire TMS_PPC;  
wire TDI_PPC;  
wire TCK_PPC;  
wire TDO_OUT1;  
wire TDO_OUT2;  
wire TDO_TS_OUT1;  
wire TDO_TS_OUT2;  
or o1(TDO_TS_PPC, TDO_TS_OUT1, TDO_TS_OUT2);  
// Component Instantiation  
PPC405 U_PPC1(  
...  
.JTGC405TCK (TCK_PPC),  
.JTGC405TDI (TDI_PPC),  
.JTGC405TMS (TMS_PPC),  
.JTGC405TRSTNEG (1’b1),  
.C405JTGTDO (TDO_OUT1),  
.JTGC405BNDSCANTDO (),  
.C405JTGTDOEN (TDO_TS_OUT1),  
.C405JTGEXTEST (),  
.C405JTGCAPTUREDR (),  
.C405JTGSHIFTDR (),  
.C405JTGUPDATEDR (),  
.C405JTGPGMOUT (),  
...  
);  
PPC405 U_PPC2(  
...  
.JTGC405TCK (TCK_PPC),  
.JTGC405TDI (TDO_OUT1),  
.JTGC405TMS (TMS_PPC),  
.JTGC405TRSTNEG (1’b1),  
.C405JTGTDO (TDO_OUT2),  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
127  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 2: Input/Output Interfaces  
.JTGC405BNDSCANTDO (),  
.C405JTGTDOEN (TDO_TS_OUT2),  
.C405JTGEXTEST (),  
.C405JTGCAPTUREDR (),  
.C405JTGSHIFTDR (),  
.C405JTGUPDATEDR (),  
.C405JTGPGMOUT (),  
...  
);  
JTAGPPC U_JTAG(  
TDOTSPPC (TDO_TS_PPC),  
TDOPPC (TDO_OUT2),  
TMS (TMS_PPC),  
TDIPPC (TDI_PPC),  
TCK (TCK_PPC)  
);  
endmodule;  
Debug Interface  
The debug interface enables an external debugging tool (such as RISCWatch) to operate the  
PowerPC 405 debug resources in external-debug mode. External-debug mode can be used  
to alter normal program execution and it provides the ability to debug system hardware as  
well as software. The mode supports starting and stopping the processor, single-stepping  
instruction execution, setting breakpoints, and monitoring processor status. These  
capabilities are described in the PowerPC Processor Reference Guide.  
Debug Interface I/O Signal Summary  
Figure 2-46 shows the block symbol for the debug interface. The signals are summarized in  
Table 2-26. See Appendix A, “RISCWatch and RISCTrace Interfaces” for information on  
attaching a RISCWatch to the debug interface signals.  
DBGC405EXTBUSHOLDACK  
DBGC405DEBUGHALT  
C405DBGWBFULL  
PPC405  
C405DBGWBIAR[0:29]  
C405DBGWBCOMPLETE  
C405DBGMSRWE  
DBGC405UNCONDDEBUGEVENT  
C405DBGSTOPACK  
C405DBGLOADDATAONAPUDBUS  
UG018_02_46_042304  
Figure 2-46: Debug Interface Block Symbol  
128  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
R
Table 2-26: Debug Interface I/O Signals  
I/O  
Type  
Signal  
If Unused  
Function  
DBGC405EXTBUSHOLDACK  
I
0
Indicates the bus controller has given control of  
the bus to an external master.  
DBGC405DEBUGHALT  
DBGC405UNCONDDEBUGEVENT  
C405DBGWBFULL  
I
I
0
0
Indicates the external debug logic is placing the  
processor in debug halt mode.  
Indicates the external debug logic is causing an  
unconditional debug event.  
O
O
O
No Connect Indicates the PowerPC 405 writeback pipeline  
stage is full.  
C405DBGWBIAR[0:29]  
No Connect The address of the current instruction in the  
PowerPC 405 writeback pipeline stage.  
C405DBGWBCOMPLETE  
No Connect Indicates the current instruction in the PowerPC  
405 writeback pipeline stage is completing.  
C405DBGMSRWE  
O
O
O
No Connect Indicates the value of MSR[WE].  
C405DBGSTOPACK  
No Connect Indicates the PowerPC 405 is in debug halt mode.  
C405DBGLOADDATAONAPUDBUS  
No Connect Virtex-4-FX only. Valid load data transferred  
between the APU controller and PowerPC 405  
core.  
Debug Interface I/O Signal Descriptions  
The following sections describe the operation of the debug interface I/ O signals.  
DBGC405EXTBUSHOLDACK (Input)  
When asserted, this signal indicates that the bus controller (for example, a PLB arbiter) has  
given control of the bus to an external master. When deasserted, an external master does  
not have control of the bus. This signal is used by the PowerPC 405 debug logic (and the  
external debugger) as an indication that the processor might not have control of the bus  
and therefore might not be able to respond immediately to certain debug operations.  
External FPGA logic generates this signal using output signals from the bus controller.  
DBGC405DEBUGHALT (Input)  
When asserted, this signal stops the processor from fetching and executing instructions so  
that an external debug tool can operate the processor. From this state, known as debug halt  
mode, an external debugger controls the processor using the JTAG interface and the private  
JTAG hardware debug instructions. The clocks are not stopped. When this signal is  
deasserted, the processor operates normally.  
This signal enables an external debugger to stop the processor without using the JTAG  
interface. A stop command issued through the JTAG interface (using a private JTAG  
instruction) is discarded when the processor is reset. The debug halt signal can be asserted  
during a reset so that the processor is stopped at the first instruction to be executed when  
reset is exited.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
129  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                         
R
Chapter 2: Input/Output Interfaces  
In systems that deactivate the clocks to manage power, the debug halt signal should be  
used to restart the clocks (if stopped) to enable an external debugger to operate the  
processor. After the debugger finishes its operation and deasserts the debug halt signal, the  
clocks can be stopped to return the processor to sleep mode.  
This is a positive active signal. However, the debug halt signal produced by the RISCWatch  
debugger is negative active. FPGA logic that attaches to a RISCWatch debugger must  
invert the signal before sending it to the PowerPC 405.  
DBGC405UNCONDDEBUGEVENT (Input)  
When asserted, this signal causes an unconditional debug event and sets the UDE bit in the  
debug-status register (DBSR) to 1. When this signal is deasserted, the processor operates  
normally. Software can initialize the PowerPC 405 debug resources to perform any of the  
following operations when an unconditional debug event occurs:  
x
x
x
Cause a debug interrupt in internal debug mode.  
Stop the processor in external debug mode.  
Cause a trigger event on the processor block trace interface.  
C405DBGWBFULL (Output)  
When asserted, this signal indicates that the PowerPC 405 writeback-pipeline stage is full.  
It also indicates that writeback instruction-address bus (C405DBGWBIAR[0:29]) contains a  
valid instruction address. When deasserted, the writeback stage is not full and the contents  
of the writeback instruction-address bus are not valid.  
C405DBGWBIAR[0:29] (Output)  
When the writeback-full signal (C405DBGWBFULL) is asserted, this bus contains the  
address of the instruction in the PowerPC 405 writeback-pipeline stage. If the writeback-  
full signal is not asserted, the contents of this bus are invalid.  
C405DBGWBCOMPLETE (Output)  
When asserted, this signal indicates that the instruction in the PowerPC 405 writeback-  
pipeline stage is completing. The address of the completing instruction is contained on the  
writeback instruction-address bus (C405DBGWBIAR[0:29]). If the writeback-complete  
signal is not asserted, the instruction on the writeback instruction-address bus is not  
completing. The writeback-complete signal is valid only when the writeback-full signal  
(C405DBGWBFULL) is asserted. The signal is not valid if the writeback-full signal is  
deasserted.  
C405DBGMSRWE (Output)  
This signal indicates the state of the MSR[WE] (wait-state enable) bit. When asserted, wait  
state is enabled (MSR[WE]=1). When deasserted, wait state is disabled (MSR[WE]=0).  
When in the wait state, the processor stops fetching and executing instructions, and no  
longer performs memory accesses. The processor continues to respond to interrupts, and  
can be restarted through the use of external interrupts or timer interrupts. Wait state can  
also be exited when an external debug tool clears WE or when a reset occurs.  
130  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
C405DBGSTOPACK (Output)  
When asserted, this signal indicates that the PowerPC 405 is in debug halt mode. When  
deasserted, the processor is not in debug halt mode.  
C405DBGLOADDATAONAPUDBUS (Output, Virtex-4-FX only)  
This signal is asserted when there is a valid load data being transferred between the APU  
controller logic and the PowerPC 405 core.  
Trace Interface  
The processor uses the trace interface when operating in real-time trace-debug mode. Real-  
time trace-debug mode supports real-time tracing of the instruction stream executed by  
the processor. In this mode, debug events are used to cause external trigger events. An  
external trace tool (such as RISCTrace) uses the trigger events to control the collection of  
trace information. The broadcast of trace information on the trace interface occurs  
independently of external trigger events (trace information is always supplied by the  
processor). Real-time trace-debug does not affect processor performance.  
Real-time trace-debug mode is always enabled. However, the trigger events occur only  
when both internal-debug mode and external debug mode are disabled (DBCR0[IDM]=0  
and DBCR0[EDM]=0). Most trigger events are blocked when either of those two debug  
modes are enabled. See the PowerPC Processor Reference Guide for more information on  
debug events.  
Trace Interface Signal Summary  
Figure 2-47 shows the block symbol for the trace interface. The signals are summarized in  
Table 2-27. See Appendix A, “RISCWatch and RISCTrace Interfaces” for information on  
attaching a RISCTrace to the trace interface signals.  
PPC405  
TRCC405TRIGGEREVENTIN  
TRCC405TRACEDISABLE  
C405TRCTRIGGEREVENTOUT  
C405TRCTRIGGEREVENTTYPE[0:10]  
C405TRCCYCLE  
C405TRCEVENEXECUTIONSTATUS[0:1]  
C405TRCODDEXECUTIONSTATUS[0:1]  
C405TRCTRACESTATUS[0:3]  
UG018_33_020702  
Figure 2-47: Trace Interface Block Symbol  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
131  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
               
R
Chapter 2: Input/Output Interfaces  
Table 2-27: Trace Interface Signals  
Signal  
I/O  
Type  
If Unused  
Function  
C405TRCTRIGGEREVENTOUT  
O
Wrap to  
Trigger  
Indicates a trigger event occurred.  
Event In  
C405TRCTRIGGEREVENTTYPE[0:10]  
C405TRCCYCLE  
O
O
O
O
O
I
No  
Connect  
Specifies which debug event caused the  
trigger event.  
No  
Connect  
Specifies the trace cycle.  
C405TRCEVENEXECUTIONSTATUS[0:1]  
C405TRCODDEXECUTIONSTATUS[0:1]  
C405TRCTRACESTATUS[0:3]  
No  
Connect  
Specifies the execution status collected during  
the first of two processor cycles.  
No  
Connect  
Specifies the execution status collected during  
the second of two processor cycles.  
No  
Connect  
Specifies the trace status.  
TRCC405TRIGGEREVENTIN  
Wrap to  
Trigger  
Indicates a trigger event occurred and that  
trace status is to be generated.  
Event Out  
TRCC405TRACEDISABLE  
I
0
Disables trace collection and broadcast.  
Trace Interface I/O Signal Descriptions  
The following sections describe the operation of the trace interface I/ O signals.  
C405TRCTRIGGEREVENTOUT (Output)  
When asserted, this signal indicates that a trigger event occurred. The trigger event is  
caused by any debug event when both internal-debug mode and external debug mode are  
disabled (DBCR0[IDM]=0 and DBCR0[EDM]=0). If this signal is deasserted, no trigger  
event occurred.  
FPGA logic can combine this signal with the trigger-event type signals to produce a  
qualified version of the trigger signal. The qualified signal is wrapped to the trigger-event  
input signal in the same trace cycle. The external trace tool also monitors the trigger-event  
input signal to synchronize its own trace collection. This capability can be used to  
implement various trace collection schemes.  
C405TRCTRIGGEREVENTTYPE[0:10] (Output)  
These signals are used to identify which debug event caused the trigger event. Table 2-28  
shows which debug event corresponds to each bit in the trigger event-type bus. The  
specified debug event occurred when its corresponding signal is asserted. The debug event  
did not occur if its corresponding signal is deasserted.  
132  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                     
R
Table 2-28: Purpose of C405TRCTRIGGEREVENTTYPE[0:10] Signals  
Bit  
0
Debug Event  
Instruction Address Compare 1 (IAC1)  
1
Instruction Address Compare 2 (IAC2)  
Instruction Address Compare 3 (IAC3)  
Instruction Address Compare 4 (IAC4)  
Data Address Compare 1 (DAC1)—Read  
Data Address Compare 1 (DAC1)—Write  
Data Address Compare 2 (DAC2)—Read  
Data Address Compare 2 (DAC2)—Write  
Trap Instruction (TDE)  
2
3
4
5
6
7
8
9
Exception Taken (EDE)  
10  
Unconditional (UDE)  
FPGA logic can combine these signals with the trigger-event output signal to produce a  
qualified version of the trigger signal. The qualified signal is wrapped to the trigger-event  
input signal in the same trace cycle. The external trace tool also monitors the trigger-event  
input signal to synchronize its own trace collection. This capability can be used to  
implement various trace collection schemes.  
C405TRCCYCLE (Output)  
This signal defines the cycle that execution status and trace status are broadcast on the  
trace interface (this is referred to as the trace cycle). Although the PowerPC 405 collects  
execution status and trace status every processor cycle, the information is made available  
to the trace interface once every two cycles. The information collected during those two  
cycles is broadcast over the trace interface in a single trace cycle. For this reason, the trace  
cycle is produced by the processor once every two processor clocks. Operating the trace  
interface in this manner helps reduce the amount of I/ O switching during trace collection.  
C405TRCEVENEXECUTIONSTATUS[0:1] (Output)  
These signals are used to specify the execution status collected during the first of two  
processor cycles. The PowerPC 405 collects execution status and trace status every  
processor cycle, but the information is made available to the trace interface once every two  
cycles. The information collected during those two cycles is broadcast over the trace  
interface in a single trace cycle.  
C405TRCODDEXECUTIONSTATUS[0:1] (Output)  
These signals are used to specify the execution status collected during the second of two  
processor cycles. The PowerPC 405 collects execution status and trace status every  
processor cycle, but the information is made available to the trace interface once every two  
cycles. The information collected during those two cycles is broadcast over the trace  
interface in a single trace cycle.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
133  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Chapter 2: Input/Output Interfaces  
C405TRCTRACESTATUS[0:3] (Output)  
These signals provide additional information required by a trace tool when reconstructing  
an instruction execution sequence. This information is collected every processor cycle, but  
it is made available to the trace interface once every two cycles. The information collected  
during those two cycles is broadcast over the trace interface in a single trace cycle.  
TRCC405TRIGGEREVENTIN (Input)  
When asserted, this signal indicates that a trigger event occurred. The PowerPC 405 uses  
this signal to generate additional information that is output on the trace-status bus. This  
information corresponds to the execution status produced on the even and odd execution-  
status busses. When deasserted, the information is not generated.  
This signal can be produced by FPGA logic using the trigger event output signal. The  
output signal can be combined with the trigger event-type signals before it is returned as  
the input signal. This capability can be used to implement various trace collection schemes.  
The external trace tool should monitor the trigger-event input signal to synchronize its  
own trace collection.  
TRCC405TRACEDISABLE (Input)  
When asserted, this signal disables the collection and broadcast of trace information. Trace  
information already collected by the processor when this signal is asserted is broadcast on  
the trace interface before tracing is disabled. When deasserted, trace collection and  
broadcast proceed normally.  
Processor Version Register (PVR) Interface (Virtex-4-FX Only)  
The PowerPC block in Virtex-4 provides user access to eight bits in the Processor Version  
Register (PVR) in the processor. One possible use for these tie signals is to identify different  
processors in a multi processor system or to encode some processor environment  
description allowing generic code to adapt its execution on that basis.  
PVR Interface I/O Signal Summary  
The PVR provides software access to a five field 32-bit value. The fields are: Owner  
Identifier, Processor Core Family, Cache Array size, Processor core version, and FPGA  
identifier. The least significant nibbles of the Owner and FPGA identifier are available on  
the PowerPC interface as tie-offs.  
TIEPVRBIT8  
PPC405  
TIEPVRBIT9  
TIEPVRBIT10  
TIEPVRBIT11  
TIEPVRBIT28  
TIEPVRBIT29  
TIEPVRBIT30  
TIEPVRBIT31  
UG018_02_48_032504  
Figure 2-48: PVR Interface Block Symbol  
134  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
Table 2-29: PVR Interface I/O Signals  
I/O  
Signal  
If Unused  
Function  
Type  
TIEPVRBIT8  
TIEPVRBIT9  
I
I
I
I
I
I
I
I
No Connect Set bit 8 in Processor Version Register (OWN field)  
No Connect Set bit 9 in Processor Version Register (OWN field)  
No Connect Set bit 10 in Processor Version Register (OWN field)  
No Connect Set bit 11 in Processor Version Register (OWN field)  
No Connect Set bit 28 in Processor Version Register (AID field)  
No Connect Set bit 29 in Processor Version Register (AID field)  
No Connect Set bit 30 in Processor Version Register (AID field)  
No Connect Set bit 31 in Processor Version Register (AID field)  
TIEPVRBIT10  
TIEPVRBIT11  
TIEPVRBIT28  
TIEPVRBIT29  
TIEPVRBIT30  
TIEPVRBIT31  
PVR Interface I/O Signal Descriptions  
The following sections describe the operation of the PVR-interface I/ O signals.  
TIEPVRBIT8 (Input)  
When tied high sets Processor Version Register bit 8 to 1.  
TIEPVRBIT9 (Input)  
When tied high sets Processor Version Register bit 9 to 1.  
TIEPVRBIT10 (Input)  
When tied high sets Processor Version Register bit 10 to 1.  
TIEPVRBIT11 (Input)  
When tied high sets Processor Version Register bit 11 to 1.  
TIEPVRBIT28 (Input)  
When tied high sets Processor Version Register bit 28 to 1.  
TIEPVRBIT29 (Input)  
When tied high sets Processor Version Register bit 29 to 1.  
TIEPVRBIT30 (Input)  
When tied high sets Processor Version Register bit 30 to 1.  
TIEPVRBIT31 (Input)  
When tied high sets Processor Version Register bit 31 to 1.  
PowerPC™ 405 Processor Block Reference Guide  
135  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
R
Chapter 2: Input/Output Interfaces  
Additional FPGA Specific Signals  
Figure shows the block symbol for the additional FPGA signals used by the processor  
block. The signals are summarized in Table 2-30.  
MCBCPUCLKEN  
MCBJTAGENT  
MCBTIMEREN  
MCPPCRST  
PPC405  
UG018_02_49_032504  
Figure 2-49: FPGA Specific Interface Block Symbol  
Table 2-30: Additional FPGA I/O Signals  
I/O  
Type  
Signal  
MCBCPUCLKEN  
If Unused  
Function  
I
I
I
I
1
Indicates the PowerPC 405 clock enable should follow  
GWE during a partial reconfiguration.  
MCBJTAGEN  
MCBTIMEREN  
MCPPCRST  
1
1
1
Indicates the JTAG clock enable should follow GWE  
during a partial reconfiguration.  
Indicates the timer clock enable should follow GWE  
during a partial reconfiguration.  
Indicates the processor block should be reset when  
GSR is asserted during a partial reconfiguration.  
Additional FPGA I/O Signal Descriptions  
The following sections describe the operation of the FPGA I/ O signals.  
MCBCPUCLKEN (Input)  
When asserted, this signal indicates that the enable for the core clock zone  
(CPMC405CPUCLKEN) should follow (match the value of) the global write enable (GWE)  
during the FPGA startup sequence. When deasserted, the enable for the core clock zone  
ignores (is independent of) the value of GWE.  
MCBJTAGEN (Input)  
When asserted, this signal indicates that the enable for the JTAG clock zone  
(CPMC405JTAGCLKEN) should follow (match the value of) the global write enable (GWE)  
during the FPGA startup sequence. When deasserted, the enable for the JTAG clock zone  
ignores (is independent of) the value of GWE.  
136  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
           
R
MCBTIMEREN (Input)  
When asserted, this signal indicates that the enable for the timer clock zone  
(CPMC405TIMERCLKEN) should follow (match the value of) the global write enable  
(GWE) during the FPGA startup sequence. When deasserted, the enable for the timer clock  
zone ignores (is independent of) the value of GWE.  
MCPPCRST (Input)  
When asserted, this signal indicates that the processor block should be reset (the core reset  
signal, RSTC405RESETCORE, is asserted) when the global set reset (GSR) signal is  
deasserted during the FPGA startup sequence. When MPPCRST is deasserted, the core  
reset signal ignores (is independent of) the value of GSR.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
137  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
Chapter 2: Input/Output Interfaces  
138  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 3  
PowerPC 405 OCM Controller  
Introduction  
The On-Chip Memory (OCM) controller serves as a dedicated interface between the FPGA  
BRAMs and the OCM signals contained within the embedded PPC405 core. The OCM  
controller provides non-cacheable access to instruction-side and data-side memory spaces.  
The data-side interface supports a 32-bit, bi-directional memory interface, and the  
instruction-side interface supports a 64-bit unidirectional memory interface. Unlike the  
Processor Local Bus (PLB) interface, the OCM controller does not require bus arbitration to  
access the FPGA fabric resources. Each OCM controller is capable of addressing up to  
16 MB of memory, however, the amount of BRAM in the device may limit the maximum  
size of OCM supported. Typical applications of data-side OCM (DSOCM) for the Virtex-II  
Pro and Virtex-4 product families can utilize the dual-port feature of BRAMs to enable both  
read and write data transfer between processor and FPGA. One possible application for  
instruction-side OCM (ISOCM) is the storage of interrupt service routines. In addition, its  
non-cacheable feature eliminates cache pollution and thrashing.  
In the Virtex-II Pro family, the DSOCM and ISOCM controllers are designed to interface  
specifically to BRAMs with fixed latencies.  
In the Virtex-4 family, the DSOCM controller has an enhanced feature to support memory-  
mapped peripherals via additional control signals. This extended feature enables the  
DSOCM controller to interface to multiple BRAM blocks with different latencies, as well as  
to slave peripherals with variable latencies. In addition, the ISOCM controller in Virtex-4  
has an improved interface for software debugging.  
The enhanced features that exist only within the Virtex-4 family will be clearly labeled  
Virtex-4 Only.” Otherwise, the description applies to both Virtex-II Pro and Virtex-4.  
The following topics are covered in this chapter:  
x
x
x
x
x
x
x
x
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
139  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Chapter 3: PowerPC 405 OCM Controller  
Comparison of Virtex-II Pro and Virtex-4 OCM Controllers  
The Virtex-4 OCM controller is completely backward compatible with the Virtex-II Pro  
OCM controller. Table 3-1 highlights the new features available only on the Virtex-4 OCM  
controller. Detailed discussion of these features will be provided later in this chapter.  
Table 3-1: Features Introduced in Virtex-4 OCM  
Feature  
Primary Advantage  
ISOCM DSOCM  
Variable latency for read and Wide range of new applications  
N/ A  
Yes  
write access to DSOCM  
utilizing memory-mapped I/ O  
DCR-based read access to  
ISOCM.  
Support software debugging for  
ISOCM.  
Yes  
N/ A  
Yes  
Auto clock ratio detection  
and enhanced clocking  
support.  
Eliminate the need to load wait  
state register using software. Up  
to 8:1 clock ratio supported.  
Yes  
Functional Features  
Common Features for DSOCM and ISOCM  
x
x
Separate instruction and data memory interface between the processor block and  
BRAMs in the FPGA. Eliminates processor local bus (PLB) arbitration between  
instruction- and data-side interfaces to external memory.  
Dedicated interface to the Device Control Register (DCR) bus for the ISOCM and  
DSOCM controllers. Dedicated DCR bus loop inside the processor block for the OCM  
controllers.  
x
x
x
FPGA-configurable DCR register addresses within the DSOCM and ISOCM  
controllers.  
Independent 16 MB logical memory space available within PPC405 memory map for  
each of the DSOCM and ISOCM controllers.  
Multi-cycle mode option for instruction-side and data-side interfaces. Multi-cycle  
operation uses an N:1 processor-to-BRAM clock ratio.  
i
i
For Virtex-II Pro, N is an integer from 1 through 4.  
For Virtex-4, N is an integer from 1 through 8.  
x
Virtex-4 only: Optional auto clock ratio detection to eliminate the need for  
programming the control registers of the CPU-to-BRAM clock ratio. This feature  
simplifies the programming model to use DSOCM and ISOCM.  
Features for Data-Side OCM (DSOCM)  
x
x
x
x
x
x
32-bit Data Read bus and 32-bit Data Write bus.  
Byte write access to DSBRAM support.  
Second port of dual port DSBRAM is available to read/ write from an FPGA interface.  
22-bit address to DSBRAM port.  
DCR Registers: DSCNTL, DSARC.  
Virtex-4 only: Optional support for variable latency for read or write data transfer.  
140  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
Features for Instruction-Side OCM (ISOCM)  
The ISOCM interface contains a 64-bit read only port for instruction fetches and a 32-bit  
read and write port to initialize or test the ISBRAM.  
x
x
64-bit Data Read Only bus (two BRAM clock cycles)  
For Virtex-II Pro, 32-bit Data Write Only bus through DCR instruction.  
For Virtex-4, 32-bit Data Read and Write bus through DCR instruction.  
x
x
x
Separate 21-bit read only and write only addresses to ISBRAM.  
DCR registers: ISCNTL, ISARC, ISINIT, ISFILL.  
Two alternatives to setup ISBRAM contents:  
i
i
Use DCR to access the 32-bit Data write bus.  
Initialize ISBRAM during FPGA configuration.  
Table 3-2 summarizes the features of the DSOCM and ISOCM controllers. Virtex-4 only  
features are identified with a separate entry in the table.  
Table 3-2: DSOCM and ISOCM Features  
Data-Side  
OCM Interface  
Instruction-Side  
OCM Interface  
Feature  
Non-cacheable memory space.  
16 MB  
16 MB  
Data bus width  
(load/ store/ fetch).  
32-bit bi-directional  
(load/ store)  
64-bit unidirectional  
(Instruction fetch)  
32-bita  
Data bus width (DCR read/ write)  
for instruction side memory  
Not applicable  
interface and software debugger.  
Byte write support.  
Yes  
Not applicable  
Maximum performance.  
One load/ store for every Two instruction fetches  
two BRAMDSOCMCLK for every two  
cycles  
BRAMISOCMCLK  
cycles  
Address bus.  
22 bits  
21 bits  
DCR control registers.  
DSARC and DSCNTL  
ISARC, ISCNTL, ISINIT,  
and ISFILL  
OCM DCR control register base For Virtex-II Pro:  
For Virtex-II Pro:  
address selection.  
TIEDSOCMDCRADDR TIEISOCMDCRADDR  
For Virtex-4:  
TIEDCRADDR+offsetb  
For Virtex-4:  
TIEDCRADDR+offsetb  
Default settings applied at  
power up through dedicated  
processor inputs (see “DSOCM  
DSARCVALUE and  
DSCNTLVALUE  
ISARCVALUE and  
ISCNTLVALUE  
OCM Clock.  
BRAMDSOCMCLK  
BRAMISOCMCLK  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
141  
   
R
Chapter 3: PowerPC 405 OCM Controller  
Table 3-2: DSOCM and ISOCM Features (Continued)  
Data-Side  
OCM Interface  
Instruction-Side  
OCM Interface  
Feature  
Clock Ratio (PPC405:OCM)  
Virtex-II Pro  
Integer: 1:1 through 4:1  
1:1 through 8:1  
Integer: 1:1 through 4:1  
1:1 through 8:1  
Virtex-4  
Clock ratio automatic detection. Virtex-4 only  
Virtex-4 only  
Not applicable  
Yes  
Variable Latency Read/ Write  
Virtex-4 only  
Yes  
Initialize block BRAM during  
FPGA device configuration.  
Processor access to initialize  
memory in fabric.  
Load and store  
instructions  
DCR read and write  
instructions  
a. 32-bit write only port for Virtex-II Pro. 32-bit read/ write port for Virtex-4.  
b. Refer to the section “Device-Control Register Interfaces” in Chapter 2 for more information.  
OCM Controller Operation  
The OCM controller is distributed into two blocks, one for the ISOCM interface and the  
other for the DSOCM interface, as shown in Figure 3-1.  
D
S
O
C
M
I
S
O
C
M
Data Side  
Memory  
Processor  
Block  
Instruction  
Side  
Memory  
UG018_37x_090203  
Figure 3-1: OCM Controller Interfaces  
The DSOCM and ISOCM interfaces are designed to operate independently of each other.  
This provides the following advantages:  
x
The overall efficiency of the core is improved by eliminating the need for OCM  
arbitration between two sets of operations, that is, loads and stores on the data-side  
interface and instruction fetches on the instruction-side interface.  
x
Overall controller performance is improved because there is no need to share a  
common address and data bus between the instruction-side and data-side interfaces  
to the block RAM.  
x
x
Having two separate interfaces allows selection of either one or both interfaces as  
required by the specific application.  
The two control registers: DSARC and ISARC, define the base addresses for the OCM  
instruction-side and data-side memory spaces. The registers are initialized on power  
142  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
up with the value on the input ports: DSARCVALUE[0:7] and ISARCVALUE[0:7]  
respectively. The two registers can also be loaded using DCR write assembly  
instructions (mtdcr).  
The value of DSARC and ISARC defines the most significant eight address bits for the  
two 16 MB memory spaces (instruction and data) available on the OCM, assuming  
OCM address decoding is enabled in bit 0 of the ISCNTL/ DSCNTL registers.  
Notice that the instruction-side and data-side OCM interfaces can reside in the same 16  
MB space or dedicate two 16 MB spaces, i.e., DSARCVALUE[0:7] and  
ISARCVALUE[0:7] can be the same value, or they can be different values. However,  
once the 16 MB space(s) is defined for instruction-side and data-side OCMs, PLB/ OPB  
memory spaces cannot overlap with the OCM space(s). For more details, refer to the  
“Programmer's Model” section later in this chapter.  
OCM DCR-Based Control Registers (Accessed Via DCR Instructions)  
There are two registers (DSARC and DSCNTL) in the DSOCM and four registers (ISARC,  
ISCNTL, ISINIT and ISFILL) in the ISOCM.  
The DSARC/ ISARC, DSCNTL/ ISCNTL control registers, must be initialized before using  
DSOCM/ ISOCM interfaces, which also means load and store data via DSOCM and  
fetching instructions to the instruction side interface. There are two ways to initialize these  
registers:  
1. Use DCR assembly instructions (mtdcr, mfdcr) to access all six OCM control registers.  
The DCR address for these registers are summarized under the heading “Device-  
2. Specify the associated input ports of the processor block. The values that tie to the 8-bit  
input ports DSARCVALUE[0:7], DSCNTLVALUE[0:7] will be the initial value of  
DSARC and DSCNTL registers after power on. Similarly, the values that tie to the 8bit  
input ports ISARCVALUE[0:7], ISCNTLVALUE[0:7] will be the initial value of ISARC  
and ISCNTL registers after power on. Notice that if the processor system will be boot  
from the ISOCM memory, the ISARC and ISCNTL registers must be initialized using  
this method.  
The ISINIT and ISFILL registers are used for content initialization of the instruction side of  
OCM memory and for software debugging purposes.  
x
In Virtex-II Pro: allows the processor to write instructions into the ISOCM memory  
array during system initialization, using the ISINIT and the ISFILL registers.  
x
In Virtex-4: allows the processor to write instructions and read instructions from the  
ISOCM memory array using the ISINIT and the ISFILL registers.  
More information regarding the functionality of these OCM control registers will be  
described in the “Programmer's Model” section of this chapter.  
DSOCM Controller Load/Store Operation  
The DSOCM controller accepts an address and associated control signals from the  
processor during a load instruction, and passes a valid address to the DSOCM's FPGA  
fabric or BRAM interface. For store instructions, a valid address from the processor is  
accompanied by store data and by the associated control signals. The DSOCM controller  
performs an address decode on the eight most significant processor address bits to  
determine if the load/ store instruction is for the data-side OCM interface. The DSARC  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
143  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 3: PowerPC 405 OCM Controller  
register defines the 16 MB memory region that is valid for the DSOCM. Load instructions  
have a priority over store instructions at the DSOCM interface  
Non-Memory Peripherals for DSOCM  
The OCM interface is designed to connect to memory. To correctly implement non-  
memory peripherals that attach to DSOCM, designers must be aware of two OCM specific  
behaviors: execution re-ordering and store-data bypass.  
Execution Re-ordering  
Under certain conditions, the OCM controller will change the order in which DSOCM  
Load and Store instructions are executed. A Store access may be executed after a Load,  
even though the Store is fetched before the Load by the processor. If maintained execution  
order is necessary in the peripheral, the designer is responsible for enforcement. This can  
be done in driver routines by issuing a dummy Store between the operations, or by adding  
NOP padding between them. A hardware solution is to add a semaphore that flags the  
completion of the Store operation.  
Store-data Bypass  
A Store followed immediately by a Load from the same address may be handled as an  
internal operand forward in the OCM controller. This means that the data returned to the  
processor as the result of the access isnt taken from the data returned by the peripheral,  
but rather from an internal OCM buffer. To ensure that the Load data is read from the  
peripheral, the same techniques can be used as for execution reordering. Execution re-  
ordering of accesses to the same address will only occur in combination with store-data  
bypass, thus ensuring memory consistency.  
ISOCM Controller Instruction Fetch Operation  
The ISOCM controller accepts an address and associated control signals from the processor  
during an instruction fetch cycle, and passes the valid address to the ISOCM interface.  
Instructions stored in a BRAM can be loaded into it during FPGA device configuration.  
Alternatively, the processor can load the ISOCM space using the ISINIT and ISFILL  
registers on the DCR bus.  
There are two datapaths from the processor block to access the instruction-side memory:  
x
The main 64-bit, read only port for instruction fetch. Since this port is 64-bits wide,  
two instructions will be fetched at once.  
x
The secondary 32-bit port for memory initialization and software debug. For Virtex-II  
Pro, this port is write only, so it has limited software debug capability. For Virtex-4,  
this port supports both reads and writes and therefore has improved software debug  
capabilities.  
144  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
DSOCM Ports  
Figure 3-2 and Figure 3-3 are the block diagrams of the DSOCM in Virtex-4 and Virtex-II  
Pro. All signals are in big endian format.  
BRAMDSOCMRDDBUS[0:31]  
DSOCMBRAMABUS[8:29]  
BRAMDSOCMCLK  
DSOCMBRAMWRDBUS[0:31]  
DSOCMBRAMBYTEWRITE[0:3]  
DSOCMRDWRCOMPLETE  
(Virtex-4 Only)  
Clock & Reset are  
CPMC405CLOCK  
RESET  
same signals that go  
into CPU; therefore,  
no separate Clock &  
Reset are required.  
Data-Side  
On-Chip Memory  
(DSOCM) Controller  
DSOCMBRAMEN  
DSOCMBUSY  
DSCNTLVALUE[0:7]  
DSARCVALUE[0:7]  
DSOCMRDADDRVALID  
(Virtex-4 Only)  
DSOCMWRADDRVALID  
(Virtex-4 Only)  
UG018_37b_120803  
Figure 3-2: DSOCM Interface for Virtex-4  
BRAMDSOCMRDDBUS[0:31]  
BRAMDSOCMCLK  
DSOCMBRAMABUS[8:29]  
DSOCMBRAMWRDBUS[0:31]  
DSOCMBRAMBYTEWRITE[0:3]  
Clock & Reset are  
CPMC405CLOCK  
RESET  
same signals that go  
into CPU; therefore,  
no separate Clock &  
Reset are required.  
Data-Side  
On-Chip Memory  
(DSOCM) Controller  
DSCNTLVALUE[0:7]  
DSOCMBRAMEN  
DSARCVALUE[0:7]  
DSOCMBUSY  
TIEDSOCMDCRADDR[0:7]  
UG018_37_020102  
Figure 3-3: DSOCM Interface for Virtex-II Pro  
PowerPC™ 405 Processor Block Reference Guide  
145  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Chapter 3: PowerPC 405 OCM Controller  
DSOCM Input Ports  
Table 3-3 describes the Data Side OCM (DSOCM) input ports.  
Table 3-3: DSOCM Input Ports  
Port  
Direction  
Description  
BRAMDSOCMCLK  
Input  
This signal clocks the DSOCM controller and the data side interface  
logic (Virtex-4 only) or memory located in the FPGA fabric. When in  
multi-cycle mode, the processor clock is in an N:1 ratio with  
BRAMDSOCMCLK. The frequency of BRAMDSOCMCLK must be  
an integer multiple of the processor block clock input,  
CPMC405CLOCK (CPU Clock). The rising edge of  
BRAMDSOCMCLK must align with the rising edge of  
CPMC405CLOCK.  
x For Virtex-4, N is an integer from 1 to 8.  
x For Virtex-II Pro, N is an integer from 1 to 4.  
Note: To generate clocks with integer ratios, a Digital Clock Manager (DCM)  
feature in the Virtex-II Pro and Virtex-4 fabric can be included in the  
application system.  
BRAMDSOCMRDDBUS[0:31] Input  
32-bit read data bus from the FPGA fabric to the DSOCM controller.  
For Virtex-II Pro applications, this bus originates from the read data  
port of the BRAM. For Virtex-4 applications, the bus can originate  
from BRAM and/ or other memory-mapped peripherals located in  
the fabric.  
DSOCMRWCOMPLETE  
(Virtex-4 only)  
Input  
Virtex-4 supports variable latencies for the module interface with the  
DSOCM controller. Virtex-4 differs from Virtex-II Pro in that a Virtex-  
4 load or store operation can take an integer multiple number of BRAM  
clock cycles. DSOCMRWCOMPLETE indicates that a read access or a  
write access is complete. The signal should be asserted for one and only  
one BRAMDSOCMCLK cycle.  
For read accesses, the DSOCMRWCOMPLETE signal should be  
accompanied by read data in the same clock cycle. For both read and  
write operations, this signal informs the DSOCM controller in the  
processor block that the current bus transaction is complete. The  
DSOCM can issue the next read or write access, if required.  
Unlike the CoreConnect bus architecture (PLB, OPB and DCR) there  
are no complex bus protocols to handle a bus error, an abortion, or bus  
timeout scenarios in this DSOCM interface. Users need to design bus  
timeout logic to guarantee a fabric response to a valid DSOCM bus  
cycle. If this signal is not asserted, the processor will operate  
unpredictably.  
Note: If you do not wish to use the variable latency feature of the Virtex-4  
DSOCM and are migrating a Virtex-II Pro BRAM design, or the module that  
interfaces with DSOCM controller has a fixed latency of one, this signal  
should be tied to logic “1”.  
146  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
DSOCM Input Ports: Attributes  
Attributes are inputs to the OCM controller from the FPGA fabric that must be connected to  
initialize registers at FPGA power up, or following a processor reset. These inputs are used  
to:  
x
x
x
x
Define the DSOCM control register DCR addresses in the DCR memory space.  
Define the 16MB memory locations for the DSOCM controller.  
Enable the DSOCM address decoder.  
Define the operating characteristics for the bus interface circuitry.  
Table 3-4 describes the DSOCM attributes.  
Table 3-4: DSOCM Attributes  
Attribute  
Direction  
Description  
DSCNTLVALUE[0:7]  
Input  
This input bus is loaded into the DSCNTL register at FPGA power-  
up. The value is used to define the basic operational characteristics of  
the DSOCM controller. Application software can modify the default  
value by writing to the DSCNTL register. See Figure 3-11, page 162,  
and Figure 3-12, page 163, for register bit definitions.  
DSARCVALUE[0:7]  
Input  
Input  
This input bus is loaded into the DSARC register at FPGA power up.  
It defines the 16 MB memory space location for the data-side memory  
interface. See Figure 3-11, page 162, and Figure 3-12, page 163, for  
register bit definitions.  
TIEDSOCMDCRADDR[0:7]  
(Virtex-II Pro only)a  
This input bus defines the eight most significant bits of the ten-bit  
DCR address space for the DSOCM DCR control and status registers.  
The two least significant bits are predefined within the DSOCM  
controller. For example, if TIEDSOCMDCRADDR = 00_0001_11  
then:  
x DCR address of DSARC = 00_0001_1110= 0x01E  
x DCR address of DSCNTL = 00_0001_1111= 0x01F  
TIEDCRADDR[0:5]  
(Virtex-4 only)a  
Input  
This input bus defines the six most significant bits of the ten-bit DCR  
address space for the DCR Control and Status registers associated  
with the OCM, APUb, AND EMACc submodules.  
For example, if TIEDCRADDR = 00_0001then:  
x
x
DCR address of DSARC = 00_0001_0110 = 0x016  
DCR address of DSCNTL = 00_0001_0111 = 0x017  
a. For more information, refer to the “Device-Control Register Interfaces” section in Chapter 2.  
b. For more information, refer to Chapter 4, “PowerPC 405 APU Controller”.  
c. For more information, refer to the Virtex-4 Ethernet Media Access Controller manual.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
147  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
Chapter 3: PowerPC 405 OCM Controller  
DSOCM Output Ports  
Table 3-5 describes the data-side OCM (DSOCM) output ports.  
Table 3-5: DSOCM Output Ports  
Port  
Direction  
Description  
DSOCMBRAMEN  
Output  
This is the BRAM enable signal that is asserted for both reads and  
writes to the data-side memory interface. This signal is asserted for  
one and only one BRAMDSOCMCLK cycle.  
DSOCMBRAMABUS[8:29] contains the address and  
DSOCMBRAMWRDBUS[0:31] contains the data (for write).  
DSOCMBRAMABUS[8:29]  
Output  
Read or write address from the DSOCM controller to the data-side  
FPGA fabric or memory interface. These 22 address bits  
correspond to internal PPC405 address bits [8:29]. PPC405 address  
bits [0:7] are compared against the DSARC register contents, and if  
a match is decoded, further steps for load/ store operation are  
initiated.  
For write accesses in both Virtex-II Pro and Virtex-4, the write  
address is accompanied and qualified by a write enable signal for  
each byte lane of data.  
For read accesses, when the DSOCM controller is connected only  
to the BRAM, DSOCMBRAMEN is asserted and must be used as a  
valid address qualifier.  
When the DSOCM controller is connected to a memory-mapped  
slave peripheral with variable latency (Virtex-4 extended feature),  
DSOCMBRAMABUS[8:29] will be qualified by the new  
DSOCMRDADDRVALID signal to indicate a valid read access.  
DSOCMBRAMWRDBUS[0:31]  
Output  
This bus provides 32-bit write data from the DSOCM to the data-  
side memory interface. If BRAM is connected to the interface, this  
port is connected directly to the data input port of the memory. For  
Virtex-4 applications, this is the write data input to the memory-  
mapped slave peripheral. The write data bus is further qualified  
with DSOCMBRAMBYTEWRITE, and will be asserted for one and  
only one BRAMDSOCMCLK cycle.  
DSOCMBRAMBYTEWRITE[0:3] Output  
This signal indicates a write access and qualifies the  
DSOCMBRAMWRDBUS. Four write enable signals support  
independent byte-wide data writes into the data-side memory or  
peripheral. DSOCMBRAMBYTEWRITE[0] qualifies writes to  
DSOCMBRAMWRDBUS[0:7], DSOCMBRAMBYTEWRITE[1]  
qualifies writes to DSOCMBRAMWRDBUS[8:15], and so on.  
If the DSOCM controller is connected to memory-mapped slave  
peripherals with variable latency (Virtex-4 extended feature),  
DSOCMBRAMBYTEWRITE must be used as the qualification  
signal for the write data bus. The signal will be asserted for one  
and only one BRAMDSOCMCLK cycle. A memory-mapped slave  
design should register this signal, as well as the write address and  
write data (DSOCMBRAMABUS[8:29],  
DSOCMBRAMWRDBUS[0:31]), if the write operation cannot be  
completed in a single BRAMDSOCMCLK cycle.  
148  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
Table 3-5: DSOCM Output Ports (Continued)  
Port  
Direction  
Description  
DSOCMRDADDRVALID  
(Virtex-4 only)  
Output  
This signal is used when the DSOCM controller is connected to the  
logic in the FPGA fabric (e.g. memory-mapped peripheral) with a  
variable latency. The signal indicates a read access and indicates  
the read address is valid on the DSOCMBRAMABUS[8:29]. This  
signal will be asserted for one BRAMDSOCMCLK cycle only. A  
memory-mapped slave design should register this signal, as well  
as the read address (DSOCMBRAMABUS[8:29]), if the read  
operation cannot be completed in the next cycle.  
DSOCMWRADDRVALID  
(Virtex-4 only)  
Output  
This signal is used when the DSOCM controller is connected to the  
logic in the FPGA fabric (e.g., memory-mapped peripheral) with a  
variable latency. The signal indicates a write access and indicates  
the write address is valid on the DSOCMBRAMABUS[8:29]. This  
signal is asserted for one BRAMDSOCMCLK cycle only. A  
memory-mapped slave design should register this signal, as well  
as the read address (DSOCMBRAMABUS[8:29]) if the read  
operation cannot be completed in the next cycle.  
DSOCMBUSY  
Output  
This control signal reflects the value of the DSOCM DCR control  
register DSCNTL[2] bit output to the FPGA fabric. This signal can  
be used for applications that require a software control mechanism  
to toggle a control bit to FPGA hardware. It is an optional signal  
and need not be used.  
DSOCM-to-BRAM Interfaces  
Figure 3-4 provides an example of a basic DSOCM-to-BRAM interface for Virtex-II Pro.  
Virtex-II Pro supports only fixed latency connections such as the one shown.  
Figure 3-5 shows an example of a basic DSOCM-to-BRAM interface for Virtex-4. Notice  
that in fixed latency mode, the output DSOCMRDADDRVALID and  
DSOCMWRADDRVALID can be left unconnected.  
Note: Individual byte enables in a Virtex-II Pro device require a minimum of four BRAMs for  
DSOCM (each BRAM port has a single write enable which is used as byte enable). In a Virtex-4  
device, a single BRAM is sufficient, since it can be configured to have individual (that is, four) byte  
enables in its 32-bit data configuration.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
149  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 3: PowerPC 405 OCM Controller  
(RAMB16S9S9) X 4  
DSOCMBRAMABUS[19:29]  
DSOCMBRAMWRDBUS[0:31]  
DSOCMBRAMBYTEWRITE[0:3]  
ADDRA[10:0]  
DIA[7:0]  
DOA[7:0]  
WEA  
BRAMDSOCMCLK  
CLKA  
Global signals from FPGA  
system interface  
SSRA  
DSOCMBRAMEN  
BRAMDSOCMRDDBUS[0:31]  
DSCNTLVALUE[0:7]  
ENA*  
*ENA can be tied off  
permanently for higher  
performance.  
PORT A  
ADDRB[13:3]  
DIB[7:0]  
DSARCVALUE[0:7]  
TIEDSOCMDCRADDR[0:7]  
(Virtex-II Pro Only)  
DOB[7:0]  
To/from FPGA logic  
WEB  
(application-specific use)  
CLKB  
ENB  
SSRB  
(BRAMDSOCMCLK from DCM)  
PORT B  
UG018_48_112103  
Figure 3-4: DSOCM to BRAM Interface: 8-KByte Example for Virtex-II Pro  
150  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
(RAMB16S9S9) X 4  
DSOCMBRAMABUS[19:29]  
DSOCMBRAMWRDBUS[0:31]  
DSOCMBRAMBYTEWRITE[0:3]  
ADDRA[10:0]  
DIA[7:0]  
DOA[7:0]  
WEA  
BRAMDSOCMCLK  
CLKA  
Global signals from FPGA  
system interface  
SSRA  
DSOCMBRAMEN  
BRAMDSOCMRDDBUS[0:31]  
DSCNTLVALUE[0:7]  
ENA*  
*ENA can be tied off  
permanently for higher  
performance.  
PORT A  
ADDRB[13:3]  
DSARCVALUE[0:7]  
DIB[7:0]  
DOB[7:0]  
WEB  
DSOCMRWCOMPLETE  
(Virtex-4 Only)  
'1'  
To/from FPGA logic  
(application-specific use)  
DSOCMRDADDRVALID, n/c  
(Virtex-4 Only)  
CLKB  
DSOCMWRADDRVALID, n/c  
(Virtex-4 Only)  
ENB  
SSRB  
PORT B  
(BRAMDSOCMCLK from DCM)  
UG018_48b_042304  
Note: n/c = no connect  
Figure 3-5: DSOCM to BRAM Interface: 8-KByte Example for Virtex-4  
Note: For backward compatibility with Virtex-II Pro, when connecting DSOCM to BRAM (as shown  
in Figure 3-5), set DSOCMRWCOMPLETE to logic 1 and leave the DSOCMRDADDRVALID and  
DSOCMWRADDRVALID signals unconnected.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
151  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 3: PowerPC 405 OCM Controller  
Figure 3-6 shows the extended feature in Virtex-4 for DSOCM-to-Memory-Mapped-Slave-  
Peripheral interface.  
Virtex-4 Processor Block  
DSOCMBRAMABUS[8:29]  
DSOCMBRAMWRDBUS[0:31]  
DSOCMBRAMBYTEWRITE[0:3]  
DSOCMBRAMEN  
Data-Side  
On-Chip Memory  
(DSOCM) Controller  
Memory Mapped  
OCM Slave  
(Variable Latency)  
DSOCMRDADDRVALID  
DSOCMWRADDRVALID  
BRAMDSOCMRDDBUS[0:31]  
DSOCMRDWRCOMPLETE  
UG018_37c_042304  
BRAMDSOCMCLK  
Figure 3-6: DSOCM to Memory-Mapped Slave Peripheral (Virtex-4 Extended Feature)  
ISOCM Ports  
Figure 3-7 and Figure 3-8 are block diagrams of the ISOCM in Virtex-II Pro and Virtex-4.  
All signals are in big endian format.  
BRAMISOCMRDDBUS[0:63]  
BRAMISOCMCLK  
ISOCMBRAMRDABUS[8:28]  
ISOCMBRAMWRABUS[8:28]  
ISOCMBRAMWRDBUS[0:31]  
Clock & Reset are  
CPMC405CLOCK  
RESET  
same signals that go  
into CPU; therefore,  
no separate Clock &  
Reset are required.  
Instruction-Side  
On-Chip Memory  
(ISOCM) Controller  
ISOCMBRAMEN  
ISCNTLVALUE[0:7]  
ISARCVALUE[0:7]  
ISOCMBRAMODDWRITEEN  
ISOCMBRAMEVENWRITEEN  
TIEISOCMDCRADDR[0:7]  
UG018_38_020102  
Figure 3-7: ISOCM Interface for Virtex-II Pro  
152  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
BRAMISOCMRDDBUS[0:63]  
BRAMISOCMCLK  
ISOCMBRAMRDABUS[8:28]  
ISOCMBRAMWRABUS[8:28]  
ISOCMBRAMWRDBUS[0:31]  
ISOCMBRAMEN  
BRAMISOCMDCRRDBUS[0:31]  
(Virtex-4 Only)  
Clock & Reset are  
Instruction-Side  
On-Chip Memory  
(ISOCM) Controller  
CPMC405CLOCK  
RESET  
same signals that go  
into CPU; therefore,  
no separate Clock &  
Reset are required.  
ISOCMBRAMODDWRITEEN  
ISOCMBRAMEVENWRITEEN  
ISOCMDCRBRAMEVENEN  
(Virtex-4 Only)  
ISOCMDCRBRAMODDEN  
(Virtex-4 Only)  
ISCNTLVALUE[0:7]  
ISARCVALUE[0:7]  
ISOCMDCRBRAMRDSELECT  
(Virtex-4 Only)  
UG018_38b_112103  
Figure 3-8: ISOCM Interface for Virtex-4  
ISOCM Input Ports  
Table 3-6 describes the Instruction Side OCM (ISOCM) input ports.  
Table 3-6: ISOCM Input Ports  
Port  
Direction  
Description  
BRAMISOCMCLK  
Input  
This signal clocks the ISOCM controller and the instruction side  
memory located in the FPGA fabric. When in multi-cycle mode,  
BRAMISOCMCLK is in a 1:N ratio to the processor clock. The  
Digital Clock Manager (DCM) should be used to generate the  
processor clock and the ISOCM clock. BRAMISOCMCLK must  
be an integer multiple of the processor block clock  
CPMC405CLOCK.  
x For Virtex-4, N is an integer from 1 to 8.  
x For Virtex-II Pro, N is an integer from 1 to 4.  
BRAMISOCMRDDBUS[0:63]  
Input  
64-bit read data from BRAM to the ISOCM controller. The read  
data bus is the path for instruction fetch of CPU operations.  
Note: Optional. Used in dual-port BRAM interface designs only.  
BRAMISOCMDCRRDDBUS[0:31] Input  
(Virtex-4 only)  
32-bit read data from BRAM to ISOCM controller using a DCR-  
based access from the PPC405. This read data bus enables the  
software debugger to access the software program instructions in  
the ISOCM memory. In order to insert software breakpoints into  
the instruction side memory, the debugger must be able to both  
read and write the code stored in BRAM.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
153  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
Chapter 3: PowerPC 405 OCM Controller  
ISOCM Input Ports, Attributes  
Attributes are inputs to the OCM controller, from the FPGA fabric, that must be connected  
to initialize control registers at FPGA power-up, or following a PPC405 reset. The ISINIT  
and ISFILL registers cannot be initialized in this manner. These registers are initialized  
only through “move to DCR” (mtdcr) instructions. Application software can also modify  
the contents of the ISARC and ISCNTL registers using mtdcrand mfdcrinstructions.  
Table 3-7 describes the ISOCM attributes.  
Table 3-7: ISOCM Attributes  
Attribute  
Direction  
Description  
ISCNTLVALUE[0:7]  
Input  
This input bus is loaded into the ISCNTL register at FPGA power-up.  
The value is used to configure the operational characteristics of the  
ISOCM controller. See Figure 3-13, page 164, and Figure 3-14, page 165,  
for register bit definitions.  
ISARCVALUE[0:7]  
Input  
Input  
This input bus is loaded into the ISARC register at FPGA power up. It  
defines the 16 MB memory space location for the instruction-side  
memory interface. See Figure 3-13, page 164, and Figure 3-14, page 165,  
for register bit definitions.  
TIEISOCMDCRADDR[0:7]  
Virtex-II Pro Only  
This input bus defines the eight most significant bits of the ten-bit DCR  
address bus for the ISOCM DCR control registers. The two least  
significant bits are predefined in the ISOCM controller.  
For example, if TIEISOCMDCRADDR[0:7] = 00_0010_11, then:  
x The DCR address of ISINIT register = 00_0010_1100= 0x02C  
x The DCR address of ISFILL = 00_0010_1101= 0x02D  
x The DCR address of ISARC = 00_0010_1110= 0x02E  
x The DCR address of ISCNTL = 00_0010_1111= 0x02F  
TIEDCRADDR[0:5]  
Virtex-4 Only  
Input  
This input bus defines the six most significant bits of the 10-bit DCR  
address space for DCR control and status registersa for the OCM, APUb,  
and EMACc sub modules.  
For example, if TIEDCRADDR = 00_0001then:  
x
x
x
x
The DCR address of the ISINIT register = 00_0001_0000 =  
0x010  
The DCR address of the ISFILL register = 00_0001_0001 =  
0x011  
The DCR address of the ISARC register = 00_0001_0010 =  
0x012  
The DCR address of the ISCNTL register = 00_0001_0011 =  
0x013  
a. Refer to the “Device-Control Register Interfaces” section in Chapter 2 for more information.  
b. Refer to Chapter 4, “PowerPC 405 APU Controller” for more information.  
c. Refer to the Virtex-4 Ethernet Media Access Controller” manual for more information.  
154  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
ISOCM Output Ports  
Table 3-8 describes the instruction-side OCM (ISOCM) output ports.  
Table 3-8: ISOCM Output Ports  
Port  
ISOCMBRAMEN  
Direction  
Description  
Output  
This is a BRAM read enable from the ISOCM controller. This signal  
is asserted only for valid ISOCM instruction fetch cycles. For the  
fastest memory access applications, the BRAM enable input (EN)  
can be locally tied to a logic 1 level. BRAM power consumption can  
be reduced by connecting the BRAM enable input (EN) to the  
ISOCMBRAMEN signal. If the enable is not tied to a logic 1 level,  
a timing analysis must be run to verify that the design meets  
frequency of operation requirements.  
ISOCMBRAMRDABUS[8:28]  
ISOCMBRAMWRABUS[8:28]  
Output  
Output  
Read address from ISOCM to BRAM. These 21 outputs correspond  
to PPC405 address bits [8:28]. The read address bus is the path for  
instruction fetch operations. These 21 address bits corresponds to  
internal PPC405 address bits [8:28]. PPC405 address bits [0:7] are  
compared against the ISARC register contents, and if a match is  
decoded, further steps for instruction fetch are initiated  
Note: Optional. Used in dual-port BRAM interface designs only.  
In Virtex-II Pro, this bus provides the write address from the ISOCM  
to BRAM via a DCR-based access. The bus value is initially set to the  
value stored in the ISINIT register.  
In Virtex-4, this bus provides both a read and write address via  
DCR-based access. The bus value is initially set to the value stored  
in the ISINIT register.  
Note: Optional. Used in dual-port BRAM interface designs only.  
ISOCMBRAMWRDBUS[0:31]  
ISOCMBRAMODDWRITEEN  
Output  
Output  
This bus provides 32-bit write data from the ISOCM to BRAM via a  
DCR-based access. It is connected to both the even and odd banks of  
ISBRAM. It is initially set to the value stored in the ISFILL register.  
Note: Optional. Used in dual-port BRAM interface designs only.  
Write enable to qualify a valid write into a BRAM via a DCR-based  
access. This signal enables a write into a memory bank that contains  
odd instruction words, that are read back on  
BRAMISOCMRDDBUS[32:63].  
For Virtex-II Pro, connect this signal to both the Enable (EN) and  
Write Enable (WE) inputs of a dual-port ISBRAM port for power  
savings.  
For Virtex-4, connect ISOCMBRAMODDWRITEEN to the Write  
Enable (WE) input of a dual-port BRAM port and  
ISOCMDCRBRAMODDEN to the Enable (EN) input of the dual  
port ISBRAM.  
For single-port ISBRAM implementations, this signal can be left  
unconnected.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
155  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
Chapter 3: PowerPC 405 OCM Controller  
Table 3-8: ISOCM Output Ports (Continued)  
Port  
Direction  
Description  
Note: Optional. Used in dual-port BRAM interface designs only.  
ISOCMBRAMEVENWRITEEN  
Output  
Write enable to qualify a valid write into a block RAM via a DCR-  
based access. This signal enables a write into the 32-bit memory that  
contains even instruction words BRAMISOCMRDDBUS[0:31].  
For Virtex-II Pro, connect this signal to both the Enable (EN) and  
Write (WE) inputs of a dual-port ISBRAM port for power savings.  
For Virtex-4, connect this signal to Write (WE) inputs of a dual-port  
ISBRAM port and ISOCMDCRBRAMEVENEN to the Enable (EN)  
input of the dual-port ISBRAM port.  
For single-port ISBRAM implementations, this signal can be left  
unconnected.  
Note: Optional. Used in dual-port BRAM interface designs only.  
ISOCMDCRBRAMODDEN  
(Virtex-4 only)  
Output  
Output  
Output  
BRAM enable (odd bank) to qualify a valid read or write from a  
BRAM via a DCR-based access, in order to access odd instruction  
words.  
For Virtex-4, connect this signal to the Enable (EN) input of the dual-  
port ISBRAM port.  
Note: Optional. Used in dual-port BRAM interface designs only.  
ISOCMDCRBRAMEVENEN  
(Virtex-4 only)  
BRAM enable (even bank) to qualify a valid read or write from  
BRAM via a DCR-based access, in order to access even instruction  
words.  
For Virtex-4, connect this signal to the Enable (EN) input of the dual-  
port ISBRAM port.  
Note: Optional. Used in dual-port BRAM interface designs only.  
ISOCMDCRBRAMRDSELECT  
(Virtex-4 only)  
Since the DCR bus can only access 32-bit data and the ISOCM has a  
64-bit data bus, this output signal, driven by the ISOCM controller,  
must be used to select between even and odd instruction words  
using a multiplexer in the FPGA fabric. At logic 1, it selects the odd  
instruction word; at logic 0, it selects the even instruction word.  
156  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Figure 3-9 shows an example of an ISOCM-to-BRAM interface in Virtex-II Pro.  
Figure 3-10 shows an example of an ISOCM-to-BRAM interface in Virtex-4.  
(RAMB16S18S18) X 4  
(2 for Odd words, 2 for Even)  
ISOCMBRAMRDABUS[19:28]  
ADDRB[9:0]  
DOB[15:0]  
WEB  
BRAMISOCMRDDBUS[0:63]  
BRAMISOCMCLK  
ISOCMBRAMEN  
CLKB  
ENB*  
Global signals from FPGA  
system interface  
SSRB  
PORT B  
ISOCMBRAMWRABUS[19:28]  
ISOCMBRAMWRDBUS[0:31]  
ADDRA[13:4]  
DIA[15:0]  
WEA  
ISOCMBRAMODDWRITEEN  
ISOCMBRAMEVENWRITEEN  
ISCNTLVALUE[0:7]  
CLKA  
ISARCVALUE[0:7]  
ENA*  
SSRA  
TIEISOCMDCRADDR[0:7]  
(Virtex-II Pro Only)  
*ENA can be tied off  
permanently for higher  
performance.  
PORT A  
(BRAMISOCMCLK from DCM)  
UG018_49_112103  
Figure 3-9: ISOCM to BRAM Interface: 8 KByte Example in Virtex-II Pro  
PowerPC™ 405 Processor Block Reference Guide  
157  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 3: PowerPC 405 OCM Controller  
(RAMB16S18S18) X 4  
(2 for Odd words, 2 for Even)  
ISOCMBRAMRDABUS[19:28]  
BRAMISOCMRDDBUS[0:63]  
ADDRB[9:0]  
DOB[15:0]  
WEB  
BRAMISOCMCLK  
ISOCMBRAMEN  
CLKB  
ENB*  
Global signals from FPGA  
system interface  
SSRB  
PORT B  
ISOCMDCRBRAMRDSELECT  
ISOCMBRAMWRABUS[19:28]  
ISOCMBRAMWRDBUS[0:31]  
ADDRA[13:4]  
DIA[15:0]  
WEA  
ISOCMBRAMODDWRITEEN  
ISOCMBRAMEVENWRITEEN  
ISCNTLVALUE[0:7]  
CLKA  
ISARCVALUE[0:7]  
ENA*  
SSRA  
ISOCMDCRBRAMEVENEN  
ISOCMDCRBRAMODDEN  
*ENA can be tied off  
permanently for higher  
performance.  
DOA(odd)  
BRAMISOCMDCRRDBUS[0:31]  
DOA(even)  
PORT A  
(BRAMISOCMCLK from DCM)  
UG018_49b_042304  
Figure 3-10: ISOCM to BRAM Interface: 8 KByte Example in Virtex-4  
Note: See Table 3-8 for descriptions of the signals shown in Table 3-10, above.  
Programmer’s Model  
DCR Registers  
Application software has read and write access to the DCR control registers within the  
OCM controllers. Typically, mtdcrand mfdcrassembly language instructions are used to  
write and read respectively from these registers.  
Figure 3-11, page 162 and Figure 3-12, page 163 list the DCR control registers and the bit  
definitions for the DSOCM interface for Virtex-II Pro and Virtex-4. Figure 3-13, page 164  
and Figure 3-14, page 165 list the DCR control registers and the bit definitions for the  
ISOCM interface for Virtex-II Pro and Virtex-4.  
DSARC/ ISARC Registers  
The ISOCM and DSOCM interfaces provide DCR registers (DSARC & ISARC) which  
define the eight most significant (base) address bits of the ISOCM and DSOCM memory  
158  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
locations. These bits are decoded against PPC405 address bits 0:7. These eight most  
significant address bits permit the OCM controllers to reside independently in any 16 MB,  
non-cacheable, memory range within the PPC405 32bit address (4 GB) memory space  
The ISOCM and DSOCM hardware outputs a maximum of 22 address bits (data-side  
address bits [8:29] and instruction-side address bits [8:28]) to address memory contained in  
the FPGA fabric.  
DSCNTL Registers  
Table 3-9 and Table 3-10 describe the DSCNTL registers in Virtex-II Pro and Virtex-4  
devices. For additional information, refer to Figure 3-11, page 162 (Virtex-II Pro) and  
Table 3-9: DSCNTL Register for Virtex-II Pro  
Bit 0  
DSOCM Enable  
If set to 1, address decoding based on the value of DSARC will be  
enabled. If set to 0, the content in DSARC will be ignored.  
Bit 1  
DISABLEOPERANDFWD  
If set to 1, load data from the DSOCM goes directly into a latch in  
the processor block. This causes an additional cycle (a total of two  
cycles) of latency between a load instructions which is followed by  
an instruction that requires the load data as an operand.  
If set to 0, load data from the DSOCM/ must pass through steering  
logic before arriving at a latch. This causes a single cycle of latency  
between a load instruction which is followed by an instruction that  
requires the load data as an operand.  
Bit 2  
DSOCMBUSY  
This status bit can be used as a flag indicator to the FPGA fabric.  
This is an optional signal.  
Bit 3  
Reserved.  
This bit must be configured to 0.  
This bit must be configured to 0.  
Bit 4  
Reserved.  
Bit 5:7  
DSOCMMCM  
CPU Clock and DSOCM Clock ratio. For Virtex-II Pro users, users  
must setup the ratio in this field with valid clock ratios used in the  
application system. Then the processor gasket will issue  
appropriate transaction based on this ratio.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
159  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 3: PowerPC 405 OCM Controller  
Table 3-10: DSCNTL Register for Virtex-4  
Bit 0  
DSOCM Enable  
If set to 1, address decoding based on the value of DSARC will be  
enabled. If set to 0, the content in DSARC will be ignored.  
Bit 1  
DISABLEOPERANDFWD  
If set to 1, load data from the DSOCM goes directly into a latch in  
the processor block. This causes an additional cycle (a total of two  
cycles) of latency between a load instructions which is followed by  
an instruction that requires the load data as an operand.  
If set to 0, load data from the DSOCM/ must pass through steering  
logic before arriving at a latch. This causes a single cycle of latency  
between a load instruction which is followed by an instruction that  
requires the load data as an operand.  
Bit 2  
Bit 3  
DSOCMBUSY  
This status bit can be used as a flag indicator to the FPGA fabric.  
This is an optional signal.  
Enable Auto Clock Ratio  
Detection.  
If set to 1, automatic clock ratio detection circuits will be enabled  
and users do not need to setup the CPU Clock / DSOCM Clock ratio  
in DSCNTL[4:7]. Additionally, when DSOCMMCM is read back, the  
value of the auto-detected clock ratio is reflected in terms of the wait  
state value. If set to 0, automatic clock ration detection will be  
disabled and users need to setup CPU Clock/ DSOCM Clock ratio  
in DSCNTL[4:7]. This is an enhanced feature in Virtex-4 devices and  
we recommend setting this bit to 1.  
Bit 4:7  
DSOCMMCM  
CPU Clock and OCM Clock ratio. For Virtex-4 devices, if Auto  
Clock Ratio Detection is enabled users need not setup the ratio in  
this field. Users can also read back this field to determine the clock  
ratio detected by the circuits.  
If Auto Clock Ratio Detection is disabled, users need to setup the  
ratio in this field. Reading back from this field will return the  
content set by users previously.  
ISCNTL Registers  
Table 3-11 and Table 3-12 describe the ISCNTL registers in Virtex-II Pro and Virtex-4  
devices. For additional information, refer to Figure 3-13, page 164 (Virtex-II Pro) and  
Table 3-11: ISCNTL Register for Virtex-II Pro  
Bit 0  
ISOCM Enable  
If set to 1, address decoding based on the value of ISARC will be  
enabled. If set to 0, the content in ISARC will be ignored.  
Bit 1:4  
Bit 5:7  
Reserved.  
This bit must be configured to 0.  
ISOCMMCM  
CPU Clock and ISOCM Clock ratio. For Virtex-II Pro users, users  
must setup the ratio in this field with valid clock ratios used in the  
application system. Then the processor gasket will issue  
appropriate transactions based on this ratio.  
160  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Table 3-12: ISCNTL Register for Virtex-4  
Bit 0  
ISOCM Enable  
If set to 1, address decoding based on the value of ISARC will be  
enabled. If set to 0, the content in ISARC will be ignored.  
Bit 1  
Bit 2  
Reserved.  
This bit must be configured to 0.  
Enable DCR Based Read  
Back  
If this bit is set to 1, reading from ISFILL register using an mfdcr  
instruction will return the memory content addressed by ISINIT  
register. If this bit is set to 0, reading from ISFILL register using a  
“mfdcr” instruction will return the previous content of ISFILL  
register set by user. This is an enhanced feature in Virtex-4 devices.  
Bit 3  
Enable Auto Clock Ratio  
Detection  
If set to 1, automatic clock ratio detection circuits will be enabled  
and users do not need to setup the CPU Clock/ ISOCM Clock ratio  
in ISCNTL[4:7]. Additionally, when ISOCMMCM is read back, the  
value of the auto-detected clock ratio is reflected in terms of the wait  
state value.  
If set to 0, automatic clock ratio detection will be disabled and users  
need to setup CPU Clock / ISOCM Clock ratio in ISCNTL[4:7]. This  
is an enhanced feature in Virtex-4 devices, and we recommend  
setting this bit to 1.  
Bit 4:7  
ISOCMMCM  
CPU Clock and OCM Clock ratio. For Virtex-4 devices, if Auto  
Clock Ratio Detection is enabled users need not setup the ratio in  
this field. Users can also read back this field to determine the clock  
ratio detected by the circuits.  
If Auto Clock Ratio Detection is disabled, users need to setup the  
ratio in this field. Reading back from this field will return the  
content set by users previously.  
Features Introduced in Virtex-4 and Comparison with Virtex-II Pro  
In Virtex-4 an optional auto clock ratio detection feature was implemented on both the  
DSOCM and ISOCM. If bit 3 (Enable Auto Clock Ratio Detection) of the DSCNTL/ ISCNTL  
register(s) is 1, then auto clock ratio detection will take place. This is the recommended  
operation model for Virtex-4. Additionally, when DSOCMMCM/ ISOCMMCM is read  
back, the value of the auto-detected clock ratio is reflected in terms of the wait state value.  
In Virtex-II Pro, the OCM clock cycle modes are selected through the MULTICYCLEMODE  
control bits (DSOCMMCM and ISOCMMCM) in the DSCNTL and ISCNTL registers.  
Virtex-4 supports a maximum clock ratio of 8:1, and Virtex-II Pro supports a maximum  
clock ratio of 4:1. Therefore, Virtex-4 has one more control bit in both the ISOCMMCM and  
the DSOCMMCM registers.  
Another extended feature in Virtex-4 is the DCR-based read access to the ISOCM to  
support software debugging. To enable this feature, bit 2 of the ISCNTL register must be  
enabled.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
161  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 3: PowerPC 405 OCM Controller  
User Programmable Registers  
Allocated within DCR address space (Programmer's Model)  
8 bits: Address range compare for DSOCM memory space.  
They are also configurable via FPGA, through the DSARCVALUE  
inputs to the processor block.  
DSARC (DSOCM Address Range Compare Register)  
0
1
2
3
4
5
6
7
A0/P  
A1/P  
A2/P  
A3/P  
A4/P  
A5/P  
A6/P  
A7/P  
Note: The top 8 bits of the CPU address are compared with  
DSARC to provide a 16 MB logical address space for DSOCM  
block. OCM must be placed in a non-cacheable memory region.  
8 bits: Control Register for DSOCM. They are also configurable via  
FPGA, through the DSCNTLVALUE inputs to the processor block.  
DSCNTL (DCR Control Register)  
0
1
2
3
4
5
6
7
D0/P  
D1/P  
D2/P  
D3/P  
D4/P D5/P...  
D7/P  
(P indicates that this bit can be configured during FPGA power up)  
CPMC405CLOCK:  
BRAMDSOCMCLK  
Ratio  
DSOCMMCM[0:2]  
(1)  
Reserved  
000  
001  
010  
011  
100  
101  
110  
111  
N/A  
1:1  
N/A  
2:1  
N/A  
3:1  
N/A  
4:1  
(2)  
DSOCMBUSY  
(3)  
DISABLEOPERANDFWD  
(4)  
DSOCMEN  
Notes:  
1. Reserved bits; will read 0.  
2. See section "DSOCM Ports" in the text.  
3. DISABLEOPERANDFWD:  
When DISABLEOPERANDFWD is asserted, load data from the DSOCM  
goes directly into a latch in the processor block. This causes an additional  
cycle (a total of two cycles) of latency between a load instruction which  
is followed by an instruction that requires the load data as an operand.  
2n - 1  
where n = number of  
processor clocks in  
one BRAM clock cycle.  
Must be an integer.  
When DISABLEOPERANDFWD is not asserted, load data from the DSOCM  
must pass through steering logic before arriving at a latch. This causes a  
single cycle of latency between a load instruction which is followed by an  
instruction that requires the load data as an operand.  
4. DSOCMEN:  
Enables the DSOCM address decoder.  
UG018_46_042304  
Figure 3-11: DSOCM DCR Registers for Virtex-II Pro  
162  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
User Programmable Registers  
Allocated within DCR address space (Programmer's Model)  
8 bits: Address range compare for DSOCM memory space.  
They are also configurable via FPGA, through the DSARCVALUE  
inputs to the processor block.  
DSARC (DSOCM Address Range Compare Register)  
0
1
2
3
4
5
6
7
A0/P  
A1/P  
A2/P  
A3/P  
A4/P  
A5/P  
A6/P  
A7/P  
Note: The top 8 bits of the CPU address are compared with  
DSARC to provide a 16 MB logical address space for DSOCM  
block. OCM must be placed in a non-cacheable memory region.  
8 bits: Control Register for DSOCM. They are also configurable via  
FPGA, through the DSCNTLVALUE inputs to the processor block.  
DSCNTL (DCR Control Register)  
0
1
2
3
4
5
6
7
D0/P  
D1/P  
D2/P  
D3/P  
D4/P  
. . .  
D7/P  
[4:7] wait state register  
Legacy support for backward compatibility with Virtex-II Pro  
CPMC405CLOCK:  
BRAMDSOCMCLK  
Ratio  
DSOCMMCM[0:3]  
(1)  
Auto clock ratio detection  
0000  
0001  
0010  
0011  
0100  
0101  
0110  
0111  
1000  
1001  
1010  
1011  
1100  
1101  
1110  
1111  
Not supported  
1:1  
(2)  
DSOCMBUSY  
Not supported  
2:1  
(3)  
DISABLEOPERANDFWD  
Not supported  
3:1  
(4)  
Not supported  
4:1  
DSOCMEN  
Notes:  
1. Recommend 1 for auto clock ratio detection. Additionally, when DSOCMMCM  
is read back, the value of the auto-detected clock ratio is reflected in terms  
of the wait state value.  
Not supported  
5:1  
2. See section "DSOCM Ports" in the text.  
3. DISABLEOPERANDFWD:  
Not supported  
6:1  
When DISABLEOPERANDFWD is asserted, load data from the DSOCM  
goes directly into a latch in the processor block. This causes an additional  
cycle (a total of two cycles) of latency between a load instruction which  
is followed by an instruction that requires the load data as an operand.  
Not supported  
7:1  
When DISABLEOPERANDFWD is not asserted, load data from the DSOCM  
must pass through steering logic before arriving at a latch. This causes a  
single cycle of latency between a load instruction which is followed by an  
instruction that requires the load data as an operand.  
4. DSOCMEN:  
Not supported  
8:1  
Enables the DSOCM address decoder.  
2n - 1  
where n = number of  
processor clocks in  
one BRAM clock cycle.  
Must be an integer.  
UG018_46b_042304  
Figure 3-12: DSOCM DCR Registers for Virtex-4  
PowerPC™ 405 Processor Block Reference Guide  
163  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 3: PowerPC 405 OCM Controller  
User Programmable Registers  
Allocated within DCR address space (Programmer's Model)  
8 bits: Address range compare for ISOCM memory space.  
They are also configurable via FPGA, through the ISARCVALUE  
inputs to the processor block.  
ISARC (ISOCM Address Range Compare Register)  
0
1
2
3
4
5
6
7
A0/P  
A1/P  
A2/P  
A3/P  
A4/P  
A5/P  
A6/P  
A7/P  
Note: The top 8 bits of the CPU address are compared with  
ISARC to provide a 16 MB logical address space for ISOCM  
block. OCM must be placed in a non-cacheable memory region.  
8 bits: Control Register for ISOCM. They are also configurable via  
FPGA, through the ISCNTLVALUE inputs to the processor block.  
ISCNTL (ISOCM Control Register)  
0
1
2
3
4
5
6
7
D0/P D1/P...  
D4/P D5/P...  
D7/P  
(P indicates that this bit can be configured during FPGA power up)  
CPMC405CLOCK:  
BRAMISOCMCLK  
Ratio  
ISOCMMCM[0:2]  
(1)  
Reserved  
000  
001  
010  
011  
100  
101  
110  
111  
N/A  
1:1  
N/A  
2:1  
N/A  
3:1  
N/A  
4:1  
(2)  
ISOCMEN  
Notes:  
1. Reserved bits; will read 0.  
2. ISOCMEN:  
Enables the ISOCM address decoder.  
2n - 1  
where n = number of  
processor clocks in  
one OCM clock cycle.  
Must be an integer.  
UG018_47_042304  
Figure 3-13: ISOCM DCR Registers for Virtex-II Pro  
164  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
User Programmable Registers  
Allocated within DCR address space (Programmer's Model)  
8 bits: Address range compare for ISOCM memory space.  
They are also configurable via FPGA, through the ISARCVALUE  
inputs to the processor block.  
ISARC (ISOCM Address Range Compare Register)  
0
1
2
3
4
5
6
7
A0/P  
A1/P  
A2/P  
A3/P  
A4/P  
A5/P  
A6/P  
A7/P  
Note: The top 8 bits of the CPU address are compared with  
ISARC to provide a 16 MB logical address space for ISOCM  
block. OCM must be placed in a non-cacheable memory region.  
8 bits: Control Register for ISOCM. They are also configurable via  
FPGA, through the ISCNTLVALUE inputs to the processor block.  
ISCNTL (ISOCM Control Register)  
0
1
2
3
4
5
6
7
D0/P D1/P... D2/P  
D3/P  
D4/P  
. . .  
D7/P  
[4:7] wait state register  
Legacy support for backward compatibility with Virtex-II Pro  
CPMC405CLOCK:  
BRAMDSOCMCLK  
Ratio  
ISOCMMCM[0:3]  
(1)  
Auto clock ratio detection  
0000  
0001  
0010  
0011  
0100  
0101  
0110  
0111  
1000  
1001  
1010  
1011  
1100  
1101  
1110  
1111  
Not supported  
1:1  
(2)  
Enable DCR based readback  
Not supported  
2:1  
(3)  
Reserved  
Not supported  
3:1  
(4)  
Not supported  
4:1  
ISOCMEN  
Notes:  
1. Recommend 1 for auto clock ratio detection. Additionally, when ISOCMMCM  
is read back, the value of the auto-detected clock ratio is reflected in terms  
of the wait state value.  
2. 1 = Enable DCR based readback; this also affects ISINIT readback bit order.  
0 = Disable DCR based readback  
Not supported  
5:1  
Not supported  
6:1  
3. Reserved bits must be configured to 0.  
4. ISOCMEN:  
Enables the ISOCM address decoder.  
Not supported  
7:1  
Not supported  
8:1  
2n - 1  
where n = number of  
processor clocks in  
one OCM clock cycle.  
Must be an integer.  
UG018_47b_051204  
Figure 3-14: ISOCM DCR Registers for Virtex-4  
The following section describes the DCR bit mapping during read/ write operations on the  
ISINIT and ISFILL registers.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
165  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 3: PowerPC 405 OCM Controller  
DCR Write Access  
As shown in Figure 3-15, ISINIT is a 22-bit register (A8-A29) that is mapped to DCR write  
data bus bits D8-D29. The write address on the memory interface is A8-A28, and address  
bit A29 is used to control the ISOCMBRAMODDWRITEEN and  
ISOCMBRAMEVENWRITEEN signals. Additionally, in Virtex-4, the  
ISOCMDCRBRAMEVENEN and ISOCMDCRBRAMODDEN signals can be used to select  
the corresponding BRAMs in which to write. Each time register ISFILL is written, there is  
one 32-bit instruction written into the BRAM (odd or even, depending on the value of  
address bit A29).  
ISINIT (ISOCM Initialization Address)  
Write Data on DCRDBUS  
Content in ISINIT Register  
D 8  
D 9  
. . . .  
. . . .  
D 27  
D 28  
D 29  
Bit 8  
Bit 9  
Bit 27 Bit 28 Bit 29  
Map to physical address bus to ISBRAM  
ISOCMBRAMWRABUS[ 8:28 ]  
A 8  
A 9  
. . . .  
A 27  
A 28  
A 29  
Bits 8 to 28 of the ISINIT register value maps to the 21 bit initialization address for ISOCMBRAMWRABUS [8:28].  
The address represented by A8 to A29 is increased by 1 for every write into the ISFILL register.  
In Virtex-II Pro, Bit 29 is used to interface to the processor block to generate the ISOCMBRAMEVENWRITEEN and  
ISOCMBRAMODDWRITEEN outputs. In Virtex-4, this bit also controls ISOCMDCRBRAMEVENEN and  
ISOCMDCRBRAMMODDEN signals. This allows separate control of the BRAMEN signal for odd and even BRAMs.  
ISFILL (ISOCM Fill Data Register)  
Write Data on DCRDBUS  
Content in ISFILL Register  
D 0  
D 1  
. . . .  
. . . .  
D 28  
D 29  
D 30  
D 31  
Bit 0  
Bit 1  
Bit 28 Bit 29 Bit 30 Bit 31  
Map to physical write data bus to ISBRAM  
ISOCMBRAMWRDBUS[ 0:31 ]  
D 0  
D 1  
. . . .  
D 28  
D 29  
D 30  
D 31  
32 bits ISFILL register value for ISOCM, used to send instructions via DCR into ISOCM memory space.  
UG018_68_051204  
Figure 3-15: ISOCM: ISINIT and ISFILL Descriptions (Write Access) for Virtex-II Pro and Virtex-4  
166  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
DCR Read Access  
If the ISINIT register is read back on the DCR:  
x
For Virtex-II Pro, bits A8-A29 are mapped onto DCR read data bus bits D0-D21 as  
shown in Figure 3-16, please note that the mapping for read access is different from  
write.  
x
For Virtex-4, if bit 2 of ISENTL is set to 1, bits A8-A29 are mapped onto DCR read bus  
bits D8-D29, as shown in Figure 3-17. This helps to eliminate bit shifting in software  
for further operation on the DCR read value of the ISINIT register. The read address  
on the memory interface is A8 to A28. Address bit A29 is used to control the  
ISOCMDCRBRAMEVENEN and ISOCMDCRBRAMODDEN signals. Each time  
register ISFILL is written, there is one 32-bit instruction written into the BRAM (odd  
or even, depending on the value of address bit A29). Otherwise, if bit 2 of ISCNTL is  
set to 0, ISINIT is mapped the same way as it is in Virtex-II Pro during DCR read.  
If the ISFILL register is read back on the DCR:  
x
For Virtex-II Pro, the current content stored in the ISFILL register will be returned as  
DCR read data. The actual content of ISOCM addressed by the ISINIT register will not  
be loaded.  
x
For Virtex-4, if the DCR-Based Read Back feature is enabled (bit 2 of ISCNTL in  
Virtex-4 is set to 1), the actual content of ISOCM addressed by ISINIT register will be  
loaded, otherwise, the current content stored in the ISFILL register will be returned as  
DCR read data.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
167  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 3: PowerPC 405 OCM Controller  
ISINIT (ISOCM Initialization Address)  
Read Data on DCRDBUS  
Content in ISINIT Register  
D 0  
D 1  
. . . .  
. . . .  
D 19  
D 20  
D 21  
Bit 8  
Bit 9  
Bit 27 Bit 28 Bit 29  
Map to physical address bus to ISBRAM  
ISOCMBRAMWRABUS[ 8:28 ]  
A 8  
A 9  
. . . .  
A 27  
A 28  
A 29  
Bit 0 to Bit 21 ISINIT register value maps to 21 bit initialization address for ISOCMBRAMWRABUS [ 8:28 ].  
This address is incremented by 1 for every write into ISFILL register.  
Bit 29 is used to interface to the processor block to generate the ISOCMBRAMEVENWRITEEN and  
ISOCMBRAMODDWRITEEN outputs.  
ISFILL (ISOCM Fill Data Register)  
Read Data on DCRDBUS  
Content in ISFILL Register  
D 0  
D 1  
. . . .  
. . . .  
D 28  
D 29  
D 30  
D 31  
Bit 0  
Bit 1  
Bit 28 Bit 29 Bit 30 Bit 31  
Map to physical write data bus to ISBRAM  
ISOCMBRAMWRDBUS[ 0:31 ]  
D 0  
D 1  
. . . .  
D 28  
D 29  
D 30  
D 31  
32 bits ISFILL register value for ISOCM, used to send instructions via DCR into ISOCM memory space  
UG018_69_042304  
Figure 3-16: ISOCM: ISINIT and ISFILL Descriptions (Read Access) for Virtex II-Pro  
168  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
ISINIT (ISOCM Initialization Address)  
Read Data on DCRDBUS  
Content in ISINIT Register  
D 8  
D 9  
. . . .  
. . . .  
D 27  
D 28  
D 29  
Bit 8  
Bit 9  
Bit 27 Bit 28 Bit 29  
Map to physical address bus to ISBRAM  
ISOCMBRAMWRABUS[ 8:28 ]  
A 8  
A 9  
. . . .  
A 27  
A 28  
A 29  
Bit 8 to Bit 28 of ISINIT register value maps to 21 bit initialization address for ISOCMBRAMWRABUS [ 8:28 ].  
The address represented by A8 to A29 is increased by 1 for every write into the ISFILL register.  
Bit 29 of ISINIT register is used to interface to the processor block to generate the ISOCMBRAMEVENWRITEEN/  
ISOCMBRAMODDWRITEEN, and ISOCMDCRBRAMEVENEN/ISOCMDCRBRAMODDEN outputs.  
ISFILL (ISOCM Fill Data Register)  
Read Data on DCRBUS  
D 0  
D 1  
. . . .  
. . . .  
D 28  
D 29  
D 30  
D 31  
Content in ISFILL Register  
Bit 0  
Bit 1  
Bit 28 Bit 29 Bit 30 Bit 31  
Map from physical read data bus to ISBRAM  
BRAMISOCMDCRRDBUS[ 0:31 ]  
D 1  
D 2  
. . . .  
D 28  
D 29  
D 30  
D 31  
UG018_69b_051204  
Note: DCR-based readback requires that the Readback bit (ISCNTL[2]) is enabled.  
Figure 3-17: ISOCM: ISINIT and ISFILL Descriptions (Read Access), for Virtex-4  
BRAMs that interface with the ISOCM controller can also be initialized through the  
configuration bit-stream, during FPGA configuration. The Data2MEM software utility in  
the design flow tools can be used to load ISBRAM and DSBRAM with instructions and  
data respectively.  
Timing Specification for Fixed Latency (Virtex-4 and Virtex-II Pro)  
The single-cycle and multi-cycle operation modes are designed to guarantee a certain  
performance level by the OCM controllers, assuming a certain processor frequency and  
quantity of BRAMs. As additional BRAMs are added to a design, the processor clock  
frequency must be reduced or wait states must be added in the processor block to insure  
that the OCM interface operates correctly. When the processor and OCM controller clocks  
operate at integer multiples of each other, wait cycles are automatically added inside the  
processor block. The processor core and OCM controllers must be aligned on rising edges  
of their respective clocks.  
The frequency of the OCM to BRAM interface is determined by running the design  
through the Xilinx design implementation tools and performing timing analysis on the  
interface. The interface timing is dependent upon the BRAM memory organization, signal  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
169  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 3: PowerPC 405 OCM Controller  
routing delays, signal loading, BRAM memory access time, clock to output times, and  
setup and hold times of the BRAM and processor blocks. Users may need to go through  
multiple iterations of evaluating OCM BRAM size versus OCM clock frequency in order to  
achieve the optimum performance.  
The clock ratio between the BRAM clock and the PPC405 is auto-detected in Virtex-4 when  
control register bit 3 is set to 1 (DSCNTL and ISCNTL). For Virtex-II Pro, bits 5 to 7 are used  
to set the clock ratio. Refer to the “Programmer's Model” section for further details.  
Single-Cycle Mode  
In single-cycle mode, the CPU core, OCM controllers, and BRAMs all run at the same clock  
speed. Typically, the processor runs at a slower speed than its maximum specified  
operating frequency, in order to match the speed of the OCM to BRAM interface. The  
processor frequency must always be reduced when operating in single cycle mode, even  
when using the smallest supported configuration of DSBRAMs or ISBRAMs.  
Multi-Cycle Mode  
Multi-cycle mode permits the processor to run at its maximum specified operating  
frequency. Based upon application specific timing analysis, the clock frequency for the  
OCM controllers and attached BRAMs is reduced to an integer multiple of the processor  
clock. Wait states are inserted between each instruction fetch, data load, or data store  
transaction, internal to the processor block. The transactions start and end on rising clock  
edges of the processor clock and the OCM clock. The Digital Clock Manager (DCM) should  
be used to generate the clocks for the CPU core, OCM controllers, DSBRAMs, and  
ISBRAMs. Additionally, an identical clock must be applied to an OCM controller (DSOCM  
or ISOCM) and its corresponding BRAMs for any mode described above. Each controller  
(DSOCM or ISOCM) can be clocked at a frequency independent of the other.  
ISOCM Instruction Fetching  
The figures below show two back to back instruction fetches for single-cycle mode  
(Figure 3-18) and multi-cycle mode with CPMC405CLOCK:BRAMISOCMCLK ratio of 2:1  
(Figure 3-19). Note that for both single-cycle and multi-cycle mode, the maximum  
sustainable instruction fetch rate is one instruction per BRAMISOCMCLK period. For  
designs that utilize other integer clock ratios, note that the rising edge of the  
BRAMISOCMCLK defines the bus cycle, as the timing diagram illustrates.  
In single-cycle mode the very first instruction fetch requires four processor clock cycles to  
complete. The processor core can launch a new address, called “back-to-back operation,”  
as soon as the first address is latched into the OCM controller interface, which is internal to  
the processor block. The initial access consists of the following sequences:  
1. The CPU launches the instruction fetch address.  
2. The OCM controller translates the CPU order and routes the address and control  
signals onto the ISOCM bus.  
3. One wait state is introduced to permit the synchronous BRAM to access the data.  
4. The CPU stores the data.  
170  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
ISOCM 1:1 Instruction Fetch Timing  
CPMC405Clock  
BRAMISOCMCLK  
Load Address  
L_addr_1  
L_addr_2  
L_addr_3  
L_addr_4  
(To BRAM)  
Read Data  
(From BRAM)  
Rd_data_1  
Rd_data_2  
Rd_data_3  
Rd_data_4  
UG018_60_030603  
Figure 3-18: Instruction Fetch Timing  
In multi-cycle mode, initial wait cycles are inserted until the CPMC405CLOCK and  
BRAMISOCMCLK rising edges are aligned. After the initial startup latency, two  
instructions (64 bits) can be fetched every two BRAM clock cycles. If a branch instruction is  
taken, the instruction pipeline must be flushed, and the startup latency will again be  
encountered beginning with a new instruction address.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
171  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 3: PowerPC 405 OCM Controller  
In order to estimate the theoretical maximum number of instruction fetches per second on  
the OCM interface, measure the period of the BRAM clock cycle to determine the  
maximum throughput.  
ISOCM 2:1 Instruction Fetch Timing  
CPMC405Clock  
BRAMISOCMCLK  
Load Address  
L_addr_1  
L_addr_2  
(To BRAM)  
Read Data  
(From BRAM)  
Rd_data_1  
Rd_data_2  
UG018_61_030603  
Figure 3-19: Multi-Cycle Mode (2:1) Instruction Fetch Timing  
In the figures above, L_addr_n refers to the OCM controller address outputs  
ISOCMBRAMRDADDR and Rd_data_n refers to the OCM controller instruction data bus  
inputs BRAMISOCMRDDBUS from the ISBRAM.  
Writing to ISBRAM  
There are two methods used to write to the instruction side memory. Typically, the BRAM  
is initialized in the device configuration bitstream. The Data2MEM software utility in the  
design implementation tools is used to load BRAM with instructions as well as data. If the  
application code is static, this eliminates the need to use the DCR based writes through the  
ISOCM controller.  
Write accesses to the ISOCM-attached memory can be performed using the DCR bus. The  
DCR ISINIT register is first initialized with a start address, then every DCR write to the  
ISFILL register results in a write into BRAM. The least significant bit of the ISINIT register  
is used to control the initial state of the odd and even write enable outputs of the ISOCM.  
Every write to the ISFILL register causes the ISOCMBRAMEVENWRITEEN and  
ISOCMBRAMODDWRITEEN processor block outputs to toggle. The BRAMISOCMCLK  
clock is the same for both read and write operations.  
All of the read and write interface signals must be included in determining the maximum  
frequency of operation for the OCM interface. These signals include write address, write  
data, read address, read data and write enable interface signals. Figure 3-20 and  
Figure 3-21 show the timing diagrams for a write to instruction memory in single-cycle  
172  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
mode and multi-cycle Mode. The timing interface between the OCM controller and the  
memory is always with respect to the BRAMISOCMCLK.  
ISOCM 1:1 Write Timing  
CPMC405Clock  
BRAMISOCMCLK  
Clock to Valid  
Addr Out  
BRAM latches in data  
Write Address  
(To BRAM)  
W_addr  
W_data  
Clock to Valid  
Data Out  
Write Data  
(To BRAM)  
Clock to Valid  
Write Enable  
(To BRAM)  
OddWriteEn or EvenWriteEn  
UG018_66_030603  
Figure 3-20: Single Cycle Mode (1:1) ISOCM Write Timing  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
173  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 3: PowerPC 405 OCM Controller  
ISOCM 2:1 Write Timing  
CPMC405Clock  
BRAMISOCMCLK  
Clock to Valid  
Addr Out  
BRAM latches in data  
Write Address  
(To BRAM)  
W_addr  
W_data  
Clock to Valid  
Data Out  
Write Data  
(To BRAM)  
Clock to Valid  
Write Enable  
(To BRAM)  
OddWriteEn or EvenWriteEn  
UG018_67_030603  
Figure 3-21: Multi Cycle Mode (2:1) ISOCM Write Timing  
DSOCM Data Load, Fixed Latency  
Figure 3-22 and Figure 3-23 show two back-to-back loads for single-cycle mode and multi-  
cycle mode with a CPMC405CLOCK:BRAMDSOCMCLK ratio of 2:1. Note that for both  
single cycle and multi-cycle mode, the maximum sustainable load completion is one load  
per two BRAMDSOCMCLK periods.  
In single-cycle mode, the first load requires four processor clock cycles to complete. The  
processor core can launch a new address, called back-to-back operation, as soon as the first  
address is latched into the OCM controller interface, which is internal to the processor  
block. The initial access consists of the following sequence:  
1. The CPU launches the load address.  
2. The OCM controller translates the CPU order and routes the address and control  
signals onto the DSOCM bus.  
3. One wait state is introduced to permit the synchronous BRAM to access the data.  
4. The CPU stores the data into a general-purpose register.  
174  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
DSOCM 1:1 Data Load Timing  
CPMC405Clock  
BRAMDSOCMCLK  
Load Address  
L_addr_1  
L_addr_2  
L_addr_3  
L_addr_4  
(To BRAM)  
Read Data  
(From BRAM)  
Rd_data_1  
Rd_data_2  
Rd_data_3  
Rd_data_4  
UG018_62_030603  
Figure 3-22: Single Cycle Mode (1:1) Data Load Timing  
In multi-cycle mode, initial wait cycles are inserted until the CPMC405CLOCK and  
BRAMDSOCMCLK rising edges are aligned. After the initial startup latency, one load (32  
bits) can be completed every two BRAMDSOCMCLK clock cycles. So, in order to estimate  
the theoretical maximum number of loads per second on the OCM interface, the period of  
the BRAM clock should be used to establish throughput. Note that this is only an estimate  
for load performance.  
DSOCM 2:1 Data Load Timing  
CPMC405Clock  
BRAMDSOCMCLK  
Load Address  
(To BRAM)  
L_addr_1  
L_addr_2  
Read Data  
(From BRAM)  
Rd_data_1  
Rd_data_2  
UG018_63_030603  
Figure 3-23: Multi Cycle Mode (2:1) Data Load Timing  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
175  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 3: PowerPC 405 OCM Controller  
In the figures above, L_addr_n refers to the OCM controller address outputs  
DSOCMBRAMRDADDR and Rd_data_n refers to the OCM controller data bus inputs  
BRAMDSOCMRDDBUS from the DSBRAMs  
DSOCM Store, Fixed Latency  
Figure 3-24 and Figure 3-25 below show two back-to-back stores for single-cycle mode and  
multi-cycle mode with a CPMC405CLOCK:BRAMDSOCMCLK ratio of 2:1. Note that for  
both single cycle and multi-cycle mode, the maximum sustainable store completion is one  
store per two BRAMDSOCMCLK periods.  
In single-cycle mode the first store requires three processor clock cycles to complete. The  
processor core can launch a new address, called back-to-back operation, as soon as the first  
address is latched into the OCM controller interface, which is internal to the processor  
block. The initial access consists of the following sequence:  
1. The CPU launches the store address.  
2. The OCM controller translates the CPU order and routes the address, data, and control  
signals onto the DSOCM bus.  
3. The BRAM stores the data.  
DSOCM 1:1 Data Store Timing  
CPMC405Clock  
BRAMDSOCMCLK  
Store Address  
S_addr_1  
S_addr_2  
St_data_2  
S_addr_3  
St_data_3  
S_addr_4  
St_data_4  
(To BRAM)  
Write Data  
(To BRAM)  
St_data_1  
UG018_64_040403  
Figure 3-24: Single Cycle Mode (1:1) Data Store Timing  
In multi-cycle mode, initial wait cycles are inserted until the CPMC405CLOCK and  
BRAMDSOCMCLK rising edges are aligned.  
After the initial startup latency, one store (32 bits) can be completed every two BRAM clock  
cycles, or one store per two BRAMDSOCMCLK clock cycles. In order to estimate the  
absolute maximum number of stores per second on the OCM interface, the BRAM clock  
176  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
period should be used. Note that this is only an estimate of store performance on the  
interface.  
DSOCM 2:1 Data Store Timing  
CPMC405Clock  
BRAMDSOCMCLK  
Store Address  
(To BRAM)  
S_addr_1  
St_data_1  
S_addr_2  
St_data_2  
Write Data  
(To BRAM)  
UG018_65_040403  
Figure 3-25: Multi Cycle Mode (2:1) Data Store Timing  
In the figures above, S_addr_n refers to the OCM controller address outputs  
DSOCMBRAMWRADDR and St_data_n refers to the OCM controller data bus outputs  
BRAMDSOCMWRDBUS to the DSBRAMs.  
Timing Specification for Variable Latency (Virtex-4 DSOCM  
Controller Only)  
In Virtex-4, the DSOCM controller supports variable latency bus operations, which  
provides the flexibility to attach one or more memory-mapped slave peripherals to the  
interface. The variable latency feature allows the FPGA fabric interface to take multiple  
clocks (BRAMDSOCMCLK) before a load or store operation can be completed. This allows  
different slave peripheral devices to respond based on the applications requirement and  
not based on a pre-defined number of BRAMDSOCM clock cycles. Both the DSOCM  
controller and the slave peripheral attached to the OCM still run at the BRAMDSOCMCLK  
frequency.  
A new completion signal, DSOCMRWCOMPLETE, is introduced in Virtex-4. This signal  
must be driven by the DSOCM memory-mapped slave peripheral. For a list of use models  
and applications, see “References”.  
As in Virtex-II Pro, the PPC405 and DSOCM controller would still operate in either a 1:1  
clock ratio (single-cycle mode) or N:1 clock ratio (multi-cycle mode, where N=2 to 8. The  
following sections show examples of load and store instructions, in both single-cycle mode  
and multi-cycle mode.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
177  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 3: PowerPC 405 OCM Controller  
DSOCM Data Load, Variable Latency  
Figure 3-26 and Figure 3-27 show two load operations with variable latency for single cycle  
mode and multi-cycle mode with a CPMC405CLOCK:BRAMDSOCMCLK ratio of 2:1.  
In both single-cycle mode and multi-cycle mode, the data load operation consists of the  
following sequence:  
1. The CPU launches the load request to the OCM controller.  
2. The OCM controller translates the CPU order, routes the address, and asserts all of the  
necessary control signals.  
Note: Read control signals (DSOCMBRAMEN, DSOCMRDADDRVALID) are active for only  
one BRAMDSOCMCLK cycle and must be registered in the FPGA fabric if they are required for  
further processing.  
Note: DSOCMRDADDRVALID indicates a valid read address on the DSOCMRDABUS.  
DSOCMBRAMEN is also asserted for both read or write requests. However, one can choose to  
ignore this signal if the design does not use BRAMs.  
3. The slave waits for multiple BRAMDSOCMCLK cycles–the number of clock cycles  
depends on the application–and then asserts DSOCMRWCOMPLETE, which must be  
accompanied by valid read data.  
4. The DSOCM controller sees the completion signal (DSOCMRWCOMPLETE) and  
latches the read data driven by the slave on BRAMDSOCMRDDBUS.  
5. The DSOCM controller forwards the data back to the PPC405.  
DSOCM 1:1 Data Load Timing (Variable latency, DSOCMRDWRCOMPLETE driven by OCM slaves)  
CPMC405Clock  
BRAMDSOCMCLK  
Load Address  
(To BRAM or Slave)  
L_addr_1  
L_addr_2  
next valid  
Both DSOCMBRAMEN and  
DSOCMRDADDRVALID  
as rd addr valid  
Read addr  
valid  
(To BRAM or Slave)  
Read Data  
(From BRAM or Slave)  
Rd_data_1  
complete  
Rd_data_2  
complete  
Read Complete  
(From BRAM or Slave)  
UG018_62c_112103  
Figure 3-26: Single Cycle Mode (1:1) DSOCM Read Variable Latency for Virtex-4  
178  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
DSOCM 2:1 Data Store Timing (Variable latency, DSOCMRDWRCOMPLETE driven by OCM slaves)  
CPMC405Clock  
BRAMDSOCMCLK  
Load Address  
L_addr_1  
L_addr_2  
next valid  
(To BRAM or Slave)  
Both DSOCMBRAMEN and  
DSOCMRDADDRVALID  
as rd addr valid  
rd addr  
Read addr  
valid  
(To BRAM or Slave)  
Read Data  
(To BRAM or Slave)  
Rd_data_1  
complete  
Rd_data_2  
Read Complete  
(From BRAM or Slave)  
complete  
UG018_63c_112103  
Figure 3-27: Multi Cycle Mode (2:1) DSOCM Read Variable Latency Virtex-4  
DSOCM Data Store, Variable Latency  
Figure 3-28 and Figure 3-29 show two store operations with variable latency for single-  
cycle mode and for multi-cycle mode with a CPMC405CLOCK:BRAMDSOCMCLK ratio  
of 2:1.  
In both single-cycle mode and multi-cycle mode, the access consists of the following  
sequence:  
1. The CPU launches the store request to the OCM controller.  
2. The OCM controller translates the CPU order, routes address and write data, and  
asserts all of the necessary output control signals.  
Note: Write control signals (DSOCMWRADDRVALID, DSOCMBRAMEN,  
DSOCMBRAMBYTEWRITE) are active for only one BRAMDSOCMCLK cycle and must be  
registered in the FPGA fabric if they are required for further processing.  
Note: DSOCMBRAMBYTEWRITE indicates a valid write address and write data on the  
DSOCMWRABUS. The DSOCMBRAMEN is also asserted for both read or write requests.  
However, one can choose to ignore this signal if the design does not use BRAMs.  
3. The slave waits for multiple BRAMDSOCMCLK cycles (the number of clock cycles  
depends on the application) and then asserts DSOCMRWCOMPLETE, which signifies  
a completion of write data store.  
4. The DSOCM controller sees the completion signal (DSOCMRWCOMPLETE) and  
allows the internal state machine to move forward for the next request on the DSOCM  
bus.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
179  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 3: PowerPC 405 OCM Controller  
DSOCM 1:1 Data Store Timing (Variable latency, DSOCMRDWRCOMPLETE driven by OCM slaves)  
CPMC405Clock  
BRAMDSOCMCLK  
DSOCMBRAMBYTEWRITE[0:3]  
(To BRAM or Slave)  
Byte_wr_1  
Byte_wr_2  
S_addr_2  
Store Address  
(To BRAM or Slave)  
S_addr_1  
Write Data  
(To BRAM or Slave)  
St_data_1  
St_data_2  
next valid  
DSOCMWRADDRVALID  
valid  
(To BRAM or Slave)  
Write Complete  
(From BRAM or Slave)  
complete  
complete  
UG018_64c_120803  
Figure 3-28: Single Cycle Mode (1:1) DSOCM Write Variable Latency Virtex-4  
DSOCM 2:1 Data Store Timing (Variable latency, DSOCMRDWRCOMPLETE driven by OCM slaves)  
CPMC405Clock  
BRAMDSOCMCLK  
DSOCMBRAMBYTEWRITE[0:3]  
(To BRAM or Slave)  
Byte_wr_1  
S_addr_1  
St_data_1  
valid  
Byte_wr_2  
S_addr_2  
St_data_2  
next valid  
Store Address  
(To BRAM or Slave)  
Write Data  
(To BRAM or Slave)  
DSOCMWRADDRVALID  
(To BRAM or Slave)  
Write Complete  
(From BRAM or Slave)  
complete  
complete  
UG018_65c_120803  
Figure 3-29: Multi Cycle Mode (1:2) DSOCM Write Variable Latency Virtex-4  
180  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Application Notes and Reference Designs  
Xilinx provides several application notes and reference designs utilizing the OCM  
controllers. Design examples include:  
x
x
Booting the PPC405 from on-chip memory.  
Using the dual port feature of the DSOCM in eight, sixteen and thirty-two bit fabric  
interfaces  
x
A comparison of PLB versus OCM performance using a software example.  
For Virtex-II Pro the following application notes and reference designs are available from  
x
x
XAPP644: “PLB vs. OCM Comparison Using the Packet Processor Software”  
XAPP660: “Partial Reconfiguration of RocketIO Pre-emphasis and Differential Swing  
Control Attributes”  
x
x
x
XAPP669: “PPC405 PPE Reference System Using Virtex-II Pro RocketIO Transceivers”  
XAPP672: “The UltraController Solution: A Lightweight PowerPC Microcontroller”  
XAPP699:“A Software UART for the UltraController GPIO Interface”  
References  
x
x
x
Virtex-II Pro Platform FPGA Handbook  
Virtex-4 Platform FPGA Handbook  
PowerPC Processor Reference Guide  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
181  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 3: PowerPC 405 OCM Controller  
182  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Chapter 4  
PowerPC 405 APU Controller  
This chapter only applies to the PowerPC 405 in the Virtex-4-FX family and covers the  
following topics:  
x
x
x
x
Note: The Auxiliary Processor Unit (APU) Controller is not available in the Virtex-II Pro family.  
Introduction  
The Auxiliary Processor Unit (APU) Controller allows the designer to extend the native  
PowerPC 405 instruction set with custom instructions that are executed by an FPGA Fabric  
Co-processor Module (FCM). This enables a much tighter integration between an  
application-specific function and the processor pipeline than is possible using, for  
example, a bus peripheral. Figure 4-1 shows the pipeline flow between the PowerPC 405  
Core, the APU Controller, and the Fabric Co-processor Module.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
183  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Chapter 4: PowerPC 405 APU Controller  
Virtex4 FX PowerPC405 block  
PowerPC405 core APU Controller  
Fabric Co-processor Module  
(FCM)  
Decode_Stage  
Decode  
Instruction  
APUC_Decode  
FCM_Decode  
FCM_Exe_Unit  
Execute_Stage  
Exe_Unit  
Operands  
Result  
LoadData  
Writeback_Stage  
LoadWB_Stage  
load_reg  
UG018_04_01_040904  
Figure 4-1: Pipeline Flow Diagram  
The APU Controller serves two purposes: It performs clock domain synchronization  
between the fast PowerPC clock and the slow FCM interface clock, and it can be configured  
to decode certain FCM instructions. Depending on the FCM application, the APU  
Controller can decode all instructions or no instructions at all, or decode some while the  
FCM decodes others. A floating point unit (FPU) is an example of a good FCM candidate.  
In the case of an FCM FPU, the APU Controller is capable of decoding all PowerPC floating  
point instructions.  
The FCM interface is a Xilinx adaptation of the native Auxiliary Processor Unit interface  
implemented on the IBM processor core. The hard core APU Controller bridges the  
PowerPC 405 APU interface and the external FCM interface.  
FCM Instruction Processing  
FCM instruction decoding can be done by the APU Controller or by the FCM, however, all  
instruction execution is done in the FCM. There are two types of instructions that can be  
executed by an FCM: pre-defined and user-defined (UDI). A pre-defined instruction has its  
format defined by the PowerPC instruction set (for example, floating point), and the FCM  
is simply a co-processor performing the ISA-defined execution. A user-defined instruction  
184  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
has a configurable format and is a true extension of the PowerPC instruction set  
architecture (ISA).  
Enabling the APU Controller  
The PowerPC MSR register must be configured before the processor can use the APU  
controller. Table 4-1 describes the APU controller-related bits in the MSR.  
Table 4-1: APU Controller-Related MSR Bits  
Bit(s) in MSR  
Description  
APU present (1=true, 0=false)  
6
12  
Enable APU exception (1=true, 0=false)  
FCM floating point unit present (1=true, 0=false)  
Floating point exception mode (FE0,FE1):  
18  
(20,23)  
x (0,0) Ignore FP exceptions  
x (1,0) Imprecise recoverable mode  
x (0,1) Imprecise non-recoverable mode  
x (1,1) Precise mode  
Instruction Classes  
The ISA extensions to the PowerPC are defined by their interaction with the normal  
processor pipeline execution. This leads to three different instruction classes: autonomous,  
non-autonomous blocking, and non-autonomous non-blocking.  
Autonomous Instructions  
Instructions in the autonomous class do not stall the pipeline of the PowerPC. They are  
typically fire-and-forget type instructions that are not expected to return any state (for  
example, overflow) or data to the processor pipeline. An example is a user-defined  
UDI_FCM_Readinstruction (1), where an FCM register is loaded with the contents of one of  
the PowerPC GPR registers without returning any data to the processor. Although  
autonomous instructions do not stall execution of native instructions, they can stall  
execution of subsequent FCM instructions in case the FCM is not done with an earlier  
instruction.  
Non-autonomous Instructions  
A non-autonomous instruction will stall normal instruction execution in the PowerPC  
pipeline until the FCM instruction is done. This is typical for instructions that are expected  
to return some state (e.g. overflow) or data to the PowerPC. For example a user-defined  
UDI_FCM_Write instruction that takes data from the FCM and writes it to a PowerPC  
GPR location.  
1. Note that this would not be the same as the “Load” instructions that operate on the storage hierarchy, such as  
caches, OCM, or PLB.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
185  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Chapter 4: PowerPC 405 APU Controller  
Blocking Instructions  
Any non-autonomous instruction that cannot be predictably aborted and later re-issued  
must be blocking. During execution of a blocking instruction, all interrupts and exceptions  
to the PowerPC are blocked, so as not to prevent it from completing. This is, for example,  
true of the UDI_FCM_Writeinstruction if the source of the data is a FIFO inside the FCM. If  
aborted after the FIFO pointer has been changed, but before the data has been stored in the  
PowerPC register file, such instruction could not be re-issued predictably.  
Non-blocking Instructions  
Any non-autonomous instruction that can be aborted and predictably re-issued later can  
be defined as non-blocking. A non-blocking instruction allows the processor to terminate  
the FCM execution, service interrupts and exceptions, and subsequently re-issue the  
terminated instruction, with predictable results. If we replace the FIFO in the blocking  
example above with a traditional random access memory, the aborted UDI_FCM_Write  
instruction could be predictably re-issued (with no remaining side-effects associated with  
a FIFO read pointer).  
Instruction Format  
All FCM instructions conform to the general format shown in Figure 4-2.  
Primary Op-code  
RT  
RA  
RB  
Extended Op-code  
21 31  
0
6
11  
16  
UG018_04_2a_051204  
Figure 4-2: FCM Instruction Format  
Generally speaking, the Power PC uses both primary and extended op codes to identify  
potential FCM instructions. The op codes are decoded by the APU Controller or the FCM  
to identify uniquely the specific FCM instruction. For all pre-defined instructions, the RA  
and RB fields specify operand registers, and the RT field the target register. User-defined  
instructions (UDI) can be configured to interpret these bit fields as, for instance, immediate  
values instead.  
The primary and secondary op-codes shown in Table 4-2 can be used as APU instructions:  
Table 4-2: APU Op-codes  
Primary Op-code  
Extended Op-code  
0b00000000000  
Description  
0 (= 0b000000)  
Illegal  
all except above  
Available for UDIa that do  
not set PPC405(CR) bits  
4 (= 0b000100)  
0b------1--0-  
0b1----000110  
MAcc and Xilinx reserved  
Available for UDIs that  
need to set PPC405(CR) bits  
all except above  
Available for UDIs that do  
not set PPC405(CR) bits  
186  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Table 4-2: APU Op-codes (Continued)  
Primary Op-code  
Extended Op-code  
Description  
31 (= 0b011111)  
0b-----001110  
Pre-defined FCM  
Load/ Store  
0b-111-010-1-  
0b-----------  
FCM integer divide  
(= 0b110---)b  
32 (= 0b011111)  
59 (= 0b111011)  
62 (= 0b111110)  
63 (= 0b111111)  
Pre-defined FPU  
Load/ Store  
0b1----1-111-  
0b-----------  
0b--------1--  
0b----------  
Pre-defined FPU  
Load/ Store  
Pre-defined PowerPC FPU  
instructions  
Pre-defined FPU  
Load/ Store  
Pre-defined PowerPC FPU  
instructions  
a. User-defined Instruction. For details refer to the “APU Controller User-Defined Instruction Decoding”  
section of this chapter.  
b. In this case, the first three bits are defined and the last three will change depending on the FPU  
instruction.  
Instruction Decoding  
FCM instructions can be decoded either by the APU Controller or by the FCM itself.  
APU Controller decoding benefits from the higher clock frequencies possible inside the  
hard core. This results in a minimum of latency overhead in the decode stage, improving  
overall performance. The APU Controller can decode two types of FCM instructions: pre-  
defined instructions that are hard coded in the APU Controller and a limited number of  
user-defined instructions.  
FCM decoding, although slower than its counterpart, allows many more user-defined  
instructions to be implemented.  
APU Controller Pre-Defined Instruction Decoding  
Two types of pre-defined instructions can be decoded by the APU Controller: Floating  
point and FCM Load/ Store.  
Floating Point Instructions  
The APU Controller can be enabled to decode all PowerPC floating-point instructions. In  
addition to this, three groups of floating point instructions can be selectively disabled: the  
complex arithmetic, conversion, and estimates groups.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
187  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Chapter 4: PowerPC 405 APU Controller  
Complex Arithmetic Group  
x
x
fdiv  
x
x
fdivs  
x
x
fsqrt  
x
x
fsqrts  
fdiv.  
fdivs.  
fsqrt.  
fsqrts.  
Conversion Group  
x
x
fcfid  
fctid  
x
x
fctidz  
fctiw  
x
x
fctiw.  
fctiwz  
x
fctiwz.  
Estimates Group  
fres  
x
x
fres.  
x
frsqrte  
x
frsqrte.  
The decoded instructions require an FCM floating point unit to be used. FPU instructions  
that return results to the PowerPC will default to execute as non-autonomous, non-  
blocking. All other FPU instructions default to execute as autonomous. The user can force  
FPU instructions to be non-blocking in an APU Controller configuration register.  
Note: While the APU controller decodes these instructions, the FCM has to decode them  
independently for its own execution. The APU can send the 32-bit instruction, but it cannot tell the  
FCM which FPU instruction it decoded.  
FCM Load/Store Instructions  
FCM Load/ Store instructions transfer data between the PowerPCs data memory system  
(D-Cache or DSPLB/ DSOCM addressable memory) and the Fabric Co-processor Module  
(FCM). An FCM Load transfers data from a memory location to a destination register in the  
FCM and vice-versa for an FCM Store. All Load/ Store instructions are of indexed format,  
that is, RA stores the base address and RB the offset.  
FCM Load/ Store should not be confused with user-defined FCM read/ write instructions.  
A user-defined FCM read that transfers data from the PowerPC to the FCM will access data  
from the PowerPC GPR operand registers not from DSOCM or DSPLB memory. The same  
is true for a user-defined FCM write instruction.  
The FCM Load and Store instructions behave somewhat differently in comparison with  
other FCM instructions. In a way, they are semi-autonomous because the PowerPC CPU is  
responsible for performing the necessary memory access involved. That is, the processor  
pipeline is executing, but it is executing a memory access related to the Load/ Store  
instruction. Since FCM Store instructions can be flushed by the processor, the APU  
Controller is responsible for signalling the FCM when it is safe to commit internal state  
changes.  
For details regarding instruction flushing refer to the “FCM Instruction Flushing” section  
of this chapter.  
Note: While the APU controller decodes Load/Store instructions, the FCM has to decode them  
independently for its own execution. The APU can send the 32-bit instruction, but it cannot tell the  
FCM which FPU instruction it decoded.  
188  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
The extended op-code for Load/ Store operations are described in Table 4-3.  
Table 4-3: Load/Store Extended Op-code  
Field  
Bit position  
Description  
U
21  
Update: If 1 then load RA with effective address:  
RA <- (RA| 0)+(RB)  
W[0:2]  
(22,24:25)  
0b000 = Byte  
0b001 = Half-word  
0b010 = Word  
0b-11 = Quad-word  
0b100 = Double-word  
0b101,0b110 = illegal  
L/ S  
-
23  
0 = Load  
1 = Store  
(26:31)  
hard coded 0b001110  
APU Controller Load/ Store instruction decoding can be disabled in the APU Controller  
configuration register.  
The PowerPC405 native VMX instructions are a subset of the supported FCM Load/ Store  
instructions.  
APU Controller User-Defined Instruction Decoding  
In addition to the pre-defined instructions described previously, the user can also define  
up to eight custom instructions to be decoded by the APU Controller. The instructions  
conform to the same standard FCM format presented earlier, however, the interpretation of  
the RA, RB, and RT fields are up to the FCM. The UDI interaction with the PowerPC405  
pipeline is defined in the APU Controller UDI configuration registers. When there are user  
instructions being decoded by the APU, the FCM will receive the bit-encoded UDI register  
number that was decoded (along with the 32-bit instruction). For details refer to the “APU  
Controller Configuration” section in this chapter.  
FCM Pre-Defined Instruction Decoding  
There is one group of pre-defined PowerPC instructions that can be configured to be  
decoded in the FCM: integer divide instructions.  
Integer Divide Instructions  
The PowerPC integer divide instruction constitutes a special case. While it would normally  
be executed in the PowerPC natively (consuming 35 cycles), the APU Controller can be  
configured to give the FCM ownership of decoding and executing integer divide  
instructions (listed below). See the section “APU Controller Configuration,” page 191, for  
details on enabling the FCM divide.  
x
x
x
x
divduo  
divw  
x
x
x
x
divwo.  
divwu  
x
divwuo.  
x
x
x
d
ivd  
divdo  
divdu  
divw.  
divwo  
divwu.  
divwuo  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
189  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Chapter 4: PowerPC 405 APU Controller  
FCM User-Defined Instruction Decoding  
User-defined instructions that are not recognized (i.e., decoded) by the APU Controller are  
passed to the FCM for decoding in fabric logic. While this allows for more custom  
instructions than the eight APU Controller decoded UDIs to be defined, additional  
instructions come at an execution speed penalty. Decoding in the FCM is not as efficient as  
in the APU Controller.  
FCM decoded UDI instructions adhere to the same configuration rules as those decoded  
by the APU Controller.  
FCM Exceptions  
The FCM can signal an exception (FCMAPUEXCEPTION) to the APU Controller while  
executing blocking and non-blocking instructions. This causes (1) the APU Controller to  
flush the FCM instruction (see “FCM Instruction Flushing”) and (2) the PowerPC to launch  
the appropriate exception handler, provided the PowerPC MSR enables APU exceptions  
To execute the exception routine, the PowerPC saves the return program counter in its  
SSR0 register and the current value of MSR in the SSR1 register. The exception vector used  
for FCM exceptions is 0x700. When an exception occurs during the execution of a floating  
point instruction, bit 12 in the PowerPC ESR register is asserted. For exceptions during all  
other types of instructions, bit 13 in the ESR is asserted instead.  
To return from the exception the FCM must provide the processor some way to strike  
down the FCMAPUEXCEPTION signal from the exception handler. This could be done  
using, for example, a UDI or an external DCR bus access.  
FCM Instruction Flushing  
The APU Controller can request that an FCM instruction be flushed under certain  
circumstances. If this happens, the FCM must be able to re-issue the same instruction  
without corrupting its internal state. For each FCM instruction, the APU Controller signals  
when the point-of-no-return has been reached (APUFCMWRITEBACKOK asserted), after  
which no flush can be done. The conditions under which APUFCMWRITEBACKOK  
asserts are as follows:  
x
The instruction is a non-blocking, multi-cycle operation and is currently in the last  
cycle of execution (two FCM clock cycles after FCMAPUDONE asserted).  
x
The instruction is a Blocking or Autonomous multi-cycle in the first cycle of execution  
(same cycle as APUFCMOPERANDVALID is asserted).  
x
x
Executing an FCM Load and the last word is in the PowerPC LoadWB stage.  
Executing an FCM Store with the APU Controller configuration register bit  
StoreWBOK set, and return data has been committed to the PowerPC WriteBack  
stage.  
If the APU Controller configuration register bit StoreWBOK is not set, the  
APUFCMWRITEBACKOK will not be asserted when a Store is executed.  
Execution Hazards  
The APU Controller ensures that there are no data or structural hazards with regard to the  
PowerPC405 pipeline execution.  
190  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
       
R
FCM internal data hazards such as read-after-write (RAW) and write-after-write (WAW)  
are eliminated if the designer ensures that all FCM instructions complete in order. This can  
be done conservatively by asserting FCMAPUDONE only after each instruction has  
completed. This is, however, incompatible with execution pipelining. A pipelined FCM  
must handle all possible hazards internally.  
APU Controller Configuration  
General Configuration Register  
The general configuration register defines the APU Controllers behavior. The register is 32  
bits wide. Individual bits are described in Table 4-4. For reset values, refer to Table 4-10,  
Table 4-4: APU Controller Configuration Register Bit Description  
Name  
RstUDICfg  
Bit  
Description  
0
Reset the UDI configuration registers by loading  
attribute interface signals (TIEAPUUDIn).  
Reset the APU Controller Configuration register by  
loading TIEAPUCONTROL.  
-
(1:4)  
5
Not used.  
LdStDecDis  
Disable Load/ Store instruction decoding only in  
APU Controller.  
UDIDecDis  
6
Disable UDI instruction decoding in APU Controller.  
This bit also disables load store instruction decoding.  
ForceUDINonB  
FPUDecDis  
7
Force all UDI instructions to execute as if Non-  
Blocking.  
8
Disable FPU instruction decoding in APU  
Controller.  
FPUCArithDis  
FPUConvIDis  
FPUEstimIDis  
9
Disable decoding of FPU complex arithmetic  
instruction group (see “Floating Point Instructions”).  
10  
11  
Disable decoding of FPU conversion instruction  
Disable decoding of FPU estimation instruction  
-
(12:14)  
15  
Not used.  
ForceFPUNonB  
Force all FPU instructions to execute as if they are  
non-blocking.  
StoreWBOK  
16  
Enable generation of the APUFCMWRITEBACKOK  
signal for FCM Store operations (see “FCM  
LdStPrivOp  
-
17  
Execute Load/ Store operations only in priviliged  
mode.  
(18:19)  
Not used.  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
191  
     
R
Chapter 4: PowerPC 405 APU Controller  
Table 4-4: APU Controller Configuration Register Bit Description (Continued)  
Name  
ForceAlign  
Bit  
Description  
20  
21  
Force word alignment for FCM Load/ Store data.  
Forces two least significant address bits to 0.  
LETrap  
BETrap  
BESteer  
Enable little-endian Traps for FCM Load/ Store. If  
FCM expects big-endian and the accessed memory is  
little-endian (APUFCMENDIAN=1), an alignment  
exception will be cast.  
22  
Enable big-endian Traps for FCM Load/ Store. If  
FCM expects little-endian and the accessed memory  
is big-endian (APUFCMENDIAN=0), an alignment  
exception will be cast.  
23  
24  
Forces big-endian steering of FCMAPURESULT for  
FCM Store. PowerPC internally byte-flips little-  
endian results.  
APUDiv  
-
Perform PPC integer divide operations in FCM.  
Not used.  
(25:30)  
31  
FCMEn  
Enable FCM usage.  
UDI Configuration Registers  
The APU Controller includes eight UDI configuration registers. This allows the user to  
define as many custom instructions and have them decoded in the fast APU Controller,  
rather than out in the slower FCM. The 32-bit-wide registers define the PowerPC related  
behavior of the UDI execution. The individual bits are described in Table 4-5.  
Table 4-5: UDI Configuration Register Bit Description  
Name  
Bit  
Description  
PriOpCodeSel  
0
Select primary op-code for instruction:  
0b0 select 0 (= 0b000000)  
0b1 select 4 (= 0b000100)  
ExtOpCode  
PrivOp  
(1:11)  
12  
Extended op-code of instruction.  
Execute only in priviliged mode.  
Requires operand from GPR(RA).  
Requires operand from GPR(RB).  
Write back result to GPR(RT) .  
Enable return of overflow status.  
Enable return of carry status.  
RaEn  
13  
RbEn  
14  
GPRWrite  
XerOVEn  
XerCAEn  
CRFieldEn  
15  
16  
17  
(18:20)  
Select which field in the PowerPC CR the instruction  
should affect (only applies to UDI op-codes that can set  
CR bits, see table Table 4-2, page 186).  
192  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
   
R
Table 4-5: UDI Configuration Register Bit Description (Continued)  
Name  
Bit  
Description  
-
(21:25)  
(26:27)  
Hard coded 0b0000.  
Type  
Instruction class definition, and reserved DCR use:  
0b00 = Blocking  
0b01 = Non-blocking  
0b10 = Autonomous  
0b11 = reserved for UDI register selection for DCR read  
DCRRegPtr  
UDIEn  
(28:30)  
31  
reserved for DCR UDI register addressing (see “DCR  
Enable APU Controller decoding of this UDI  
configuration.  
The reset value of the individual UDI registers can be defined using attribute inputs to the  
APU Controller. For details see the “APU Controller Attributes” section in this chapter.  
DCR Access to the Configuration Registers  
The APU Controller general configuration register has its own DCR address and can be  
read and written using normal DCR accesses. Refer to the section “Internal Device Control  
The eight UDI registers share a single DCR address for accessing. A UDI register pointer  
allows individual access to the different registers.  
When performing a DCR write to the UDI configuration register address, the DCRRegPtr  
field of the write data is used to select which UDI register to write, that is, if DCRRegPtr=3,  
then the DCR write will affect the configuration register associated with UDI number 3.  
For this DCR write operation, the Type filed should be one of the following: autonomous,  
blocking or non-blocking.  
A DCR read from the UDI configuration register address uses a 3-bit read pointer register  
in the APU Controller to select which specific UDI configuration to return. This pointer  
auto-increments after each DCR read operation. To load the read pointer with a specific  
value, the user must perform a “ghost” write to the UDI configuration DCR address. This  
write will not affect the contents of any UDI configuration registers, only the read pointer.  
The data used for a “ghost” write has two significant fields: the Type field and the  
DCRRegPtr field. All other data fields are ignored. The Type field must be set to 0b11, and  
the DCRRegPtr should be set to the desired read pointer value. A DCR read performed to  
the UDI configuration address after such “ghost” write will return the contents of the  
desired UDI configuration register.  
Interface Definition  
The tables below describe all I/ O ports related to the APU Controller. They connect the  
APU Controller in the PowerPC 405 block to the FCM in the FPGA fabric. The naming  
convention implies the direction of the data flow: “APUFCM” signifies “from APU  
Controller to FCM”, and “FCMAPU” represents “from FCM to APU Controller” .  
PowerPC™ 405 Processor Block Reference Guide  
193  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 4: PowerPC 405 APU Controller  
APU Controller Input Signals  
All APU Controller input signals should be synchronized on the FCM clock  
(CPMFCMCLK).  
Table 4-6: FCM Interface Input Signals  
Signal  
Function  
FCMAPUINSTRACK  
Valid instruction decoded in FCM. Must be asserted the first cycle in  
which FCMAPUDECODEBUSY is low, after APUFCMINSTRVALID  
has been asserted. All instruction decode signals from the FCM to APU  
Controller must be valid when asserted. If the instruction is decoded by  
the APU Controller, there is no need to send this signal; it is ignored.  
FCMAPURESULT[0:31]  
FCMAPUDONE  
FCM execution result being passed to the CPU through the APU  
Controller.  
Indicates the completion of the instruction in the FCM to the APU  
Controller. In the case of an autonomous instruction, FCMAPUDONE  
simply means that the FCM can receive another instruction.  
FCMAPUSLEEPNOTREADY  
FCMAPUDECODEBUSY  
Indicates to the APU Controller that the FCM is still executing. It is used  
to determine when the CPU is allowed to enter sleep mode.  
Allows FCM to do a multi-cycle instruction decode before returning  
FCMAPUINSTRACK. Two modes: with or without instruction hold. If  
this signal is low when APUFCMINSTRVALID asserts, the  
APUFCMINSTRUCTION data is only valid for that cycle; if, on the  
other hand, FCMAPUBUSYDECODE is high then  
APUFCMINSTRUCTION is held until FCMAPUDECODEBUSY is  
lowered.  
FCMAPUDCDGPRWRITE  
FCMAPUDCDRAEN  
FCM decoded instruction must write back to the GPR.  
FCM decoded instruction need data from GPR(Ra).  
FCM decoded instruction need data from GPR(Rb).  
FCM decoded instruction executes in privileged mode.  
FCM decoded load/ store instruction with forced word alignment.  
FCM decoded instruction returns overflow status.  
FCM decoded instruction returns carry status.  
FCMAPUDCDRBEN  
FCMAPUDCDPRIVOP  
FCMAPUDCDFORCEALIGN  
FCMAPUDCDXEROVEN  
FCMAPUDCDXERCAEN  
FCMAPUDCDCREN  
FCM decoded instruction sets condition register (CR) bits.  
FCMAPUEXECRFIELD[0:2]  
FCM decoded instruction selects which of the eight PowerPC CR field  
to update: 0=CR0, 1=CR1, etc.  
FCMAPUDCDLOAD  
FCMAPUDCDSTORE  
FCMAPUDCDUPDATE  
FCM decoded load instruction.  
FCM decoded store instruction.  
FCM decoded load/ store instruction should update Ra with effective  
address.  
FCMAPUDCDLDSTBYTE  
FCMAPUDCDLDSTHW  
FCM decoded load/ store instruction does byte transfer.  
FCM decoded load/ store instruction does half word transfer.  
194  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                                       
R
Table 4-6: FCM Interface Input Signals (Continued)  
Signal  
Function  
FCMAPUDCDLDSTWD  
FCMAPUDCDLDSTDW  
FCMAPUDCDLDSTQW  
FCMAPUDCDTRAPLE  
FCM decoded load/ store instruction does word transfer.  
FCM decoded load/ store instruction does double word transfer.  
FCM decoded load/ store instruction does quad word transfer.  
FCM decoded load/ store instruction will cause alignment exception if  
the storage Endian attribute is 1b1.  
FCMAPUDCDTRAPBE  
FCM decoded load/ store instruction will cause alignment exception if  
the storage Endian attribute is 1b0.  
FCMAPUDCDFORCEBESTEERING  
FCMAPUFPUOP  
FCM decoded store instruction will force Big-Endian steering.  
FCM decoded FPU instruction.  
FCMAPUEXEBLOCKINGMCO  
FCMAPUEXENONBLOCKINGMCO  
FCM decoded instruction for multi cycle operation of blocking class.  
FCM decoded instruction for multi cycle operation of non-blocking  
class.  
FCMAPULOADWAIT  
FCM is not yet ready to receive next load data.  
FCMAPURESULTVALID  
Values on the FCMAPURESULT[0:31], FCMAPUXEROV,  
FCMAPUXERCA and FCMAPUCR[0:3] are valid.  
FCMAPUXEROV  
FCMAPUXERCA  
FCMAPUCR[0:3]  
FCM execution overflow status bit.  
FCM execution carry status bit.  
Condition result bits to set in the PowerPC CR field selected by  
FCMAPUEXECRFIELD:  
x Bit 0 = set LT-bit, meaning result is less than zero  
x Bit 1 = set GT-bit, meaning result is greater than 0  
x Bit 2 = set EQ-bit, meaning result is zero  
x Bit 3 = set SO-bit, meaning Summary Overflow  
FCMAPUEXCEPTION  
FCM generate program exception on the processor (vector 0x0700).  
Exception must be enabled by processor to trap.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
195  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                             
R
Chapter 4: PowerPC 405 APU Controller  
APU Controller Output Signals  
All APU Controller output signals are synchronous with the FCM clock (CPMFCMCLK).  
Table 4-7: FCM Interface Output Signals  
Signal  
Function  
APUFCMINSTRUCTION[0:31]  
Instruction being presented to the FCM. Is valid as long as  
APUFCMINSTRVALID is high.  
APUFCMINSTRVALID  
This signal is asserted on two conditions:  
x A valid APU instruction was decoded by the APU Controller  
x An undecoded instruction passed to FCM for decoding  
The signal will remain high for one FCM clock cycle, unless  
FCMAPUDECODEBUSY is high when it asserts. In that case it stays  
high until FCMAPUDECODEBUSY goes low.  
APUFCMRADATA[0:31]  
APUFCMRBDATA[0:31]  
APUFCMOPERANDVALID  
APUFCMFLUSH  
Instruction operand from GPR(RA).  
Instruction operand from GPR(RB).  
Instruction operand valid.  
Flush APU instruction in the FCM. If asserted no  
APUFCMWRITEBACKOK signal will be generated  
APUFCMWRITEBACKOK  
Safe for FCM to commit internal state change; the APU Controller can  
no longer flush the instruction.  
In normal cases, this signal is asserted for one FCM clock cycle. In some  
cases when a non-blocking multi-cycle operation is followed by an  
autonomous or blocking multi-cycle operation while using a large clock  
ratio, the signal may be asserted for two back-to-back FCM clock cycles.  
APUFCMLOADDATA[0:31]  
APUFCMLOADDVALID  
Data word loaded from storage to the APU register file.  
When asserted the data word on the APUFCMLOADDATA[0:31] data  
bus is valid.  
APUFCMLOADBYTEEN[0:3]  
APUFCMENDIAN  
Specifies the valid bytes for the word on the load data bus  
APUFCMLOADDATA[0:31].  
When asserted, the load/ store instruction being presented to the FCM  
has true little-endian storage attribute.  
APUFCMXERCA  
Reflects the XerCA bit used for extended arithmetic.  
APUFCMDECODED  
Asserted when the APU Controller decoded the instruction being sent  
to the FCM.  
APUFCMDECUDI[0:2]  
Specifies which UDI the APU Controller decoded (binary encoded).  
Valid signals for APUFCMDECUDI.  
APUFCMDECUDIVALID  
196  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                               
R
APU Controller Attributes  
The following input signals are used as reset values for the APU Controller configuration  
registers. The reset values can be over-written using DCR. For details see the “APU  
Controller Configuration” section in this chapter.  
Table 4-8: APU Controller Attributes  
Attribute Signal  
TIEAPUUDI1[0:23]  
TIEAPUUDI2[0:23]  
TIEAPUUDI3[0:23]  
TIEAPUUDI4[0:23]  
TIEAPUUDI5[0:23]  
TIEAPUUDI6[0:23]  
TIEAPUUDI7[0:23]  
TIEAPUUDI8[0:23]  
TIEAPUCONTROL[0:15]  
Function  
Reset value for UDI register 1.  
Reset value for UDI register 2.  
Reset value for UDI register 3.  
Reset value for UDI register 4.  
Reset value for UDI register 5.  
Reset value for UDI register 6.  
Reset value for UDI register 7.  
Reset value for UDI register 8.  
Reset values for the APU control register.  
Table 4-9: Bit Map Between TIEAPUUDIn and UDI Configuration Registers  
UDI Configuration Field  
PriOpCodeSel  
ExtOpCode  
PrivOp  
TIEAPUUDI Bits  
0
(1:11)  
12  
RaEn  
13  
RbEn  
14  
GPRWrite  
XerOVEn  
XerCAEn  
CRFieldEn  
Type  
15  
16  
17  
(18:20)  
(21:22)  
23  
UDIEn  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
197  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
                   
R
Chapter 4: PowerPC 405 APU Controller  
Table 4-10: Bit Map Between TIEAPUCONTROL and APU Configuration Register  
APU Controller  
TIEAPUCONTROL Bits  
Configuration Field  
LdStDecDis  
UDIDecDis  
ForceUDINonB  
FPUDecDis  
FPUCArithDis  
FPUConvIDis  
FPUEstimIDis  
ForceFPUNonB  
StoreWBOK  
LdStPrivOp  
ForceAlign  
LETrap  
0
1
2
3
4
5
6
7
8
9
10  
11  
12  
13  
14  
15  
BETrap  
BESteer  
APUDiv  
FCMEn  
198  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
FCM Interface Timing Specification  
Autonomous Transactions  
CPMFCMCLK  
APUFCMINSTRUCTION  
APUFCMINSTRVALID  
APUFCMDECODED  
APUFCMDECUDI[0:2]  
APUFCMDECUDIVALID  
APUFCMRADATA/  
APUFCMRBDATA  
APUFCMOPERANDVALID  
FCMAPUDONE  
APUFCMWRITEBACKOK  
FCMAPUSLEEPNOTREADY  
UG018_04_02_042304  
Figure 4-3: APU Controller Decoded Autonomous Transaction Example  
Note: Actual timing results may vary from those shown in Figure 4-3. For example, the instruction  
and operands can be valid on the same FCM clock cycle, or they can be many cycles apart.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
199  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Chapter 4: PowerPC 405 APU Controller  
CPMFCMCLK  
APUFCMINSTRUCTION  
APUFCMINSTRVALID  
FCMAPUINSTRACK  
FCMAPUOPTIONS  
APUFCMRADATA/  
APUFCMRBDATA  
APUFCMOPERANDVALID  
FCMAPUDONE  
APUFCMWRITEBACKOK  
FCMAPUSLEEPNOTREADY  
UG018_04_03_032504  
Figure 4-4: FCM Decoded Autonomous Transaction Example  
Note: Actual timing results may vary from those shown in Figure 4-4. For example, the operands  
could come later than shown.  
200  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Blocking Transactions  
CPMFCMCLK  
APUFCMINSTRUCTION  
APUFCMINSTRVALID  
FCMAPUINSTRACK  
FCMAPUOPTIONS  
APUFCMRADATA/  
APUFCMRBDATA  
APUFCMOPERANDVALID  
FCMAPURESULT  
FCMAPUDONE/  
FCMAPURESULTVALID  
APUFCMWRITEBACKOK  
FCMAPUSLEEPNOTREADY  
UG018_04_04_032504  
Figure 4-5: FCM Decoded Blocking Transaction Example  
Note: Actual timing results may vary from those shown in Figure 4-5. For example, the operands  
could come later than shown.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
201  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 4: PowerPC 405 APU Controller  
Non-Blocking Transactions  
CPMFCMCLK  
APUFCMINSTRUCTION  
APUFCMINSTRVALID  
APUFCMDECODED  
APUFCMRADATA/  
APUFCMRBDATA  
APUFCMOPERANDVALID  
FCMAPURESULT  
FCMAPUDONE/  
FCMAPURESULTVALID  
APUFCMWRITEBACKOK  
FCMAPUSLEEPNOTREADY  
UG018_04_05_032504  
Figure 4-6: APU Controller Decoded Non-Blocking Transaction Example  
Note: Actual timing results may vary from those shown in Figure 4-6. For example, the operands  
could come later than shown.  
202  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
FCM Load Instruction  
CPMFCMCLK  
APUFCMINSTRUCTION  
APUFCMINSTRVALID  
APUFCMDECODED  
APUFCMLOADDATA  
APUFCMLOADDVALID  
FCMAPUDONE  
APUFCMWRITEBACKOK  
FCMAPUSLEEPNOTREADY  
UG018_04_06_042304  
Figure 4-7: APU Controller Decoded Load Instruction Example  
Note: Load data can arrive at the same time as the instruction or at a later clock cycle than shown  
in Figure 4-7.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
203  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
Chapter 4: PowerPC 405 APU Controller  
CPMFCMCLK  
APUFCMINSTRUCTION  
APUFCMINSTRVALID  
APUFCMDECODED  
APUFCMLOADDATA  
APUFCMLOADDVALID  
FCMAPUDONE  
word0  
word1  
FCMAPULOADWAIT  
FCMAPUSLEEPNOTREADY  
UG018_04_07_042304  
Figure 4-8: APU Controller Decoded a Double Word Load Instruction with LoadWait Example  
Note: Load data can arrive at the same time as the instruction or at a later clock cycle than shown  
in Figure 4-8. Also, load data might not be sent back-to-back. Users should look at the valid signal.  
FCM Store Instruction  
CPMFCMCLK  
APUFCMINSTRUCTION  
APUFCMINSTRVALID  
APUFCMDECODED  
FCMAPURESULT  
FCMAPUDONE  
FCMAPUSLEEPNOTREADY  
UG018_04_08_032504  
Figure 4-9: APU Controller Decoded Store Instruction  
204  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
   
R
CPMFCMCLK  
APUFCMINSTRUCTION  
APUFCMINSTRVALID  
APUFCMDECODED  
FCMAPURESULT  
FCMAPUDONE  
APUFCMWRITEBACKOK  
FCMAPUSLEEPNOTREADY  
UG018_04_09_032504  
Figure 4-10: APU Controller Decoded Store Instruction with StoreWBOK=1  
FCM Exception  
CPMFCMCLK  
APUFCMINSTRUCTION  
APUFCMINSTRVALID  
APUFCMRADATA/  
APUFCMRBDATA  
APUFCMOPERANDVALID  
FCMAPUEXCEPTION  
APUFCMFLUSH  
UG018_04_10_032504  
Figure 4-11: FCM Exception  
Note: FCMAPUEXEPTION may be sent at any time during the execution of a non-autonomous  
instruction.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
205  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Chapter 4: PowerPC 405 APU Controller  
FCM Decoding Using Decode Busy Signal  
CPMFCMCLK  
APUFCMINSTRUCTION  
APUFCMINSTRVALID  
FCMAPUDECODEBUSY  
FCMAPUOPTIONS  
FCMAPUINSTRACK  
UG018_04_11_032504  
Figure 4-12: FCM Decode Asserting DecodeBusy  
CPMFCMCLK  
APUFCMINSTRUCTION  
APUFCMINSTRVALID  
FCMAPUDECODEBUSY  
FCMAPUOPTIONS  
FCMAPUINSTRACK  
UG018_04_12_042304  
Figure 4-13: FCM Deasserting DecodeBusy  
206  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Appendix A  
RISCWatch and RISCTrace Interfaces  
This appendix summarizes the interface requirements between the PowerPC 405 and the  
RISCWatch and RISCTrace tools.  
The requirement for separate JTAG and trace connectors is being replaced with a single  
Mictor connector to improve the electrical and mechanical characteristics of the interface.  
Pin assignments for the Mictor connector are included in the signal-mapping tables.  
RISCWatch Interface  
The RISCWatch tool communicates with the PowerPC 405 using the JTAG and debug  
interfaces. It requires a 16-pin, male 2x8 header connector located on the target  
development board. The layout of the connector is shown in Figure A-1 and the signals are  
described in Table A-1. A mapping of PowerPC 405 to RISCWatch signals is provided in  
Table A-2. At the board level, the connector should be placed as close as possible to the  
processor chip to ensure signal integrity. Position 14 is used as a connection key and does  
not contain a pin.  
1
2
0.1"  
16  
15  
0.1"  
UG018_50_100901  
Figure A-1: JTAG-Connector Physical Layout  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
207  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Appendix A: RISCWatch and RISCTrace Interfaces  
Table A-1: JTAG Connector Signals for RISCWatch  
RISCWatch  
Signal Name  
Pin  
Description  
I/O  
Input  
1
TDO  
JTAG test-data out.  
2
No Connect  
Output  
Reserved  
TDIa  
3
JTAG test-data in.  
JTAG test reset.  
4
Output  
TRST  
5
No Connect  
Output  
Reserved  
+Powerb  
TCKc  
6
Processor power OK  
JTAG test clock.  
7
Output  
8
No Connect  
Output  
Reserved  
TMS  
9
JTAG test-mode select.  
10  
11  
12  
13  
14  
15  
16  
No Connect  
Output  
Reserved  
HALT  
Processor debug halt mode.  
No Connect  
No Connect  
KEY  
Reserved  
Reserved  
No pin should be placed at this position.  
Reserved  
No Connect  
GND  
Ground  
a. A 10 K pull-up resistor should be connected to this signal to reduce chip-power consumption. The  
pull-up resistor is not required.  
b. The +POWER signal, is provided by the board, and indicates whether the processor is operating. This  
signal does not supply power to the debug tools or to the processor. A series resistor (1 K or less) should  
be used to provide short-circuit current-limiting protection.  
c. A 10 K pull-up resistor must be connected to these signals to ensure proper chip operation when these  
inputs are not used.  
208  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Table A-2: PowerPC 405 to RISCWatch Signal Mapping  
PowerPC 405  
Signal  
RISCWatch  
Signal I/O  
Output TDO  
JTAG  
Mictor  
Connector Connector  
I/O  
Pin  
1
Pin  
11  
19  
21  
15  
17  
7
C405JTGTDOa  
Input  
JTGC405TDI  
Input  
Input  
Input  
Input  
Input  
TDI  
Output  
Output  
Output  
Output  
Output  
3
JTGC405TRSTNEG  
JTGC405TCK  
TRST  
TCK  
TMS  
HALT  
4
7
JTGC405TMS  
9
DBGC405DEBUGHALTb2  
11  
a. This signal must be driven by a tri-state device using C405JTGTDOEN as the enable signal.  
b. This signal must be inverted between the PowerPC 405 and the RISCWatch.  
RISCTrace Interface  
The RISCTrace tool communicates with the PowerPC 405 using the trace interface. It  
requires a 20-pin, male 2x10 header connector (3M 3592-6002 or equivalent) located on the  
target development board. The layout of the connector is shown in Figure A-2 and the  
signals are described in Table A-3. A mapping of PowerPC 405 to RISCTrace signals is  
provided in Table A-4. At the board level, the connector should be placed as close as  
possible to the processor chip to ensure signal integrity. An index at pin one and a key  
notch on the same side of the connector as the index are required.  
1
2
0.1"  
20  
Index  
Key Notch  
19  
0.1"  
UG018_51_100901  
Figure A-2: Trace-Connector Physical Layout  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
209  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Appendix A: RISCWatch and RISCTrace Interfaces  
Table A-3: Trace Connector Signals for RISCTrace  
RISCTrace  
Signal Name  
Pin  
Description  
I/O  
1
No  
Reserved  
Connect  
2
No  
Reserved  
Connect  
3
4
Output  
TrcClk  
Trace cycle.  
No  
Reserved  
Connect  
5
No  
Connect  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
Reserved  
6
No  
Connect  
7
No  
Connect  
8
No  
Connect  
9
No  
Connect  
10  
11  
No  
Connect  
No  
Connect  
12  
13  
14  
15  
16  
17  
18  
19  
20  
Output  
Output  
Output  
Output  
Output  
Output  
Output  
Output  
TS1O  
TS2O  
TS1E  
TS2E  
TS3  
Execution status.  
Execution status.  
Execution status.  
Execution status.  
Trace status.  
TS4  
Trace status.  
TS5  
Trace status.  
TS6  
Trace status.  
GND  
Ground  
210  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Table A-4: PowerPC 405 to RISCTrace Signal Mapping  
PowerPC 405  
RISCTrace  
Signal  
Trace  
Connector  
Pin  
Mictor  
Connector  
Pin  
Signal  
I/O  
I/O  
C405TRCCYCLE  
Output  
Output  
Output  
Output  
Output  
Output  
Output  
Output  
Output  
TrcClk  
TS1O  
TS2O  
TS1E  
TS2E  
TS3  
Input  
Input  
Input  
Input  
Input  
Input  
Input  
Input  
Input  
3
6
C405TRCODDEXECUTIONSTATUS[0]  
C405TRCODDEXECUTIONSTATUS[1]  
C405TRCEVENEXECUTIONSTATUS[0]  
C405TRCEVENEXECUTIONSTATUS[1]  
C405TRCTRACESTATUS[0]  
12  
13  
14  
15  
16  
17  
18  
19  
24  
26  
28  
30  
32  
34  
36  
38  
C405TRCTRACESTATUS[1]  
TS4  
C405TRCTRACESTATUS[2]  
TS5  
C405TRCTRACESTATUS[3]  
TS6  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
211  
R
Appendix A: RISCWatch and RISCTrace Interfaces  
212  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
R
Appendix B  
Signal Summary  
Interface Signals  
Table B-1 lists the PowerPC 405 interface signals in alphabetical order. A cross reference is  
provided to each signal description. The signal naming conventions used are described in  
Table B-1: PowerPC 405 Interface Signals in Alphabetical Order  
FPGA  
Type  
I/O  
Type  
If Unused  
Ties To:  
Signal  
Interface  
Function  
a
b
V-4  
V-4  
V-4  
V-4  
V-4  
V-4  
V-4  
O
O
O
O
O
O
O
FCM  
No  
Indicates APU Controller decoded  
Connect FCM instruction.  
FCM  
FCM  
FCM  
FCM  
FCM  
FCM  
No  
Indicates which UDI is decoded  
Connect (binary encoded).  
No  
Connect  
Valid signals for APUFCMDECUDI.  
No  
Indicates load/ store instruction has  
Connect true little-endian storage attribute.  
No  
Connect  
Flush APU instruction in the FCM.  
No  
Instruction being presented to the  
Connect FCM.  
No  
Valid APU instruction decoded by  
Connect APU Controller, or instruction passed  
to FCM for decoding.  
V-4  
V-4  
V-4  
V-4  
V-4  
V-4  
V-4  
O
O
O
O
O
O
O
FCM  
FCM  
FCM  
FCM  
FCM  
FCM  
FCM  
No  
Specifies the valid bytes for the word  
Connect on APUFCMLOADDATA.  
No  
Data word loaded from storage to the  
Connect APU register file.  
No  
Data valid signal for  
Connect APUFCMLOADDATA.  
No  
Connect  
Instruction operand valid.  
No  
Connect  
Instruction operand from GPR(RA).  
Instruction operand from GPR(RB).  
Safe for FCM to commit internal state  
No  
Connect  
No  
Connect change.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
213  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
         
R
Appendix B: Signal Summary  
Table B-1: PowerPC 405 Interface Signals in Alphabetical Order (Continued)  
FPGA  
Type  
I/O  
Type  
If Unused  
Ties To:  
Signal  
Interface  
Function  
a
b
V-4  
O
FCM  
No  
Reflects the XerCA bit used for  
Connect extended arithmetic.  
V-II Pro  
and V-4  
I
DSOCM  
DSOCM  
ISOCM  
1
0
1
Clocks the DSOCM controller and the  
data side interface logic  
V-II Pro  
and V-4  
I
Read data bus from the FPGA fabric to  
the DSOCM controller.  
V-II Pro  
and V-4  
I
Clocks the ISOCM controller and the  
instruction side memory located in the  
FPGA fabric.  
V-4  
I
ISOCM  
ISOCM  
CPM  
0
Read data from BRAM to ISOCM  
controller using a DCR-based access.  
V-II Pro  
and V-4  
I
0
Read data from BRAM to the ISOCM  
controller  
V-II Pro  
and V-4  
O
O
O
O
O
O
O
O
No  
Indicates the core is requesting to be  
Connect put into sleep mode.  
V-II Pro  
and V-4  
CPM  
No  
Connect  
Indicates the value of MSR[CE].  
V-II Pro  
and V-4  
CPM  
No  
Connect  
Indicates the value of MSR[EE].  
Indicates a timer-interrupt request  
V-II Pro  
and V-4  
CPM  
No  
Connect occurred.  
V-II Pro  
and V-4  
CPM  
No  
Indicates a watchdog-timer reset  
Connect request occurred.  
V-II Pro  
and V-4  
Debug  
Debug  
Debug  
No  
Connect  
Indicates the value of MSR[WE].  
V-II Pro  
and V-4  
No  
Indicates the PowerPC 405 is in debug  
Connect halt mode.  
V-II Pro  
and V-4  
No  
Indicates the current instruction in the  
Connect PowerPC 405 writeback pipeline stage  
is completing.  
V-II Pro  
and V-4  
O
O
Debug  
Debug  
No  
Indicates the PowerPC 405 writeback  
Connect pipeline stage is full.  
V-II Pro  
and V-4  
No  
The address of the current instruction  
Connect in the PowerPC 405 writeback pipeline  
stage.  
V-II Pro  
and V-4  
O
O
DCR  
DCR  
No  
Specifies the address of the DCR access  
Connect request.  
V-II Pro  
and V-4  
No  
The 32-bit DCR write-data bus.  
Connect  
or attach  
to  
input  
bus  
V-II Pro  
and V-4  
O
O
DCR  
DCR  
No  
Connect  
Indicates a DCR read request occurred.  
Indicates a DCR write request  
V-II Pro  
and V-4  
No  
Connect occurred.  
214  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Table B-1: PowerPC 405 Interface Signals in Alphabetical Order (Continued)  
FPGA  
Type  
I/O  
Type  
If Unused  
Ties To:  
Signal  
Interface  
Function  
a
b
V-II Pro  
and V-4  
O
O
O
JTAG  
No  
Indicates the TAP controller is in the  
Connect capture-DR state.  
V-II Pro  
and V-4  
JTAG  
JTAG  
No  
Indicates the JTAG EXTEST instruction  
Connect is selected.  
V-II Pro  
and V-4  
No  
Indicates the state of a general purpose  
Connect program bit in the JTAG debug control  
register (JDCR).  
V-II Pro  
and V-4  
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
JTAG  
No  
Indicates the TAP controller is in the  
Connect shift-DR state.  
V-II Pro  
and V-4  
JTAG  
No  
Connect  
JTAG TDO (test-data out).  
Indicates the JTAG TDO signal is  
V-II Pro  
and V-4  
JTAG  
No  
Connect enabled.  
V-II Pro  
and V-4  
JTAG  
No  
Indicates the TAP controller is in the  
Connect update-DR state.  
V-4  
DBG  
No  
Valid load data from PowerPC 405 core  
Connect to APU Controller  
V-II Pro  
and V-4  
DSPLB  
DSPLB  
DSPLB  
DSPLB  
DSPLB  
DSPLB  
DSPLB  
DSPLB  
DSPLB  
DSPLB  
DSPLB  
No  
Indicates the DCU is aborting an  
Connect unacknowledged data-access request.  
V-II Pro  
and V-4  
No  
Specifies the memory address of the  
Connect data-access request.  
V-II Pro  
and V-4  
No  
Specifies which bytes are transferred  
Connect during single-word transfers.  
V-II Pro  
and V-4  
No  
Indicates the value of the cacheability  
Connect storage attribute for the target address.  
V-II Pro  
and V-4  
No Indicates the value of the guarded  
Connect storage attribute for the target address.  
No Indicates the priority of the data-access  
Connect request.  
V-II Pro  
and V-4  
V-II Pro  
and V-4  
No  
Indicates the DCU is making a data-  
Connect access request.  
V-II Pro  
and V-4  
No  
Specifies whether the data-access  
Connect request is a read or a write.  
V-II Pro  
and V-4  
No  
Specifies a single word or eight-word  
Connect transfer size.  
V-II Pro  
and V-4  
No  
Indicates the value of the user-defined  
Connect storage attribute for the target address.  
V-II Pro  
and V-4  
No  
The DCU write-data bus used to  
Connect transfer data from the DCU to the PLB  
slave.  
V-II Pro  
and V-4  
O
O
DSPLB  
ISPLB  
No  
Indicates the value of the write-  
Connect through storage attribute for the target  
address.  
V-II Pro  
and V-4  
No  
Indicates the ICU is aborting an  
Connect unacknowledged fetch request.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
215  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Appendix B: Signal Summary  
Table B-1: PowerPC 405 Interface Signals in Alphabetical Order (Continued)  
FPGA  
Type  
I/O  
Type  
If Unused  
Ties To:  
Signal  
Interface  
Function  
a
b
V-II Pro  
and V-4  
O
ISPLB  
No  
Specifies the memory address of the  
Connect instruction-fetch request. Bits 30:31 of  
the 32-bit address are assumed to be  
zero.  
V-II Pro  
and V-4  
O
O
O
O
O
O
O
O
O
O
O
ISPLB  
ISPLB  
ISPLB  
ISPLB  
ISPLB  
Reset  
Reset  
Reset  
Trace  
Trace  
Trace  
No  
Indicates the value of the cacheability  
Connect storage attribute for the target address.  
V-II Pro  
and V-4  
No Indicates the priority of the ICU fetch  
Connect request.  
V-II Pro  
and V-4  
No  
Indicates the ICU is making an  
Connect instruction-fetch request.  
V-II Pro  
and V-4  
No  
Specifies a four word or eight word  
Connect line-transfer size.  
V-II Pro  
and V-4  
No  
Indicates the value of the user-defined  
Connect storage attribute for the target address.  
V-II Pro  
and V-4  
Required Indicates a chip-reset request occurred.  
V-II Pro  
and V-4  
Required Indicates a core-reset request occurred.  
V-II Pro  
and V-4  
Required Indicates a system-reset request  
occurred.  
V-II Pro  
and V-4  
No  
Connect  
Specifies the trace cycle.  
V-II Pro  
and V-4  
No  
Specifies the execution status collected  
Connect during the first of two processor cycles.  
V-II Pro  
and V-4  
No Specifies the execution status collected  
Connect during the second of two processor  
cycles.  
V-II Pro  
and V-4  
O
O
Trace  
Trace  
No  
Connect  
Specifies the trace status.  
V-II Pro  
and V-4  
Wrap to Indicates a trigger event occurred.  
Trigger  
Event In  
V-II Pro  
and V-4  
O
O
I
Trace  
No  
Specifies which debug event caused  
Connect the trigger event.  
V-II Pro  
and V-4  
Control  
CPM  
No  
Indicates a machine-check error has  
Connect been detected by the PowerPC 405.  
V-II Pro  
and V-4  
1
PowerPC 405 clock input (for all non-  
JTAG logic, including timers).  
Required  
0
V-II Pro  
and V-4  
I
I
I
I
CPM  
CPM  
CPM  
CPM  
Indicates the CPM logic disabled the  
clocks to the core.  
V-II Pro  
and V-4  
1
1
1
Enables the core clock zone.  
V-II Pro  
and V-4  
Enables the JTAG clock zone.  
V-4  
Bypass PLB re-synchronization for  
Virtex-II Pro compatibility.  
216  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Table B-1: PowerPC 405 Interface Signals in Alphabetical Order (Continued)  
FPGA  
Type  
I/O  
Type  
If Unused  
Ties To:  
Signal  
Interface  
Function  
a
b
V-II Pro  
and V-4  
I
CPM  
1
Enables the timer clock zone.  
V-II Pro  
and V-4  
I
CPM  
1
Increments or decrements the  
PowerPC 405 timers every time it is  
active with the CPMC405CLOCK.  
V-4  
V-4  
I
I
I
CPM  
1
1
0
DCR bus interface clock for PPC405  
synchronization.  
CPM  
FCM interface clock for the APU  
Controller.  
V-II Pro  
and V-4  
Debug  
Indicates the external debug logic is  
placing the processor in debug halt  
mode.  
V-II Pro  
and V-4  
I
I
I
I
Debug  
Debug  
DCR  
0
0
0
0
Indicates the bus controller has given  
control of the bus to an external master.  
V-II Pro  
and V-4  
Indicates the external debug logic is  
causing an unconditional debug event.  
V-II Pro  
and V-4  
Indicates a DCR access has been  
completed by a peripheral.  
V-II Pro  
and V-4  
DCR  
The 32-bit DCR read-data bus.  
or attach  
to  
output  
bus  
V-II Pro  
and V-4  
I
I
DSOCM  
0
Power-on base address for the data-  
side on-chip memory  
V-II Pro  
and V-4  
DSOCM Bit 3=1  
All  
Power-on configuration of the DSOCM  
controller  
others=0  
V-II Pro  
and V-4  
O
O
O
O
O
O
I
DSOCM No  
Address from the DSOCM controller to  
Connect FPGA fabric  
V-II Pro  
and V-4  
DSOCM No  
Connect  
Indicates a write access  
V-II Pro  
and V-4  
DSOCM No  
BRAM enable signal asserted on  
Write data from DSOCM to the data-  
Connect accesses  
V-II Pro  
and V-4  
DSOCM No  
Connect side memory interface  
V-II Pro  
and V-4  
DSOCM No  
Value of the DSOCM DCR control  
Connect register DSCNTL[2] bit  
V-4  
V-4  
V-4  
DSOCM No  
The signal indicates a valid read access  
Connect and read address  
DSOCM  
0
Indicates that a read access or a write  
access is complete  
O
I
DSOCM No  
The signal indicates a write and that  
Connect write address is valid  
V-II Pro  
and V-4  
EIC  
0
Indicates an external critical interrupt  
occurred.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
217  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Appendix B: Signal Summary  
Table B-1: PowerPC 405 Interface Signals in Alphabetical Order (Continued)  
FPGA  
Type  
I/O  
Type  
If Unused  
Ties To:  
Signal  
Interface  
Function  
a
b
V-II Pro  
and V-4  
I
I
I
I
I
I
I
I
I
I
I
EIC  
0
0
0
0
0
0
0
0
0
0
0
Indicates an external noncritical  
interrupt occurred.  
V-4  
V-4  
V-4  
V-4  
V-4  
V-4  
V-4  
V-4  
V-4  
V-4  
FCM  
FCM  
FCM  
FCM  
FCM  
FCM  
FCM  
FCM  
FCM  
FCM  
Condition result bits to set in the  
PowerPC CR field  
FCM decoded instruction sets  
condition register (CR) bits.  
FCM decoded load/ store instruction  
with forced word alignment  
FCM decoded store instruction will  
force Big-Endian steering.  
FCM decoded instruction must write  
back to the GPR.  
FCM decoded load/ store instruction  
does byte transfer.  
FCM decoded load/ store instruction  
does double word transfer.  
FCM decoded load/ store instruction  
does half word transfer.  
FCM decoded load/ store instruction  
does quad word transfer.  
FCM decoded load/ store instruction  
does word transfer.  
V-4  
V-4  
I
I
FCM  
FCM  
0
0
FCM decoded load instruction.  
FCM decoded instruction executes in  
privileged mode.  
V-4  
V-4  
I
I
FCM  
FCM  
0
0
FCM decoded instruction need data  
from GPR(Ra).  
FCM decoded instruction need data  
from GPR(Rb).  
V-4  
V-4  
I
I
FCM  
FCM  
0
0
FCM decoded store instruction.  
FCM decoded load/ store instruction  
will cause alignment exception if the  
storage Endian attribute is 1b0.  
V-4  
V-4  
I
I
FCM  
FCM  
0
0
FCM decoded load/ store instruction  
will cause alignment exception if the  
storage Endian attribute is 1b1.  
FCM decoded load/ store instruction  
should update Ra with effective  
address.  
V-4  
V-4  
V-4  
I
I
I
FCM  
FCM  
FCM  
0
0
0
FCM decoded instruction returns carry  
status.  
FCM decoded instruction returns  
overflow status.  
Allows FCM to do a multi-cycle  
instruction decode  
218  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Table B-1: PowerPC 405 Interface Signals in Alphabetical Order (Continued)  
FPGA  
Type  
I/O  
Type  
If Unused  
Ties To:  
Signal  
Interface  
Function  
a
b
V-4  
I
FCM  
0
Indicates the completion of the  
instruction in the FCM to the APU  
Controller  
V-4  
V-4  
V-4  
V-4  
I
I
I
I
FCM  
FCM  
FCM  
FCM  
0
0
0
0
FCM generate program exception on  
the processor (vector 0x0700).  
FCM decoded multi cycle operation of  
blocking class.  
FCM decoded instruction selects  
which of the eight PowerPC CR  
FCM decoded multi cycle operation of  
non-blocking class.  
V-4  
V-4  
V-4  
I
I
I
FCM  
FCM  
FCM  
0
0
0
FCM decoded FPU instruction.  
Valid instruction decoded in FCM  
FCM is not yet ready to receive next  
load data.  
V-4  
V-4  
I
I
FCM  
FCM  
0
0
FCM execution result passed to the  
CPU  
Values on the FCMAPURESULT[0:31],  
FCMAPUXEROV, FCMAPUXERCA  
and FCMAPUCR[0:3] are valid.  
V-4  
I
FCM  
0
Indicates to the APU Controller that  
the FCM is still executing  
V-4  
V-4  
I
I
I
FCM  
0
0
0
FCM carry status bit.  
FCM  
FCM overflow status bit.  
V-II Pro  
and V-4  
ISOCM  
Power-on base address for the  
instruction-side on-chip memory  
V-II Pro  
and V-4  
I
ISOCM  
Bit 3=1  
Power-on configuration of the ISOCM  
controller  
All  
others=0  
V-II Pro  
and V-4  
O
O
O
O
O
O
O
O
ISOCM  
ISOCM  
ISOCM  
ISOCM  
ISOCM  
ISOCM  
ISOCM  
ISOCM  
No  
BRAM read enable from the ISOCM  
Connect controller  
V-4  
No  
Even word write enable to BRAM via a  
Connect DCR-based access  
V-4  
No  
Odd word write enable to BRAM via a  
Connect DCR-based access  
V-II Pro  
and V-4  
No  
Connect  
Read address from ISOCM to BRAM  
V-II Pro  
and V-4  
No  
Write address from the ISOCM to  
Connect BRAM via a DCR-based access  
No Write data from the ISOCM to BRAM  
Connect via a DCR-based access  
V-II Pro  
and V-4  
V-4  
No  
BRAM enable (even bank) for a DCR-  
Connect based access  
V-4  
No  
BRAM enable (odd bank) for a DCR-  
Connect based access  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
219  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Appendix B: Signal Summary  
Table B-1: PowerPC 405 Interface Signals in Alphabetical Order (Continued)  
FPGA  
Type  
I/O  
Type  
If Unused  
Ties To:  
Signal  
Interface  
Function  
a
b
V-4  
O
ISOCM  
No  
Select between even and odd  
Connect instruction words from DCR access  
V-II Pro  
and V-4  
I
JTAG  
JTAG  
0
JTAG boundary scan input from the  
previous boundary scan element TDO  
output.  
V-II Pro  
and V-4  
I
1
JTAG TCK (test clock).  
(See  
IEEE  
1149.1)  
V-II Pro  
and V-4  
I
I
I
JTAG  
JTAG  
Reset  
1
JTAG TDI (test-data in).  
V-II Pro  
and V-4  
1
JTAG TMS (test-mode select).  
Performs a JTAG test reset (TRST).  
V-II Pro  
and V-4  
1
Required  
V-II Pro  
and V-4  
I
I
JTAG  
1
JTAG TRST (test reset).  
Required  
1
V-II Pro  
and V-4  
FPGA  
Indicates the PowerPC 405 clock  
enable should follow GWE during a  
partial reconfiguration.  
V-II Pro  
and V-4  
I
I
I
FPGA  
FPGA  
FPGA  
1
1
1
Indicates the JTAG clock enable should  
follow GWE during a partial  
reconfiguration.  
V-II Pro  
and V-4  
Indicates the timer clock enable should  
follow GWE during a partial  
reconfiguration.  
V-II Pro  
and V-4  
Indicates the PowerPC 405 should be  
reset when GSR is asserted during a  
partial reconfiguration.  
V-II Pro  
and V-4  
I
I
DSPLB  
DSPLB  
0
0
Indicates a PLB slave acknowledges  
the current data-access request.  
V-II Pro  
and V-4  
Indicates the PLB slave is busy  
performing an operation requested by  
the DCU.  
V-II Pro  
and V-4  
I
I
I
I
I
DSPLB  
DSPLB  
DSPLB  
DSPLB  
DSPLB  
0
0
0
0
0
Indicates an error was detected by the  
PLB slave during the transfer of data to  
or from the DCU.  
V-II Pro  
and V-4  
Indicates the DCU read-data bus  
contains valid data for transfer to the  
DCU.  
V-II Pro  
and V-4  
The DCU read-data bus used to  
transfer data from the PLB slave to the  
DCU.  
V-II Pro  
and V-4  
Indicates which word or doubleword  
of an eight-word line transfer is  
present on the DCU read-data bus.  
V-II Pro  
and V-4  
Specifies the bus width (size) of the  
PLB slave that accepted the request.  
220  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Table B-1: PowerPC 405 Interface Signals in Alphabetical Order (Continued)  
FPGA  
Type  
I/O  
Type  
If Unused  
Ties To:  
Signal  
Interface  
Function  
a
b
V-II Pro  
and V-4  
I
DSPLB  
0
Indicates the data on the DCU write-  
data bus is being accepted by the PLB  
slave.  
V-II Pro  
and V-4  
I
I
ISPLB  
ISPLB  
0
0
Indicates a PLB slave acknowledges  
the current ICU fetch request.  
V-II Pro  
and V-4  
Indicates the PLB slave is busy  
performing an operation requested by  
the ICU.  
V-II Pro  
and V-4  
I
I
I
I
ISPLB  
ISPLB  
ISPLB  
ISPLB  
0
0
Indicates an error was detected by the  
PLB slave during the transfer of  
instructions to the ICU.  
V-II Pro  
and V-4  
Indicates the ICU read-data bus  
contains valid instructions for transfer  
to the ICU.  
V-II Pro  
and V-4  
The ICU read-data bus used to transfer  
instructions from the PLB slave to the  
ICU.  
V-II Pro  
and V-4  
0
0
Indicates which word or doubleword  
of a four-word or eight-word line  
transfer is present on the ICU read-  
data bus.  
V-II Pro  
and V-4  
I
I
ISPLB  
FPGA  
Specifies the bus width (size) of the  
PLB slave that accepted the request.  
V-II Pro  
and V-4  
1
PLB clock.  
Required  
V-II Pro  
and V-4  
I
I
Reset  
Reset  
0
Indicates a chip-reset occurred.  
Required  
0
V-II Pro  
and V-4  
Resets the PowerPC 405 core logic,  
data cache, instruction cache, and the  
on-chip memory controller (OCM).  
Required  
V-II Pro  
and V-4  
I
I
Reset  
FCM  
0
Indicates a system-reset occurred.  
Resets the logic in the PowerPC 405  
JTAG unit.  
Required  
V-4  
0
Reset values for the APU control  
register.  
V-4  
V-4  
V-4  
V-4  
V-4  
V-4  
V-4  
V-4  
I
I
I
I
I
I
I
I
FCM  
FCM  
FCM  
FCM  
FCM  
FCM  
FCM  
FCM  
0
0
0
0
0
0
0
0
Reset value for UDI register 1.  
Reset value for UDI register 2.  
Reset value for UDI register 3.  
Reset value for UDI register 4.  
Reset value for UDI register 5.  
Reset value for UDI register 6.  
Reset value for UDI register 7.  
Reset value for UDI register 8.  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
221  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Appendix B: Signal Summary  
Table B-1: PowerPC 405 Interface Signals in Alphabetical Order (Continued)  
FPGA  
Type  
I/O  
Type  
If Unused  
Ties To:  
Signal  
Interface  
Function  
a
b
and V-4  
I
Control  
0
Specifies whether all multiply  
operations complete in a fixed number  
of cycles or have an early-out  
capability.  
Required  
V-II Pro  
and V-4  
I
I
Control  
Control  
0
Disables operand forwarding for load  
instructions.  
Required  
V-II Pro  
and V-4  
0
Enables the memory-management unit  
(MMU)  
Required  
0
V-4  
I
I
I
I
I
I
I
I
I
I
I
I
I
DCR  
DSOCM  
ISOCM  
PVR  
Location of PPC internal DCR registers  
in DCR address space  
V-II Pro  
V-II Pro  
V-4  
0
0
0
0
0
0
0
0
0
0
0
0
Location of PPC DSOCM DCR  
registers in DCR address space  
Location of PPC ISOCM DCR registers  
in DCR address space  
Set bit 10 in Processor Version Register  
(OWN field)  
V-4  
PVR  
Set bit 11 in Processor Version Register  
(OWN field)  
V-4  
PVR  
Set bit 28 in Processor Version Register  
(AID field)  
V-4  
PVR  
Set bit 29 in Processor Version Register  
(AID field)  
V-4  
PVR  
Set bit 30 in Processor Version Register  
(AID field)  
V-4  
PVR  
Set bit 31 in Processor Version Register  
(AID field)  
V-4  
PVR  
Set bit 8 in Processor Version Register  
(OWN field)  
V-4  
PVR  
Set bit 9 in Processor Version Register  
(OWN field)  
V-II Pro  
and V-4  
Trace  
Trace  
Disables trace collection and  
broadcast.  
V-II Pro  
and V-4  
Indicates a trigger event occurred and  
that trace status is to be generated.  
Wrap to  
Trigger  
Event  
Out  
a. V-II Pro = Virtex-II Pro; V-4 = Virtex-4  
b. The ISE design tools assign drivers automatically.  
222  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Appendix C  
Processor Block Timing Model  
This section explains all of the timing parameters associated with the IBM PPC405  
Processor Block. It is intended to be used in conjunction with Module 3 of the Virtex-II Pro  
or Virtex-4 Data Sheet and the Timing Analyzer (TRCE) report from Xilinx software. For  
specific timing parameter values and clocking considerations, refer to the appropriate data  
sheet(s).  
CPM INPUT  
OCM INPUT  
CPM OUTPUT  
OCM OUTPUT  
RESET INPUT  
DCR INPUTS  
RESET OUTPUT  
DCR OUTPUTS  
PPC INPUT  
JTAG INPUTS  
PPC OUTPUT  
JTAG OUTPUTS  
PLB INPUT  
TRACE INPUTS  
PLB OUTPUT  
TRACE OUTPUTS  
FCM INPUTS*  
EIC INPUT  
IBM PPC405  
Processor Block  
FCM OUTPUTS*  
DEBUG INPUTS  
CPM FCMCLK*  
CPM DCRCLK*  
DEBUG OUTPUTS  
CPMC405CLOCK  
JTGC405TCK  
*Virtex-4 Only  
PLBCLK  
BRAMISCOMCLK  
BRAMDSOCMCLK  
UG012_C1_01_042304  
Figure C-1: PowerPC 405 Processor Block (Simplified)  
There are hundreds of signals entering and exiting the processor block. The model  
presented in this section treats the processor block as a “black box.” Propagation delays  
internal to the processor block and core logic are included in the processor block I/ O  
timing. Signals are characterized with setup and hold times for inputs and clock to valid  
output times for outputs. Signals are grouped by the interface block from which they  
originate: Processor Local Bus (PLB) , Device Control Register (DCR), External Interrupt  
Controller (EIC), Reset (RST), Clock and Power Management (CPM), Debug (DBG),  
PowerPC™ 405 Processor Block Reference Guide  
223  
UG018 (v2.0) August 20, 2004  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
     
R
Appendix C: Processor Block Timing Model  
PowerPC miscellaneous (PPC), Trace Port (TRC), JTAG, Instruction-Side On-Chip Memory  
(ISOCM), and Data-Side On-Chip Memory (DSOCM), Auxiliary Processor Unit Controller  
(APU, Virtex-4 only), and Fabric Coprocessor Module (FCM, Virtex-4 only).  
Table C-1 associates five clocks (Virtex-II Pro) or seven clocks (Virtex-4) with their  
corresponding interface blocks. All signal parameters discussed in this section are  
characterized at a rising clock edge. Exceptions to this rule, such as for the JTAG signals,  
are pointed out where applicable.  
Table C-1: Clocks and Corresponding Processor Interface Blocks  
CLOCK SIGNAL  
DESCRIPTION  
INTERFACE  
CPMC405CLOCK  
Main processor core clock  
DCR  
EIC  
RST  
CPM  
DBG  
PPC  
TRC  
PLBCLK  
Processor Local Bus clock  
PLB  
JTAGC405TCK  
BRAMISOCMCLK  
BRAMDSOCMCLK  
Clock for JTAG logic within the processor core JTAG  
Clock for the ISOCM Controller  
Clock for the DSOCM Controller  
Device Control Register Bus Clock  
ISOCM  
DSOCM  
CPMDCRCLK  
(Virtex-4 only)  
EXTDCR  
CPMFCMCLK  
(Virtex-4 only)  
Fabric Coprocessor Module Clock  
APU, FCM  
Timing Parameter Tables and Diagram  
The following seven tables list the timing parameters as reported by the implementation  
tools relative to the clocks given in Table C-1, along with the signals from the processor  
block that correspond to each parameter. A timing diagram (Figure C-2) illustrates the  
timing relationships.  
x
x
“Parameters Relative to the Core Clock (CPMC405CLOCK)”, Table C-2, page 225.  
x
x
x
x
x
“Parameters Relative to the PLB Clock (PLBCLK)”, Table C-5, page 229.  
“Parameters Relative to the JTAG Clock (JTAGC405TCK)”, Table C-6, page 230.  
“Parameters Relative to the ISOCM Clock (BRAMISOCMCLK)”, Table C-7, page 230.  
“Parameters Relative to the DSOCM Clock (BRAMDSOCMCLK)”, Table C-8,  
page 231.  
224  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Table C-2: Parameters Relative to the Core Clock (CPMC405CLOCK)  
Parameter Function  
Setup/ Hold:  
Signals  
TPCCK_DCR/ TPCKC_DCRa  
TPDCK_DCR/ TPCKD_DCRa  
TPCCK_CPM/ TPCKC_CPM  
Control Inputs  
DCRC405ACK  
Data Inputs  
DCRC405DBUSIN[0:31]  
Control Inputs  
CPMC405TIMERTICK  
CPMC405CPUCLKEN  
CPMC405TIMERCLKEN  
CPMC405JTAGCLKEN  
TPCCK_RST/ TPCKC_RST  
Control Inputs  
RSTC405RESETCHIP  
RSTC405RESETCORE  
RSTC405RESETSYS  
TPCCK_DBG/ TPCKC_DBG  
TPCCK_TRC/ TPCKC_TRC  
TPCCK_EIC/ TPCKC_EIC  
Control Inputs  
Control Inputs  
Control Inputs  
DBGC405DEBUGHALT  
DBGC405UNCONDDEBUGEVENT  
TRCC405TRACEDISABLE  
TRCC405TRIGGEREVENTIN  
EICC405CRITINPUTIRQ  
EICC405EXTINPUTIRQ  
Clock to Out:  
TPCKCO_DCRa  
Control Outputs  
C405DCRREAD  
C405DCRWRITE  
TPCKAO_DCRa  
TPCKDO_DCRa  
TPCKCO_CPM  
Address Outputs  
Data Outputs  
C405DCRABUS[0:9]  
C405DCRDBUSOUT[0:31]  
Control Outputs  
C405CPMMSREE  
C405CPMMSRCE  
C405CPMTIMERIRQ  
C405CPMTIMERRESETREQ  
C405CPMCORESLEEPREQ  
TPCKCO_RST  
TPCKCO_DBG  
Control Outputs  
Control Outputs  
C405RSTCHIPRESETREQ  
C405RSTCORERESETREQ  
C405RSTSYSRESETREQ  
C405DBGMSRWE  
C405DBGSTOPACK  
C405DBGWBCOMPLETE  
C405DBGWBFULL  
C405DBGWBIAR[0:29]  
TPCKCO_PPC  
TPCKCO_TRC  
Control Outputs  
Control Outputs  
C405XXXMACHINECHECK  
C405TRCCYCLE  
C405TRCEVENEXECUTIONSTATUS[0:1]  
C405TRCODDEXECUTIONSTATUS[0:1]  
C405TRCTRACESTATUS[0:3]  
C405TRCTRIGGEREVENTOUT  
C405TRCTRIGGEREVENTTYPE[0:10]  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
225  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Appendix C: Processor Block Timing Model  
Table C-2: Parameters Relative to the Core Clock (CPMC405CLOCK) (Continued)  
Parameter  
Function  
Signals  
Clock:  
TCPWH  
Clock Pulse Width, High  
State  
CPMC405CLOCK  
TCPWL  
Clock Pulse Width, Low State CPMC405CLOCK  
a. Virtex-II Pro only. See Table C-3 for Virtex-4 DCR bus timing parameters.  
226  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Table C-3: Parameters Relative to the DCR Bus Clock (CPMDCRCLK, Virtex-4 Only)  
Parameter Function Signals  
Setup/ Hold:  
TPPCDCK_EXDCRACK  
TPPCCKD_EXDCRACK  
Control Inputs  
EXTDCRC405ACK  
TPPCDCK_EXDCRDBUS  
TPPCCKD_EXCDRDBUS  
Data Inputs  
EXTDCRC405DBUSIN[0:31]  
Clock to Out:  
TPPCCKO_EXDCRRD  
TPPCCKO_EXDCRWR  
TPPCCKO_EXDCRABUS  
TPPCCKO_EXDCRDBUSO  
Clock:  
Control Outputs  
EXTDCRREAD  
EXTDCRWRITE  
Address Outputs  
Data Outputs  
EXTDCRABUS[0:9]  
EXTDCRDBUSOUT[0:31]  
TDCRPWH  
Clock Pulse Width, High  
State  
CPMDCRCLK  
TDCRPWL  
Clock Pulse Width, Low State CPMCDCRCLK  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
227  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
Appendix C: Processor Block Timing Model  
Table C-4: Parameters Relative to the FCM Clock (CPMFCMCLK, Virtex-4 Only)  
Parameter Function  
Setup/ Hold:  
Signals  
TPCCK_FCM/ TPCKC_FCM  
Control Inputs  
FCMAPUINSTRACK  
FCMAPUDONE  
FCMAPUSLEEPNOTREADY  
FCMAPUDECODEBUSY  
FCMAPUDCDGPRWRITE  
FCMAPUDCDRAEN  
FCMAPUDCDRBEN  
FCMAPUDCDPRIVOP  
FCMAPUDCDFORCEALIGN  
FCMAPUDCDXEROVEN  
FCMAPUDCDXERCAEN  
FCMAPUDCDCREN  
FCMAPUEXECRFIELD[0:2]  
FCMAPUDCDLOAD  
FCMAPUDCDSTORE  
FCMAPUDCDUPDATE  
FCMAPUDCDLDSTBYTE  
FCMAPUDCDLDSTHW  
FCMAPUDCDLDSTWD  
FCMAPUDCDLDSTDW  
FCMAPUDCDLDSTQW  
FCMAPUDCDTRAPLE  
FCMAPUDCDTRAPBE  
FCMAPUDCDFORCEBESTEERING  
FCMAPUFPUOP  
FCMAPUEXEBLOCKINGMCO  
FCMAPULOADWAIT  
FCMAPURESULTVALID  
FCMAPUXEROV  
FCMAPUEXENONBLOCKINGMCO  
FCMAPUXERCA  
FCMAPUCR[0:3]  
FCMAPUEXCEPTION  
TPDCK_FCM/ TPCKO_FCM  
Clock to Out:  
Data Inputs  
FCMAPURESULT[0:31]  
TPCKCO_FCM  
Control Outputs  
APUFCMINSTRVALID  
APUFCMOPERANDVALID  
APUFCMFLUSH  
APUFCMWRITEBACKOK  
APUFCMLOADDVALID  
APUFCMLOADBYTEEN[0:3]  
APUFCMENDIAN  
APUFCMXERCA  
APUFCMDECODED  
APUFCMDECUDI[0:2]  
APUFCMDECUDIVALID  
228  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
 
R
Table C-4: Parameters Relative to the FCM Clock (CPMFCMCLK, Virtex-4 Only) (Continued)  
Parameter  
TPCKDO_FCM  
Function  
Data Outputs  
Signals  
APUFCMINSTRUCTION[0:31]  
APUFCMRADATA[0:31]  
APUFCMRBDATA[0:31]  
APUFCMLOADDATA[0:31]  
Clock:  
Tfcmpwh and TFCMPWL  
Clock High Width  
Clock Low Width  
CPMFCMCLK  
Table C-5: Parameters Relative to the PLB Clock (PLBCLK)  
Parameter Function  
Setup/ Hold:  
TPCCK_PLB/ TPCKC_PLB  
Signals  
Control inputs  
PLBC405DCUADDRACK  
PLBC405DCUBUSY  
PLBC405DCUERR  
PLBC405DCURDDACK  
PLBC405DCUSSIZE1  
PLBC405DCUWRDACK  
PLBC405ICURDWDADDR[1:3]  
PLBC405DCURDWDADDR[1:3]  
PLBC405ICUADDRACK  
PLBC405ICUBUSY  
PLBC405ICUERR  
PLBC405ICURDDACK  
PLBC405ICUSSIZE1  
TPDCK_PLB/ TPCKD_PLB  
Data inputs  
PLBC405ICURDDBUS[0:63]  
PLBC405DCURDDBUS[0:63]  
Clock to Out:  
TPCKCO_PLB  
Control outputs  
C405PLBDCUABORT  
C405PLBDCUBE[0:7]  
C405PLBDCUCACHEABLE  
C405PLBDCUGUARDED  
C405PLBDCUPRIORITY[0:1]  
C405PLBDCUREQUEST  
C405PLBDCURNW  
C405PLBDCUSIZE2  
C405PLBDCUU0ATTR  
C405PLBDCUWRITETHRU  
C405PLBICUABORT  
C405PLBICUCACHEABLE  
C405PLBICUPRIORITY[0:1]  
C405PLBICUREQUEST  
C405PLBICUSIZE[2:3]  
C405PLBICUU0ATTR  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
229  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Appendix C: Processor Block Timing Model  
Table C-5: Parameters Relative to the PLB Clock (PLBCLK) (Continued)  
Parameter Function  
TPCKDO_PLB Data outputs  
Address outputs  
Signals  
C405PLBDCUWRDBUS[0:63]  
TPCKAO_PLB  
C405PLBDCUABUS[0:31]  
C405PLBICUABUS[0:29]  
Clock:  
TPPWH  
TPPWL  
Clock pulse width, High state PLBCLK  
Clock pulse width, Low state PLBCLK  
Table C-6: Parameters Relative to the JTAG Clock (JTAGC405TCK)  
Parameter Function  
Setup/ Hold:  
Signals  
TPCCK_JTAG/ TPCKC_JTAG  
Control inputs  
JTGC405BNDSCANTDO  
JTGC405TDI  
JTGC405TMS  
JTGC405TRSTNEG  
CPMC405CORECLKINACTIVE  
DBGC405EXTBUSHOLDACK  
Clock to Out:  
TPCKCO_JTAG  
Control outputs  
C405JTGCAPTUREDR  
C405JTGEXTEST(1)  
C405JTGPGMOUT(2)  
C405JTGSHIFTDR  
C405JTGTDO(1)  
C405JTGTDOEN (1)  
C405JTGUPDATEDR  
Clock:  
TJPWH  
TJPWL  
Clock pulse width, High state JTGC405TCK  
Clock pulse width, Low state JTGC405TCK  
Notes:  
1. Synchronous to the negative edge of JTGC405TCK  
2. Synchronous to CPMC405CLOCK  
Table C-7: Parameters Relative to the ISOCM Clock (BRAMISOCMCLK)  
Parameter  
Setup/Hold:  
Function  
Signals  
TPDCK_ISOCM  
TPCKD_ISOCM  
Data inputs  
BRAMISOCMRDDBUS[0:63]  
230  
1-800-255-7778  
Download from Www.Somanuals.com. All Manuals Search And Download.  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
R
Table C-7: Parameters Relative to the ISOCM Clock (BRAMISOCMCLK) (Continued)  
Parameter Function Signals  
Clock to Out:  
TPCKCO_ISOCM  
Control outputs  
ISOCMBRAMEN  
ISOCMBRAMODDWRITEEN  
ISOCMBRAMEVENWRITEEN  
ISOCMDCRBRAMEVENEN (Virtex-4 only)  
ISOCMDCRBRAMODDEN (Virtex-4 only)  
ISOCMDCRBRAMRDSELECT (Virtex-4 only)  
TPCKAO_ISOCM  
Address outputs  
Data outputs  
ISOCMBRAMRDABUS[8:28]  
ISOCMBRAMWRABUS[8:28]  
TPCKDO_ISOCM  
Clock:  
ISOCMBRAMWRDBUS[0:31]  
TIPWH  
Clock pulse width, High state BRAMISOCMCLK  
Clock pulse width, Low state BRAMISOCMCLK  
TIPWL  
Table C-8: Parameters Relative to the DSOCM Clock (BRAMDSOCMCLK)  
Parameter Function  
Setup/Hold:  
Signals  
TBD Parameter  
Control Inputs  
DSOCMRDWRCOMPLETE (Virtex-4 only)  
TPDCK_DSOCM/ TPCKD_DSOCM  
Data inputs  
BRAMDSOCMRDDBUS[0:31]  
BRAMISOCMDCRRDDBUS[0:31] (Virtex-4  
only)  
Clock to Out:  
TPCKCO_DSOCM  
Control outputs  
DSOCMBRAMEN  
DSOCMBRAMBYTEWRITE[0:3]  
DSOCMBUSY  
DSOCMRDADDRVALID (Virtex-4 only)  
DSOCMWRADDRVALID (Virtex-4 only)  
TPCKDO_DSOCM  
TPCKAO_DSOCM  
Clock:  
Data outputs  
DSOCMBRAMWRDBUS[0:31]  
DSOCMBRAMABUS[8:29]  
Address outputs  
TDPWH  
Clock, Pulse Width High BRAMDSOCMCLK  
Clock, Pulse Width Low BRAMDSOCMCLK  
TDPWL  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
231  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
Appendix C: Processor Block Timing Model  
1
2
TxPWL  
TxPWH  
CLOCK  
TPCCK  
TPCKC  
CONTROL  
INPUTS  
TPCKCO  
CONTROL  
OUTPUTS  
TPCKDO  
DATA  
OUTPUTS  
TPDCK  
TPCKD  
DATA  
INPUTS  
TPCKAO  
ADDRESS  
OUTPUTS  
UG012_C1_02_121701  
Figure C-2: Processor Block Timing Relative to Clock Edge  
232  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
Index  
PPC405 37  
clock and power management  
clock zone 35  
and processor block timing model  
A
abort  
DCR interface 25, 98  
address bus 105  
data-side PLB 78, 97  
chain implementation 101  
description of 30  
instruction-side PLB 54, 67  
address acknowledge  
data-side PLB 80  
condition register  
read request 105  
core clock zone 35, 37  
core reset 43, 46  
request 45  
read-data bus 106  
request acknowledge 106  
write request 105  
instruction-side PLB 55  
address bus  
data-side PLB 74  
core-configuration register  
write-data bus 106  
DCU  
DCR 105  
instruction-side PLB 52  
address pipelining  
cacheable fetch 62, 63  
cacheable reads 86  
data 71  
CPM interface 35  
signals 36  
description of 28  
fill buffer 70  
CPU control  
debug halt mode 129  
debug interface 128  
bus hold acknowledge 129  
debug halt 129  
interface 41  
fetch requests 49  
critical interrupt request 111  
non-cacheable fetch 65  
reads and writes 87, 92  
addressing modes 23  
debug halt acknowledge 131  
signals 128  
D
unconditional debug event 130  
wait-state enable 130  
writeback complete 130  
writeback full 130  
writeback instruction address 130  
debug modes 29  
data-cache unit  
B
data-side PLB interface 68  
abort 78  
big endian, definition of 23  
bus-interface unit 59, 85  
busy  
device-control register  
DSPLB  
data-side PLB 84  
instruction-side PLB 58  
bypass  
address acknowledge 80  
address bus 74  
busy 84  
data 70  
byte enables 76  
cacheability 75  
error 84  
instruction 48  
byte enables 76  
E
guarded storage 76  
priority 78  
EIC interface 109  
C
cacheability  
signals 110  
read acknowledge 82  
read not write 74  
read-data bus 82  
request 73  
error  
data-side PLB 84  
instruction-side PLB 59  
exceptions  
data-side PLB 75  
instruction-side PLB 53  
CCR0  
signals 71  
critical 27, 110  
noncritical 27, 110  
external interrupt controller  
fetch without allocate 49, 53  
load without allocate 70  
load word as line 70  
non-cacheable request size 48, 56  
store without allocate 70  
chip reset 43, 46  
request 45  
slave size 81  
timing diagrams 85  
transfer order 83  
transfer size 74  
U0 attribute 76  
write acknowledge 83  
write-data bus 79  
write-through 75  
DCR  
F
fetch request 47  
clock  
address pipelining 49  
PLB 37  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
233  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
 
R
cacheable 49  
transfer order 57  
transfer size 53  
U0 attribute 54  
O
OCM  
non-cacheable request size 48  
prefetching 49  
and processor block timing model  
without allocate 49  
interfaces  
FIT  
CPM 35  
OEA  
description of 29  
CPU control 41  
data-side PLB 68  
DCR 98  
timer exception 39  
update frequency 38  
operand forwarding, disabling 42  
fixed-interval timer  
debug 128  
EIC 109  
P
instruction-side PLB 47  
trace 131  
performance summary 31  
G
PIT  
ISPLB  
description of 29  
timer exception 39  
update frequency 38  
PLB  
general-purpose register  
global clock gating 35  
global local clock enables 35  
global set reset 137  
global write enable  
effect on core clock zone 136  
effect on JTAG clock zone 136  
effect on timer clock zone 137  
GPR 24, 26  
J
description of 30  
priority, data-side 78  
priority, instruction-side 54  
PLB clock 37  
JTAG clock zone 35, 37  
JTAG interface  
signals 111  
test reset 47  
PLB slave  
aborting requests 54, 78  
attaching to 32-bit slave 56, 76  
busy 58, 84  
L
guarded storage  
data 71  
little endian, definition of 23  
detecting errors 59, 84  
power-on reset 43  
PowerPC  
data-side PLB 76  
instruction 50  
M
architecture 17  
MAC 27  
embedded-environmentarchitecture  
I
ICU  
early out 42  
machine check 43, 59, 84  
machine-state register  
OEA 18, 19  
description of 28  
fill buffer 48  
UISA 18  
VEA 18  
line buffer 28  
memory-management unit  
PowerPC 405 processor block  
timing model 223  
PPC405 25 to 30  
instruction-cache unit  
MMU 27  
instruction-side PLB interface 47  
abort 54  
enable and disable 42, 135  
most recent reset 43  
MSR 25  
caches 28  
central-processing unit 26  
clock 37  
address acknowledge 55  
address bus 52  
busy 58  
critical-interrupt enable 38, 110  
external-interrupt enable 38, 110  
wait-state enable 39, 130  
multiply accumulate  
debug resources 29  
exception-handling logic 27  
external interfaces 29  
memory-management unit 27  
performance 30  
cacheability 53  
error 59  
fetch request 47, 52  
priority 54  
multiply, early out 42  
software features 21  
timers 29  
read acknowledge 56  
read-data bus 56  
signals 50  
prefetch 49  
N
privileged mode, definition of 22  
processor block, definition of 17  
processor local bus  
noncritical interrupt request 111  
slave size 55  
timing diagrams 59  
234  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
processor reset  
instruction-side PLB interface 50  
JTAG interface 111  
naming conventions 34  
reset interface 44  
data-side PLB 76  
instruction-side PLB 54  
programmable-interval timer  
UISA  
summary 213  
unaligned operands 71  
unconditional debug event 130  
user mode, definition of 22  
trace interface 131  
R
slave size  
data-side PLB 81  
read acknowledge  
data-side PLB 82  
instruction-side PLB 56  
read not write 74  
read request 68  
instruction-side PLB 55  
V
VEA 19  
sleep mode 37  
request 39  
waking 35  
special-purpose register  
address pipelining 71  
cacheable 70  
virtual mode, definition of 23  
split data bus 68  
overlapped operations 92, 94  
SPR 25  
DCR 105  
W
watchdog timer  
unaligned operands 71  
without allocate 70  
read-data bus  
storage attributes 28  
system reset 43, 46  
request 45  
data-side PLB 82  
DCR 106  
WDT  
description of 29  
reset request 39  
timer exception 39  
update frequency 38  
write acknowledge 83  
write request 68  
address pipelining 71  
DCR 105  
instruction-side PLB 56  
real mode, definition of 23  
registers  
T
supported by PPC405 23  
request  
timer clock zone 35, 37  
timer exception 39  
timing models  
chip reset 45  
core reset 45  
PPC405 223  
critical interrupt 111  
data-side PLB 73  
instruction-side PLB 52  
noncritical interrupt 111  
system reset 45  
TLB 27  
non-cacheable 70  
unaligned operands 71  
without allocate 70  
write-data bus  
trace interface 131  
disable 134  
even execution status 133  
odd execution status 133  
signals 131  
data-side PLB 79  
DCR 106  
reset  
chip 43, 45, 46  
trace cycle 133  
write-through cacheability 75  
core or processor 43, 45, 46  
global set reset 137  
interface requirements 43  
system 43, 45, 46  
watchdog time-out 39  
trace status 134  
trigger event 132  
trigger event in 134  
trigger event type 132  
transfer order  
data-side PLB 83  
instruction-side PLB 57  
transfer size  
S
data-side PLB 74  
instruction-side PLB 53  
translation look-aside buffer  
signal name prefixes 34  
signal summary 213  
signals  
CPM interface 36  
trigger events 131  
CPU control interface 41  
data-side PLB interface 71  
DCR interface 103  
debug interface 128  
EIC interface 110  
U
U0 attribute  
PowerPC™ 405 Processor Block Reference Guide  
1-800-255-7778  
235  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  
R
236  
1-800-255-7778  
PowerPC™ 405 Processor Block Reference Guide  
UG018 (v2.0) August 20, 2004  
Download from Www.Somanuals.com. All Manuals Search And Download.  

Weil McLain Boiler CGM Series 7 User Manual
Weslo Treadmill WLTL297120 User Manual
Whirlpool Dishwasher DU018DWTB User Manual
Whirlpool Washer CAM2742TQ User Manual
White Rodgers Thermostat 9701I2 User Manual
Winegard TV Antenna RS 2000 User Manual
Wolf Refrigerator VH336 User Manual
Xantech Speaker XA65C User Manual
Xantrex Technology Network Card Inverter Communications Adapter User Manual
Zanussi Dishwasher ZDI 6054 QX User Manual