System on Chip (SoC) Architecture Design The SOCks Design Platform

Slides:



Advertisements
Similar presentations
SoCks Hardware / Software Codesign Andrew Pearson Sanders DeNardi ECE6502 May 4, 2010.
Advertisements

System On Chip - SoC Mohanad Shini JTAG course 2005.
9.0 EMBEDDED SOFTWARE DEVELOPMENT TOOLS 9.1 Introduction Application programs are typically developed, compiled, and run on host system Embedded programs.
Evolution and History of Programming Languages Software/Hardware/System.
Avalon Switch Fabric. 2 Proprietary interconnect specification used with Nios II Principal design goals – Low resource utilization for bus logic – Simplicity.
© 2003 Xilinx, Inc. All Rights Reserved Architecture Wizard and PACE FPGA Design Flow Workshop Xilinx: new module Xilinx: new module.
LOGO HW/SW Co-Verification -- Mentor Graphics® Seamless CVE By: Getao Liang March, 2006.
Graduate Computer Architecture I Lecture 15: Intro to Reconfigurable Devices.
Extensible Processors. 2 ASIP Gain performance by:  Specialized hardware for the whole application (ASIC). −  Almost no flexibility. −High cost.  Use.
Characteristics of Realtime and Embedded Systems Chapter 1 6/10/20151.
The Design Process Outline Goal Reading Design Domain Design Flow
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Configurable System-on-Chip: Xilinx EDK
Altera’s Quartus II Installation, usage and tutorials Gopi Tummala Lab/Office Hours : Friday 2:00 PM to.
Implementation of DSP Algorithm on SoC. Mid-Semester Presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompaning engineer : Emilia Burlak.
Foundation and XACTstepTM Software
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
Hardware/Software Partitioning Witawas Srisa-an Embedded Systems Design and Implementation.
GallagherP188/MAPLD20041 Accelerating DSP Algorithms Using FPGAs Sean Gallagher DSP Specialist Xilinx Inc.
© 2011 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
 Purpose of our project  Get real world experience in ASIC digital design  Use same tools as industry engineers  Get practical experience in microprocessor.
Ross Brennan On the Introduction of Reconfigurable Hardware into Computer Architecture Education Ross Brennan
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
DELTA TAU Data Systems, Inc. 1 UMAC TurboTurbo PMAC PCIGeo Drive Single Source Machine Control motion logic data Power PMAC Project Management November.
SOC Consortium Course Material ASIC Logic National Taiwan University Adopted from National Chiao-Tung University IP Core Design.
© 2003 Xilinx, Inc. All Rights Reserved CORE Generator System.
1 3-General Purpose Processors: Altera Nios II 2 Altera Nios II processor A 32-bit soft core processor from Altera Comes in three cores: Fast, Standard,
1 SERIAL PORT INTERFACE FOR MICROCONTROLLER EMBEDDED INTO INTEGRATED POWER METER Mr. Borisav Jovanović, Prof.dr Predrag Petković, Prof.dr. Milunka Damnjanović,
ASIC/FPGA design flow. FPGA Design Flow Detailed (RTL) Design Detailed (RTL) Design Ideas (Specifications) Design Ideas (Specifications) Device Programming.
Automated Design of Custom Architecture Tulika Mitra
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
May 17, USB Semiconductor IP How to Integrate USB into Your Design Eric Huang inSilicon Corporation.
집적회로 Spring 2007 Prof. Sang Sik AHN Signal Processing LAB.
System Design with CoWare N2C - Overview. 2 Agenda q Overview –CoWare background and focus –Understanding current design flows –CoWare technology overview.
IEEE ICECS 2010 SysPy: Using Python for processor-centric SoC design Evangelos Logaras Elias S. Manolakos {evlog, Department of Informatics.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
Interfaces to External EDA Tools Debussy Denali SWIFT™ Course 12.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
© 2004 Mercury Computer Systems, Inc. FPGAs & Software Components Graham Bardouleau & Jim Kulp Mercury Computer Systems, Inc. High Performance Embedded.
NIOS II Ethernet Communication Final Presentation
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
The Macro Design Process The Issues 1. Overview of IP Design 2. Key Features 3. Planning and Specification 4. Macro Design and Verification 5. Soft Macro.
© 2003 Xilinx, Inc. All Rights Reserved System Simulation.
Tools - LogiBLOX - Chapter 5 slide 1 FPGA Tools Course The LogiBLOX GUI and the Core Generator LogiBLOX L BX.
1 Hardware/Software Co-Design Final Project Emulation on Distributed Simulation Co-Verification System 陳少傑 教授 R 黃鼎鈞 R 尤建智 R 林語亭.
Greg Alkire/Brian Smith 197 MAPLD An Ultra Low Power Reconfigurable Task Processor for Space Brian Smith, Greg Alkire – PicoDyne Inc. Wes Powell.
LAB 3 – Synchronous Serial Port Design Using Verilog
Content Project Goals. Workflow Background. System configuration. Working environment. System simulation. System synthesis. Benchmark. Multicore.
Survey of Reconfigurable Logic Technologies
03/30/031 ECE Digital System Design & Synthesis Lecture Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
Embedded Software Design Week II Linux Intro Linux Kernel.
CPU (Central Processing Unit). The CPU is the brain of the computer. Sometimes referred to simply as the processor or central processor, the CPU is where.
System on a Programmable Chip (System on a Reprogrammable Chip)
Introduction to the FPGA and Labs
Programmable Logic Devices
Programmable Hardware: Hardware or Software?
ASIC Design Methodology
Chapter 1: A Tour of Computer Systems
System On Chip - SoC E.Anjali.
Programmable Logic Devices: CPLDs and FPGAs with VHDL Design
Topics HDL coding for synthesis. Verilog. VHDL..
CoCentirc System Studio (CCSS) by
9.0 EMBEDDED SOFTWARE DEVELOPMENT TOOLS
THE ECE 554 XILINX DESIGN PROCESS
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

System on Chip (SoC) Architecture Design The SOCks Design Platform James E. Stine

System-on-Chip (SoC) Design Combines all elements of a computer onto a single chip Microprocessor Memory Address- and Databus Periphery Application specific logic Software development must take place on simulation models or FPGAs until the actual chip is fabricated Hardware/Software Co-Design issues: Need to make educated guess on what becomes hardware and what is done in Software early in the design process

“Soft” IP Blocks Synthesizable HDL code (commercial HDL is usually encrypted) From Synopsys Designware, Opencores, MIPS, etc. Can be implemented on any Library HDL for 8051, 6800 available Usually highly configurable Cash (Yes, No, How big, Code/Data separate or unified) Pipelined (Yes, No) SRAM interface (single cycle, multi cycle) User Defined Instructions Timing, Area and Power depend on process, CAD tools used, and user skills Popular Example: Synopsys DesignWare

SOCks uses Soft-IP cores “Hard” IP Blocks Fully implemented, verified mask layout block Available only for specific process Not configurable Guaranteed Timing, Area, Power Consumption E.g. MIPS Hard-IP cores Note: SOCks uses Soft-IP cores

The Leon Core Available in the public domain (under GNU License) http://www.gaisler.com/ Synthesizable VHDL soft-core Highly configurable for many different scenarios Verified in several silicon implementations Contains AMBA controller Turbo-Eagle uses 2 instances of Leon: Master CPU called “Leon” Slave CPU called “DSP” (a Leon core configured for DSP) “Leon” has been modified by Cadence for this project to run at twice the bus frequency and to use 2-port instead of 3-port RAMs “DSP” still runs at bus frequency

The AMBA bus Developed by ARM http://www.arm.com/products/solutions/AMBAHomePage.html Common bus interface for rapid SoC development Paradigm: “Design Reuse” Only need to code and verify a block once Can use over and over in other AMBA systems Avoids glue logic between blocks with custom busses “AMBA Compliance Testbench” to certify blocks as compatible “AHB” – High Speed Version “APB” – Peripheral low speed version Use Bridge to interface to “AHB” Less stringent requirements for low throughput blocks Isolates critical bus segments from slower blocks

The AMBA bus

The AMBA Bus Multiplexed - not tri-stated Uses dedicated Point-2-Point links between blocks Uses Multiplexer to establish link and grant bus Avoid long busses that connect to many blocks Possible because wire density much greater than with discrete components

The AMBA Bus A transfer takes 2 cycles: Transfer Types Address Phase Data Phase Transfer Types Single Word Burst Split Only positive-edge logic Easier timing analysis Supports more libraries

SoC Design Flow 1) Firmware Design “Firmware” is the code that is executed on an embedded system Not visible to the consumer Typically resides in Flash memory Can update code in the field Can offer user to download firmware Tools used: GCC SPARC compiler, linker and assembler Installed on the ECE servers “skew” and “vulcan” Include “/opt/rtems/bin” in your $PATH variable: setenv path (/opt/rtems/bin:$PATH)

SoC Design Flow 2) RTL Design VHDL, Verilog or mixed design (SystemC in the future) Instantiate memories and PHYs in testbench Load RAM and ROM images into testbench Run Simulation, capture output in file Compare file to golden file (known good output) Tools used: Cadence Incisive Platform: NC-VHDL, NC-Verilog, NC-SIM

SoC Design Flow 3) Synthesis Generate timing models for all RAMs Partition design into blocks Create timing constraints Synthesize blocks and toplevel Output netlist and toplevel timing constraints Tools used Cadence Encounter Platform: PKS, BuildGates or RTL Compiler Note: Synthesis not part of SOCks Project

SoC Design Flow 4) Physical Implementation Generate geometry abstracts for all RAMs Create floorplan, place RAMs, crate power structures Partition design into blocks and implement each block Load blocks, flatten toplevel Run final timing and DRC analysis Tools used: Cadence Encounter Platform: SOC Encounter, Nanoroute, Fire&Ice Note: Physical Implementation not part of SOCks Project

SOCks Overview Add your digitial logic here Simulation Testbench AHB Bus Leon AHB Controller Memory Controller Sparc CPU Custom Logic Slave Interface External Memory RAM/ROM IO Monitor: Text Output File Output Clock/ Reset Generator SOCks ASIC Add your digitial logic here The “cubing” logic is located here by default

Leon Overview

SOCks Design Flow Custom Logic HDL Code Firmware C/C++ Code VHDL Compiler Verilog Compiler C/C++ Compiler Object Linker Custom Logic ram.dat rom.dat Leon HDL Simulator: NC-Sim Simulation Waveforms TXT.OUTPUT INT.OUTPUT

Getting SOCks Make sure you have 50MB space available Use “quota –v” to check Install the data: tar xvf /import/vlsi7/jgrad/socks/socks.tar This will create a folder ./socks Add this line to the bottom of your .cshrc file: set path (/opt/rtems/bin $path) Test it by seeing if the compiler is found: which sparc-rtems-g++ Remember to run skew or vulcan. From other machines, do ssh skew or ssh vulcan

SOCks Distribution Content Directory Description ./exe Unix scripts to compile and simulate the SOCks ASIC ./doc SOCks Documentation ./firmware C/C++ Source Code Folder ./firmware/cube Demo program #1 ./firmware/bubblesort Demo program #2 ./sim HDL Simulation Folder ./testbench VHDL test-bench code ./testbench/include Test-bench include files ./testbench/Tcl TLC Scripts for NC-Sim ./hdl HDL Folder ./hdl/custom HDL for the Custom Logic ./hdl/TOP HDL for the ASIC toplevel ./hdl/rtllib Compiled HDL folder ./hdl/rtllib/custom Compiled Custom logic ./hdl/rtllib/top Compiled Top-level logic

SOCks Design Flow 1) Setting up a firmware folder Creating a new source code folder cd ./firmware cp –r bubblesort project1 Use the “bubblesort” project as a template Put your C code into leon_test.c You can create as many folders as you want in the “firmware” folder For simulation you will then specify which firmware-folder to use

SOCks Design Flow 2) Compiling the Firmware Creating and compiling the source code cd project1 [emacs | pico | etc.] leon_test.c make All compilation instructions are in “Makefile” Simply type “make” and your code will be compiled and linked Use emacs or pico as your text editor The compilation result will be in “ram.dat” and “rom.dat” Those will be read into the testbench memories

SOCks Design Flow 3) Creating Digital Logic In this step digital logic is created that will go into the “custom” block This block communicates with the Leon through the Amba bus Creating and compiling the custom logic HDL cd ../../hdl/custom [emacs | pico | etc.] custom_top.v cd .. ../exe/socks_compile Your folder has to be called “custom” The compiler will compile all files that end in “.v” “Compile” in this context means to build a HDL simulation model, not a binary fom C code

SOCks Design Flow 4) Running the Simulation Running the simulation (replace “project1” with the name of your firmware folder) cd ../sim ../exe/socks_sim project1 Running the simulation and creating waveforms for the custom logic ../exe/socks_sim project1 partial simvision& Running the simulation and creating waveforms for the entire design ../exe/socks_sim project1 full

SOCks Design Flow 5) Clean Up Removing all temporary data to save space cd .. exe/socks_clean This removes all temporary data Can be helpful to minimize disk space usage Also useful to force the tool to re-compile and build everything

Example: The Cube Example This a very simple SOC: Software is running on the Leon Hardware acceleration is provided for “x=y3” Steps to run this: cd firmware/cube make cd ../../hdl ../exe/socks_compile cd ../sim ../exe/socks_sim cube cat INT.OUTPUT The firmware used the function to output numbers That output can be found in INT.OUTPUT

Example The Bubblesort Program This is a software-only example The custom-logic is still “x=y3” but we will not use it All we do is compile firmware and run it on the Leon cd firmware/bubblesort make cd ../../hdl ../exe/socks_compile cd ../sim ../exe/socks_sim bubblesort The output is printed directly on the screen