01.01.2015 Views

Carbon Cortex-A8 Model User Guide for SoC Designer

Carbon Cortex-A8 Model User Guide for SoC Designer

Carbon Cortex-A8 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>A8</strong> <strong>Model</strong><br />

<strong>User</strong> <strong>Guide</strong> <strong>for</strong> <strong>SoC</strong> <strong>Designer</strong><br />

<strong>Carbon</strong> <strong>Model</strong> Version 4.0.0<br />

For the ARM <strong>Cortex</strong>-<strong>A8</strong> Processor<br />

Silicon Version: r3p2<br />

SOFTWARE BEFORE SILICON ®<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-2012 <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-2012 <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>, Software Be<strong>for</strong>e Silicon, SOC-VSP, VSP, and The<br />

Answer to Validation are trademarks or registered trademarks of <strong>Carbon</strong> Design Systems, Incorporated in the United<br />

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 2012.


<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><br />

<strong>Cortex</strong>-<strong>A8</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 />

Differences from the ARM RVML <strong>Model</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3<br />

Adding and Configuring the <strong>SoC</strong> <strong>Designer</strong> Component . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-4<br />

<strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Component Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-4<br />

Adding the <strong>Carbon</strong> <strong>Model</strong> to the Component Library . . . . . . . . . . . . . . . . . . . . . . . . . .1-5<br />

Adding the Component to the <strong>SoC</strong> <strong>Designer</strong> Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . .1-5<br />

Available Component ESL Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-6<br />

Setting Component Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-8<br />

Debug Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-10<br />

Register In<strong>for</strong>mation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-11<br />

Run To Debug Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-21<br />

Memory In<strong>for</strong>mation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-21<br />

Disassembly View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-22<br />

Available Profiling Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-23<br />

Hardware Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-23<br />

Software Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-25<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


vi<br />

Contents<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


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>.<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>A8</strong><br />

processor <strong>Model</strong> in <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong>.<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>. You should be familiar with the following<br />

products and technology:<br />

• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong><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>Model</strong> Documentation<br />

The following publications provide in<strong>for</strong>mation that relate directly to models from <strong>Carbon</strong><br />

Design Systems:<br />

• <strong>Carbon</strong> <strong>Cortex</strong>-<strong>A8</strong> <strong>Model</strong> Generation <strong>Guide</strong><br />

• <strong>Carbon</strong> <strong>Model</strong> Installation and Licensing <strong>Guide</strong><br />

<strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Documentation<br />

The following publications provide in<strong>for</strong>mation that relate directly to <strong>SoC</strong> <strong>Designer</strong>:<br />

• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Installation <strong>Guide</strong><br />

• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> <strong>User</strong> <strong>Guide</strong><br />

• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> RTOE <strong>User</strong> <strong>Guide</strong><br />

• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> <strong>Model</strong>s Reference<br />

• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> AXIv2 Protocol Bundle <strong>User</strong> <strong>Guide</strong><br />

External publications<br />

The following publications provide reference in<strong>for</strong>mation about ARM® products:<br />

• ARM <strong>Cortex</strong>-<strong>A8</strong> Technical Reference Manual<br />

• <strong>Cortex</strong>-<strong>A8</strong> Configuration and Sign-Off <strong>Guide</strong><br />

• AMBA 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>, 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>. A high-per<strong>for</strong>mance, cycle accurate<br />

simulation framework which is targeted at System-on-a-Chip hardware and<br />

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


Chapter 1<br />

Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong><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>. It contains the following sections:<br />

• <strong>Cortex</strong>-<strong>A8</strong> Functionality<br />

• Adding and Configuring the <strong>SoC</strong> <strong>Designer</strong> Component<br />

• Available Component ESL Ports<br />

• Setting Component Parameters<br />

• Debug Features<br />

• Available Profiling Data<br />

Note:<br />

If you received the <strong>Model</strong> from <strong>Carbon</strong>, see the provided “<strong>Carbon</strong> <strong>Model</strong> Installation<br />

and Licensing <strong>Guide</strong>” <strong>for</strong> <strong>Model</strong> installation and licensing in<strong>for</strong>mation.<br />

1.1 <strong>Cortex</strong>-<strong>A8</strong> Functionality<br />

The <strong>Cortex</strong>-<strong>A8</strong> processor is a high-per<strong>for</strong>mance, low-power, cached application processor<br />

that provides full virtual memory capabilities. The <strong>Cortex</strong>-<strong>A8</strong> processor has:<br />

• configurable 64-bit or 128-bit high-speed Advanced Microprocessor Bus Architecture<br />

(AMBA) with AXI <strong>for</strong> main memory interface supporting multiple outstanding transactions<br />

• a pipeline <strong>for</strong> executing ARM integer instructions<br />

• a NEON pipeline <strong>for</strong> executing Advanced SIMD and VFP instruction sets<br />

• Memory Management Unit (MMU) and separate instruction and data Translation<br />

Look-aside Buffers (TLBs) of 32 entries each<br />

• Level 1 instruction and data caches of 16KB or 32KB configurable size<br />

• Level 2 cache of 0KB, 128KB through 1MB configurable size<br />

• Level 2 cache with parity and Error Correction Code (ECC) configuration option<br />

• Embedded Trace Macrocell (ETM) support <strong>for</strong> non-invasive debug<br />

• static and dynamic power management including Intelligent Energy Management<br />

(IEM)<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


1-2 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong><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 />

The following features of the <strong>Cortex</strong>-<strong>A8</strong> hardware are fully implemented in the <strong>Carbon</strong><br />

model:<br />

• ARMv7-A integer instruction set<br />

• Thumb-2 integer instruction set<br />

• Thumb-2 Execution Environment<br />

• NEON Media Acceleration instruction set<br />

• TrustZone Secure Monitor Mode<br />

• VFPv3 instruction set<br />

• VMSAv7-A memory architecture<br />

• L1 instruction and data caches<br />

• L2 unified cache<br />

• External AXI memory interface<br />

See the ARM <strong>Cortex</strong>-<strong>A8</strong> 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>A8</strong> hardware are not implemented in the <strong>Carbon</strong>ized<br />

model:<br />

• ARMv7 Debug architecture, comprising:<br />

– Embedded Trace Macrocell interface<br />

– APBv3 CoreSight compliant debug interface<br />

– Debug Coprocessor (CP14) registers, interface, and associated instructions<br />

• Test features, including MBIST and integration test registers<br />

• Array debug data access operations<br />

• Parity and error correction are not implemented in the internal RAMs. Timing effects<br />

of parity errors caused by direct CP15 manipulation are not visible<br />

• The AXI bus width must be specified in the <strong>Cortex</strong><strong>A8</strong>.conf configuration file be<strong>for</strong>e<br />

the <strong>Model</strong> has been generated, and is there<strong>for</strong>e not configurable at simulation runtime.<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


<strong>Cortex</strong>-<strong>A8</strong> Functionality 1-3<br />

1.1.3 Features Additional to the Hardware<br />

The following features that are implemented in the <strong>Cortex</strong>-<strong>A8</strong> model do not exist in the<br />

<strong>Cortex</strong>-<strong>A8</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-9).<br />

• Semihosting Support. Semihosting enables the target application to communicate with<br />

the host operating system. This is used <strong>for</strong> external time synchronization, file handling<br />

operations, console input/output, and similar functionality.<br />

• Debug and Profiling. For more in<strong>for</strong>mation about debug and profiling features, refer<br />

to the sections Debug Features and Available Profiling Data, respectively.<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-21 <strong>for</strong> more in<strong>for</strong>mation.<br />

1.1.4 Differences from the ARM RVML <strong>Model</strong><br />

The following differences exist between the <strong>Carbon</strong> <strong>Model</strong> and the older ARM® Real-<br />

View® <strong>Model</strong> Library model.<br />

• The <strong>Carbon</strong> model uses the AXI v2 port interface instead of the v1 interface used by<br />

the RVML model.<br />

• No software profiling is available.<br />

• When using semihosting you must use the semihost component from <strong>Carbon</strong>. This<br />

“<strong>Carbon</strong>Semihost” component is included in the <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> 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<br />

<strong>for</strong> semihosting.<br />

• Differences in component ports:<br />

– The following ports are not available in the <strong>Carbon</strong> <strong>Model</strong>: CPEXIST,<br />

L1RSTDISABLE, L2RSTDISABLE, SILICONID, NEON_RESET, RESET, axiclk,<br />

and semihostbus.<br />

– The following ports have been added to the <strong>Carbon</strong> <strong>Model</strong>: extSemi.<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


1-4 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong><br />

1.2 Adding and Configuring the <strong>SoC</strong> <strong>Designer</strong> Component<br />

The following topics briefly describe how to use the component. See the <strong>Carbon</strong> <strong>SoC</strong><br />

<strong>Designer</strong> <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> 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> 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>. There are two versions of the component; an optimized release<br />

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>. The release version<br />

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> 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> configuration file<br />

<strong>SoC</strong> <strong>Designer</strong> component runtime file<br />

<strong>SoC</strong> <strong>Designer</strong> component debug file<br />

<strong>SoC</strong> <strong>Designer</strong> configuration file<br />

<strong>SoC</strong> <strong>Designer</strong> component runtime file<br />

<strong>SoC</strong> <strong>Designer</strong> component debug file<br />

Additionally, this <strong>User</strong> <strong>Guide</strong> PDF file, the <strong>Carbon</strong> <strong>Model</strong> Installation and Licensing<br />

<strong>Guide</strong>, and a ReadMe text file are provided with the component.<br />

Note:<br />

If you generated these files from a <strong>Carbon</strong> <strong>Model</strong> Kit, they are located in<br />

/data/<strong>SoC</strong><strong>Designer</strong>. If you installed them from a model package from<br />

<strong>Carbon</strong> Design Systems, they are located where you instructed the installer to<br />

place them.<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


Adding and Configuring the <strong>SoC</strong> <strong>Designer</strong> Component 1-5<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> model is located and select the component<br />

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> 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 />

Figure 1-1 <strong>Cortex</strong>-<strong>A8</strong> Components in <strong>SoC</strong> <strong>Designer</strong><br />

The figure shows the component with one Master AXI port.<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


1-6 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong><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>. Some ports may or<br />

may not appear depending on the settings that you enabled in the configuration file (<strong>for</strong><br />

example, CORTEX<strong>A8</strong>.conf). See the ARM <strong>Cortex</strong>-<strong>A8</strong> Technical Reference Manual <strong>for</strong><br />

more in<strong>for</strong>mation.<br />

Table 1-2 ESL Component Ports<br />

ESL Port Description Direction Type<br />

CFGEND0<br />

CFGNMFI<br />

CFGTE<br />

CLKSTOPREQ<br />

CP15SDISABLE<br />

FIQ 1<br />

IRQ 1<br />

SECMONOUTEN<br />

VINITHI<br />

Endianness configuration. Controls the state of EE bit in<br />

the CP15 Control Register at reset:<br />

0 = EE bit is LOW<br />

1 = EE bit is HIGH<br />

Configures fast interrupts to be nonmaskable at reset:<br />

0 = clears the NMFI bit in the CP15 c1 Control Register<br />

1 = sets the NMFI bit in the CP15 c1 Control Register<br />

Controls the state of TE bit in the CP15 Control Register<br />

at reset:<br />

0 = TE bit is LOW<br />

1 = TE bit is HIGH<br />

Clock stop request:<br />

0 = do not stop the internal clocks<br />

1 = cause the processor to stop the internal clocks, go into<br />

low active power mode, and to assert the CLKSTOPACK<br />

output<br />

Disables write access to certain TrustZone registers in the<br />

CP15 system control coprocessor.<br />

Active-LOW asynchronous fast interrupt request:<br />

0 = activate fast interrupt<br />

1 = do not activate fast interrupt<br />

Active-LOW asynchronous interrupt request:<br />

0 = activate interrupt<br />

1 = do not activate interrupt<br />

Security monitor output enable at reset:<br />

0 = disables SECMONOUT[86:0]<br />

1 = enables SECMONOUT[86:0].<br />

Controls the start location of the exception vectors at<br />

reset:<br />

0 = starts exception vectors at address 0x00000000<br />

1 = starts exception vectors at address 0xFFFF0000<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 />

clk_in Input clock. Input Clock slave<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


Available Component ESL Ports 1-7<br />

CLKSTOPACK<br />

DMAEXTERRIRQ<br />

DMAIRQ<br />

DMASIRQ<br />

PMUIRQ<br />

SECMONOUT<br />

STANDBYWFI<br />

Clock stop acknowledge. Asserted high when CLKSTO-<br />

PREQ is asserted and the core has drained and entered<br />

low active power mode:<br />

0 = the internal clocks are not stopped<br />

1 = the internal clocks are stopped<br />

Active-LOW PLE interrupt on error <strong>for</strong> all transfers:<br />

0 = interrupt active<br />

1 = interrupt not active<br />

Active-LOW PLE interrupt on completion <strong>for</strong> nonsecure<br />

transfers:<br />

0 = interrupt active<br />

1 = interrupt not active<br />

Active-LOW PLE interrupt on completion <strong>for</strong> secure<br />

transfers:<br />

0 = interrupt active<br />

1 = interrupt not active<br />

Active-LOW PMU interrupt signal:<br />

0 = PMU interrupt active<br />

1 = PMU interrupt not active<br />

Security monitor output. See the <strong>Cortex</strong>-<strong>A8</strong> TRM <strong>for</strong> a<br />

detailed list of pins and their descriptions.<br />

Standby mode flag generated by WFI operation:<br />

0 = processor not in standby mode<br />

1 = processor in standby mode<br />

Output<br />

Output<br />

Output<br />

Output<br />

Output<br />

Output<br />

Output<br />

Signal master<br />

Signal master<br />

Signal master<br />

Signal master<br />

Signal master<br />

Signal master<br />

Signal master<br />

axiport AXI Master port. Output AXI Transaction<br />

master<br />

extSemi<br />

Table 1-2 ESL Component Ports (Continued)<br />

ESL Port Description Direction Type<br />

Semihosting can be enabled by connecting this port to the<br />

<strong>SoC</strong> <strong>Designer</strong> semihost component contained in the <strong>Carbon</strong><br />

<strong>SoC</strong> <strong>Designer</strong> 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 CFGEND0, CFGNMFI, CFGTE, CP15SDISABLE, SEC-<br />

MONOUTEN, and VINITHI ports. In those cases, the parameter value will be<br />

used whenever the ESL port is not connected. If the port is connected, the connection<br />

value takes precedence over the parameter value.<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


1-8 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong><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>A8</strong>.conf).<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


Setting Component Parameters 1-9<br />

Table 1-3 Component Parameters<br />

Name<br />

Description<br />

Allowed<br />

Values<br />

Default Value Runtime 1<br />

Align Wave<strong>for</strong>ms<br />

axiport Enable Debug<br />

Messages<br />

<strong>Carbon</strong> DB Path<br />

cfgend0<br />

cfgnmfi<br />

cfgte<br />

cp15disable<br />

cpexist<br />

Dump Wave<strong>for</strong>ms<br />

Enable Debug<br />

Messages<br />

Enable PC Tracing<br />

negLogic<br />

PC Tracing File<br />

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> simulation<br />

time. The reset sequence, however, is<br />

not included in the dumped data.<br />

When set to false, the reset sequence<br />

is dumped to the wave<strong>for</strong>m data,<br />

however, the <strong>Carbon</strong> component time<br />

is not aligned with <strong>SoC</strong> <strong>Designer</strong><br />

time.<br />

Whether debug messages are logged<br />

<strong>for</strong> the AXI port.<br />

Sets the directory path to the <strong>Carbon</strong><br />

database file.<br />

Endianness configuration. Controls<br />

the initial state at reset of the EE bit in<br />

the CP15 control register.<br />

Configures fast interrupts to be nonmaskable.<br />

Controls the initial state at reset of the<br />

TE bit in the CP15 control register.<br />

Disables write access to certain Trust-<br />

Zone CP15 registers.<br />

Enables access programming of coprocessors<br />

0-13.<br />

Whether <strong>SoC</strong> <strong>Designer</strong> dumps wave<strong>for</strong>ms<br />

<strong>for</strong> this component.<br />

Whether debug messages are logged<br />

<strong>for</strong> the component.<br />

Enables dumping a PC trace to disk<br />

containing decode PCs and actual<br />

branch PCs. See “Software Profiling”<br />

on page 1-25.<br />

Sets IRQ/FIQ assertion to use negative<br />

logic. Default of false means<br />

0=off and 1=on. True means 0=on<br />

and 1=off.<br />

The file to write the PC trace in<strong>for</strong>mation.<br />

The file is written in binary<br />

<strong>for</strong>mat. The C++ file<br />

pctracedump.cpp can be used to<br />

decode the data.<br />

true, false true No<br />

true, false false Yes<br />

Not Used empty No<br />

true, false false Yes<br />

true, false false Yes<br />

true, false false Yes<br />

true, false false Yes<br />

0 – 0x3fff 3072 (0x0c00) Yes<br />

true, false false Yes<br />

true, false false Yes<br />

true, false false No<br />

true, false true Yes<br />

Valid file<br />

name<br />

<strong>Cortex</strong><strong>A8</strong>PC.dat<br />

No<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


1-10 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong><br />

Table 1-3 Component Parameters (Continued)<br />

Name<br />

Description<br />

Allowed<br />

Values<br />

Default Value Runtime 1<br />

secmonouten Enable the security monitor output. true, false false Yes<br />

siliconid<br />

Defines the reset value of the CP15 0 – 0xffffffff 0x41000000 Yes<br />

Silicon ID register.<br />

vinithi<br />

Control of the location of the exception<br />

vectors at reset.<br />

0, 1 0 Yes<br />

Wave<strong>for</strong>m File 2 Name of the wave<strong>for</strong>m file. string carbon_CORTEX<br />

<strong>A8</strong>.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. When enabled, <strong>SoC</strong> <strong>Designer</strong> 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<br />

end of each validation run.<br />

1.5 Debug Features<br />

The <strong>Cortex</strong>-<strong>A8</strong> model has a debug interface (CADI) that allows the user to view, manipulate,<br />

and control the registers and memory, and display disassembly <strong>for</strong> programs running<br />

on the model in the <strong>SoC</strong> <strong>Designer</strong> Simulator or any debugger that supports CADI. A view<br />

can be accessed in <strong>SoC</strong> <strong>Designer</strong> by right clicking on the model and choosing the appropriate<br />

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 />

<strong>Carbon</strong> Design Systems, Inc. Confidential


Debug Features 1-11<br />

1.5.1 Register In<strong>for</strong>mation<br />

Figure 1-3 shows the Register view of the <strong>Cortex</strong>-<strong>A8</strong> model in <strong>SoC</strong> <strong>Designer</strong> Simulator.<br />

Figure 1-3 <strong>Cortex</strong>-<strong>A8</strong> Registers View<br />

The <strong>Cortex</strong>-<strong>A8</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 />

• VFP/Neon Registers<br />

• ID Registers<br />

• Control Registers<br />

• Cache Registers<br />

• PLE Registers<br />

• Perf Registers<br />

• TLB Registers<br />

• VA to PA Registers<br />

• Normal World Registers<br />

• Secure World Registers<br />

• Debug Registers<br />

See the ARM <strong>Cortex</strong>-<strong>A8</strong> Technical Reference Manual <strong>for</strong> detailed descriptions of these<br />

registers.<br />

Note that certain CoProcessor 15 registers will cause the UNDEFINED exception to be<br />

taken when invalid data is written. If this exception is triggered during a debug write<br />

access, the program counter may jump to the undefined exception handler the next time<br />

that cycles are executed.<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


1-12 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong><br />

1.5.1.1 Core 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 R13/Stack Pointer register read-write 1<br />

R14 R14/Link Register read-write 1<br />

R15 Program Counter register read-write 1<br />

CPSR Current Program Status register read-write 1<br />

R8_USR R8 USR register read-write 1<br />

R9_USR R9 USR register read-write 1<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 R13 USR register read-write 1<br />

R14_USR R14 USR register read-write 1<br />

R13_IRQ R13 IRQ register read-write 1<br />

R14_IRQ R14 IRQ register read-write 1<br />

SPSR_IRQ Saved Program Status Register IRQ register read-write 1<br />

R8_FIQ R8 FIQ register read-write 1<br />

R9_FIQ R9 FIQ register read-write 1<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


Debug Features 1-13<br />

Table 1-4 Core Registers (Continued)<br />

Name Description Type<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 R13 FIQ register read-write 1<br />

R14_FIQ R14 FIQ register read-write 1<br />

SPSR_FIQ Saved Program Status Register FIQ register read-write 1<br />

R13_SVC R13 SVC register read-write 1<br />

R14_SVC R14 SVC register read-write 1<br />

SPSR_SVC Saved Program Status Register SVC register read-write 1<br />

R13_ABT R13 ABT register read-write 1<br />

R14_ABT R14 ABT register read-write 1<br />

SPSR_ABT Saved Program Status Register ABT register read-write 1<br />

R13_UND R13 UND register read-write 1<br />

R14_UND R14 UND register read-write 1<br />

SPSR_UND Saved Program Status Register UND register read-write 1<br />

R13_MON R13 MON register read-write 1<br />

R14_MON R14 MON register read-write 1<br />

SPSR_MON Saved Program Status Register MON register read-write 1<br />

ExtendedTargetFeatures Used internally <strong>for</strong> TrustZone support read-only<br />

PC_MEMSPACE Used internally <strong>for</strong> TrustZone support read-only<br />

1. Writable at debug point only.<br />

1.5.1.2 VFP/Neon Registers<br />

The VFP/NEON group contains the registers <strong>for</strong> the NEON and VFP coprocessors. The<br />

NEON and VFP coprocessor share the same register bank. You can reference the NEON<br />

and VFP register bank using three explicitly aliased views. See the “NEON and VFP Programmers<br />

<strong>Model</strong>” chapter in the <strong>Cortex</strong>-<strong>A8</strong> TRM <strong>for</strong> more in<strong>for</strong>mation.<br />

Table 1-5 VFP/Neon Registers<br />

Name Description Type<br />

FPSCR Floating-point Status and Control register read-write<br />

S0 - S31 Thirty-two 32-bit single-word registers used by VFP. read-write<br />

D0 - D31<br />

Thirty-two 64-bit double-word registers used by both<br />

VFP and NEON.<br />

read-write<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


1-14 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong><br />

Table 1-5 VFP/Neon Registers (Continued)<br />

Name Description Type<br />

Q0 - Q15 Sixteen 128-bit quad-word registers used by NEON. read-write<br />

FPSID Floating-Point System ID register read-only<br />

MVFR0 Media and VFP Feature Register 0 read-only<br />

MVFR1 Media and VFP Feature Register 1 read-only<br />

FPEXC Floating-Point Exception register read-write<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 />

CP15_CACHE_TYPE Cache Type register read-only<br />

CP15_ID Main ID register read-only<br />

CP15_ID_AFR0 Auxiliary Feature 0 register (always returns 0) read-only<br />

CP15_ID_DFR0 Debug Feature 0 register read-only<br />

CP15_ID_ISAR0 Instruction Set Attribute 0 register read-only<br />

CP15_ID_ISAR1 Instruction Set Attribute 1 register read-only<br />

CP15_ID_ISAR2 Instruction Set Attribute 2 register read-only<br />

CP15_ID_ISAR3 Instruction Set Attribute 3 register read-only<br />

CP15_ID_ISAR4 Instruction Set Attribute 4 register read-only<br />

CP15_ID_ISAR5 Instruction Set Attribute 5 register (always returns 0) read-only<br />

CP15_ID_ISAR6 Instruction Set Attribute 6 register (always returns 0) read-only<br />

CP15_ID_ISAR7 Instruction Set Attribute 7 register (always returns 0) read-only<br />

CP15_ID_MMFR0 Memory <strong>Model</strong> Feature 0 register read-only<br />

CP15_ID_MMFR1 Memory <strong>Model</strong> Feature 1 register read-only<br />

CP15_ID_MMFR2 Memory <strong>Model</strong> Feature 2 register read-only<br />

CP15_ID_MMFR3 Memory <strong>Model</strong> Feature 3 register read-only<br />

CP15_ID_PFR0 Processor Feature 0 register read-only<br />

CP15_ID_PFR1 Processor Feature 1 register read-only<br />

CP15_MULTIPROCESSOR_ID Multiprocessor ID register read-only<br />

CP15_SILICON_ID Silicon ID register read-only<br />

CP15_TCM_TYPE TCM Type register read-only<br />

CP15_TLB_TYPE TLB Type register read-only<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


Debug Features 1-15<br />

1.5.1.4 Control Registers<br />

The Control group contains registers that dynamically configure the processor.<br />

Table 1-7 Control Registers<br />

Name Description Type<br />

CP15_AUXILIARY_CONTROL Auxiliary Control register read-only<br />

CP15_CID Context ID register read-write<br />

CP15_CONTROL Control register read-write<br />

CP15_COPROCESSOR_ACCESS_<br />

CONTROL<br />

Coprocessor Access Control register. Only available<br />

if Neon and FPU processors are present.<br />

read-only<br />

CP15_DACR Domain Access Control register read-write<br />

CP15_DATA_AUX_FAULT Data Auxiliary Fault Status register read-only<br />

CP15_DFAR Data Fault Address register read-write<br />

CP15_DFSR Data Fault Status register read-write<br />

CP15_IFAR Instruction Fault Address register read-write<br />

CP15_IFSR Instruction Fault Status register read-write<br />

CP15_INSTR_AUX_FAULT Instruction Auxiliary Fault Status register read-only<br />

CP15_INTERRUPT_STATUS Interrupt Status register read-only<br />

CP15_MONITOR_VECTOR_BASE Monitor Vector Base Address register read-write<br />

CP15_NORM_MEM_REMAP Normal Memory Remap register read-write<br />

CP15_NS_ACCESS_CONTROL Nonsecure Access Control register read-only<br />

CP15_PID FCSE PID register read-write<br />

CP15_PRIM_REGION_REMAP Primary Region Remap register read-write<br />

CP15_PRIVILEGED_ID Privileged only Thread and Process ID register read-write<br />

CP15_SECURE_CONFIGURATION Secure Configuration register read-write<br />

CP15_SECURE_DEBUG_ENABLE Secure Debug Enable register read-write<br />

CP15_TTBC TTB Control register read-write<br />

CP15_TTBR0 TTB Register 0 read-write<br />

CP15_TTBR1 TTB Register 1 read-write<br />

CP15_USER_RO_ID <strong>User</strong> read-only Thread and Process ID register read-write<br />

CP15_USER_RW_ID <strong>User</strong> read/write Thread and Process ID register read-write<br />

CP15_VECTOR_BASE Monitor Vector Base 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><br />

1.5.1.5 Cache Registers<br />

The Cache group contains registers to access cache in<strong>for</strong>mation.<br />

Table 1-8 Cache Registers<br />

Name Description Type<br />

CP15_CACHE_LEVEL_ID Cache Level ID register read-only<br />

CP15_CACHE_SIZE_ID Cache Size ID register read-only<br />

CP15_CACHE_SIZE_SELECT Cache Size Selection register read-only<br />

CP15_L2_CACHE_AUX_CTRL L2 Cache Auxiliary Control register read-write<br />

CP15_L2_CACHE_DATA_LCK L2 Cache Lockdown register read-write<br />

1.5.1.6 PLE Registers<br />

The PLE group contains the PreLoad Engine control and configuration registers.<br />

Table 1-9 PLE Registers<br />

Name Description Type<br />

CP15_CHANNELS_ACCESSIBI PLE <strong>User</strong> Accessibility register<br />

read-write<br />

LITY<br />

CP15_CHANNELS_INTERRUPT PLE Channel Interrupting register<br />

read-only<br />

ING<br />

CP15_CHANNELS_PRESENT PLE Channel Present register read-only<br />

CP15_CHANNELS_RUNNING PLE Channel Running register read-only<br />

CP15_CHANNEL_CONTEXTID PLE Channel Context ID register read-write<br />

CP15_CHANNEL_CONTROL PLE Channel Control register read-write<br />

CP15_CHANNEL_INTERNAL PLE Internal Start Address register<br />

read-write<br />

STARTADDRESS<br />

CP15_CHANNEL_INTERNAL PLE Internal End Address register<br />

read-write<br />

ENDADDRESS<br />

CP15_CHANNEL_NUMBER PLE Channel Number register read-write<br />

CP15_CHANNEL_STATUS PLE Channel Status register read-only<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


Debug Features 1-17<br />

1.5.1.7 Perf Registers<br />

The Perf group contains per<strong>for</strong>mance related registers.<br />

Table 1-10 Perf Registers<br />

Name Description Type<br />

CP15_COUNT_ENA_CLR Count Enable Clear register read-write<br />

CP15_COUNT_ENA_SET Count Enable Set register read-write<br />

CP15_CYCLE_COUNT Cycle Count register read-write<br />

CP15_Counter_Select Event Counter Selection register read-write<br />

CP15_EVENT_SELECT Event Selection register read-write<br />

CP15_INTERRUPT_ENABLE_CLR Interrupt Enable Clear register read-write<br />

CP15_INTERRUPT_ENABLE_SET Interrupt Enable Set register read-write<br />

CP15_Overflow_Status Overflow Flag Status register read-write<br />

CP15_PERF_MON_COUNT Per<strong>for</strong>mance Monitor Count register read-write<br />

CP15_PERF_MON_CTRL Per<strong>for</strong>mance Monitor Control register read-write<br />

CP15_USER_ENABLE <strong>User</strong> Enable register read-write<br />

1.5.1.8 TLB Registers<br />

The TLB group contains per<strong>for</strong>mance related registers.<br />

Table 1-11 TLB Registers<br />

Name Description Type<br />

CP15_DATA_TLB_LCK Data TLB Lockdown register read-write<br />

CP15_INSTR_TLB_LCK Instruction TLB Lockdown register read-write<br />

1.5.1.9 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-12 VA to PA Registers<br />

Name Description Type<br />

CP15_PA Physical Address register read-write<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


1-18 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong><br />

1.5.1.10 Normal World Registers<br />

The Normal World group contains control register that are only accessible in non-secure<br />

mode.<br />

Table 1-13 Normal World Registers<br />

Name Description Type<br />

CP15_N_CID CP15 Context ID Non-secure register read-write<br />

CP15_N_CONTROL CP15 Control Non-secure register read-only<br />

CP15_N_AUXILIARY_ CP15 Auxiliary Control Non-secure register read-write<br />

CONTROL<br />

CP15_N_DACR CP15 Domain Access Control Non-secure register read-write<br />

CP15_N_DATA_AUX_<br />

FAULT<br />

CP15 Data Auxiliary Fault Status Non-secure register<br />

read-write<br />

CP15_N_DFAR CP15 Data Fault Address Non-secure register read-write<br />

CP15_N_DFSR CP15 Data Fault Status Non-secure register read-write<br />

CP15_N_IFAR CP15 Instruction Fault Address Non-secure register read-write<br />

CP15_N_IFSR CP15 Instruction Fault Status Non-secure register read-write<br />

CP15_N_INSTR_AUX_<br />

FAULT<br />

CP15_N_NORM_MEM_<br />

REMAP<br />

CP15 Instruction Auxiliary Fault Status Non-secure<br />

register<br />

CP15 Normal Memory Remap Non-secure register<br />

read-write<br />

read-write<br />

CP15_N_PA CP15 Physical Address Non-secure register read-write<br />

CP15_N_PID CP15 FCSE PID Non-secure register read-write<br />

CP15_N_PRIM_REGION_<br />

REMAP<br />

CP15 Primary Region Remap Non-secure register read-write<br />

CP15_N_PRIVILEGED_<br />

ID<br />

CP15 Privileged only Thread and Process ID Nonsecure<br />

register<br />

read-write<br />

CP15_N_TTBC CP15 TTB Control Non-secure register read-write<br />

CP15_N_TTBR0 CP15 TTB Non-secure Register 0 read-write<br />

CP15_N_TTBR1 CP15 TTB Non-secure Register 1 read-write<br />

CP15_N_USER_RO_ID CP15 <strong>User</strong> read-only Thread and Process ID Nonsecure<br />

read-write<br />

register<br />

CP15_N_USER_RW_ID CP15 <strong>User</strong> read/write Thread and Process ID Nonsecure<br />

read-write<br />

register<br />

CP15_N_VECTOR_BASE CP15 Monitor Vector Base Address Non-secure<br />

register<br />

read-write<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


Debug Features 1-19<br />

1.5.1.11 Secure World Registers<br />

The Secure group contains control registers that are only accessible in secure mode.<br />

Table 1-14 Secure World Registers<br />

Name Description Type<br />

CP15_S_CID CP15 Context ID Secure register read-write<br />

CP15_S_CONTROL CP15 Control Secure register read-only<br />

CP15_S_AUXILIARY_ CP15 Auxiliary Control Secure register read-write<br />

CONTROL<br />

CP15_S_DACR CP15 Domain Access Control Secure register read-write<br />

CP15_S_DATA_AUX_ CP15 Data Auxiliary Fault Status Secure register read-write<br />

FAULT<br />

CP15_S_DFAR CP15 Data Fault Address Secure register read-write<br />

CP15_S_DFSR CP15 Data Fault Status Secure register read-write<br />

CP15_S_IFAR CP15 Instruction Fault Address Secure register read-write<br />

CP15_S_IFSR CP15 Instruction Fault Status Secure register read-write<br />

CP15_S_INSTR_AUX_<br />

FAULT<br />

CP15_S_NORM_MEM_<br />

REMAP<br />

CP15 Instruction Auxiliary Fault Status Secure<br />

register<br />

CP15 Normal Memory Remap Secure register<br />

read-write<br />

read-write<br />

CP15_S_PA CP15 Physical Address Secure register read-write<br />

CP15_S_PID CP15 FCSE PID Secure register read-write<br />

CP15_S_PRIM_REGION_ CP15 Primary Region Remap Secure register read-write<br />

REMAP<br />

CP15_S_PRIVILEGED_ID CP15 Privileged only Thread and Process ID read-write<br />

Secure register<br />

CP15_S_TTBC CP15 TTB Control Secure register read-write<br />

CP15_S_TTBR0 CP15 TTB Secure Register 0 read-write<br />

CP15_S_TTBR1 CP15 TTB Secure Register 1 read-write<br />

CP15_S_USER_RO_ID CP15 <strong>User</strong> read-only Thread and Process ID read-write<br />

Secure register<br />

CP15_S_USER_RW_ID CP15 <strong>User</strong> read/write Thread and Process ID read-write<br />

Secure register<br />

CP15_S_VECTOR_BASE CP15 Monitor Vector Base Address Secure register<br />

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><br />

1.5.1.12 Debug Registers<br />

The Debug group provides access to the current debug state.<br />

Table 1-15 Debug Registers<br />

Name Description Type<br />

CP14_DIDR Debug ID Register read-only<br />

CP14_DBGROMADDR Debug ROM Address Register read-only<br />

CP14_DBGSELFADDR Debug Self Address Offset Register read-only<br />

CP14_DSCR Debug Status and Control register read-only<br />

CP14_DTRRX Data Transfer Register - Receive read-only<br />

CP14_DTRTX Data Transfer Register - Transmit write-only<br />

THUMB2EE_CONFIG ThumbEE Configuration Register read-write 1<br />

THUMB2EE_HANDLER_BASE ThumbEE Handler Base Register read-write 1<br />

CP14_JAZELLE_ID Jazelle Identity Register read-only<br />

CP14_JAZELLE_OS_CONTROL Jazelle OS Control Register read-only<br />

CP14_JAZELLE_CONFIGURATION Jazelle Main Configuration Register read-only<br />

1. Read/Write in Privileged modes.<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


Debug Features 1-21<br />

1.5.2 Run To Debug Point<br />

The “run to debug point” feature enhances model debugging. The <strong>Cortex</strong>-<strong>A8</strong> processor is<br />

a dual issue out of order completion machine. This means that while the processor is running<br />

it does not present a coherent programmer’s view state; instructions in the pipeline<br />

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>, the model can get to a non-debuggable state. In this event, the<br />

run to debug point will advance the processor to the debug state. It does this by stalling the<br />

instruction within the decode stage and allowing all earlier instructions to complete. Once<br />

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>A8</strong> model.<br />

Figure 1-4 <strong>Cortex</strong>-<strong>A8</strong> Memory View<br />

The display only provides a virtual memory view from the core’s perspective. However,<br />

the “axiport” space shows the physical memory view from the perspective of the axi interface.<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


1-22 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong><br />

1.5.4 Disassembly View<br />

Figure 1-5 shows the disassembly view of a program running on the <strong>Cortex</strong>-<strong>A8</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>A8</strong> model and select View Disassembly… from the context<br />

menu.<br />

Figure 1-5 <strong>Cortex</strong>-<strong>A8</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 />

The instruction step button has a minimum granularity of one cycle. The <strong>Cortex</strong>-<strong>A8</strong> can<br />

dual-issue many instruction pairs, which will result in the instruction step button completing<br />

two instructions instead of one.<br />

Breakpoints also have a minimum granularity of one cycle. When a breakpoint is placed<br />

on an instruction, program execution will always stop one cycle be<strong>for</strong>e that instruction<br />

completes. If the instruction was dual-issued into the younger pipe, this will mean that the<br />

program counter is pointing to the instruction be<strong>for</strong>e that which triggered the breakpoint.<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


Available Profiling Data 1-23<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 is available.<br />

1.6.1 Hardware Profiling<br />

Hardware profiling is broken down into six streams per processor core. They are the<br />

L1 events, L2 events, TLB events, Core events, Branch events, and Interface events. The<br />

buckets supported by each of these streams are shown in Table 1-16:<br />

Table 1-16 <strong>Cortex</strong>-<strong>A8</strong> Profiling Events<br />

Stream Buckets X axis Y axis<br />

L1 Events ICache refill Cycle L1 events<br />

DCache refill<br />

DCache access<br />

Data read<br />

Data write<br />

L1 miss (0x49)<br />

L1 miss (0x4A)<br />

L1 page color<br />

L1 neon hit<br />

L1 neon access<br />

L1 cache access<br />

L2 Events L2 store merge Cycle L2 events<br />

L2 buffer<br />

L2 access<br />

L2 cache miss<br />

L2 neon access<br />

L2 neon hit<br />

TLB Events ITLB refill Cycle TLB<br />

DTLB refill<br />

Core Events SW increment Cycle Core events<br />

Instr exec<br />

CID 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><br />

Table 1-16 <strong>Cortex</strong>-<strong>A8</strong> Profiling Events (Continued)<br />

Stream Buckets X axis Y axis<br />

Core Events Unalign access Cycle Core events<br />

Buffer full<br />

Replay<br />

Unaligned replay<br />

Op issue<br />

No avail inst issue<br />

Inst issue<br />

Stall MRC<br />

Stall<br />

Non-idle<br />

Branch Events Exp taken Cycle Branch events<br />

Exp return<br />

PC change<br />

Imm branch<br />

Proc return<br />

Branch mispred<br />

Branch pred<br />

Ret stk mispred<br />

Brnch dir mispred<br />

Brnch pred not-taken<br />

Brnch pred taken<br />

Interface Events AXI data read Cycle Interface events<br />

AXI data write<br />

PMUEXTIN[0]<br />

PMUEXTIN[1]<br />

PMUEXTIN[1 or 0]<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


Available Profiling Data 1-25<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 />

1.6.2 Software Profiling<br />

Software-based profiling is provided by <strong>SoC</strong> <strong>Designer</strong>. Profiling in<strong>for</strong>mation is also available<br />

in the <strong>SoC</strong> <strong>Designer</strong> Profiler. See the user guide <strong>for</strong> <strong>SoC</strong> <strong>Designer</strong> or <strong>SoC</strong> <strong>Designer</strong><br />

Profiler <strong>for</strong> more in<strong>for</strong>mation.<br />

<strong>Carbon</strong> Design Systems, Inc. Confidential


1-26 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong><br />

<strong>Carbon</strong> Design Systems, Inc. Confidential

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

Saved successfully!

Ooh no, something went wrong!