Virtual Prototyping with Carbon Design Tools Aalap Tripathy, Rabi Mahapatra Embedded Systems Codesign Lab http://codesign.cse.tamu.edu Overview • • • • • • • • • SoC’s today SoC design paradigm SoC design issues Virtual prototyping benefit Virtual Prototyping options What is a “Carbon model”? Tools used & their interplay Assignments Flow Resources 2 Overview • • • • • • • • • SoC’s today SoC design paradigm SoC design issues Virtual prototyping benefit Virtual Prototyping options What is a “Carbon model”? Tools used & their interplay Assignments Flow Resources 3 SoC’s today Single chip DVR- 4 channel MPEG 4 DVR SoC SoC’s today 802.11b radio, MAC, baseband processor, pn-chip flash, ARM Applications Processor SoC’s today Tablet/Smart TV/Thin Client SoC – ARM Applications Processor, Video Interface, CMOS Sensor Input, USB, Audio Interface (I2S, S/PDIF), SPI, I2C, UART, GPIOs SoC’s today Smartphone/Tablet SoC – ARM Mali 400 (single core) graphics card, Video Processing Unit, Audio Interface, Webcam Interface, Video Interface etc. SoC’s today Server SoC – ARM Quad Core Overview • • • • • • • • • SoC’s today SoC design paradigm SoC design issues Virtual prototyping benefit Virtual Prototyping options What is a “Carbon model”? Tools used & their interplay Assignments Flow Resources 9 SoC design paradigm • System Realization – • SoC Realization – – – • Concerns for SoC Architect – – – – – How to validate SoC design? How to reduce risk? – Reuse IP How to convey design intent to software development team? – Design is still in flux. How to convey design impact to end-customer? – Black-box parts of design How to quickly detect system corner cases? Architecture for semiconductor defined IP blocks chosen Design matured Silicon Realization – • System requirements defined in h/w and s/w Design implemented in Silicon SoC design paradigm Overview • • • • • • • • • SoC’s today SoC design paradigm SoC design issues Virtual prototyping benefit Virtual Prototyping options What is a “Carbon model”? Tools used & their interplay Assignments Flow Resources 12 SoC design issues MIPI CPU(s) GPU USB3 Ethernet HDMI WLAN GPIO PCIe IP Selection • Which vendor? • Which IP? • Will they all play together? UART Without Cycle Accurate Modeling • Forced to believe IP marketing • SoC may not meet spec • Can’t benchmark till purchase CPU(s) GPU CCI/NoC USB3 Ethernet NoC/Fabric PCIe Interconnect Architecture • CCI vs. NOC vs. Fabric? • Make or buy? • How many? • What configuration(s)? Periph Fabric/NoC SoC design issues MIPI HDMI WLAN GPIO UART Without Cycle Accurate Modeling • No validation between layout and performance • Inefficient power consumption • Missed performance spec • Waste power with overdesign CPU(s) GPU USB3 Ethernet L2 Cache CCI/NoC NoC/Fabric DDRx PCIe Memory subsystem • Cache sizing • How big? • Which memory technology? • System performance impact? Periph Fabric/NoC SoC design issues MIPI HDMI WLAN GPIO UART Without Cycle Accurate Modeling • Wasted die space on overdesigned cache • Poor cache performance • Overspend on IP • Wasted power SoC design issues GPU USB3 Ethernet L2 Cache CCI/NoC NoC/Fabric DDRx PCIe Firmware Development • Pre-silicon firmware development • Software performance analysis • System integration issues Periph Fabric/NoC MIPI CPU(s) HDMI WLAN GPIO UART Without Cycle Accurate Modeling • No guarantee of software running on first day silicon • Inability to tune hardware/ software performance • Chip re-spin – huge cost SoC design issues Internal Users External Users USB3 Ethernet L2 Cache CCI/NoC NoC/Fabric DDRx PCIe MIPI HDMI CPU(s) WLAN L2 Cache GPU USB3 Ethernet GPIO CCI/NoC NoC/Fabric UART DDRx PCIe Deployment • Secure platform for external users Periph Fabric/NoC GPU Periph Fabric/NoC MIPI CPU(s) HDMI WLAN GPIO UART Without Cycle Accurate Modeling • Can’t black-box feature sets. • Can’t share with end customer • IP exposure • Design intent lost Overview • • • • • • • • • SoC’s today SoC design paradigm SoC design issues Virtual prototyping benefit Virtual Prototyping options What is a “Carbon model”? Tools used & their interplay Assignments Flow Resources 18 Virtual Prototyping Benefit Prototyping Options Traditional Virtual Prototype Early Availability Speed Accuracy HW Debug SW Debug Execution Control Extra Devel Effort Replication Cost RTL Simulation Emulation FPGA Based Prototypin g Silicon Carbon SoC Designer Overview • • • • • • • • • SoC’s today SoC design paradigm SoC design issues Virtual prototyping benefit Virtual Prototyping options What is a “Carbon model”? Tools used & their interplay Assignments Flow Resources 21 What is a Carbon Model? • What is a Carbon Model? – A high performance linkable software object – Generated by proprietary compiler from • • synthesizable RTL design files options & directives files – Contains cycle-accurate & registeraccurate description of hardware design – Organized in the form of: • • • • Software Object file (libdesign.a on Linux or libdesign.lib on Windows) Header file (libdesign.h) Binary database (libdesign.symtab.db) – database with information about all internal signals Using a Carbon Model – – – Linked with gcc (or Microsoft VC++) Libcarbon5.so & carbon_capi.h are part of installation on Linux Simulator communicates with hardware model through sockets using carbon_capi.h Tools you will be using http://www.carbondesignsystems.com/carbon-modelstudio/ http://www.carbondesignsystems.com/soc-designerplus/ Carbon Model Studio Carbon SoC Designer • • Enables carbon model creation from RTL – Verilog/VHDL/Syste mC Virtual Prototyping Canvas – – – – – Assemble system Drive system Debug Analyze (profile) Optimize http://www.carbondesignsystems.com/performance-analysis-kits/ CPAK • Carbon Performance Analysis Kits • Ready-to-use assembly of processor models + IP blocks + baremetal/OS + benchmarking tools Interplay between tools State Machine design Firmware development/source code RTL System Level Model μP CA Model Model LT CA LT Model Model Model Co-simulation Other IP Models What will tools enable? Architectural Analysis • Analyze memory subsystems – • • Analyze system throughput & latency Validate bus & pipeline performance assumptions – • Software function profiling Synchronization & timing – • Zero silicon design & validation Validate HW/SW partitions – • Analyze cache statistics Will arbitration logic work as expected? Enables quick re-configurability & rerun of SoC design – Feature change is easy What will tools enable? Firmware Validation & Application software development • • Begin firmware development even while SoC is in “concept” stage. Use the same platform as SoC hardware & software designs mature – • Integrated debug tools for hardware & software – • Maximize design reuse Analyze impact of software on hardware performance & vice versa Have complete system visibility – – Set breakpoints in firmware debugger or in hardware Interrupt SoC operation at any point to examine behavior Overview • • • • • • • • • SoC’s today SoC design paradigm SoC design issues Virtual prototyping benefit Virtual Prototyping options What is a “Carbon model”? Tools used & their interplay Assignments Flow Resources 27 Assignments Flow • Introduction to SoC Designer – Construct & Debug an ARM Cortex A9 Bare-metal SoC – Understand the role of IP blocks/components necessary to design a system – Run an example sort application (insertion & bubble sort) • Introduction to Model Studio – Create a carbon model from RTL (Vectored Interrupt Controller) – Write RTL for a APB compatible timer, create carbon model, integrate into ARM Cortex A9 Baremetal SoC • 1 2 Introduction to Co-simulation – Export Interrupt Controller signals into Modelsim simulation kernel from SoC Designer. – Use Interrupt Controller RTL & Top level test-bench to drive SoC Designer – Perform co-simulation for APB compatible timer 3 • Compilation & Simulation of Applications – How to create, compile, run and characterize an application on SoC Designer – “Hello World” & Vector multiplication – How to create an ARM Executable file (axf) – Profile software code, observe bus level transactions & correlate to source code 4 Interplay between tools State Machine design Firmware development/source code 0 1 RTL System Level Model 2 μP CA Model Model LT LT LT Model Model Model Co-simulation Other IP Models 4 3 Example ARM Cortex A9 Demo SoC • • • • ARM application processor connected via an AXIv2 bus to program & data memory. Memory mapped IO Bridge to APB bus connects to timer, Bridge to AHB bus connects to interrupt controller Core for processor compiled from ARM RTL, supports 32 kb Instruction Cache, 32kb Data cache, 128 KB TLB, no Floating Point Unit, does not contain Neon Media Processing Engine AMBA – de-facto standard for on-chip communication, open standard – Learn more. Who else is using these tools? Resources • • • • • • ARM InfoCenter - http://infocenter.arm.com/ Carbon Tutorials - /opt/carbon_tutorials Component User Guides - /opt/documents ARM Specs - /opt/documents/arm_specs/ Carbon Tool User Guides - /opt/SoCDesigner/doc/ ModelSim User Guide - /opt/ModelSim-SE10.d/modeltech/docs/pdfdocs/modelsim_se_tut.pdf • Please DO NOT register on Carbon Design Systems website. The models you may need for projects will be provided to you • Contact for tool-related issues: – Prof. Rabi Mahapatra (rabi@cs.tamu.edu) – Deam Ieong (deam_ieong-0814@tamu.edu) Conclusion • Virtual prototyping tools can help accelerate – Architectural exploration – Firmware development – System integration & customer integration • Familiarity & expertise with these tools will help – Job-relevant skills – Gain experience with ARM-based SoC, AXI – Experience switched fabrics and network topology Acknowledgement