Carbon Cortex-A5 Model User Guide for SoC Designer
Carbon Cortex-A5 Model User Guide for SoC Designer
Carbon Cortex-A5 Model User Guide for SoC Designer
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Carbon</strong> <strong>Cortex</strong>-<strong>A5</strong> <strong>Model</strong><br />
<strong>User</strong> <strong>Guide</strong> <strong>for</strong><br />
<strong>SoC</strong> <strong>Designer</strong> Plus<br />
<strong>Carbon</strong> <strong>Model</strong> Version 4.0.1<br />
For the ARM® <strong>Cortex</strong>-<strong>A5</strong> Single Core and <strong>Cortex</strong>-<strong>A5</strong> MPCore Processor<br />
Silicon Version: r0p0<br />
The Trusted Path to Accuracy <br />
The in<strong>for</strong>mation contained in this document is confidential in<strong>for</strong>mation of <strong>Carbon</strong> Design Systems, Inc.,<br />
and may not be duplicated or disclosed to unauthorized and/or third parties.
Copyright<br />
Copyright © 2003-2013 <strong>Carbon</strong> Design Systems, Inc. All rights reserved.<br />
Files, documents or portions thereof presented on the <strong>Carbon</strong> Design Systems Internet server “Publication”, permits persons<br />
to view, copy, and print the Publication subject to the following conditions:<br />
• The Publication are to be kept strictly confidential<br />
• Copies of the Publication will not be distributed<br />
• Copies of the Publication must include the <strong>Carbon</strong> Design Systems copyright notice<br />
• <strong>Carbon</strong> Design Systems logos may only be used with <strong>Carbon</strong>'s expressed written permission, including but not limited<br />
to: linking through hyperlinks, electronic display, and print <strong>for</strong>mat.<br />
Disclaimer of Warranty<br />
This publication is provided “as is” without warranty of any kind, either expressed or implied, including, but not limited<br />
to, the implied warranties of merchantability, fitness <strong>for</strong> a particular purpose, or non-infringement. <strong>Carbon</strong> Design Systems<br />
assumes no responsibility <strong>for</strong> errors or omissions in this publication or other documents which are referenced by or<br />
linked to this publication.<br />
References to corporations, their services and products, are provided “as is” without warranty of any kind, either<br />
expressed or implied. In no event shall <strong>Carbon</strong> Design Systems be liable <strong>for</strong> any special, incidental, indirect or consequential<br />
damages of any kind, or any damages whatsoever, including, without limitation, those resulting from loss of<br />
use, data or profits, whether or not advised of the possibility of damage, and on any theory of liability, arising out of or in<br />
connection with the use or per<strong>for</strong>mance of this in<strong>for</strong>mation.<br />
This publication may include technical or other inaccuracies or typographical errors. <strong>Carbon</strong> Design Systems may make<br />
improvements and/or changes in the product(s) and/or the program(s) described in this publication and in the publication<br />
itself at any time.<br />
Trademarks<br />
© 2003-2013 <strong>Carbon</strong> Design Systems, Inc. All rights reserved. <strong>Carbon</strong> Design Systems, the <strong>Carbon</strong> Design Systems<br />
logo, <strong>Carbon</strong> <strong>Model</strong> Studio, Replay, OnDemand, <strong>SoC</strong> <strong>Designer</strong>, <strong>SoC</strong> <strong>Designer</strong> Plus, Software Be<strong>for</strong>e Silicon, SOC-VSP,<br />
Swap & Play, VSP, and The Answer to Validation are trademarks or registered trademarks of <strong>Carbon</strong> Design Systems,<br />
Incorporated in the United States and/or other countries.<br />
ARM, AMBA and RealView are registered trademarks of ARM Limited. AHB, APB and AXI are trademarks of ARM<br />
Limited. “ARM” is used to represent ARM Holdings plc; its operating company ARM Limited; and the regional subsidiaries<br />
ARM INC.; ARM KK; ARM Korea Ltd.; ARM Taiwan; ARM France SAS; ARM Consulting (Shanghai) Co.<br />
Ltd.; ARM Belgium N.V.; ARM Embedded Technologies Pvt. Ltd.; and ARM Physical IP, Inc.<br />
Microsoft, Windows 2000, and Windows XP are trademarks or registered trademarks of Microsoft Corporation in the<br />
United States and/or other countries.<br />
SystemC is a trademark of the Open SystemC Initiative.<br />
All other trademarks, registered trademarks, and products referenced herein are the property of their respective owners.<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Technical Support<br />
If you have questions or problems concerning <strong>Carbon</strong> software, contact Technical Support.<br />
Phone Support Hours: Monday–Friday<br />
9:00 am–5:00 pm EST<br />
<strong>Carbon</strong> Design Systems, Inc.<br />
125 Nagog Park<br />
Acton, MA 01720<br />
Voice: +1-978-264-7399<br />
Asia: +81-3-5524-1288<br />
Fax: +1-978-264-9990<br />
Email: support@carbondesignsystems.com<br />
Web: www.carbondesignsystems.com<br />
Voice mail is available after hours. You may also access our on-line feedback <strong>for</strong>m any time from the Support page of<br />
the <strong>Carbon</strong> web site.<br />
Document revised May 2013.
<strong>Carbon</strong> Design Systems, Inc. Confidential
Contents<br />
Chapter 1.<br />
Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
<strong>Cortex</strong>-<strong>A5</strong> Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-1<br />
Implemented Hardware Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2<br />
Hardware Features not Implemented . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2<br />
Features Additional to the Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3<br />
Adding and Configuring the <strong>SoC</strong> <strong>Designer</strong> Plus Component . . . . . . . . . . . . . . . . . . . . . . . .1-3<br />
<strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Component Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3<br />
Adding the <strong>Carbon</strong> <strong>Model</strong> to the Component Library . . . . . . . . . . . . . . . . . . . . . . . . . .1-4<br />
Adding the Component to the <strong>SoC</strong> <strong>Designer</strong> Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . .1-4<br />
Available Component ESL Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-5<br />
Setting Component Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-7<br />
Debug Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-10<br />
Register In<strong>for</strong>mation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-10<br />
Run To Debug Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-28<br />
Memory In<strong>for</strong>mation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-28<br />
Disassembly View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-29<br />
Available Profiling Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-30<br />
Software Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-30<br />
Hardware Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-30<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
vi<br />
Contents<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Preface<br />
vii<br />
Preface<br />
A <strong>Carbon</strong> <strong>Model</strong> component is a library developed from ARM intellectual property (IP)<br />
that is generated through <strong>Carbon</strong> <strong>Model</strong> Studio. The model then can be used within a<br />
virtual plat<strong>for</strong>m tool, <strong>for</strong> example, <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus.<br />
About This <strong>Guide</strong><br />
This guide provides all the in<strong>for</strong>mation needed to configure and use the <strong>Carbon</strong> <strong>Cortex</strong>-<strong>A5</strong><br />
single-processor (UNI) or multi-processor (MPCore) <strong>Model</strong> in <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong><br />
Plus.<br />
Audience<br />
This guide is intended <strong>for</strong> experienced hardware and software developers who create components<br />
<strong>for</strong> use with <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus. You should be familiar with the following<br />
products and technology:<br />
• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus<br />
• Hardware design verification<br />
• Verilog or VHDL programming language<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
viii<br />
Preface<br />
Conventions<br />
This guide uses the following conventions:<br />
Convention Description Example<br />
courier<br />
italic<br />
bold<br />
<br />
Commands, functions,<br />
variables, routines, and<br />
code examples that are set<br />
apart from ordinary text.<br />
New or unusual words or<br />
phrases appearing <strong>for</strong> the<br />
first time.<br />
Action that the user per<strong>for</strong>ms.<br />
Values that you fill in, or<br />
that the system automatically<br />
supplies.<br />
[ text ] Square brackets [ ] indicate<br />
optional text.<br />
[ text1 | text2 ] The vertical bar | indicates<br />
“OR,” meaning that you<br />
can supply text1 or text 2.<br />
sparseMem_t SparseMemCreate-<br />
New();<br />
Transactors provide the entry and exit<br />
points <strong>for</strong> data ...<br />
Click Close to close the dialog.<br />
/ represents the name of<br />
various plat<strong>for</strong>ms.<br />
$CARBON_HOME/bin/modelstudio<br />
[ ]<br />
$CARBON_HOME/bin/modelstudio<br />
[.symtab.db |<br />
.ccfg ]<br />
Also note the following references:<br />
• References to C code implicitly apply to C++ as well.<br />
• File names ending in .cc, .cpp, or .cxx indicate a C++ source file.<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Preface<br />
ix<br />
Further reading<br />
This section lists related publications by <strong>Carbon</strong> and by third parties.<br />
<strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Documentation<br />
The following publications provide in<strong>for</strong>mation that relate directly to <strong>SoC</strong> <strong>Designer</strong> Plus:<br />
• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Installation <strong>Guide</strong><br />
• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus <strong>User</strong> <strong>Guide</strong><br />
• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Standard <strong>Model</strong> Library Reference Manual<br />
External publications<br />
The following publications provide reference in<strong>for</strong>mation about ARM® products:<br />
• ARM <strong>Cortex</strong>-<strong>A5</strong> Technical Reference Manual<br />
• ARM <strong>Cortex</strong>-<strong>A5</strong> MPCore Technical Reference Manual<br />
• <strong>Cortex</strong>-<strong>A5</strong> Floating-Point Unit Technical Reference Manual<br />
• <strong>Cortex</strong>-<strong>A5</strong> NEON Media Processing Engine Technical Reference Manual<br />
• <strong>Cortex</strong>-<strong>A5</strong> Configuration and Sign-Off <strong>Guide</strong><br />
• AMBA Specification<br />
• AMBA AHB Transaction Level <strong>Model</strong>ing Specification<br />
• AMBA AXI Transaction Level <strong>Model</strong>ing Specification<br />
• Architecture Reference Manual<br />
• ARM RealView <strong>Model</strong> Debugger <strong>User</strong> <strong>Guide</strong><br />
See http://infocenter.arm.com/help/index.jsp <strong>for</strong> access to ARM documentation.<br />
The following publications provide additional in<strong>for</strong>mation on simulation:<br />
• IEEE 1666 SystemC Language Reference Manual, (IEEE Standards Association)<br />
• SPIRIT <strong>User</strong> <strong>Guide</strong>, Revision 1.2, SPIRIT Consortium.<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
x<br />
Preface<br />
Glossary<br />
AMBA<br />
AHB<br />
APB<br />
AXI<br />
<strong>Carbon</strong> <strong>Model</strong><br />
<strong>Carbon</strong> <strong>Model</strong><br />
Studio<br />
CASI<br />
CADI<br />
CAPI<br />
Component<br />
ESL<br />
HDL<br />
RTL<br />
<strong>SoC</strong> <strong>Designer</strong><br />
SystemC<br />
Transactor<br />
Advanced Microcontroller Bus Architecture. The ARM open standard on-chip<br />
bus specification that describes a strategy <strong>for</strong> the interconnection and management<br />
of functional blocks that make up a System-on-Chip (<strong>SoC</strong>).<br />
Advanced High-per<strong>for</strong>mance Bus. A bus protocol with a fixed pipeline<br />
between address/control and data phases. It only supports a subset of the functionality<br />
provided by the AMBA AXI protocol.<br />
Advanced Peripheral Bus. A simpler bus protocol than AXI and AHB. It is<br />
designed <strong>for</strong> use with ancillary or general-purpose peripherals such as timers,<br />
interrupt controllers, UARTs, and I/O ports.<br />
Advanced eXtensible Interface. A bus protocol that is targeted at high per<strong>for</strong>mance,<br />
high clock frequency system designs and includes a number of features<br />
that make it very suitable <strong>for</strong> high speed sub-micron interconnect.<br />
A software object created by the <strong>Carbon</strong> <strong>Model</strong> Studio (or <strong>Carbon</strong> compiler)<br />
from an RTL design. The <strong>Carbon</strong> <strong>Model</strong> contains a cycle- and register-accurate<br />
model of the hardware design.<br />
<strong>Carbon</strong>’s graphical tool <strong>for</strong> generating, validating, and executing hardwareaccurate<br />
software models. It creates a <strong>Carbon</strong> <strong>Model</strong>, and it also takes a <strong>Carbon</strong><br />
<strong>Model</strong> as input and generates a <strong>Carbon</strong> component that can be used in<br />
<strong>SoC</strong> <strong>Designer</strong> Plus, Plat<strong>for</strong>m Architect, or OSCI SystemC <strong>for</strong> simulation.<br />
ESL API Simulation Interface, is based on the SystemC communication<br />
library and manages the interconnection of components and communication<br />
between components.<br />
ESL API Debug Interface, enables reading and writing memory and register<br />
values and also provides the interface to external debuggers.<br />
ESL API Profiling Interface, enables collecting historical data from a component<br />
and displaying the results in various <strong>for</strong>mats.<br />
Building blocks used to create simulated systems. Components are connected<br />
together with unidirectional transaction-level or signal-level connections.<br />
Electronic System Level. A type of design and verification methodology that<br />
models the behavior of an entire system using a high-level language such as C<br />
or C++.<br />
Hardware Description Language. A language <strong>for</strong> <strong>for</strong>mal description of electronic<br />
circuits, <strong>for</strong> example, Verilog or VHDL.<br />
Register Transfer Level. A high-level hardware description language (HDL)<br />
<strong>for</strong> defining digital circuits.<br />
The full name is <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus. A high-per<strong>for</strong>mance, cycle accurate<br />
simulation framework which is targeted at System-on-a-Chip hardware<br />
and software debug as well as architectural exploration.<br />
SystemC is a single, unified design and verification language that enables verification<br />
at the system level, independent of any detailed hardware and software<br />
implementation, as well as enabling co-verification with RTL design.<br />
Transaction adaptors. You add transactors to your <strong>Carbon</strong> component to connect<br />
your component directly to transaction level interface ports <strong>for</strong> your particular<br />
plat<strong>for</strong>m.<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
<strong>Cortex</strong>-<strong>A5</strong> Functionality 1-1<br />
Chapter 1<br />
Using the <strong>Model</strong> Kit Component in<br />
<strong>SoC</strong> <strong>Designer</strong> Plus<br />
This chapter describes the functionality of the <strong>Model</strong> component, and how to use it in<br />
<strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus. It contains the following sections:<br />
• <strong>Cortex</strong>-<strong>A5</strong> Functionality<br />
• Adding and Configuring the <strong>SoC</strong> <strong>Designer</strong> Plus Component<br />
• Available Component ESL Ports<br />
• Setting Component Parameters<br />
• Debug Features<br />
• Available Profiling Data<br />
1.1 <strong>Cortex</strong>-<strong>A5</strong> Functionality<br />
The <strong>Cortex</strong>-<strong>A5</strong> processors can be used in both a uniprocessor configuration and multiprocessor<br />
configurations.<br />
In the multiprocessor configuration, up to four <strong>Cortex</strong>-<strong>A5</strong> processors are available in a<br />
cache-coherent cluster, under the control of a Snoop Control Unit (SCU), that maintains<br />
L1 data cache coherency.<br />
The <strong>Cortex</strong>-<strong>A5</strong> MPCore multiprocessor has:<br />
• up to four <strong>Cortex</strong>-<strong>A5</strong> processors<br />
• an SCU responsible <strong>for</strong> maintaining coherency among L1 data caches<br />
• an Interrupt Controller (IC) with support <strong>for</strong> legacy ARM interrupts<br />
• a private timer and a private watchdog per processor<br />
• a global timer<br />
• AXI high-speed Advanced Microprocessor Bus Architecture (AMBA) L2 interfaces.<br />
• an Accelerator Coherency Port (ACP), an optional AXI 64-bit slave port that can be<br />
connected to a DMA engine or a non-cached peripheral.<br />
It is possible to implement only one <strong>Cortex</strong>-<strong>A5</strong> processor in a <strong>Cortex</strong>-<strong>A5</strong> MPCore processor<br />
design. In this configuration, an SCU is still provided. The ACP, and an additional<br />
master port, are also available in this configuration.<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-2 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
This section provides a summary of the functionality of the model compared to that of the<br />
hardware, and the per<strong>for</strong>mance and accuracy of the model.<br />
• Implemented Hardware Features<br />
• Hardware Features not Implemented<br />
• Features Additional to the Hardware<br />
1.1.1 Implemented Hardware Features<br />
Most hardware features have been implemented. Some functionality and register pin differences<br />
are listed in the next section.<br />
Note that when using semihosting you must use the semihost component from <strong>Carbon</strong>.<br />
This “<strong>Carbon</strong>Semihost” component is included in the <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Standard<br />
<strong>Model</strong> Library, version 3.0 or greater. The ARM RVML semihost component will not<br />
work with the <strong>Carbon</strong> <strong>Model</strong>. Additionally, only a single core is currently supported <strong>for</strong><br />
semihosting.<br />
See the ARM <strong>Cortex</strong>-<strong>A5</strong> MPCore Technical Reference Manual <strong>for</strong> more in<strong>for</strong>mation.<br />
1.1.2 Hardware Features not Implemented<br />
The following features of the <strong>Cortex</strong>-<strong>A5</strong> hardware are not implemented in the <strong>Carbon</strong>ized<br />
model:<br />
• TLB Lockdown is not supported.<br />
• The following registers are not available to be read / written via debug transactions —<br />
<strong>for</strong> example, in the <strong>SoC</strong> <strong>Designer</strong> Plus Registers window, or by accessing them<br />
directly from RealView Debugger:<br />
– Cache register; ICIALLU, ICIMVAU, FPB, BPIALL, BPIMVA, DCIMVAC,<br />
DCISW, DCCMVAC, DCCSW, DCCMVAU, DCCIMVAC, and DCCISW<br />
– TLB register; not supported<br />
– Virtual Address to Physical Address register; V2PCWPR, V2PCWPW,<br />
V2PCWUR, V2PCWUW, V2POWPR, V2POWPW, V2POWUR, and V2POWUW<br />
The functionality of these registers, however, does exist and can be accessed by software<br />
running on the virtual plat<strong>for</strong>m.<br />
• Some register pins are read-only as well. See the section “Register In<strong>for</strong>mation” on<br />
page 1-10 <strong>for</strong> more in<strong>for</strong>mation.<br />
• Debug transactions do not fully support cache coherence. This means that the debug<br />
transaction could read or write data without realizing that it is accessing data that<br />
resides in the other cores’ L1 cache. Debug transactions are needed by RVD accesses<br />
to memory, as well as by semihosting. If you see a different memory value from RVD<br />
than what you see by opening the Memory view in the processor and memory, then<br />
your design may have encountered this limitation.<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Adding and Configuring the <strong>SoC</strong> <strong>Designer</strong> Plus Component 1-3<br />
1.1.3 Features Additional to the Hardware<br />
The following features that are implemented in the <strong>Cortex</strong>-<strong>A5</strong> model do not exist in the<br />
<strong>Cortex</strong>-<strong>A5</strong> hardware. These features have been added to the model <strong>for</strong> enhanced usability.<br />
• The component supports positive and negative level irq and fiq signal. This is configurable<br />
using the negLogic parameter (see Table 1-3 on page 1-8).<br />
• The “run to debug point” feature has been added. This feature <strong>for</strong>ces the debugger to<br />
advance the processor to the debug state instead of having the model get into a nondebuggable<br />
state. See “Run To Debug Point” on page 1-28 <strong>for</strong> more in<strong>for</strong>mation.<br />
1.2 Adding and Configuring the <strong>SoC</strong> <strong>Designer</strong> Plus Component<br />
The following topics briefly describe how to use the component. See the <strong>Carbon</strong> <strong>SoC</strong><br />
<strong>Designer</strong> Plus <strong>User</strong> <strong>Guide</strong> <strong>for</strong> more in<strong>for</strong>mation.<br />
• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Component Files<br />
• Adding the <strong>Carbon</strong> <strong>Model</strong> to the Component Library<br />
• Adding the Component to the <strong>SoC</strong> <strong>Designer</strong> Canvas<br />
1.2.1 <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Component Files<br />
The component files are the final output from the <strong>Carbon</strong> <strong>Model</strong> Studio compile and are<br />
the input to <strong>SoC</strong> <strong>Designer</strong> Plus. There are two versions of the component; an optimized<br />
release version <strong>for</strong> normal operation, and a debug version.<br />
On Linux, the debug version of the component is compiled without optimizations and<br />
includes debug symbols <strong>for</strong> use with gdb. The release version is compiled without debug<br />
in<strong>for</strong>mation and is optimized <strong>for</strong> per<strong>for</strong>mance.<br />
On Windows, the debug version of the component is compiled referencing the debug runtime<br />
libraries so it can be linked with the debug version of <strong>SoC</strong> <strong>Designer</strong> Plus. The release<br />
version is compiled referencing the release runtime library. Both release and debug versions<br />
generate debug symbols <strong>for</strong> use with the Visual C++ debugger on Windows.<br />
The provided component files are listed below:<br />
Table 1-1 <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Component Files<br />
Plat<strong>for</strong>m File Description<br />
Linux<br />
Windows<br />
maxlib.lib.conf<br />
lib.mx.so<br />
lib.mx_DBG.so<br />
maxlib.lib.windows.conf<br />
lib.mx.dll<br />
lib.mx_DBG.dll<br />
<strong>SoC</strong> <strong>Designer</strong> Plus configuration file<br />
<strong>SoC</strong> <strong>Designer</strong> Plus component runtime file<br />
<strong>SoC</strong> <strong>Designer</strong> Plus component debug file<br />
<strong>SoC</strong> <strong>Designer</strong> Plus configuration file<br />
<strong>SoC</strong> <strong>Designer</strong> Plus component runtime file<br />
<strong>SoC</strong> <strong>Designer</strong> Plus component debug file<br />
Additionally, this <strong>User</strong> <strong>Guide</strong> PDF file and a ReadMe text file are provided with the component.<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-4 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
1.2.2 Adding the <strong>Carbon</strong> <strong>Model</strong> to the Component Library<br />
The compiled <strong>Carbon</strong> <strong>Model</strong> component is provided as a configuration file (.conf). To<br />
make the component available in the Component Window in <strong>SoC</strong> <strong>Designer</strong> Canvas, per<strong>for</strong>m<br />
the following steps:<br />
1. Launch <strong>SoC</strong> <strong>Designer</strong> Canvas.<br />
2. From the File menu, select Preferences.<br />
3. Click on Component Library in the list on the left.<br />
4. Under the Additional Component Configuration Files window, click Add.<br />
5. Browse to the location where the <strong>SoC</strong> <strong>Designer</strong> Plus model is located and select the<br />
component configuration file:<br />
– maxlib.lib.conf (<strong>for</strong> Linux)<br />
– maxlib.lib.windows.conf (<strong>for</strong> Windows)<br />
6. Click OK.<br />
7. To save the preferences permanently, click the OK & Save button.<br />
The component is now available from the <strong>SoC</strong> <strong>Designer</strong> Plus Component Window.<br />
1.2.3 Adding the Component to the <strong>SoC</strong> <strong>Designer</strong> Canvas<br />
Locate the component in the Component Window and drag it out to the Canvas. It will<br />
appear as shown in Figure 1-1.<br />
Uniprocessor<br />
Multi-processor<br />
Figure 1-1 <strong>Cortex</strong>-<strong>A5</strong> MPCore and Uniprocessor Components in<br />
<strong>SoC</strong> <strong>Designer</strong> Plus<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Available Component ESL Ports 1-5<br />
The figure shows the component with 2 Master AXI ports. The second master port appears<br />
only if was defined in the model RTL configuration file, e.g., CORTEX<strong>A5</strong>MP.conf.<br />
1.3 Available Component ESL Ports<br />
Table 1-2 describes the ESL ports that are exposed in <strong>SoC</strong> <strong>Designer</strong> Plus. Some ports may<br />
or may not appear depending on whether you are using the multi-processor or uniprocessor<br />
version of the ARM hardware. See the ARM <strong>Cortex</strong>-<strong>A5</strong> Technical Reference Manual or<br />
ARM <strong>Cortex</strong>-<strong>A5</strong> MPCore Technical Reference Manual <strong>for</strong> more in<strong>for</strong>mation.<br />
Table 1-2 ESL Component Ports<br />
ESL Port Description Direction Type<br />
ACLKENM0<br />
ACLKENM1<br />
ACLKEN<br />
Master Port 0 Clock enable <strong>for</strong> a MP component:<br />
Default Value is 1<br />
Master Port 1 Clock enable <strong>for</strong> a MP component. Must be<br />
configured as part of the component<br />
Default Value is 1<br />
Master Port 0 Clock enable <strong>for</strong> a UP component<br />
Default Value is 1<br />
ACLKENS ACP AXI Bus clock enable. By default it is set to 1<br />
through a component parameter. If another component is<br />
connected through this port, it will override the default<br />
value. (Available only with the MPCore)<br />
CFGSDISABLE<br />
CP15SDISABLE<br />
EVENTI<br />
INT<br />
fiq 1<br />
irq 1<br />
Disables write access to some system control processor<br />
registers. See the MPCore TRM, page 4-12.<br />
Disabled write access to some system control processor<br />
registers.<br />
Event input <strong>for</strong> <strong>Cortex</strong>-<strong>A5</strong> processor wake-up from WFE<br />
state.<br />
This port connects to external interrupt signals. It can be<br />
any size between 0 and 224, in increments of 32. The<br />
value must indicate the interrupt number [NumIRQ..0]<br />
and the *extValue must indicate whether the IRQ line is<br />
asserted (*extValue=1) or deasserted (*extValue=0).<br />
<strong>Cortex</strong>-<strong>A5</strong> processor private FIQ request input lines. Size<br />
will be 1 <strong>for</strong> a UP and 4 <strong>for</strong> a MP. For each line the values<br />
may be:<br />
0 = do not activate fast interrupt<br />
1 = activate fast interrupt<br />
<strong>Cortex</strong>-<strong>A5</strong> processor legacy IRQ request input lines. Size<br />
will be 1 <strong>for</strong> a UP and 4 <strong>for</strong> a MP. For each line the values<br />
may be:<br />
0 = do not activate interrupt<br />
1 = activate interrupt<br />
Input<br />
Input<br />
Input<br />
Input<br />
Input<br />
Input<br />
Input<br />
Input<br />
Input<br />
Input<br />
Signal Slave<br />
Signal Slave<br />
Signal Slave<br />
Signal slave<br />
Signal slave<br />
Signal slave<br />
Signal slave<br />
Signal slave<br />
Signal slave<br />
Signal slave<br />
apb_dbg APB debug interface Input APB Transaction<br />
slave<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-6 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
acp<br />
Table 1-2 ESL Component Ports (Continued)<br />
ESL Port Description Direction Type<br />
AXI ACP (Accelerator Coherency Port) Slave port.<br />
(Available only when it has been enabled in the configuration<br />
file.)<br />
Input<br />
AXI Transaction<br />
slave<br />
clk_in Input clock. Input Clock slave<br />
EVENTO<br />
Event output. This signal is active when one SEV instruction<br />
Output Signal master<br />
is executed.<br />
SMPnAMP Signals AMP or SMP mode <strong>for</strong> each <strong>Cortex</strong>-<strong>A5</strong> MPCore Output Signal master<br />
processor.<br />
PCLKENDBG apb_dbg Bus Clock Enable Input Signal Slave<br />
STANDBYWFE Indicates if a <strong>Cortex</strong>-<strong>A5</strong> processor is in WFE state. Output Signal master<br />
STANBYWFI Indicates that a <strong>Cortex</strong>-<strong>A5</strong> processor is in Standby mode. Output Signal master<br />
nCPURESET CPU Reset Input Signal Slave<br />
nDBGRESET Debug Reset Input Signal Slave<br />
nWDRESET Watch Reset Input Signal Slave<br />
nPEROPHRESET Peripharl Reset Input Signal Slave<br />
nSCURESET SCU Reset Input Signal Slave<br />
axi_m0 AXI Master port 0. Output AXI Transaction<br />
master<br />
axi_m1<br />
AXI Master port 1 (Available only when a second master<br />
has been defined in the configuration file).<br />
Output AXI Transaction<br />
master<br />
extSemi There is an extSemi port per core in a multi-core <strong>A5</strong>,<br />
where is 0-3 to represent the core. In the single-processor<br />
version, this port is simply extSemi0. Semihosting<br />
can be enabled by connecting these ports to the <strong>SoC</strong><br />
<strong>Designer</strong> Plus semihost component contained in the <strong>Carbon</strong><br />
<strong>SoC</strong> <strong>Designer</strong> Plus Standard <strong>Model</strong> Library (v3.0 or<br />
greater).<br />
Output<br />
Transaction<br />
master<br />
1. For these interrupt ports, the active high/low setting is controlled by the negLogic component parameter.<br />
The default is active high.<br />
All pins that are not listed in this table have been either tied or disconnected <strong>for</strong> per<strong>for</strong>mance<br />
reasons.<br />
Note:<br />
Some ESL component port values can be set using a component parameter. This<br />
includes the CFGEND and CLUSTERID ports. In those cases, the parameter<br />
value will be used whenever the ESL port is not connected. If the port is connected,<br />
the connection value takes precedence over the parameter value.<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Setting Component Parameters 1-7<br />
1.4 Setting Component Parameters<br />
You can change the settings of all the component parameters in <strong>SoC</strong> <strong>Designer</strong> Canvas, and<br />
of some of the parameters in <strong>SoC</strong> <strong>Designer</strong> Simulator. To modify the <strong>Carbon</strong> component’s<br />
parameters:<br />
1. In the Canvas, right-click on the <strong>Carbon</strong> component and select Edit Parameters....<br />
You can also double-click the component. The Edit Parameters dialog box appears.<br />
Figure 1-2 Component Parameters Dialog Box<br />
The list of available parameters will be slightly different depending on the settings that<br />
you enabled in the configuration file (<strong>for</strong> example, CORTEX<strong>A5</strong>MP.conf) and depending<br />
on whether you are using the multi-processor or uniprocessor version of the ARM<br />
hardware.<br />
2. In the Parameters window, double-click the Value field of the parameter that you<br />
want to modify.<br />
3. If it is a text field, type a new value in the Value field. If a menu choice is offered,<br />
select the desired option. The parameters are described in Table 1-3.<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-8 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
Table 1-3 Component Parameters<br />
Name<br />
Description<br />
Allowed<br />
Values<br />
Default Value Runtime 1<br />
ACLKENM0 MP Master Port 0 Bus clock enable. integer 1 Yes<br />
ACLKENM1 MP Master Port 1 Bus clock enable. integer 1 Yes<br />
ACLKEN UP Master Port Bus clock enable. integer 1 Yes<br />
ACLKENS ACP AXI Bus clock enable. integer 1 Yes<br />
Align Wave<strong>for</strong>ms When set to true, wave<strong>for</strong>ms dumped<br />
by the <strong>Carbon</strong> component are aligned<br />
with the <strong>SoC</strong> <strong>Designer</strong> Plus simulation<br />
time. The reset sequence, however,<br />
is not included in the dumped<br />
data.<br />
When set to false, the reset sequence<br />
is dumped to the wave<strong>for</strong>m data, however,<br />
the <strong>Carbon</strong> component time is<br />
not aligned with <strong>SoC</strong> <strong>Designer</strong> Plus<br />
time.<br />
true, false true No<br />
apb_dbg Base Address Base address 0x0 –<br />
0xffffffff<br />
apb_dbg Enable Debug<br />
Messages<br />
Whether debug messages are logged<br />
<strong>for</strong> the APB port.<br />
apb_dbg Size Size 0x0 –<br />
0x100000000<br />
axi_m0 Enable Debug<br />
Messages<br />
axi_m1 Enable Debug<br />
Messages<br />
axi_s axi_size0<br />
axi_s axi_size[1-5]<br />
axi_s axi_start[0-5]<br />
axi_s Enable Debug<br />
Messages<br />
<strong>Carbon</strong> DB Path<br />
Whether debug messages are logged<br />
<strong>for</strong> master port 0.<br />
Whether debug messages are logged<br />
<strong>for</strong> master port 1.<br />
These parameters are obsolete and<br />
should be left at their default values. 2<br />
Whether debug messages are logged<br />
<strong>for</strong> the slave port.<br />
Sets the directory path to the <strong>Carbon</strong><br />
database file.<br />
0x0<br />
No<br />
true, false false Yes<br />
0x100000000<br />
No<br />
true, false false Yes<br />
true, false false Yes<br />
0x100000000<br />
0x0<br />
0x00000000<br />
0x100000000<br />
0x0<br />
0x00000000<br />
No<br />
true, false false Yes<br />
Not Used empty No<br />
CFGEND Endianness configuration. true, false false Yes<br />
CLUSTERID<br />
Value read in Cluster ID register field, 0-15 0 Yes<br />
bits[11:8] of the MPIDR.<br />
DataCacheSize<br />
For UP only, sets the Data Cache<br />
Size.<br />
04K, 08K,<br />
16K,32K,<br />
64K<br />
64K<br />
No<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Setting Component Parameters 1-9<br />
Table 1-3 Component Parameters (Continued)<br />
Name<br />
Description<br />
Allowed<br />
Values<br />
Default Value Runtime 1<br />
DataCache-<br />
SizeCPUXXX<br />
Dump Wave<strong>for</strong>ms<br />
Enable Debug<br />
Messages<br />
InstrCacheSize<br />
InstrCache-<br />
SizeCPUXXX<br />
negLogic<br />
PERIPHBASE<br />
Secure Non-Invasive<br />
Debug Enable<br />
VINITHI<br />
For MP only, sets the Data Cache<br />
Size. XXX may be CPU0, CPU1,<br />
CPU2, CPU3<br />
Whether <strong>SoC</strong> <strong>Designer</strong> Plus dumps<br />
wave<strong>for</strong>ms <strong>for</strong> this component.<br />
Whether debug messages are logged<br />
<strong>for</strong> the component.<br />
For UP only, sets the Instruction<br />
Cache Size.<br />
Sets the Instruction Cache Size. XXX<br />
may be CPU0, CPU1, CPU2, CPU3<br />
Sets IRQ/FIQ assertion to use negative<br />
logic. Default of false means<br />
0=off and 1=on. True means 0=on and<br />
1=off.<br />
32-bit parameter; the bottom 13 bits<br />
must be 0. Specifies the base address<br />
<strong>for</strong> Timers, Watchdogs, Interrupt<br />
Controller, and SCU registers.<br />
Enables non-invasive debug, including<br />
PC tracing and hardware profiling<br />
(see “Available Profiling Data” on<br />
page 1-30).<br />
Individual processor control of the<br />
location of the exception vectors at<br />
reset.<br />
04K, 08K,<br />
16K,32K,<br />
64K<br />
64K<br />
No<br />
true, false false Yes<br />
true, false false Yes<br />
04K, 08K,<br />
16K,32K,<br />
64K<br />
04K, 08K,<br />
16K,32K,<br />
64K<br />
64K<br />
64K<br />
No<br />
No<br />
true, false false Yes<br />
any 318767104<br />
(0x13000000)<br />
Yes<br />
0 - 0xF 0xF No<br />
0, 1 0x0 Yes<br />
Wave<strong>for</strong>m File 3 Name of the wave<strong>for</strong>m file. string carbon_CORTEX<br />
<strong>A5</strong>.vcd or<br />
carbon_CORTEX<br />
<strong>A5</strong>MP.vcd<br />
Wave<strong>for</strong>m Timescale<br />
Sets the timescale to be used in the<br />
wave<strong>for</strong>m.<br />
Many values<br />
in drop-down<br />
No<br />
1 ns No<br />
1. Yes means the parameter can be dynamically changed during simulation, No means it can be changed only<br />
when building the system, Reset means it can be changed during simulation, but its new value will be taken<br />
into account only at the next reset.<br />
2. <strong>Carbon</strong> recommends using the Memory Map Editor (MME) in <strong>SoC</strong> <strong>Designer</strong> Plus, which provides centralized<br />
viewing and management of the memory regions available to the components in a system. For in<strong>for</strong>mation<br />
about migrating existing systems to use the MME, refer to Chapter 9 of the <strong>SoC</strong> <strong>Designer</strong> Plus <strong>User</strong> <strong>Guide</strong>.<br />
3. When enabled, <strong>SoC</strong> <strong>Designer</strong> Plus writes accumulated wave<strong>for</strong>ms to the wave<strong>for</strong>m file in the following situations:<br />
when the wave<strong>for</strong>m buffer fills, when validation is paused and when validation finishes, and at the end<br />
of each validation run.<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-10 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
1.5 Debug Features<br />
The <strong>Cortex</strong>-<strong>A5</strong> model has a debug interface (CADI) that allows the user to view, manipulate,<br />
and control the registers and memory. A view can be accessed in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
by right clicking on the model and choosing the appropriate menu entry.<br />
The following topics are discussed in this section:<br />
• Register In<strong>for</strong>mation<br />
• Run To Debug Point<br />
• Memory In<strong>for</strong>mation<br />
• Disassembly View<br />
Note:<br />
The <strong>Cortex</strong>-<strong>A5</strong> can have up to two slave ports. The apb_dbg port is used <strong>for</strong> Core-<br />
Sight debug, and the acp port is <strong>for</strong> ACP, which is used to connect to a DMA<br />
engine. These are supported as simulation interfaces, but they are not supported<br />
as debug interfaces. This means if a CADI operation is per<strong>for</strong>med on one of these<br />
interfaces, it will not return data.<br />
1.5.1 Register In<strong>for</strong>mation<br />
Figure 1-3 shows the Register view of the <strong>Cortex</strong>-<strong>A5</strong> model in <strong>SoC</strong> <strong>Designer</strong> Simulator.<br />
Figure 1-3 <strong>Cortex</strong>-<strong>A5</strong> Registers View<br />
The <strong>Cortex</strong>-<strong>A5</strong> model has many sets of registers that are accessible via the debug interface.<br />
Registers are grouped into sets according to functional area.<br />
• Core Registers<br />
• Debug Registers<br />
• ID Registers<br />
• VA to PA Registers<br />
• Pseudo Registers<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Debug Features 1-11<br />
1.5.1.1 Core Registers<br />
• Normal World Registers<br />
• Secure World Registers<br />
• Control Registers<br />
• Perf Registers<br />
• SCU Registers<br />
• Global Timer Registers<br />
• Timer/Watchdog Registers<br />
• Processor Interface (GIC_Core) Registers<br />
• Interrupt Distributor (GIC_Dist) Registers<br />
• VFP/Neon Registers<br />
See the ARM <strong>Cortex</strong>-<strong>A5</strong> MPCore Technical Reference Manual <strong>for</strong> detailed descriptions of<br />
these registers.<br />
The Core group contains the ARM architectural registers.<br />
Table 1-4 Core Registers<br />
Name Description Type<br />
R0 R0 register read-write 1<br />
R1 R1 register read-write 1<br />
R2 R2 register read-write 1<br />
R3 R3 register read-write 1<br />
R4 R4 register read-write 1<br />
R5 R5 register read-write 1<br />
R6 R6 register read-write 1<br />
R7 R7 register read-write 1<br />
R8 R8 register read-write 1<br />
R9 R9 register read-write 1<br />
R10 R10 register read-write 1<br />
R11 R11 register read-write 1<br />
R12 R12 register read-write 1<br />
R13 SP register read-write 1<br />
R14 LR register read-write 1<br />
R15 PC register read-write<br />
R8_USR R8 USR register read-write 1<br />
R9_USR R9 USR register read-write 1<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-12 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
Table 1-4 Core Registers (Continued)<br />
Name Description Type<br />
R10_USR R10 USR register read-write 1<br />
R11_USR R11 USR register read-write 1<br />
R12_USR R12 USR register read-write 1<br />
R13_USR SP USR register read-write 1<br />
R14_USR LR USR register read-write 1<br />
SPSR_usr Saved Program status register in USR mode read-write<br />
SPSR Current Program status register in USR mode read-write<br />
CPSR Current Program Status Register register read-only<br />
R13_irq SP IRQ register read-write 1<br />
R14_irq LR IRQ register read-write 1<br />
SPSR_irq Saved Program Status Register IRQ register read-only<br />
R13_svc SP SVC register read-write 1<br />
R14_svc LR SVC register read-write 1<br />
SPSR_svc Saved Program Status Register SVC register read-only<br />
R13_abt SP ABT register read-write 1<br />
R14_abt LR ABT register read-write 1<br />
SPSR_abt Saved Program Status Register ABT register read-only<br />
R13_UND SP UND register read-write 1<br />
R14_UND LR UND register read-write 1<br />
SPSR_UND Saved Program Status Register UND register read-only<br />
R8_fiq R8 FIQ register read-write 1<br />
R9_fiq R9 FIQ register read-write 1<br />
R10_fiq R10 FIQ register read-write 1<br />
R11_fiq R11 FIQ register read-write 1<br />
R12_fiq R12 FIQ register read-write 1<br />
R13_fiq SP FIQ register read-write 1<br />
R14_fiq LR FIQ register read-write 1<br />
SPSR_fiq Saved Program Status Register FIQ register read-only<br />
R13_mon SP MON register read-write 1<br />
R14_mon LR MON register read-write 1<br />
SPSR_mon Saved Program Status Register MON register read-only<br />
ExtendedTargetFeatures Used internally <strong>for</strong> TrustZone support read-only<br />
CCSIDR Cache Size ID register read-only<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Debug Features 1-13<br />
Table 1-4 Core Registers (Continued)<br />
Name Description Type<br />
CLIDR Cache Level ID register read-only<br />
AIDR Auxiliary ID register read-only<br />
CSSELR Cache Size Selection register read-only<br />
1. Writeable at debug point only.<br />
1.5.1.2 Debug Registers<br />
The Debug group provides access to the current debug state.<br />
Table 1-5 Debug Registers<br />
Name Description Type<br />
CP14_DSCR Debug Status and Control register read-write<br />
DBGDIDR Debug ID register read-only<br />
DBGDRAR Debug ROM Address register read-only<br />
DBGDSAR Debug Self Address Offset register read-only<br />
DBGPCSR Program Counter Sampling register read-only<br />
DBGDRCR Debug Run Control register write-only<br />
DBGBVR0 Breakpoint Value register 0 read-write<br />
DBGBVR1 Breakpoint Value register 1 read-write<br />
DBGBVR2 Breakpoint Value register 2 read-write<br />
DBGBCR0 Breakpoint Control register 0 read-write<br />
DBGBCR1 Breakpoint Control register 1 read-write<br />
DBGBCR2 Breakpoint Control register 2 read-write<br />
DBGWVR0 Watchpoint Value register 0 read-write<br />
DBGWVR1 Watchpoint Value register 1 read-write<br />
DBGWCR0 Watchpoint Control register 0 read-only<br />
DBGWCR1 Watchpoint Control register 1 read-only<br />
DBGPRCR Device Powerdown and Rest Control register read-only<br />
DBGPRSR Device Powerdown and Rest Status register read-only<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-14 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
1.5.1.3 ID Registers<br />
The ID group contains registers that describe the processor capabilities.<br />
Table 1-6 ID Registers<br />
Name Description Type<br />
MIDR Main ID register read-only<br />
CTR Cache Type register read-only<br />
TCMTR TCM Type register read-only<br />
TLBTR TLB Type register read-only<br />
MPIDR<br />
Multiprocessor Affinity register. Only valid with<br />
the <strong>Cortex</strong>-<strong>A5</strong> MPCore.<br />
read-only<br />
ID_PFR0 Processor Feature 0 register read-only<br />
ID_PFR1 Processor Feature 1 register read-only<br />
ID_DFR0 Debug Feature 0 register read-only<br />
ID_AFR0 Auxiliary Feature 0 register read-only<br />
ID_MMFR0 Memory <strong>Model</strong> Feature 0 register read-only<br />
ID_MMFR1 Memory <strong>Model</strong> Feature 1 register read-only<br />
ID_MMFR2 Memory <strong>Model</strong> Feature 2 register read-only<br />
ID_MMFR3 Memory <strong>Model</strong> Feature 3 register read-only<br />
ID_ISAR0 ID_ISAR0 register read-only<br />
ID_ISAR1 ID_ISAR1 register read-only<br />
ID_ISAR2 ID_ISAR2 register read-only<br />
ID_ISAR3 ID_ISAR3 register read-only<br />
ID_ISAR4 ID_ISAR4 register read-only<br />
ID_ISAR5 ID_ISAR5 register (always returns 0) read-only<br />
ID_ISAR6 ID_ISAR6 register (always returns 0) read-only<br />
ID_ISAR7 ID_ISAR7 register (always returns 0) read-only<br />
1.5.1.4 VA to PA Registers<br />
The VA to PA group contains registers to per<strong>for</strong>m virtual to physical address translations.<br />
Table 1-7 VA to PA Registers<br />
Name Description Type<br />
PAR Physical address register read-write<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Debug Features 1-15<br />
1.5.1.5 Pseudo Registers<br />
The PSEUDO group contains registers to mirror functionality contained with ARM’s Fast<br />
<strong>Model</strong> version of the <strong>Cortex</strong><strong>A5</strong>.<br />
Table 1-8 VA to PA Registers<br />
Name Description Type<br />
PC_MEMSPACE Used internally <strong>for</strong> Fast <strong>Model</strong> mirroring read-only<br />
1.5.1.6 Normal World Registers<br />
The Normal World group contains control register that are only accessible in non-secure<br />
mode.<br />
Table 1-9 Normal World Registers<br />
Name Description Type<br />
N_CSSELR Cache Size Selection register read-only<br />
N_SCTLR [N] System Control register read-write<br />
N_ACTLR [N] Auxiliary Control register read-write<br />
N_TTBR0 [N] TTBR0 register read-write<br />
N_TTBR1 [N] TTBR1 register read-write<br />
N_TTBCR [N] TTBCR register read-write<br />
N_DACR [N] Domain Access Control register read-write<br />
N_DFSR [N] Data Fault Status register read-write<br />
N_IFSR [N] Instruction Fault Status register read-write<br />
N_ADFSR [N] Auxiliary Data Fault Status register read-only<br />
N_AIFSR [N] Auxiliary Data Fault Status register read-only<br />
N_DFAR [N] Data Fault Address register read-write<br />
N_IFAR [N] Instruction Fault Address register read-write<br />
N_PRRR [N] Primary Region Remap register read-write<br />
N_NMRR [N] Normal Memory Remap register read-write<br />
N_VBAR [N] Vector Base Address register read-write<br />
N_FCSEIDR Fast Context Switch Extenison register read-write<br />
N_CONTEXTIDR [N] Context ID register read-write<br />
N_TPIDRURW [N] <strong>User</strong> Read/Write Thread ID register read-write<br />
N_TPIDRURO [N] <strong>User</strong> Read Only Thread ID register read-write<br />
N_TPIDRPRW [N] Privileged Only Thread ID register read-write<br />
N_PAR Physical Address register read-write<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-16 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
1.5.1.7 Secure World Registers<br />
The Secure group contains control registers that are only accessible in secure mode.<br />
Table 1-10 Secure World Registers<br />
Name Description Type<br />
S_CSSELR Cache Size Selection register read-only<br />
S_SCTLR [S] System Control register read-write<br />
S_ACTLR Auxiliary Control register read-write<br />
SCR Secure register read-write<br />
SDER Secure Debug Enable register read-write<br />
S_TTBR0 [S] TTBR0 register read-write<br />
S_TTBR1 [S] TTBR1 register read-write<br />
S_TTBCR [S] TTBCR register read-write<br />
S_DACR [S] Domain Access Control register read-write<br />
S_DFSR [S] Data Fault Status register read-write<br />
S_IFSR [S] Instruction Fault Status register read-write<br />
S_ADFSR [S] Auxiliary Data Fault Status register read-only<br />
S_AIFSR [S] Auxiliary Instruction Fault Status register read-only<br />
S_DFAR [S] Data Fault Address register read-write<br />
S_IFAR [S] Instruction Fault Address register read-write<br />
S_PRRR [S] Primary Region Remap register read-write<br />
S_NMRR [S] Normal Memory Remap register read-write<br />
S_VBAR [S] Vector Base Address register read-write<br />
MVBAR Monitor Vector Base Address register read-write<br />
S_FCSEIFR Fast Context Switch register read-write<br />
S_CONTEXTIDR [S] Context ID register read-write<br />
S_TPIDRURW [S] <strong>User</strong> Read/Write Thread ID register read-write<br />
S_TPIDRURO [S] <strong>User</strong> Read Only Thread ID register read-write<br />
S_TPIDRPRW [S] Privileged Only Thread ID register read-write<br />
S_PAR Physical Address register read-write<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Debug Features 1-17<br />
1.5.1.8 Control Registers<br />
The Control group contains registers that dynamically configure the processor.<br />
Table 1-11 Control Registers<br />
Name Description Type<br />
SCTLR System Control register read-write<br />
ACTLR<br />
Auxiliary Control register. Only valid with the read-only<br />
<strong>Cortex</strong>-<strong>A5</strong> MPCore.<br />
CPACR<br />
Coprocessor Access Control register. Only available<br />
if Neon and FPU processors are present.<br />
read-only<br />
NSACR Nonsecure Access Control register read-only<br />
VCR Virtualization Control register read-write<br />
TTBR0 TTBR0 register read-write<br />
TTBR1 TTBR1 register read-write<br />
TTBCR TTBCR register read-write<br />
DACR Domain Access Control register read-write<br />
DFSR Data Fault Status register read-write<br />
IFSR Instruction Fault Status register read-write<br />
ADFSR Auxiliary Data Fault Status register read-only<br />
AIFSR Auxiliary Instruction Fault Status register read-only<br />
DFAR Data Fault Address register read-write<br />
IFAR Instruction Fault Address register read-write<br />
PRRR Primary Region Remap register read-write<br />
NMRR Normal Memory Remap register read-write<br />
VBAR Vector Base Address register read-write<br />
ISR Interrupt Status register read-only<br />
VIR Virtualization Interrupt register read-only<br />
FCSEIDR Fast Context Switch Extension read-write<br />
CONTEXTIDR Context ID register read-write<br />
TPIDRURW <strong>User</strong> Read/Write Thread ID register read-write<br />
TPIDRURO <strong>User</strong> Read Only Thread ID register read-write<br />
TPIDRPRW Privileged Only Thread ID register read-write<br />
CBAR Configuration Base Address register read-write 1<br />
1. read-write in Secure privileged mode. read-only in Non-secure state and in user mode.<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-18 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
1.5.1.9 Perf Registers<br />
The Perf group contains per<strong>for</strong>mance related registers.<br />
Table 1-12 Perf Registers<br />
Name Description Type<br />
PMCR Per<strong>for</strong>mance Monitor Control register read-write<br />
PMCNTENSET Count Enable Set register read-write<br />
PMCNTENCLR Count Enable Clear register read-write<br />
PMOVSR Overflow Flag Status register read-write<br />
PMSWINC Event Counter Selection register write-only<br />
PMSELR Event Counter Selection register read-write<br />
PMCEID0 Common Event Identification register 0 read-only<br />
PMCEID1 Common Event Identification register 1 read-only<br />
PMCCNTR Cycle Count register read-write<br />
PMXEVTYPER Event Selection register read-write<br />
PMCCFILTR<br />
read-write<br />
PMXEVCNTR Per<strong>for</strong>mance Count register read-write<br />
PMUSERENR <strong>User</strong> Enable register read-write<br />
PMINTENSET Interrupt Enable Set register read-write<br />
PMINTENCLR Interrupt Enable Clear register read-write<br />
1.5.1.10 SCU Registers<br />
The SCU group contains registers that control the Snoop Control Unit. Addresses are relative<br />
to the base address of the region <strong>for</strong> the SCU memory map.<br />
Table 1-13 SCU Registers<br />
Name Description Type<br />
SCU_CTRL SCU Control register read-write<br />
SCU_CONFIG SCU Configuration register read-only<br />
SCU_CPU_POW_ST SCU CPU Power Status register read-write<br />
SCU_FILT_START Filtering Start Address register read-write<br />
SCU_FILT_END Filtering End Address register read-write<br />
SCU_SAC SCU Access Control register read-write<br />
SCU_SSAC SCU Secure Access Control register read-write<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Debug Features 1-19<br />
1.5.1.11 Global Timer Registers<br />
The Global Timer group contains and status registers related to the global timer..<br />
Table 1-14 Global Timer Registers<br />
Name Description Type<br />
GT_TIMER_LO Lower 32-bit Timer Counter register read-write<br />
GT_TIMER_HI Upper 32-bit Timer Counter register read-write<br />
GT_TCR Timer Control register read-write<br />
GT_TSR Timer Comparator Status register read-write<br />
GT_COMP_LO Lower 32-bit Comparator register read-write<br />
GT_COMP_HI Upper 32-bit Comparator register read-write<br />
GT_AUTOINC Auto-Increment register <strong>for</strong> Comparator read-write<br />
1.5.1.12 Timer/Watchdog Registers<br />
The Timer/Watchdog group contains registers <strong>for</strong> controlling the timer and watchdog<br />
blocks <strong>for</strong> each CPU. Addresses are relative to the base address of the timer and watchdog<br />
region defined by the private memory map (see the ARM <strong>Cortex</strong>-<strong>A5</strong> Technical Reference<br />
Manual <strong>for</strong> more in<strong>for</strong>mation).<br />
Table 1-15 Timer/Watchdog Registers<br />
Name Description Type<br />
TWD_T_LOAD Timer Load register read-write<br />
TWD_T_CNT Timer Counter register read-write<br />
TWD_T_CTRL Timer Control register read-write<br />
TWD_T_IS Timer Interrupt Status register read-write<br />
TWD_WD_LOAD Watchdog Load register read-write<br />
TWD_WD_CNTr Watchdog Counter register read-write<br />
TWD_WD_CTRL Watchdog Control register read-write<br />
TWD_WD_IS Watchdog Interrupt Status register read-write<br />
TWD_WD_RST Watchdog Reset Status register read-write<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-20 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
1.5.1.13 Processor Interface (GIC_Core) Registers<br />
The Int IF group contains the registers that each <strong>Cortex</strong>-<strong>A5</strong> processor interface provides.<br />
Table 1-16 Int IF Registers<br />
Name Description Type<br />
GIC_C_CTRL_S Processor Interface Control Secure register read-write<br />
GIC_C_CTRL_N Processor Interface Control Non-secure register read-write<br />
GIC_C_PRIO_MASK Priority Mask register read-write<br />
GIC_C_BIN_PT_S Binary Point Secure register read-write<br />
GIC_C_BIN_PT_N Binary Point Non-secure register read-write<br />
GIC_C_INT_ACK Interrupt Acknowledge register read-only<br />
GIC_C_RUN_PRIO Running Priority register read-only<br />
GIC_C_HI_PEND Highest Pending Interrupt register read-only<br />
GIC_C_A_BIN_PT_N Aliased Non-secure Binary Point register read-write<br />
GIC_C_CPU_INDENT Processor Interface Implementer Identification register read-only<br />
1.5.1.14 Interrupt Distributor (GIC_Dist) Registers<br />
The Int Dist group describes the registers that the distributor provides.<br />
Table 1-17 Int Dist Registers<br />
Name Description Type<br />
GID_D_EN Distributor Enable register read-write<br />
GIC_D_INT_CTRL_TP Interrupt Controller Type read-only<br />
GIC_DIMPL_ID Distributor Implementation register read-only<br />
GIC_D_INT_SEU_0_31 Interrupt Security. Range defined in register name read-write<br />
GIC_D_INT_SEU_32_63 Interrupt Security. Range defined in register name read-write<br />
GIC_D_INT_SEU_64_95 Interrupt Security. Range defined in register name read-write<br />
GIC_D_INT_SEU_96_127 Interrupt Security. Range defined in register name read-write<br />
GIC_D_INT_SEU_128_159 Interrupt Security. Range defined in register name read-write<br />
GIC_D_INT_SEU_160_191 Interrupt Security. Range defined in register name read-write<br />
GIC_D_INT_SEU_192-223 Interrupt Security. Range defined in register name read-write<br />
GIC_D_INT_SEU_224-255 Interrupt Security. Range defined in register name read-write<br />
GIC_D_EN_SET_0_31 Enable Set register. Range defined in register name read-write<br />
GIC_D_EN_SET_32_63 Enable Set register. Range defined in register name read-write<br />
GIC_D_EN_SET_64-95 Enable Set register. Range defined in register name read-write<br />
GIC_D_EN_SET_96_127 Enable Set register. Range defined in register name read-write<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Debug Features 1-21<br />
Table 1-17 Int Dist Registers (Continued)<br />
Name Description Type<br />
GIC_D_EN_SET_128_159 Enable Set register. Range defined in register name read-write<br />
GIC_D_EN_SET_160-191 Enable Set register. Range defined in register name read-write<br />
GIC_D_EN_SET_192_223 Enable Set register. Range defined in register name read-write<br />
GIC_D_EN_SET_224_255 Enable Set register. Range defined in register name read-write<br />
GIC_D_EN_CLR_0_31 Enable Clear register. Range defined in register name read-write<br />
GIC_D_EN_CLR_32_63 Enable Clear register. Range defined in register name read-write<br />
GIC_D_EN_CLR_64_95 Enable Clear register. Range defined in register name read-write<br />
GIC_D_EN_CLR_96_127 Enable Clear register. Range defined in register name read-write<br />
GIC_D_EN_CLR_128_159 Enable Clear register. Range defined in register name read-write<br />
GIC_D_EN_CLR_160-191 Enable Clear register. Range defined in register name read-write<br />
GIC_D_EN_CLR_192_223 Enable Clear register. Range defined in register name read-write<br />
GIC_D_EN_CLR_224_255 Enable Clear register. Range defined in register name read-write<br />
GIC_D_PEND_SET_0_31 Pending Set register. read-write<br />
GIC_D_PRI_LEV_STI_0_3 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_4_7 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_8_11 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_12_15 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_PPI_0_3 Priority Level PPI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_PPI_4 Priority Level PPI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_32_35 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_36_39 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_40_43 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_44_47 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_48_51 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_52_55 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_56_59 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_60_63 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_64_67 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_68_71 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_72_75 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_76_79 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_80_83 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_84_87 Priority Level STI. Range defined in register name read-write<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-22 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
Table 1-17 Int Dist Registers (Continued)<br />
Name Description Type<br />
GIC_D_PRI_LEV_STI_88_91 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_92_95 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_96_99 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_100_103 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_104_107 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_108_111 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_112_115 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_116_119 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_120_123 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_124_127 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_128_131 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_132_135 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_136_139 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_140_143 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_144_147 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_148_151 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_152_155 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_156_159 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_160_163 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_164_167 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_168_171 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_172_175 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_176_179 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_180_183 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_184_187 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_188_191 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_192_195 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_196_199 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_200_203 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_204_207 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_208_211 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_212_215 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_216_219 Priority Level STI. Range defined in register name read-write<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Debug Features 1-23<br />
Table 1-17 Int Dist Registers (Continued)<br />
Name Description Type<br />
GIC_D_PRI_LEV_STI_220_223 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_224_227 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_228_231 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_232_235 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_236_239 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_240_243 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_244_247 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_248_251 Priority Level STI. Range defined in register name read-write<br />
GIC_D_PRI_LEV_STI_252_255 Priority Level STI. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_0_3 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_4_7 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_8_11 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_12_15 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_16_19 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_20_23 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_24_27 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_28_31 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_32_35 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_36_39 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_40_43 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_44_47 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_48_51 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_52_55 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_56_59 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_60_63 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_64_67 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_68_71 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_72_75 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_76_79 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_80_83 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_84_87 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_88_91 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_92_95 SPI Target. Range defined in register name read-write<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-24 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
Table 1-17 Int Dist Registers (Continued)<br />
Name Description Type<br />
GIC_D_SPI_TARGET_96_99 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_100_103 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_104_107 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_108_111 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_112_115 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_116_119 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_120_123 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_124_127 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_128_131 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_132_135 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_136_139 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_140_143 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_144_147 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_148_151 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_152_155 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_156_159 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_160_163 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_164_167 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_168_171 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_172_175 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_176_179 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_180_183 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_184_187 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_188_191 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_192_195 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_196_199 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_200_203 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_204_207 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_208_211 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_212_215 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_216_219 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_220_223 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_224_227 SPI Target. Range defined in register name read-write<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Debug Features 1-25<br />
Table 1-17 Int Dist Registers (Continued)<br />
Name Description Type<br />
GIC_D_SPI_TARGET_228_231 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_232_235 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_236_239 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_240_243 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_244_247 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_248_251 SPI Target. Range defined in register name read-write<br />
GIC_D_SPI_TARGET_252_255 SPI Target. Range defined in register name read-write<br />
GIC_D_INT_CONF_0_15 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_16_31 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_32_47 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_48_63 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_64_79 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_80_95 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_96_111 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_112_127 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_128_143 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_144_159 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_160_175 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_176_191 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_192_207 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_208_223 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_224_239 Interrupt Config. Range defined in register name read-write<br />
GIC_D_INT_CONF_240_255 Interrupt Config. Range defined in register name read-write<br />
GIC_D_PPI_ST PPI Status register read-only<br />
GIC_D_SPI_ST_0_31 SPI Status register. Range defined in register name read-write<br />
GIC_D_SPI_ST_32_63 SPI Status register. Range defined in register name read-write<br />
GIC_D_SPI_ST_64_95 SPI Status register. Range defined in register name read-write<br />
GIC_D_SPI_ST_96_127 SPI Status register. Range defined in register name read-write<br />
GIC_D_SPI_ST_128_159 SPI Status register. Range defined in register name read-write<br />
GIC_D_SPI_ST_160_191 SPI Status register. Range defined in register name read-write<br />
GIC_D_SPI_ST_192_223 SPI Status register. Range defined in register name read-write<br />
GIC_D_SPI_ST_224_255 SPI Status register. Range defined in register name read-write<br />
GIC_D_PERH_ID_0 Peripheral ID 1 read-only<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-26 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
Table 1-17 Int Dist Registers (Continued)<br />
Name Description Type<br />
GIC_D_PERH_ID_1 Peripheral ID 2 read-only<br />
GIC_D_PERH_ID_2 Peripheral ID 3 read-only<br />
GIC_D_PERH_ID_3 Peripheral ID 4 read-only<br />
GIC_D_PERH_ID_4 Peripheral ID 5 read-only<br />
GIC_D_PERH_ID_5 Peripheral ID 6 read-only<br />
GIC_D_PERH_ID_6 Peripheral ID 7 read-only<br />
GIC_D_PERH_ID_7 Peripheral ID 8 read-only<br />
GID_D_PRIM_ID_0 Primecell ID 0 read-only<br />
GID_D_PRIM_ID_1 Primecell ID 1 read-only<br />
GID_D_PRIM_ID_2 Primecell ID 2 read-only<br />
GID_D_PRIM_ID_3 Primecell ID 3 read-only<br />
1.5.1.15 VFP/Neon Registers<br />
The VFP/Neon group contains the floating point related registers. These are only present<br />
if the <strong>A5</strong> was configured with an FPU or Neon coprocessor.<br />
Table 1-18 VFP/Neon Registers<br />
Name Description Type<br />
FPSID Floating-point System ID Register. read-only<br />
MVFR0 Media and VFP Feature Register0. read-only<br />
MVFR1 Media and VFP Feature Register1. read-only<br />
FPEXC Floating-point Exception Register. read-write<br />
FPSCR Floating-point Status and Control Register. read-write<br />
FPINST Floating-point instruction. read-only<br />
FPINST2 Floating-point instruction. read-only<br />
S0-S31<br />
Advanced SIMD and VFP extension registers<br />
(Single word).<br />
read-write<br />
S32-S63<br />
D0-D15<br />
D16-D31<br />
Additional SIMD and VFP extension registers.<br />
Only present with Neon.<br />
Advanced SIMD and VFP extension registers<br />
(Double word).<br />
Additional SIMD and VFP extension registers<br />
(Double word). Only present with Neon.<br />
read-write<br />
read-write<br />
read-write<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Debug Features 1-27<br />
Table 1-18 VFP/Neon Registers (Continued)<br />
Name Description Type<br />
Q0-Q7<br />
Q8-Q15<br />
Advanced SIMD and VFP extension registers<br />
(Quad word).<br />
Additional SIMD and VFP extension registers<br />
(Quad word). Only present with Neon.<br />
read-write<br />
read-write<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-28 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
1.5.2 Run To Debug Point<br />
The “run to debug point” feature has been added to enhance model debugging. The <strong>Cortex</strong>-<strong>A5</strong><br />
processor is a dual issue out of order completion machine. This means that while<br />
the processor is running it does not present a coherent programmer’s view state; instructions<br />
in the pipeline may be in different execution states.<br />
This feature <strong>for</strong>ces the processor into a coherent state called “run to debug point”. When<br />
debugging with the ARM RealView Development Suite (RVDS), the model is brought to<br />
the debug point automatically whenever a software breakpoint is hit (including single<br />
stepping). However, if a hardware breakpoint is reached, or the system is advanced by<br />
cycles within <strong>SoC</strong> <strong>Designer</strong> Plus, the model can get to a non-debuggable state. In this<br />
event, the run to debug point will advance the processor to the debug state. It does this by<br />
stalling the instruction within the decode stage and allowing all earlier instructions to complete.<br />
Once that has been accomplished, the model will cause the system to stop simulating.<br />
The run to debug point is available as a context menu item (Run to Debuggable Point) <strong>for</strong><br />
the component within <strong>SoC</strong> <strong>Designer</strong> Simulator. It is also available in the disassembler<br />
view.<br />
1.5.3 Memory In<strong>for</strong>mation<br />
Figure 1-4 shows a Memory view of <strong>Cortex</strong>-<strong>A5</strong> model.<br />
Figure 1-4 <strong>Cortex</strong>-<strong>A5</strong> Memory View<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Debug Features 1-29<br />
1.5.4 Disassembly View<br />
Figure 1-5 shows the disassembly view of a program running on the <strong>Cortex</strong>-<strong>A5</strong> model in<br />
<strong>SoC</strong> <strong>Designer</strong> Simulator. To display the disassembly view in the <strong>SoC</strong> <strong>Designer</strong> Simulator,<br />
right-click on the <strong>Cortex</strong>-<strong>A5</strong> model and select View Disassembly… from the context<br />
menu.<br />
Figure 1-5 <strong>Cortex</strong>-<strong>A5</strong> Disassembly Window<br />
All CADI windows support breakpoints – when double-clicking on the proper location a<br />
red dot will indicate that a breakpoint is currently active. To remove the breakpoints simply<br />
double-click on the same location again.<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-30 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
1.6 Available Profiling Data<br />
Profiling data is enabled, and can be viewed using the Profiling Manager, which is accessible<br />
via the Debug menu in the <strong>SoC</strong> <strong>Designer</strong> Simulator. Both hardware and software<br />
based profiling are available.<br />
1.6.1 Software Profiling<br />
Software-based profiling is provided by <strong>SoC</strong> <strong>Designer</strong> Plus. Profiling in<strong>for</strong>mation is also<br />
available in the <strong>SoC</strong> <strong>Designer</strong> Plus Profiler. See the user guide <strong>for</strong> <strong>SoC</strong> <strong>Designer</strong> Plus or<br />
<strong>SoC</strong> <strong>Designer</strong> Plus Profiler <strong>for</strong> more in<strong>for</strong>mation.<br />
1.6.2 Hardware Profiling<br />
Hardware profiling is broken down into five streams per processor core. They are the<br />
I-Cache, D-Cache, TLB, Stall, and Software streams. The buckets supported by each of<br />
these streams are shown in Table 1-19:<br />
Table 1-19 <strong>Cortex</strong>-<strong>A5</strong> Profiling Events<br />
Stream Buckets X axis Y axis<br />
I-Cache Read Miss Cycle Instruction Cache<br />
Read Hit<br />
Prefetch Fill<br />
Prefetch Fill Dropped<br />
D-Cache Read Miss Cycle Data Cache<br />
Access<br />
Read<br />
Write<br />
Evication<br />
Memory Access<br />
External Memory Request<br />
Non-cacheable memory request<br />
Entering Read Allocate Mode<br />
Read Allocate Mode<br />
Date Write Stall<br />
TLB ITLB Miss Cycle TLB<br />
DTLB Miss<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Available Profiling Data 1-31<br />
Table 1-19 <strong>Cortex</strong>-<strong>A5</strong> Profiling Events (Continued)<br />
Stream Buckets X axis Y axis<br />
Software Instructions Executed Cycle Software<br />
Exceptions Taken<br />
Exceptions Returned<br />
ContextID Retired Changed<br />
Software Change of PC<br />
Immediate Branch<br />
Function Return<br />
Unaligned Access<br />
Mispredicated Branch<br />
Branch<br />
IRQ Exception Taken<br />
FIQ Exception Taken<br />
The <strong>Cortex</strong>-<strong>A5</strong> model sets PMCR[4] to 1 to enable the Hardware Profiling. This is done at<br />
reset time.<br />
The <strong>Cortex</strong>-<strong>A5</strong> pin SPNIDEN must be set to one (1) to enable Hardware Profiling in<strong>for</strong>mation.<br />
This is set using the component parameter Secure Non-Invasive Debug Enable<br />
(see Table 1-3 on page 1-8). The default value is 0xF, which enables non-invasive debug<br />
on up to four cores.<br />
An example of debug in<strong>for</strong>mation <strong>for</strong> a software stream is shown below.<br />
Figure 1-6 Software Stream Debug In<strong>for</strong>mation<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
1-32 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<br />
<strong>Carbon</strong> Design Systems, Inc. Confidential
Third Party Software Acknowledgement<br />
<strong>Carbon</strong> acknowledges and thanks the respective owners <strong>for</strong> the following software that is<br />
used by our product:<br />
• ELF (Executable and Linking Format) Tool Chain Product<br />
Copyright (c) 2006, 2008-2012 Joseph Koshy<br />
All rights reserved.<br />
Redistribution and use in source and binary <strong>for</strong>ms, with or without modification, are permitted<br />
provided that the following conditions are met:<br />
1. Redistributions of source code must retain the above copyright notice, this list of conditions<br />
and the following disclaimer.<br />
2. Redistributions in binary <strong>for</strong>m must reproduce the above copyright notice, this list of<br />
conditions and the following disclaimer in the documentation and/or other materials<br />
provided with the distribution.<br />
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS “AS IS''<br />
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIM-<br />
ITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS<br />
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE<br />
AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCI-<br />
DENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUD-<br />
ING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR<br />
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)<br />
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CON-<br />
TRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHER-<br />
WISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF<br />
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<strong>Carbon</strong> Design Systems, Inc. Confidential