09.07.2015 Views

Carbon Cortex-A9 Model User Guide for SoC Designer

Carbon Cortex-A9 Model User Guide for SoC Designer

Carbon Cortex-A9 Model User Guide for SoC Designer

SHOW MORE
SHOW LESS

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

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

<strong>Carbon</strong> <strong>Cortex</strong>-<strong>A9</strong> <strong>Model</strong><strong>User</strong> <strong>Guide</strong> <strong>for</strong><strong>SoC</strong> <strong>Designer</strong> Plus<strong>Carbon</strong> <strong>Model</strong> Version 4.2.0For the ARM <strong>Cortex</strong>-<strong>A9</strong> Single Core and <strong>Cortex</strong>-<strong>A9</strong> MPCore ProcessorSilicon Version: r1p2, r2p2The Trusted Path to Accuracy The in<strong>for</strong>mation contained in this document is confidential in<strong>for</strong>mation of <strong>Carbon</strong> Design Systems, Inc.,and may not be duplicated or disclosed to unauthorized and/or third parties.


CopyrightCopyright © 2003-2013 <strong>Carbon</strong> Design Systems, Inc. All rights reserved.Files, documents or portions thereof presented on the <strong>Carbon</strong> Design Systems Internet server “Publication”, permits personsto view, copy, and print the Publication subject to the following conditions:• The Publication are to be kept strictly confidential• Copies of the Publication will not be distributed• Copies of the Publication must include the <strong>Carbon</strong> Design Systems copyright notice• <strong>Carbon</strong> Design Systems logos may only be used with <strong>Carbon</strong>'s expressed written permission, including but not limitedto: linking through hyperlinks, electronic display, and print <strong>for</strong>mat.Disclaimer of WarrantyThis publication is provided “as is” without warranty of any kind, either expressed or implied, including, but not limitedto, the implied warranties of merchantability, fitness <strong>for</strong> a particular purpose, or non-infringement. <strong>Carbon</strong> Design Systemsassumes no responsibility <strong>for</strong> errors or omissions in this publication or other documents which are referenced by orlinked to this publication.References to corporations, their services and products, are provided “as is” without warranty of any kind, eitherexpressed or implied. In no event shall <strong>Carbon</strong> Design Systems be liable <strong>for</strong> any special, incidental, indirect or consequentialdamages of any kind, or any damages whatsoever, including, without limitation, those resulting from loss ofuse, data or profits, whether or not advised of the possibility of damage, and on any theory of liability, arising out of or inconnection with the use or per<strong>for</strong>mance of this in<strong>for</strong>mation.This publication may include technical or other inaccuracies or typographical errors. <strong>Carbon</strong> Design Systems may makeimprovements and/or changes in the product(s) and/or the program(s) described in this publication and in the publicationitself at any time.Trademarks© 2003-2012 <strong>Carbon</strong> Design Systems, Inc. All rights reserved. <strong>Carbon</strong> Design Systems, the <strong>Carbon</strong> Design Systemslogo, <strong>Carbon</strong> <strong>Model</strong> Studio, Replay, OnDemand, <strong>SoC</strong> <strong>Designer</strong>, Software Be<strong>for</strong>e Silicon, SOC-VSP, Swap & Play, VSP,The Answer to Validation, and The Trusted Path to Accuracy are trademarks or registered trademarks of <strong>Carbon</strong> DesignSystems, Incorporated in the United States and/or other countries.ARM, AMBA and RealView are registered trademarks of ARM Limited. AHB, APB and AXI are trademarks of ARMLimited. “ARM” is used to represent ARM Holdings plc; its operating company ARM Limited; and the regional subsidiariesARM INC.; ARM KK; ARM Korea Ltd.; ARM Taiwan; ARM France SAS; ARM Consulting (Shanghai) Co.Ltd.; ARM Belgium N.V.; ARM Embedded Technologies Pvt. Ltd.; and ARM Physical IP, Inc.Microsoft, Windows 2000, and Windows XP are trademarks or registered trademarks of Microsoft Corporation in theUnited States and/or other countries.SystemC is a trademark of the Open SystemC Initiative.All other trademarks, registered trademarks, and products referenced herein are the property of their respective owners.<strong>Carbon</strong> Design Systems, Inc. Confidential


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


ContentsPrefaceAbout This <strong>Guide</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viiAudience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viiConventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viiiFurther reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixGlossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixChapter 1.Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus<strong>Cortex</strong>-<strong>A9</strong> Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-1Implemented Hardware Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2Hardware Features not Implemented . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-2Features Additional to the Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3Adding and Configuring the <strong>SoC</strong> <strong>Designer</strong> Plus Component . . . . . . . . . . . . . . . . . . . . . . . .1-3<strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Component Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-3Adding the <strong>Carbon</strong> <strong>Model</strong> to the Component Library . . . . . . . . . . . . . . . . . . . . . . . . . .1-4Adding the Component to the <strong>SoC</strong> <strong>Designer</strong> Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . .1-5Available Component ESL Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-6Setting Component Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-8Debug Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-12Register In<strong>for</strong>mation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-12Core Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13Debug Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15ID Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15VA to PA Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-16Normal World Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-16Secure World Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17Cache Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18Control Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18Perf Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-19SCU Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-20Global Timer Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-20Timer/Watchdog Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-21Processor Interface (Int IF) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-21Interrupt Distributor (Int Dist) Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-22VFP/Neon Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-22PLE Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-23<strong>Carbon</strong> Design Systems, Inc. Confidential


viRun To Debug Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-24Memory In<strong>for</strong>mation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-24Disassembly View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-25Available Profiling Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-26Hardware Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-26Software Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1-28<strong>Carbon</strong> Design Systems, Inc. Confidential


PrefaceAbout This <strong>Guide</strong>A <strong>Carbon</strong> <strong>Model</strong> component is a library developed from ARM intellectual property (IP)that is generated through <strong>Carbon</strong> <strong>Model</strong> Studio. The model then can be used within avirtual plat<strong>for</strong>m tool, <strong>for</strong> example, <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus.This guide provides all the in<strong>for</strong>mation needed to configure and use the <strong>Carbon</strong> <strong>Cortex</strong>-<strong>A9</strong>single-processor (UNI) or multi-processor (MPCore) <strong>Model</strong> in <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong>Plus.AudienceThis guide is intended <strong>for</strong> experienced hardware and software developers who create components<strong>for</strong> use with <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus. You should be familiar with the followingproducts and technology:• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus• Hardware design verification• Verilog or VHDL programming language<strong>Carbon</strong> Design Systems, Inc. Confidential


viiiPrefaceConventionsThis guide uses the following conventions:Convention Description ExamplecourieritalicboldCommands, functions,variables, routines, andcode examples that are setapart from ordinary text.New or unusual words orphrases appearing <strong>for</strong> thefirst time.Action that the user per<strong>for</strong>ms.Values that you fill in, orthat the system automaticallysupplies.[ text ] Square brackets [ ] indicateoptional text.[ text1 | text2 ] The vertical bar | indicates“OR,” meaning that youcan supply text1 or text 2.sparseMem_t SparseMemCreate-New();Transactors provide the entry and exitpoints <strong>for</strong> data ...Click Close to close the dialog./ represents the name ofvarious plat<strong>for</strong>ms.$CARBON_HOME/bin/modelstudio[ ]$CARBON_HOME/bin/modelstudio[.symtab.db |.ccfg ]Also note the following references:• References to C code implicitly apply to C++ as well.• File names ending in .cc, .cpp, or .cxx indicate a C++ source file.<strong>Carbon</strong> Design Systems, Inc. Confidential


PrefaceixFurther readingGlossaryThis section lists related publications by <strong>Carbon</strong> and by third parties.<strong>Carbon</strong> <strong>Model</strong> DocumentationThe following publications provide in<strong>for</strong>mation that relate directly to models from <strong>Carbon</strong>Design Systems:• <strong>Carbon</strong> <strong>Cortex</strong>-<strong>A9</strong> <strong>Model</strong> Generation <strong>Guide</strong>• <strong>Carbon</strong> <strong>Model</strong> Installation and Licensing <strong>Guide</strong><strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus DocumentationThe following publications provide in<strong>for</strong>mation that relate directly to <strong>SoC</strong> <strong>Designer</strong> Plus:• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Installation <strong>Guide</strong>• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus <strong>User</strong> <strong>Guide</strong>• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus RTOE <strong>User</strong> <strong>Guide</strong>• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Standard Component Library Reference ManualExternal publicationsThe following publications provide reference in<strong>for</strong>mation about ARM® products:• ARM <strong>Cortex</strong>-<strong>A9</strong> Technical Reference Manual• ARM <strong>Cortex</strong>-<strong>A9</strong> MPCore Technical Reference Manual• <strong>Cortex</strong>-<strong>A9</strong> Floating-Point Unit Technical Reference Manual• <strong>Cortex</strong>-<strong>A9</strong> NEON Media Processing Engine Technical Reference Manual• <strong>Cortex</strong>-<strong>A9</strong> Configuration and Sign-Off <strong>Guide</strong>• AMBA Specification• AMBA AHB Transaction Level <strong>Model</strong>ing Specification• AMBA AXI Transaction Level <strong>Model</strong>ing Specification• Architecture Reference Manual• ARM RealView <strong>Model</strong> Debugger <strong>User</strong> <strong>Guide</strong>See http://infocenter.arm.com/help/index.jsp <strong>for</strong> access to ARM documentation.The following publications provide additional in<strong>for</strong>mation on simulation:• IEEE 1666 SystemC Language Reference Manual, (IEEE Standards Association)• SPIRIT <strong>User</strong> <strong>Guide</strong>, Revision 1.2, SPIRIT Consortium.AMBAAdvanced Microcontroller Bus Architecture. The ARM open standard on-chipbus specification that describes a strategy <strong>for</strong> the interconnection and managementof functional blocks that make up a System-on-Chip (<strong>SoC</strong>).<strong>Carbon</strong> Design Systems, Inc. Confidential


xPrefaceAHBAPBAXI<strong>Carbon</strong> <strong>Model</strong><strong>Carbon</strong> <strong>Model</strong>StudioCASICADICAPIComponentESLHDLRTL<strong>SoC</strong> <strong>Designer</strong>SystemCTransactorAdvanced High-per<strong>for</strong>mance Bus. A bus protocol with a fixed pipelinebetween address/control and data phases. It only supports a subset of the functionalityprovided by the AMBA AXI protocol.Advanced Peripheral Bus. A simpler bus protocol than AXI and AHB. It isdesigned <strong>for</strong> use with ancillary or general-purpose peripherals such as timers,interrupt controllers, UARTs, and I/O ports.Advanced eXtensible Interface. A bus protocol that is targeted at high per<strong>for</strong>mance,high clock frequency system designs and includes a number of featuresthat make it very suitable <strong>for</strong> high speed sub-micron interconnect.A software object created by the <strong>Carbon</strong> <strong>Model</strong> Studio (or <strong>Carbon</strong> compiler)from an RTL design. The <strong>Carbon</strong> <strong>Model</strong> contains a cycle- and register-accuratemodel of the hardware design.<strong>Carbon</strong>’s graphical tool <strong>for</strong> generating, validating, and executing hardwareaccuratesoftware models. It creates a <strong>Carbon</strong> <strong>Model</strong>, and it also takes a <strong>Carbon</strong><strong>Model</strong> as input and generates a <strong>Carbon</strong> component that can be used in<strong>SoC</strong> <strong>Designer</strong> Plus, Plat<strong>for</strong>m Architect, or OSCI SystemC <strong>for</strong> simulation.ESL API Simulation Interface, is based on the SystemC communicationlibrary and manages the interconnection of components and communicationbetween components.ESL API Debug Interface, enables reading and writing memory and registervalues and also provides the interface to external debuggers.ESL API Profiling Interface, enables collecting historical data from a componentand displaying the results in various <strong>for</strong>mats.Building blocks used to create simulated systems. Components are connectedtogether with unidirectional transaction-level or signal-level connections.Electronic System Level. A type of design and verification methodology thatmodels the behavior of an entire system using a high-level language such as Cor C++.Hardware Description Language. A language <strong>for</strong> <strong>for</strong>mal description of electroniccircuits, <strong>for</strong> example, Verilog or VHDL.Register Transfer Level. A high-level hardware description language (HDL)<strong>for</strong> defining digital circuits.The full name is <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus. A high-per<strong>for</strong>mance, cycle accuratesimulation framework which is targeted at System-on-a-Chip hardwareand software debug as well as architectural exploration.SystemC is a single, unified design and verification language that enables verificationat the system level, independent of any detailed hardware and softwareimplementation, as well as enabling co-verification with RTL design.Transaction adaptors. You add transactors to your <strong>Carbon</strong> component to connectyour component directly to transaction level interface ports <strong>for</strong> your particularplat<strong>for</strong>m.<strong>Carbon</strong> Design Systems, Inc. Confidential


Chapter 1Using the <strong>Model</strong> Kit Component in<strong>SoC</strong> <strong>Designer</strong> PlusThis chapter describes the functionality of the <strong>Model</strong> component, and how to use it in<strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus. It contains the following sections:• <strong>Cortex</strong>-<strong>A9</strong> Functionality• Adding and Configuring the <strong>SoC</strong> <strong>Designer</strong> Plus Component• Available Component ESL Ports• Setting Component Parameters• Debug Features• Available Profiling Data1.1 <strong>Cortex</strong>-<strong>A9</strong> FunctionalityThe <strong>Cortex</strong>-<strong>A9</strong> processors can be used in both a uniprocessor configuration and multiprocessorconfigurations.In the multiprocessor configuration, up to four <strong>Cortex</strong>-<strong>A9</strong> processors are available in acache-coherent cluster, under the control of a Snoop Control Unit (SCU), that maintainsL1 data cache coherency.The <strong>Cortex</strong>-<strong>A9</strong> MPCore multiprocessor has:• up to four <strong>Cortex</strong>-<strong>A9</strong> processors• an SCU responsible <strong>for</strong> maintaining coherency among L1 data caches• an Interrupt Controller (IC) with support <strong>for</strong> legacy ARM interrupts• a private timer and a private watchdog per processor• a global timer• AXI high-speed Advanced Microprocessor Bus Architecture (AMBA) L2 interfaces.• an Accelerator Coherency Port (ACP), an optional AXI 64-bit slave port that can beconnected to a DMA engine or a non-cached peripheral.It is possible to implement only one <strong>Cortex</strong>-<strong>A9</strong> processor in a <strong>Cortex</strong>-<strong>A9</strong> MPCore processordesign. In this configuration, an SCU is still provided. The ACP, and an additionalmaster port, are also available in this configuration.<strong>Carbon</strong> Design Systems, Inc. Confidential


1-2 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> PlusThis section provides a summary of the functionality of the model compared to that of thehardware, and the per<strong>for</strong>mance and accuracy of the model.• Implemented Hardware Features• Hardware Features not Implemented• Features Additional to the Hardware1.1.1 Implemented Hardware FeaturesMost hardware features have been implemented. Some functionality and register pin differencesare listed in the next section.Note that when using semihosting you must use the semihost component from <strong>Carbon</strong>.This “<strong>Carbon</strong>Semihost” component is included in the <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Standard<strong>Model</strong> Library, version 3.0 or greater. The ARM RVML semihost component will notwork with the <strong>Carbon</strong> <strong>Model</strong>.See the ARM <strong>Cortex</strong>-<strong>A9</strong> MPCore Technical Reference Manual <strong>for</strong> more in<strong>for</strong>mation.1.1.2 Hardware Features not ImplementedThe following features of the <strong>Cortex</strong>-<strong>A9</strong> hardware are not implemented in the <strong>Carbon</strong>izedmodel:• TLB Lockdown support is limited. If the system uses TLB lockdown to create entriesthat differ from the page table entries, the Virtual Address-to-Physical Address translationmay be incorrect. Consequently, debug access to the Memory View may returnincorrect data.• The following registers are not available to be read / written via debug transactions —<strong>for</strong> example, in the <strong>SoC</strong> <strong>Designer</strong> Plus Registers window, or by accessing themdirectly from RealView Debugger:– Control register; ADFSR, AIFSR, and FCSEIDR– Normal World register; N_ACTLR, N_ADFSR, N_AIFSR, and N_FCSEIDR– Secure World register; S_ACTLR, S_ADFSR, S_AIFSR, and S_FCSEIDR– Cache register; ICIALLU, ICIMVAU, FPB, BPIALL, BPIMVA, DCIMVAC,DCISW, DCCMVAC, DCCSW, DCCMVAU, DCCIMVAC, and DCCISW– TLB register; not supported– Virtual Address to Physical Address register; V2PCWPR, V2PCWPW,V2PCWUR, V2PCWUW, V2POWPR, V2POWPW, V2POWUR, and V2POWUW– Per<strong>for</strong>mance (Perf) register; PMSWINCThe functionality of these registers, however, does exist and can be accessed by softwarerunning on the virtual plat<strong>for</strong>m.• Some register pins are read-only as well. See the section “Register In<strong>for</strong>mation” onpage 1-12 <strong>for</strong> more in<strong>for</strong>mation.• Features of the following profiling streams are not supported:– I-Cache; Read Hit, Uncached Read, Uncached Write, Line Fill, and Line Eviction<strong>Carbon</strong> Design Systems, Inc. Confidential


Adding and Configuring the <strong>SoC</strong> <strong>Designer</strong> Plus Component 1-3• Debug transactions do not fully support cache coherence. This means that the debugtransaction could read or write data without realizing that it is accessing data thatresides in the other cores’ L1 cache. Debug transactions are needed by RVD accessesto memory, as well as by semihosting. If you see a different memory value from RVDthan what you see by opening the Memory view in the processor and memory, thenyour design may have encountered this limitation.1.1.3 Features Additional to the HardwareThe following features that are implemented in the <strong>Cortex</strong>-<strong>A9</strong> model do not exist in the<strong>Cortex</strong>-<strong>A9</strong> hardware. These features have been added to the model <strong>for</strong> enhanced usability.• The component supports positive and negative level irq and fiq signal. This is configurableusing the negLogic parameter (see Table 1-3 on page 1-9).• The “run to debug point” feature has been added. This feature <strong>for</strong>ces the debugger toadvance the processor to the debug state instead of having the model get into a nondebuggablestate. See “Run To Debug Point” on page 1-24 <strong>for</strong> more in<strong>for</strong>mation.1.2 Adding and Configuring the <strong>SoC</strong> <strong>Designer</strong> Plus ComponentThe following topics briefly describe how to use the component. See the <strong>Carbon</strong> <strong>SoC</strong><strong>Designer</strong> Plus <strong>User</strong> <strong>Guide</strong> <strong>for</strong> more in<strong>for</strong>mation.• <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Component Files• Adding the <strong>Carbon</strong> <strong>Model</strong> to the Component Library• Adding the Component to the <strong>SoC</strong> <strong>Designer</strong> Canvas1.2.1 <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Component FilesThe component files are the final output from the <strong>Carbon</strong> <strong>Model</strong> Studio compile and arethe input to <strong>SoC</strong> <strong>Designer</strong> Plus. There are two versions of the component; an optimizedrelease version <strong>for</strong> normal operation, and a debug version.On Linux, the debug version of the component is compiled without optimizations andincludes debug symbols <strong>for</strong> use with gdb. The release version is compiled without debugin<strong>for</strong>mation and is optimized <strong>for</strong> per<strong>for</strong>mance.On Windows, the debug version of the component is compiled referencing the debug runtimelibraries so it can be linked with the debug version of <strong>SoC</strong> <strong>Designer</strong> Plus. The releaseversion is compiled referencing the release runtime library. Both release and debug versionsgenerate debug symbols <strong>for</strong> use with the Visual C++ debugger on Windows.<strong>Carbon</strong> Design Systems, Inc. Confidential


1-4 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> PlusThe provided component files are listed below:Table 1-1 <strong>Carbon</strong> <strong>SoC</strong> <strong>Designer</strong> Plus Component FilesPlat<strong>for</strong>m File DescriptionLinuxWindowsmaxlib.lib.conflib.mx.solib.mx_DBG.somaxlib.lib.windows.conflib.mx.dlllib.mx_DBG.dll<strong>SoC</strong> <strong>Designer</strong> Plus configuration file<strong>SoC</strong> <strong>Designer</strong> Plus component runtime file<strong>SoC</strong> <strong>Designer</strong> Plus component debug file<strong>SoC</strong> <strong>Designer</strong> Plus configuration file<strong>SoC</strong> <strong>Designer</strong> Plus component runtime file<strong>SoC</strong> <strong>Designer</strong> Plus component debug fileAdditionally, this <strong>User</strong> <strong>Guide</strong> PDF file and a ReadMe text file are provided with the component.1.2.2 Adding the <strong>Carbon</strong> <strong>Model</strong> to the Component LibraryThe compiled <strong>Carbon</strong> <strong>Model</strong> component is provided as a configuration file (.conf). Tomake the component available in the Component Window in <strong>SoC</strong> <strong>Designer</strong> Canvas, per<strong>for</strong>mthe following steps:1. Launch <strong>SoC</strong> <strong>Designer</strong> Canvas.2. From the File menu, select Preferences.3. Click on Component Library in the list on the left.4. Under the Additional Component Configuration Files window, click Add.5. Browse to the location where the <strong>SoC</strong> <strong>Designer</strong> Plus model is located and select thecomponent configuration file:– maxlib.lib.conf (<strong>for</strong> Linux)– maxlib.lib.windows.conf (<strong>for</strong> Windows)6. Click OK.7. To save the preferences permanently, click the OK & Save button.The component is now available from the <strong>SoC</strong> <strong>Designer</strong> Plus Component Window.<strong>Carbon</strong> Design Systems, Inc. Confidential


Adding and Configuring the <strong>SoC</strong> <strong>Designer</strong> Plus Component 1-51.2.3 Adding the Component to the <strong>SoC</strong> <strong>Designer</strong> CanvasLocate the component in the Component Window and drag it out to the Canvas. It appearsas shown in Figure 1-1. Note that ports may vary depending on your configuration.UniprocessorMulti-processorFigure 1-1 <strong>Cortex</strong>-<strong>A9</strong> MPCore and Uniprocessor Components in<strong>SoC</strong> <strong>Designer</strong> PlusThe figure shows the component with two Master AXI ports. The second master portappears only if it was defined in the model RTL configuration file (CORTEX<strong>A9</strong>MP.conf).<strong>Carbon</strong> Design Systems, Inc. Confidential


1-6 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus1.3 Available Component ESL PortsACLKENSTable 1-2 describes the ESL ports that are exposed in <strong>SoC</strong> <strong>Designer</strong> Plus. Some ports mayor may not appear depending on whether you are using the multiprocessor or uniprocessorversion of the ARM hardware. See the ARM <strong>Cortex</strong>-<strong>A9</strong> Technical Reference Manual orARM <strong>Cortex</strong>-<strong>A9</strong> MPCore Technical Reference Manual <strong>for</strong> more in<strong>for</strong>mation.Table 1-2 ESL Component PortsESL Port Description Direction TypeBus clock enable. By default it is set to 1 through a componentparameter. If another component is connectedthrough this port, it will override the default value. Availableonly with the MPCore.InputSignal slaveACLKENM[0,1] 1 Controls AXI ports. Available only with uniprocessor Input Signal slaveconfiguration.apb_dbg APB debug interface. Input APB Transactionslaveaxi_m0 AXI Master port 0. Output AXI Transactionmasteraxi_m1axi_sAXI Master port 1. Available only when a second masterhas been defined in the configuration file.AXI ACP (Accelerator Coherency Port) Slave port.Available only when it has been enabled in the configurationfile.OutputInputAXI TransactionmasterAXI TransactionslaveCFGSDISABLE 2 Disables write access to some system control processor Input Signal slaveregisters.clk_in Input clock. Input Clock slaveCP15SDISABLE Disabled write access to some system control processor Input Signal slaveregisters.DBGACK Debug acknowledge signal. (Used only with CoreSight). Output Signal masterDBGRESTARTED Used with DBGRESTART to move between Debug and Output Signal masterNormal state. (Used only with CoreSight).EDBGRQ External debug request. (Used only with CoreSight). Input Signal slaveEVENTIEvent input <strong>for</strong> <strong>Cortex</strong>-<strong>A9</strong> processor wake-up from WFE Input Signal slavestate.EVENTOEvent output. This signal is active when one SEV instructionis executed.Output Signal masterextSemi There is an extSemi port per core in a multi-core <strong>A9</strong>,where is 0-3 to represent the core. In the single-processorversion, this port is simply extSemi0. Semihostingcan be enabled by connecting these ports to the <strong>SoC</strong><strong>Designer</strong> Plus semihost component contained in the <strong>Carbon</strong><strong>SoC</strong> <strong>Designer</strong> Plus Standard <strong>Model</strong> Library (v3.0 orgreater).OutputTransaction master<strong>Carbon</strong> Design Systems, Inc. Confidential


Available Component ESL Ports 1-7fiq 2<strong>Cortex</strong>-<strong>A9</strong> processor private FIQ request input lines:0 = do not activate fast interrupt1 = activate fast interruptInputSignal slaveINCLKENM[0,1] 2 Controls bus speed of AXI ports. Input Signal slaveINTThis port connects to external interrupt signals. It can beany size between 0 and 224, in increments of 32. Thevalue must indicate the interrupt number [NumIRQ..0]and the *extValue must indicate whether the IRQ line isasserted (*extValue=1) or deasserted (*extValue=0).Input Signal slaveirq 1<strong>Cortex</strong>-<strong>A9</strong> processor legacy IRQ request input lines:0 = do not activate interrupt1 = activate interruptInputSignal slavenCPureset 2 Active low reset, 4 bits wide. Input Signal slavenDBGRESET 2 Active low reset, 4 bits wide. Input Signal slavenNEONRESET 2 Active low reset, 4 bits wide. Available with Neon configurationsInput Signal slaveat version r2px only.nDERESET Active low reset, 4 bits wide. Available only with Neonconfurations at versions later than r2p0.Input Signal slavenPERIPHRESET 2nSCURESET 2nWDRESET 2Table 1-2 ESL Component Ports (Continued)ESL Port Description Direction TypeActive low reset, 1 bit wide. Available with MP configurationonly.Active low reset, 2 bit wide. Available with MP configurationonly.Active low reset, 4 bits wide. Available with MP configurationonly.InputInputInputSignal slaveSignal slaveSignal slaveOUTCLKENM[0,1] 2 Controls bus speed of AXI ports. Input Signal slavePERIPHCLK Clock <strong>for</strong> the timer and Interrupt Controller. Available Input Signal slavewith MP configuration only.PERIPHCLKEN Clock enable <strong>for</strong> the timer and Interrupt Controller. AvailableInput Signal slavewith MP configuration only.SMPnAMP Signals AMP or SMP mode <strong>for</strong> each <strong>Cortex</strong>-<strong>A9</strong> MPCore Output Signal masterprocessor.STANDBYWFE Indicates if a <strong>Cortex</strong>-<strong>A9</strong> processor is in WFE state. Output Signal masterSTANBYWFI Indicates that a <strong>Cortex</strong>-<strong>A9</strong> processor is in Standby mode. Output Signal masterWDRESETREQ Watchdog reset request. Output Signal master1. Refer to the ARM <strong>Cortex</strong>-<strong>A9</strong> Technical Reference Manual <strong>for</strong> details on driving these pins.2. For these interrupt ports, the active high/low setting is controlled by the negLogic component parameter. Thedefault is active high.All pins that are not listed in this table have been either tied or disconnected <strong>for</strong> per<strong>for</strong>mancereasons.<strong>Carbon</strong> Design Systems, Inc. Confidential


1-8 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> PlusNote:Some ESL component port values can be set using a component parameter. Thisincludes the ACLKENS and CP15SDISABLE ports. In these cases, the parametervalue is used whenever the ESL port is not connected. If the port is connected, theconnection value takes precedence over the parameter value.1.4 Setting Component ParametersYou can change the settings of all the component parameters in <strong>SoC</strong> <strong>Designer</strong> Plus Canvas,and of some of the parameters in <strong>SoC</strong> <strong>Designer</strong> Simulator. To modify the <strong>Carbon</strong>component’s parameters:1. In the Canvas, right-click on the <strong>Carbon</strong> component and select Edit Parameters....You can also double-click the component. The Edit Parameters dialog box appears.Figure 1-2 Component Parameters Dialog BoxThe list of available parameters will be slightly different depending on the settings thatyou enabled in the configuration file (<strong>for</strong> example, CORTEX<strong>A9</strong>MP.conf) and dependingon whether you are using the multi-processor or uniprocessor version of the ARMhardware.2. In the Parameters window, double-click the Value field of the parameter that youwant to modify.3. If it is a text field, type a new value in the Value field. If a menu choice is offered,select the desired option. The parameters are described in Table 1-3.<strong>Carbon</strong> Design Systems, Inc. Confidential


Setting Component Parameters 1-9Table 1-3 Component ParametersNameDescriptionAllowedValuesDefault Value Runtime 1ACLKENS Bus clock enable. integer 1 YesAlign Wave<strong>for</strong>ms When set to true, wave<strong>for</strong>ms dumpedby the <strong>Carbon</strong> component are alignedwith the <strong>SoC</strong> <strong>Designer</strong> Plus simulationtime. The reset sequence, however,is not included in the dumpeddata.When set to false, the reset sequenceis dumped to the wave<strong>for</strong>m data, however,the <strong>Carbon</strong> component time isnot aligned with <strong>SoC</strong> <strong>Designer</strong> Plustime.true, false true Noapb_dbg BaseAddressapb_dbg EnableDebug MessagesBase address 0x0 – 0xffffffff 0x0 NoWhether debug messages are logged<strong>for</strong> the APB port.apb_dbg Size Size 0x0 –0x100000000axi_m0 Enable DebugMessagesaxi_m1 Enable DebugMessagesaxi_s axi_size0axi_s axi_size[1-5]axi_s axi_start[0-5]axi_s Enable DebugMessages<strong>Carbon</strong> DB PathWhether debug messages are logged<strong>for</strong> master port 0.Whether debug messages are logged<strong>for</strong> master port 1.These parameters are obsolete andshould be left at their default values. 2Whether debug messages are logged<strong>for</strong> the slave port.Sets the directory path to the <strong>Carbon</strong>database file.true, false false Yes0x100000000Notrue, false false Yestrue, false false Yes0x1000000000x00x00000000CFGEND Endianness configuration. 0 — 0xF <strong>for</strong>MPCore0,1 <strong>for</strong> UNICoreCFGNMFI Enables fast interrupts. 0 — 0xF <strong>for</strong>MPCore0,1 <strong>for</strong> UNICoreCLUSTERIDCP15SDISABLEValue read in Cluster ID register field,bits[11:8] of the MPIDR.Disables write access to some systemcontrol processor registers.0x1000000000x00x00000000Notrue, false false YesNot Used empty No0 NofalseNo0-15 0 No0 — 0xF <strong>for</strong>MPCore0,1 <strong>for</strong> UNICore0 Yes<strong>Carbon</strong> Design Systems, Inc. Confidential


1-10 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> PlusTable 1-3 Component Parameters (Continued)NameDescriptionAllowedValuesDefault Value Runtime 1DBGSWENABLE S/W Modify Debug Registers 0 — 0xF <strong>for</strong>MPCore0, 1 <strong>for</strong>UNICoreDump Wave<strong>for</strong>msEnable DebugMessagesFILTERENFILTERENDFILTERSTARTWhether <strong>SoC</strong> <strong>Designer</strong> Plus dumpswave<strong>for</strong>ms <strong>for</strong> this component.Whether debug messages are logged<strong>for</strong> the component.Enables filtering of address rangesAvailable only on MPCore, and onlyif the model has been configured withtwo AXI Master ports.End address[31:20] <strong>for</strong> filteringAvailable only on MPCore, and onlyif the model has been configured withtwo AXI Master ports.Start address[31:20] <strong>for</strong> filteringAvailable only on MPCore, and onlyif the model has been configured withtwo AXI Master ports.0xF <strong>for</strong> MPCore1 <strong>for</strong> UNICoreNotrue, false false Yestrue, false false Yes0,1 0 Noaddress 0 Noaddress 0 NoINCLKENM[0,1] Controls bus speed of AXI ports. value 1 NonegLogicSets IRQ/FIZ assertion to use negativelogic. Default of:false means 0 = off and 1 = on.true means 0 = on and 1 = offtrue, false false NoOUTCLKENM[0,1] 2 Controls bus speed of AXI ports. value 1 NoPC Tracing Core Enables dumping a PC trace to diskcontaining decode PCs and actualbranch PCs, where is 0-3 to representthe core. See “Software Profiling”on page 1-28.true, false false NoPC Tracing FileCorePERIPHBASEThe file to write the PC trace in<strong>for</strong>mation,where is 0-3 to representthe core. The file is written in binary<strong>for</strong>mat. The C++ file pctracedump.cppcan be used to decode thedata.Specifies the base address <strong>for</strong> Timers,Watchdogs, Interrupt Controller, andSCU registers. Set to the base addressshifted right by 13 bits.Valid file name<strong>Cortex</strong><strong>A9</strong>PC.datNoany 38976 (0x9800) Yes<strong>Carbon</strong> Design Systems, Inc. Confidential


Setting Component Parameters 1-11Table 1-3 Component Parameters (Continued)NameDescriptionAllowedValuesDefault Value Runtime 1TEINITVINITHIDefault exception handling state:0 = ARM1 = ThumbIndividual processor control of thelocation of the exception vectors atreset.0 — 0xF <strong>for</strong>MPCore0, 1 <strong>for</strong>UNICore0 — 0xF <strong>for</strong>MPCore0,1 <strong>for</strong> UNICore0 NoWave<strong>for</strong>m File 3 Name of the wave<strong>for</strong>m file. string carbon_CORTEX No<strong>A9</strong>.vcd orcarbon_CORTEX<strong>A9</strong>MP.vcdWave<strong>for</strong>m Format Format of the wave<strong>for</strong>m dump file. VCD, FSDB VCD NoWave<strong>for</strong>m Timescale Sets the timescale to be used in thewave<strong>for</strong>m.Many values indrop-down1 ns No1. Yes means the parameter can be dynamically changed during simulation, No means it can be changed onlywhen building the system, Reset means it can be changed during simulation, but its new value will be takeninto account only at the next reset.2. <strong>Carbon</strong> recommends using the Memory Map Editor (MME) in <strong>SoC</strong> <strong>Designer</strong> Plus, which provides centralizedviewing and management of the memory regions available to the components in a system. For in<strong>for</strong>mationabout 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>.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:when the wave<strong>for</strong>m buffer fills, when validation is paused and when validation finishes, and at the end ofeach validation run.0x0No<strong>Carbon</strong> Design Systems, Inc. Confidential


1-12 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus1.5 Debug FeaturesThe <strong>Cortex</strong>-<strong>A9</strong> model has a debug interface (CADI) that allows the user to view, manipulate,and control the registers and memory. A view can be accessed in <strong>SoC</strong> <strong>Designer</strong> Plusby right clicking on the model and choosing the appropriate menu entry.The following topics are discussed in this section:• Register In<strong>for</strong>mation• Run To Debug Point• Memory In<strong>for</strong>mation• Disassembly ViewNote:The <strong>Cortex</strong>-<strong>A9</strong> can have up to two slave ports. The apb_dbg port is used <strong>for</strong> Core-Sight debug, and the axi_s port is <strong>for</strong> ACP, which is used to connect to a DMAengine. These are supported as simulation interfaces, but they are not supportedas debug interfaces. This means if a CADI operation is per<strong>for</strong>med on one of theseinterfaces, it will not return data.1.5.1 Register In<strong>for</strong>mationFigure 1-3 shows the Register view of the <strong>Cortex</strong>-<strong>A9</strong> model in <strong>SoC</strong> <strong>Designer</strong> Simulator.Figure 1-3 <strong>Cortex</strong>-<strong>A9</strong> Registers ViewThe <strong>Cortex</strong>-<strong>A9</strong> model has many sets of registers that are accessible via the debug interface.Registers are grouped into sets according to functional area.• Core Registers• Debug Registers• ID Registers• VA to PA Registers• Normal World Registers<strong>Carbon</strong> Design Systems, Inc. Confidential


Debug Features 1-13• Secure World Registers• Cache Registers• Control Registers• Perf Registers• SCU Registers• Global Timer Registers• Timer/Watchdog Registers• Processor Interface (Int IF) Registers• Interrupt Distributor (Int Dist) Registers• VFP/Neon Registers• PLE RegistersSee the ARM <strong>Cortex</strong>-<strong>A9</strong> MPCore Technical Reference Manual <strong>for</strong> detailed descriptions ofthese registers.Note:Registers are accurate only at debuggable points. While <strong>SoC</strong> <strong>Designer</strong> Plus graysout the register view when the processor is not at a debuggable point, values arestill visible. Due to the speculative nature of the processor pipeline, these valuesare not guaranteed to be accurate.1.5.1.1 Core RegistersIn general, you can write to a register only at a debuggable point. If a value isdeposited at any other point, it may not be correctly propagated.The Core group contains the ARM architectural registers. This register is available onlywith the MPCore.Table 1-4 Core RegistersName Description TypeR0 R0 register read-write 1R1 R1 register read-write 1R2 R2 register read-write 1R3 R3 register read-write 1R4 R4 register read-write 1R5 R5 register read-write 1R6 R6 register read-write 1R7 R7 register read-write 1R8 R8 register read-write 1R9 R9 register read-write 1R10 R10 register read-write 1<strong>Carbon</strong> Design Systems, Inc. Confidential


1-14 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> PlusTable 1-4 Core Registers (Continued)Name Description TypeR11 R11 register read-write 1R12 R12 register read-write 1R13 SP register read-write 1R14 LR register read-write 1R15 PC register read-writeR8_USR R8 USR register read-write 1R9_USR R9 USR register read-write 1R10_USR R10 USR register read-write 1R11_USR R11 USR register read-write 1R12_USR R12 USR register read-write 1R13_USR SP USR register read-write 1R14_USR LR USR register read-write 1CPSR Current Program Status Register register read-onlyR13_IRQ SP IRQ register read-write 1R14_IRQ LR IRQ register read-write 1SPSR_IRQ Saved Program Status Register IRQ register read-onlyR13_SVC SP SVC register read-write 1R14_SVC LR SVC register read-write 1SPSR_SVC Saved Program Status Register SVC register read-onlyR13_ABT SP ABT register read-write 1R14_ABT LR ABT register read-write 1SPSR_ABT Saved Program Status Register ABT register read-onlyR13_UND SP UND register read-write 1R14_UND LR UND register read-write 1SPSR_UND Saved Program Status Register UND register read-onlyR8_FIQ R8 FIQ register read-write 1R9_FIQ R9 FIQ register read-write 1R10_FIQ R10 FIQ register read-write 1R11_FIQ R11 FIQ register read-write 1R12_FIQ R12 FIQ register read-write 1R13_FIQ SP FIQ register read-write 1R14_FIQ LR FIQ register read-write 1<strong>Carbon</strong> Design Systems, Inc. Confidential


Debug Features 1-15Table 1-4 Core Registers (Continued)Name Description TypeSPSR_FIQ Saved Program Status Register FIQ register read-onlyR13_MON SP MON register read-write 1R14_MON LR MON register read-write 1SPSR_MON Saved Program Status Register MON register read-onlyExtendedTargetFeatures Used internally <strong>for</strong> TrustZone support read-onlyPC_MEMSPACE Used internally <strong>for</strong> TrustZone support read-only1. Writeable at debug point only.1.5.1.2 Debug RegistersThe Debug group provides access to the current debug state. This register is available onlywith the MPCore.Table 1-5 Debug RegistersName Description TypeCP14_DSCR Debug Status and Control Register Read-OnlyDBGBVR0 - DBGBVR5 Debug Breakpoint Value Registers Read/WriteDBGBCR0 - DBGBCR5 Debug Breakpoint Control Registers Read/Write1.5.1.3 ID RegistersThe ID group contains registers that describe the processor capabilities. This register isavailable only with the MPCore.Table 1-6 ID RegistersName Description TypeMIDR Main ID register read-onlyCTR Cache Type register read-onlyTCMTR TCM Type register read-onlyTLBTR TLB Type register read-onlyMPIDRMultiprocessor Affinity register. Only valid withthe <strong>Cortex</strong>-<strong>A9</strong> MPCore.read-onlyID_PFR0 Processor Feature 0 register read-onlyID_PFR1 Processor Feature 1 register read-onlyID_DFR0 Debug Feature 0 register read-onlyID_AFR0 Auxiliary Feature 0 register read-onlyID_MMFR0 Memory <strong>Model</strong> Feature 0 register read-onlyID_MMFR1 Memory <strong>Model</strong> Feature 1 register read-onlyID_MMFR2 Memory <strong>Model</strong> Feature 2 register read-only<strong>Carbon</strong> Design Systems, Inc. Confidential


1-16 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> PlusTable 1-6 ID Registers (Continued)Name Description TypeID_MMFR3 Memory <strong>Model</strong> Feature 3 register read-onlyID_ISAR0 ID_ISAR0 register read-onlyID_ISAR1 ID_ISAR1 register read-onlyID_ISAR2 ID_ISAR2 register read-onlyID_ISAR3 ID_ISAR3 register read-onlyID_ISAR4 ID_ISAR4 register read-onlyID_ISAR5 ID_ISAR5 register (always returns 0) read-onlyID_ISAR6 ID_ISAR6 register (always returns 0) read-onlyID_ISAR7 ID_ISAR7 register (always returns 0) read-only1.5.1.4 VA to PA RegistersThe VA to PA group contains registers to per<strong>for</strong>m virtual to physical address translations.This register is available only with the MPCore.Table 1-7 VA to PA RegistersName Description TypePAR Physical address register read-write1.5.1.5 Normal World RegistersThe Normal World group contains control register that are only accessible in non-securemode This register is available only with the MPCore..Table 1-8 Normal World RegistersName Description TypeN_CSSELR Cache Size Selection register read-onlyN_SCTLR [N] System Control register read-writeN_TTBR0 [N] TTBR0 register read-writeN_TTBR1 [N] TTBR1 register read-writeN_TTBCR [N] TTBCR register read-writeN_DACR [N] Domain Access Control register read-writeN_DFSR [N] Data Fault Status register read-writeN_IFSR [N] Instruction Fault Status register read-writeN_DFAR [N] Data Fault Address register read-writeN_IFAR [N] Instruction Fault Address register read-writeN_PRRR [N] Primary Region Remap register read-writeN_NMRR [N] Normal Memory Remap register read-write<strong>Carbon</strong> Design Systems, Inc. Confidential


Debug Features 1-17Table 1-8 Normal World Registers (Continued)Name Description TypeN_VBAR [N] Vector Base Address register read-writeN_CONTEXTIDR [N] Context ID register read-writeN_TPIDRURW [N] <strong>User</strong> Read/Write Thread ID register read-writeN_TPIDRURO [N] <strong>User</strong> Read Only Thread ID register read-writeN_TPIDRPRW [N] Privileged Only Thread ID register read-write1.5.1.6 Secure World RegistersThe Secure group contains control registers that are only accessible in secure mode. Thisregister is available only with the MPCore.Table 1-9 Secure World RegistersName Description TypeS_CSSELR Cache Size Selection register read-onlyS_SCTLR [S] System Control register read-writeS_TTBR0 [S] TTBR0 register read-writeS_TTBR1 [S] TTBR1 register read-writeS_TTBCR [S] TTBCR register read-writeS_DACR [S] Domain Access Control register read-writeS_DFSR [S] Data Fault Status register read-writeS_IFSR [S] Instruction Fault Status register read-writeS_DFAR [S] Data Fault Address register read-writeS_IFAR [S] Instruction Fault Address register read-writeS_PRRR [S] Primary Region Remap register read-writeS_NMRR [S] Normal Memory Remap register read-writeS_VBAR [S] Vector Base Address register read-writeS_CONTEXTIDR [S] Context ID register read-writeS_TPIDRURW [S] <strong>User</strong> Read/Write Thread ID register read-writeS_TPIDRURO [S] <strong>User</strong> Read Only Thread ID register read-writeS_TPIDRPRW [S] Privileged Only Thread ID register read-write<strong>Carbon</strong> Design Systems, Inc. Confidential


1-18 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus1.5.1.7 Cache RegistersThe Cache group contains registers to access cache in<strong>for</strong>mation. This register is availableonly with the MPCore.Table 1-10 Cache RegistersName Description TypeCCSIDR Cache Size ID register read-onlyCLIDR Cache Level ID register read-onlyAIDR Auxiliary ID register read-onlyCSSELR Cache Size Selection register read-onlyDCLR D-cache Lockdown register read-onlyICLR I-cache Lockdown register read-only1.5.1.8 Control RegistersThe Control group contains registers that dynamically configure the processor. This registeris available only with the MPCore.Table 1-11 Control RegistersName Description TypeSCTLR System Control register read-writeACTLRAuxiliary Control register. Only valid with the read-only<strong>Cortex</strong>-<strong>A9</strong> MPCore.CPACRCoprocessor Access Control register. Only availableif Neon and FPU processors are present.read-onlyNSACR Nonsecure Access Control register read-onlyVCR Virtualization Control register read-writeTTBR0 TTBR0 register read-writeTTBR1 TTBR1 register read-writeTTBCR TTBCR register read-writeDACR Domain Access Control register read-writeDFSR Data Fault Status register read-writeIFSR Instruction Fault Status register read-writeDFAR Data Fault Address register read-writeIFAR Instruction Fault Address register read-writePRRR Primary Region Remap register read-writeNMRR Normal Memory Remap register read-writeVBAR Vector Base Address register read-writeISR Interrupt Status register read-onlyVIR Virtualization Interrupt register read-only<strong>Carbon</strong> Design Systems, Inc. Confidential


Debug Features 1-19Table 1-11 Control Registers (Continued)Name Description TypeCONTEXTIDR Context ID register read-writeTPIDRURW <strong>User</strong> Read/Write Thread ID register read-writeTPIDRURO <strong>User</strong> Read Only Thread ID register read-writeTPIDRPRW Privileged Only Thread ID register read-writeSCR Secure Configuration register read-writeSDER Secure Debug Enable register read-writeMVBAR Monitor Vector Base Address register read-writeCBAR Configuration Base Address register read-write 11. read-write in Secure privileged mode. read-only in Non-secure state and in user mode.1.5.1.9 Perf RegistersThe Perf group contains per<strong>for</strong>mance related registers. This register is available only withthe MPCore.Table 1-12 Perf RegistersName Description TypePMCR Per<strong>for</strong>mance Monitor Control register read-writePMCNTENSET Count Enable Set register read-writePMCNTENCLR Count Enable Clear register read-writePMOVSR Overflow Flag Status register read-writePMSELR Event Counter Selection register read-writePMCCNTR Cycle Count register read-writePMXEVTYPER Event Selection register read-writePMXEVCNTR Per<strong>for</strong>mance Count register read-writePMUSERENR <strong>User</strong> Enable register read-writePMINTENSET Interrupt Enable Set register read-writePMINTENCLR Interrupt Enable Clear register read-write<strong>Carbon</strong> Design Systems, Inc. Confidential


1-20 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus1.5.1.10 SCU RegistersThe SCU group contains registers that control the Snoop Control Unit. Addresses are relativeto the base address of the region <strong>for</strong> the SCU memory map. This register is availableonly with the MPCore.Table 1-13 SCU RegistersName Description TypeControl SCU Control register read-writeConfiguration SCU Configuration register read-onlyCPU Status SCU CPU Power Status register read-writeFilter Start Addr Filtering Start Address register read-writeFilter End Addr Filtering End Address register read-writeAccess Control SCU Access Control register read-writeSecure Access Control SCU Secure Access Control register read-write1.5.1.11 Global Timer RegistersThe Global Timer group contains and status registers related to the global timer added inthe r1p1 version of the model. This register is available only with the MPCore.Table 1-14 Global Timer RegistersName Description TypeLower Counter Lower 32-bit Timer Counter register read-writeUpper Counter Upper 32-bit Timer Counter register read-writeControl Timer Control register read-writeCompStatus Timer Comparator Status register read-writeLower Compare Lower 32-bit Comparator register read-writeUpper Compare Upper 32-bit Comparator register read-writeAuto-Increment Auto-Increment register <strong>for</strong> Comparator read-write<strong>Carbon</strong> Design Systems, Inc. Confidential


Debug Features 1-211.5.1.12 Timer/Watchdog RegistersThe Timer/Watchdog group contains registers <strong>for</strong> controlling the timer and watchdogblocks <strong>for</strong> each CPU. Addresses are relative to the base address of the timer and watchdogregion defined by the private memory map (see the ARM <strong>Cortex</strong>-<strong>A9</strong> Technical ReferenceManual <strong>for</strong> more in<strong>for</strong>mation).This register is available only with the MPCore.Table 1-15 Timer/Watchdog RegistersName Description TypeCPUn Timer Load Timer Load register read-writeCPUn Timer Counter Timer Counter register read-writeCPUn Timer Control Timer Control register read-writeCPUn Timer Status Timer Interrupt Status register read-writeCPUn Watchdog Load Watchdog Load register read-writeCPUn Watchdog Counter Watchdog Counter register read-writeCPUn Watchdog Control Watchdog Control register read-writeCPUn Watchdog Status Watchdog Interrupt Status register read-writeCPUn Watchdog Reset Watchdog Reset Status register read-write1.5.1.13 Processor Interface (Int IF) RegistersThe Int IF group contains the registers that each <strong>Cortex</strong>-<strong>A9</strong> processor interface provides.This register is available only with the MPCore.Table 1-16 Int IF RegistersName Description TypeControlS Processor Interface Control Secure register read-writeControlNS Processor Interface Control Non-secure register read-writePrioMaskS Priority Mask Secure register read-writePrioMaskNS Priority Mask Non-secure register read-writeBinPointS Binary Point Secure register read-writeBinPointNS Binary Point Non-secure register read-writeIntAck Interrupt Acknowledge register read-onlyRunPrioS Running Priority Secure register read-onlyRunPrioNS Running Priority Non-secure register read-onlyHiPendInt Highest Pending Interrupt register read-onlyAliasNSBinPoint Aliased Non-secure Binary Point register read-writeID Processor Interface Implementer Identification register read-only<strong>Carbon</strong> Design Systems, Inc. Confidential


1-22 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus1.5.1.14 Interrupt Distributor (Int Dist) RegistersThe Int Dist group describes the registers that the distributor provides. This register isavailable only with the MPCore.Table 1-17 Int Dist RegistersName Description TypeICDDCR ICDDCR Bit Assignments register read-writeN_ICDDCR ICDDCR Bit Assignments (Non-secure) register read-writeS_ICDDCR ICDDCR Bit Assignments (Secure) register read-writeICDICTR Interrupt Controller Type register read-onlyICDDIR Distributor Implementer Identification register read-onlyICDISR Interrupt Security registers read-writeICDISER Enable Set registers read-writeICDICER Enable Clear registers read-writeICDISPR Pending Set registers read-writeICDICPR Pending Clear registers read-writeICDABR Active Status registers read-onlyICDIPR Priority Level registers read-writeICDICR_CPUn_SGI Interrupt Configuration register SGI <strong>for</strong> CPUn read-writeICDICR_CPUn_PPI Interrupt Configuration register PPI <strong>for</strong> CPUn read-writeICDICR Interrupt Configuration registers SPI read-writePPI_Status PPI Status register read-onlySPI_Status SPI Status registers read-onlyPeriph_ID_[0-7] Peripheral Identification registers 0-7 read-onlyComponent_ID_[0-3] PrimeCell Identification registers 0-3 read-only1.5.1.15 VFP/Neon RegistersThe VFP/Neon group contains the floating point related registers. This register is availablewith both the UNICore and MPCore, but it is only present if the <strong>A9</strong> was configured withan FPU or Neon coprocessor.Table 1-18 VFP/Neon RegistersName Description TypeFPSID Floating-point System ID Register. read-onlyMVFR0 Media and VFP Feature Register0. read-onlyMVFR1 Media and VFP Feature Register1. read-onlyFPEXC Floating-point Exception Register. read-writeFPSCR Floating-point Status and Control Register. read-write<strong>Carbon</strong> Design Systems, Inc. Confidential


Debug Features 1-23Table 1-18 VFP/Neon Registers (Continued)Name Description TypeS0-S31S32-S63D0-D15D16-D31Q0-Q7Q8-Q15Advanced SIMD and VFP extension registers(Single word).Additional SIMD and VFP extension registers.Only present with Neon.Advanced SIMD and VFP extension registers(Double word).Additional SIMD and VFP extension registers(Double word). Only present with Neon.Advanced SIMD and VFP extension registers(Quad word).Additional SIMD and VFP extension registers(Quad word). Only present with Neon.read-writeread-writeread-writeread-writeread-writeread-write1.5.1.16 PLE RegistersThe PLE group contains system control registers <strong>for</strong> the Preload Engine. This group isavailable with the r2p2 revision of the UNICore and MPCore processors.Table 1-19 VFP/Neon RegistersName Description TypePLEIDR PLE ID Register Read onlyPLEASR PLE Activity Status Register Read onlyPLEFSR PLE FIFO Status Register Read onlyPLEUAR PLE <strong>User</strong> Accessibility Register Read/writePLEPCR PLE Parameters Control Register Read/write<strong>Carbon</strong> Design Systems, Inc. Confidential


1-24 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus1.5.2 Run To Debug PointThe “run to debug point” feature has been added to enhance model debugging. The <strong>Cortex</strong>-<strong>A9</strong>processor is a dual issue out of order completion machine. This means that whilethe processor is running it does not present a coherent programmer’s view state; instructionsin the pipeline may be in different execution states.This feature <strong>for</strong>ces the processor into a coherent state called “run to debug point”. Whendebugging with the ARM RealView Development Suite (RVDS), the model is brought tothe debug point automatically whenever a software breakpoint is hit (including singlestepping). However, if a hardware breakpoint is reached, or the system is advanced bycycles within <strong>SoC</strong> <strong>Designer</strong> Plus, the model can get to a non-debuggable state. In thisevent, the run to debug point will advance the processor to the debug state. It does this bystalling the instruction within the decode stage and allowing all earlier instructions to complete.Once that has been accomplished, the model will cause the system to stop simulating.The run to debug point is available as a context menu item (Run to Debuggable Point) <strong>for</strong>the component within <strong>SoC</strong> <strong>Designer</strong> Simulator. It is also available in the disassemblerview.1.5.3 Memory In<strong>for</strong>mationFigure 1-4 shows a Memory view of <strong>Cortex</strong>-<strong>A9</strong> model.Figure 1-4 <strong>Cortex</strong>-<strong>A9</strong> Memory View<strong>Carbon</strong> Design Systems, Inc. Confidential


Debug Features 1-251.5.4 Disassembly ViewFigure 1-5 shows the disassembly view of a program running on the <strong>Cortex</strong>-<strong>A9</strong> model in<strong>SoC</strong> <strong>Designer</strong> Simulator. To display the disassembly view in the <strong>SoC</strong> <strong>Designer</strong> Simulator,right-click on the <strong>Cortex</strong>-<strong>A9</strong> model and select View Disassembly… from the contextmenu.Figure 1-5 <strong>Cortex</strong>-<strong>A9</strong> Disassembly WindowAll CADI windows support breakpoints – when double-clicking on the proper location ared dot will indicate that a breakpoint is currently active. To remove the breakpoints simplydouble-click on the same location again.<strong>Carbon</strong> Design Systems, Inc. Confidential


1-26 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> Plus1.6 Available Profiling DataProfiling data is enabled, and can be viewed using the Profiling Manager, which is accessiblevia the Debug menu in the <strong>SoC</strong> <strong>Designer</strong> Simulator. Both hardware and softwarebased profiling is available.1.6.1 Hardware ProfilingHardware profiling includes several streams per processor core. The <strong>Cortex</strong>-<strong>A9</strong> modelsets PMCR[4] to 1 to enable Hardware Profiling. This is done at reset time.Table 1-20 shows:• The event names supported by each stream, including event numbers as specified inthe ARM TRM.• The ARM silicon version <strong>for</strong> the <strong>Cortex</strong> <strong>A9</strong> model.Table 1-20 <strong>Cortex</strong>-<strong>A9</strong> Profiling EventsStream Event Name VersionsI-Cache Cache Miss (0x01) r1p1, r1p2, r2p0, r2p2D-Cache Cache Miss (0x03) r1p1, r1p2, r2p0, r2p2Cache Access (0x04)Data Read (0x06)Data Write (0x07)Data Eviction (0x65)Java Java Byte Code executed (0x40) r1p1, r1p2, r2p0, r2p2Software Java Byte Code executed (0x41)Jazelle backward branch executed (0x42)Memory STREX Passed (0x63) r1p1, r1p2, r2p0, r2p2STREX Failed (0x64)TLB Instr uTLB Miss (0x02) r1p1, r1p2, r2p0, r2p2Data uTLB Miss (0x05)Stall TLB Miss Stall (0x62) r1p1, r1p2, r2p0, r2p2DCache Miss Stall (0x61)ICache Miss Stall (0x60)PLD Stall (0x80)r2p0 and newerWrite Stall (0x81)Instruction Main TLB Miss Stall (0x82)Data Main TLB Miss Stall (0x83)Instruction uTLB Miss Stall (0x84)Data uTLB Miss Stall (0x85)DMB Stall (0x86)<strong>Carbon</strong> Design Systems, Inc. Confidential


Available Profiling Data 1-27Table 1-20 <strong>Cortex</strong>-<strong>A9</strong> Profiling Events (Continued)Stream Event Name VersionsSoftware Decoded Instructions (0x68) r1p1, r1p2, r2p0, r2p2Exceptions Taken (0x09)Exceptions Returned (0x0A)Write Context ID (0x0B)Software change of PC (0x0C)Immediate Branch (0x0D)Predictable Function Returns (0x6E)Unaligned Access (0x0F)Mispredicted Branch (0x10)Predictable Branches (0x12)Coherent Line Fill Miss (0x50)Coherent Line Fill Hit (0x50)ISB (0x90)r1p1 and newerDSB (0x91)DMB (0x92)Issue does not dispatch any instruction(0x66)Issue is empty (0x67)Main Execution Unit Pipe (0x70)Second Execution Unit Pipe (0x71)Load/Store Pipe (0x72)FPU Instructions (0x73)Neon Instructions (0x74)Misc Integer core clock disabled (0x8A) r2p0 and newerData Engine clock disabled (0x8B)External interrupt (0x93)PLE Cache Line request completed (0xA0) r2p0 and newerCache Line request skipped (0xA1)FIFO Flush (0xA2)Request completed (0xA3)FIFO Overflow (0xA4)Request programmed (0xA5)<strong>Carbon</strong> Design Systems, Inc. Confidential


1-28 Using the <strong>Model</strong> Kit Component in <strong>SoC</strong> <strong>Designer</strong> PlusAn example of debug in<strong>for</strong>mation <strong>for</strong> a software stream is shown below.Figure 1-6 Software Stream Debug In<strong>for</strong>mation1.6.2 Software ProfilingSoftware-based profiling is provided by <strong>SoC</strong> <strong>Designer</strong> Plus. Profiling in<strong>for</strong>mation is alsoavailable in the <strong>SoC</strong> <strong>Designer</strong> Profiler. See the user guide <strong>for</strong> <strong>SoC</strong> <strong>Designer</strong> Plus or <strong>SoC</strong><strong>Designer</strong> Profiler <strong>for</strong> more in<strong>for</strong>mation.<strong>Carbon</strong> Design Systems, Inc. Confidential

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

Saved successfully!

Ooh no, something went wrong!