IEEE ICECS 2010 SysPy: Using Python for processor-centric SoC design Evangelos Logaras Elias S. Manolakos {evlog, Department of Informatics.

Slides:



Advertisements
Similar presentations
© 2003 Xilinx, Inc. All Rights Reserved Course Wrap Up DSP Design Flow.
Advertisements

Altera FLEX 10K technology in Real Time Application.
A reconfigurable system featuring dynamically extensible embedded microprocessor, FPGA, and customizable I/O Borgatti, M. Lertora, F. Foret, B. Cali, L.
Maciej Gołaszewski Tutor: Tadeusz Sondej, PhD Design and implementation of softcore dual processor system on single chip FPGA Design and implementation.
Evolution and History of Programming Languages Software/Hardware/System.
Integrated Circuits Laboratory Faculty of Engineering Digital Design Flow Using Mentor Graphics Tools Presented by: Sameh Assem Ibrahim 16-October-2003.
Graduate Computer Architecture I Lecture 15: Intro to Reconfigurable Devices.
Embedded Systems: Introduction. Course overview: Syllabus: text, references, grading, etc. Schedule: will be updated regularly; lectures, assignments.
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.
Design Flow – Computation Flow. 2 Computation Flow For both run-time and compile-time For some applications, must iterate.
Configurable System-on-Chip: Xilinx EDK
ELEN468 Lecture 11 ELEN468 Advanced Logic Design Lecture 1Introduction.
ECE 699: Lecture 2 ZYNQ Design Flow.
ELEN468 Lecture 11 ELEN468 Advanced Logic Design Lecture 1Introduction.
Implementation of DSP Algorithm on SoC. Mid-Semester Presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompaning engineer : Emilia Burlak.
Foundation and XACTstepTM Software
Implementation of DSP Algorithm on SoC. Characterization presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompany engineer : Emilia Burlak.
Hardware/Software Partitioning Witawas Srisa-an Embedded Systems Design and Implementation.
GallagherP188/MAPLD20041 Accelerating DSP Algorithms Using FPGAs Sean Gallagher DSP Specialist Xilinx Inc.
(1) Introduction © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
© 2011 Xilinx, Inc. All Rights Reserved Intro to System Generator This material exempt per Department of Commerce license exception TSU.
© 2011 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
Delevopment Tools Beyond HDL
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Verilog Digital System Design Z. Navabi, McGraw-Hill, 2005
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
Chap. 1 Overview of Digital Design with Verilog. 2 Overview of Digital Design with Verilog HDL Evolution of computer aided digital circuit design Emergence.
CAD Techniques for IP-Based and System-On-Chip Designs Allen C.-H. Wu Department of Computer Science Tsing Hua University Hsinchu, Taiwan, R.O.C {
HW/SW PARTITIONING OF FLOATING POINT SOFTWARE APPLICATIONS TO FIXED - POINTED COPROCESSOR CIRCUITS - Nalini Kumar Gaurav Chitroda Komal Kasat.
System Design with CoWare N2C - Overview. 2 Agenda q Overview –CoWare background and focus –Understanding current design flows –CoWare technology overview.
VHDL Project Specification Naser Mohammadzadeh. Schedule  due date: Tir 18 th 2.
Hardware/Software Co-design Design of Hardware/Software Systems A Class Presentation for VLSI Course by : Akbar Sharifi Based on the work presented in.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
- 1 - EE898_HW/SW Partitioning Hardware/software partitioning  Functionality to be implemented in software or in hardware? No need to consider special.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
EKT303/4 PRINCIPLES OF PRINCIPLES OF COMPUTER ARCHITECTURE (PoCA)
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
Evaluating and Improving an OpenMP-based Circuit Design Tool Tim Beatty, Dr. Ken Kent, Dr. Eric Aubanel Faculty of Computer Science University of New Brunswick.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
ECE-C662 Lecture 2 Prawat Nagvajara
FPL Sept. 2, 2003 Software Decelerators Eric Keller, Gordon Brebner and Phil James-Roxby Xilinx Research Labs.
1 Hardware/Software Co-Design Final Project Emulation on Distributed Simulation Co-Verification System 陳少傑 教授 R 黃鼎鈞 R 尤建智 R 林語亭.
EE121 John Wakerly Lecture #17
Introduction to Field Programmable Gate Arrays Lecture 1/3 CERN Accelerator School on Digital Signal Processing Sigtuna, Sweden, 31 May – 9 June 2007 Javier.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
Real-Time System-On-A-Chip Emulation.  Introduction  Describing SOC Designs  System-Level Design Flow  SOC Implemantation Paths-Emulation and.
CoDeveloper Overview Updated February 19, Introducing CoDeveloper™  Targeting hardware/software programmable platforms  Target platforms feature.
1 Introduction to Engineering Spring 2007 Lecture 18: Digital Tools 2.
SUBJECT : DIGITAL ELECTRONICS CLASS : SEM 3(B) TOPIC : INTRODUCTION OF VHDL.
Programmable Logic Devices
System-on-Chip Design
Dynamo: A Runtime Codesign Environment
Chapter 1: Introduction
Overview of Embedded SoC Systems
Reconfigurable Computing
Figure 1 PC Emulation System Display Memory [Embedded SOC Software]
332:437 Lecture 7 Verilog Hardware Description Language Basics
Embedded systems, Lab 1: notes
ECE-C662 Introduction to Behavioral Synthesis Knapp Text Ch
ECE 699: Lecture 3 ZYNQ Design Flow.
332:437 Lecture 7 Verilog Hardware Description Language Basics
VHDL Introduction.
HIGH LEVEL SYNTHESIS.
332:437 Lecture 7 Verilog Hardware Description Language Basics
THE ECE 554 XILINX DESIGN PROCESS
Digital Designs – What does it take
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

IEEE ICECS 2010 SysPy: Using Python for processor-centric SoC design Evangelos Logaras Elias S. Manolakos {evlog, Department of Informatics and Telecommunications University of Athens, Greece IEEE International Conference on Electronics, Circuits and Systems (ICECS), 2010, Athens, Greece

IEEE ICECS 2010 Processor – centric design SoCs are largely structured with a microprocessor-centric view. Software plays a key role in modern SoC systems  hardware/software co-design. Processors are available as Intellectual Property (IP) cores in netlist or HDL formats.

IEEE ICECS 2010 Processor – centric design Single chip processor Processor as an IP core

IEEE ICECS 2010 Why Python for SoC design?  Python is a high level programming language which supports structured and object-oriented programming.  Python combines remarkable power with very clean and simple syntax.  The language adopts dynamic typing and has a large variety of supported data types.  C/C++ functions can be imported and used.

IEEE ICECS 2010 High – level abstraction Our objective is to create a tool which can handle both the hardware and the software aspects of a SoCs design flow. SysPy can be used to describe hardware components (IP cores) as well as the software assigned to run in a soft processor of the SoC. Innovation: Python is used to describe SoC elements and glue them in a system.

IEEE ICECS 2010 State of the art – Python based CAD System Python

IEEE ICECS 2010 State of the art PyCells are parameterized cells for ASIC design (analog design) described in Python. PyHDL uses Python just for structural descriptions, using predefined blocks. MyHDL can be used instead of a classical HDL to describe a hardware module.  SysPy covers the features of MyHDL, and in addition supports a complete MPSoC design flow by incorporating also the use of programmable processor soft-cores.

IEEE ICECS 2010 SysPy features 1.Python – to – VHDL conversion (Python as an HDL) - completed 2.Integration into a design of different components, expressed in Python, VHDL, netlists - completed 3.Hw/Sw co-design of SoCs using Python - progress 4.System-level simulation – in planning phase

IEEE ICECS 2010 Fig. Design flow with SysPy. SysPy Design flow (EDIF)

IEEE ICECS 2010 Python – to – VHDL conversion  Baseline: convert Python component descriptions to equivalent synthesizable VHDL descriptions.  Guarantee that VHDL code is correct (syntax, signal assignment and declaration-wise etc.).  The conversion is optimized for the Xilinx XST synthesizer.

IEEE ICECS 2010 Modular design with different components  Components that SysPy can integrate into a SoC:  Python-described components ( SysPy translates them to VHDL components).  Already existing VHDL components supplied by the designer.  Components from 3 rd party VHDL libraries (e.g. Xilinx Unisim).  Pre-synthesized netlist components (e.g. Xilinx CoreLib).

IEEE ICECS 2010 Hw/Sw co-design of SoCs  Embedded softcore processor modules can be connected to custom IP components at the top level Python description of the SoC.  The softcore processor’s code should be expressed in C.  SysPy automatically calls gcc, compiles the C code and creates a VHDL component, that corresponds to a Block RAM – based memory structure, initialized with the executable code.  SysPy currently supports an AVR microcontroller open IP core.  Plans to target OpenRisc and LEON 32-bit processor IP cores are under the way.

IEEE ICECS 2010 SoC design example We have used SysPy to design a processor-centric SoC system that applies Sobel edge detection to grayscale images. Sobel ’ s algorithm functions have been partitioned to: an AVR core, which handles all memory management and data manipulation and, to an application application specific accelerator described as a Finite State Machine (FSM). A Virtex-5 FPGA device has been used for the implementation.

IEEE ICECS 2010 SoC design example Fig. Implementation of Sobel edge detection using SysPy.

IEEE ICECS 2010 SoC design example Device utilization for the Xilinx Virtex-5 LX110T FPGA device: CLBsBRAMsDSP (6%)48 (32%)8 (12%) The design can be clocked as high as > 300MHz.

IEEE ICECS 2010 Future work Support for 32-bit softcore processors (LEON, OpenRisc).  Processors supported by the gcc tools will be preferred. Performing system-level design exploration in Python by expressing also the processors code in Python syntax (popular with the Bioinformatics community).  Tools for Python – to – C conversion will be investigated.  Mapping complex arithmetic functions to special structural blocks (DSP algorithmic descriptions).

IEEE ICECS 2010 Future work A simulation mechanism will be developed for co-simulation of the Python descriptions. Simulated code will be synthesizable without any modifications. Test the design with more elaborate applications, e.g. image/video processing applications, bioinformatics applications etc. Supporting ASIC design and producing VHDL code compatible with Synopsys standard-cell design tools.

IEEE ICECS 2010 Thank you!

IEEE ICECS 2010 Backup slides

IEEE ICECS 2010 Why Python for system-level design? At least three projects have already used Python for hardware design. Most of them ( PyHDL based on PAM-Blox ) use Python just for structural descriptions, using component libraries. MyHDL supports the three basic hardware description methods, e.g. behavioral, dataflow and structural. It can perform a behavioral simulation of a module. However, MyHDL lacks the ability to embed ready-to-use components from commercial or user-defined component libraries.

IEEE ICECS 2010 Why Python for system-level design? Furthermore, MyHDL does not take into account the software aspects of a SoC since it does not have any provision for handling processor IP cores. SysPy supports all three basic HDL description styles, and in addition supports predefined blocks and programmable processor softcores. SysPy not only support incremental module-level design for synthesis but goes all the way to support hw/sw co- design and simulation of modular embedded MPSoCs.

IEEE ICECS 2010 SysPy coding example (bridge component)

IEEE ICECS 2010 SysPy coding example (cont.)