29.01.2015 Views

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

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!