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

Slides:



Advertisements
Similar presentations
VHDL Design of Multifunctional RISC Processor on FPGA
Advertisements

Nios Multi Processor Ethernet Embedded Platform Final Presentation
IHP Im Technologiepark Frankfurt (Oder) Germany IHP Im Technologiepark Frankfurt (Oder) Germany ©
1 General-Purpose Languages, High-Level Synthesis John Sanguinetti High-Level Modeling.
Presenter MaxAcademy Lecture Series – V1.0, September 2011 Dataflow Programming with MaxCompiler.
Register Transfer Level
A reconfigurable system featuring dynamically extensible embedded microprocessor, FPGA, and customizable I/O Borgatti, M. Lertora, F. Foret, B. Cali, L.
LOGO HW/SW Co-Verification -- Mentor Graphics® Seamless CVE By: Getao Liang March, 2006.
Extensible Processors. 2 ASIP Gain performance by:  Specialized hardware for the whole application (ASIC). −  Almost no flexibility. −High cost.  Use.
Motion Tracking Recorder 360 (MTR-360) Group #1 Lee Estep Philip Robertson Andy Schiestl Robert Tate.
An Introduction to Electronic System Level Design 錢偉德 國家晶片及系統中心設計服務組 清大資工系視訊通訊研究室.
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
Term Project Overview Yong Wang. Introduction Goal –familiarize with the design and implementation of a simple pipelined RISC processor What to do –Build.
Configurable System-on-Chip: Xilinx EDK
Hamming Transcoders for Power Reduction on Internal Buses Victor Wen Jan. 13, 2000 University of California, Berkeley.
Reliable Data Storage using Reed Solomon Code Supervised by: Isaschar (Zigi) Walter Performed by: Ilan Rosenfeld, Moshe Karl Spring 2004 Midterm Presentation.
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
Implementation of DSP Algorithm on SoC. Mid-Semester Presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompaning engineer : Emilia Burlak.
Hardware/Software Partitioning Witawas Srisa-an Embedded Systems Design and Implementation.
The 6713 DSP Starter Kit (DSK) is a low-cost platform which lets customers evaluate and develop applications for the Texas Instruments C67X DSP family.
Ross Brennan On the Introduction of Reconfigurable Hardware into Computer Architecture Education Ross Brennan
Live Action First Person Shooter Game Patrick Judd Ian Katsuno Bao Le.
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,
Levels of Architecture & Language CHAPTER 1 © copyright Bobby Hoggard / material may not be redistributed without permission.
Computer Architecture and Organization Introduction.
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
© 2005 Altera Corporation SOPC Builder: a Design Tool for Rapid System Prototyping on FPGAs Kerry Veenstra Workshop on Architecture Research using FPGA.
System Design with CoWare N2C - Overview. 2 Agenda q Overview –CoWare background and focus –Understanding current design flows –CoWare technology overview.
SPREE RTL Generator RTL Simulator RTL CAD Flow 3. Area 4. Frequency 5. Power Correctness1. 2. Cycle count SPREE Benchmarks Verilog Results 3. Architecture.
GRECO - CIn - UFPE1 A Reconfigurable Architecture for Multi-context Application Remy Eskinazi Sant´Anna Federal University of Pernambuco – UFPE GRECO.
System on Chip (SoC) Architecture Design The SOCks Design Platform
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.
Chonnam national university VLSI Lab 8.4 Block Integration for Hard Macros The process of integrating the subblocks into the macro.
Array Synthesis in SystemC Hardware Compilation Authors: J. Ditmar and S. McKeever Oxford University Computing Laboratory, UK Conference: Field Programmable.
1 Fly – A Modifiable Hardware Compiler C. H. Ho 1, P.H.W. Leong 1, K.H. Tsoi 1, R. Ludewig 2, P. Zipf 2, A.G. Oritz 2 and M. Glesner 2 1 Department of.
Introduction to Bluespec: A new methodology for designing Hardware Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology.
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.
- 1 - EE898_HW/SW Partitioning Hardware/software partitioning  Functionality to be implemented in software or in hardware? No need to consider special.
Part A Presentation Implementation of DSP Algorithm on SoC Student : Einat Tevel Supervisor : Isaschar Walter Accompanying engineer : Emilia Burlak The.
Computer Organization & Assembly Language © by DR. M. Amer.
MIPS Microprocessor (Cache Circuits) ‏ Rhys Bowden, Robert Moric, Joel Stanley, Melanie Tan.
EL 402Spring Ilker Hamzaoglu1 EL402 VLSI System Design II Spring 2009 Instructor: Ilker Hamzaoglu MDBF 1037 Teaching Assistant:
Slide 1 2. Verilog Elements. Slide 2 Why (V)HDL? (VHDL, Verilog etc.), Karen Parnell, Nick Mehta, “Programmable Logic Design Quick Start Handbook”, Xilinx.
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.
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 林語亭.
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
ECE 645 Spring 2007 PROJECT 2 Specification. Topic Options.
Additional Hardware Optimization m Yumiko Kimezawa October 25, 20121RPS.
Greg Alkire/Brian Smith 197 MAPLD An Ultra Low Power Reconfigurable Task Processor for Space Brian Smith, Greg Alkire – PicoDyne Inc. Wes Powell.
Content Project Goals. Workflow Background. System configuration. Working environment. System simulation. System synthesis. Benchmark. Multicore.
Out-of-Order OpenRISC 2 semesters project Semester B: OR1200 ISA Extension Final B Presentation By: Vova Menis-Lurie Sonia Gershkovich Advisor: Mony Orbach.
Spring EE 437 Lillevik 437s06-l5 University of Portland School of Engineering Advanced Computer Architecture Lecture 5 Slave bus agent ROM example.
Recen progress R93088 李清新. Recent status – about hardware design Finishing the EPXA10 JPEG2000 project. Due to the DPRAM problem can’t be solved by me,
Final Presentation Hardware DLL Real Time Partial Reconfiguration Management of FPGA by OS Submitters:Alon ReznikAnton Vainer Supervisors:Ina RivkinOz.
Introduction to Bluespec: A new methodology for designing Hardware Arvind Computer Science & Artificial Intelligence Lab. Massachusetts Institute of Technology.
CoDeveloper Overview Updated February 19, Introducing CoDeveloper™  Targeting hardware/software programmable platforms  Target platforms feature.
RTL Design Methodology Transition from Pseudocode & Interface
Greatest Common Divisor
Greatest Common Divisor
SoCKs Flow: Here, There, and Back Again
RTL Design Methodology
Figure 1 PC Emulation System Display Memory [Embedded SOC Software]
CoCentirc System Studio (CCSS) by
Speaker: Tian-Sheuan Chang July, 2004
RTL Design Methodology Transition from Pseudocode & Interface
RTL Design Methodology
RTL Design Methodology Transition from Pseudocode & Interface
Presentation transcript:

SoCks Hardware / Software Codesign Andrew Pearson Sanders DeNardi ECE6502 May 4, 2010

What is SoCks? Implements an open source SPARC V8 SoC with custom memory-mapped functionality. SoCks is a LEON core, a collection of BASH scripts, C code, and HDL.

LEON Core

SoCks SoC Simulation Testbench AHB Bus Leon AHB Controller Memory Controller Sparc CPU Custom Logic AHB Slave Interface External Memory RAM/ROM IO Monitor: Text Output File Output Clock/ Reset Generator SOCks ASIC

Why Hardware Acceleration? Implement software in hardware – Faster – Better Parallelism Why Use SoCks? Simplifies design process Easy to test Platform approach

Design Flow Custom HDL Implementing Software Cadence IUS 8.2 (ncvhdl, ncvlog, ncelab) LEON and RAM HDL C Firmware SPARC RTEMS GCC C Compiler Simvision

Initial Hurdles Trying to port scripts to Cadence RC (RTL Compiler) Compiling C in correct environment Getting proper version of IUS 8.2

Our Custom HDL What should we try to implement? – Initially wanted to do encryption or decoding (MD5, SHA1, MP3, JPEG) Would spend more time working on Verilog than on the intricacies of hardware-accelerated SoCs – Decided on Greatest Common Divisor acceleration Non-determinate amount of steps in algorithm Requires repeated subtraction (inefficient)

Our Custom HDL (cont.) Euclids algorithm for GCD Implemented in Verilog Implemented in C Compared execution time

Our Algorithm Numbers X and Y X>Y? YESNO X=X-YY=Y-X Y==0? DONE YES NO

An Interesting Problem… int nums[10]={20,40,10,3,4,5,39,40,41,42};... for(j=0;j<10;j++) { custom[0]=nums[j]; custom[1]=10; custom[2]=1; print_int(nums[j]); print_int(custom[2]); }...

An Interesting Problem… (cont.) 1st 2nd 3rd

An Interesting Problem… (cont.) Why? CC=sparc-rtems-gcc CFLAGS= -O2 -g LDFLAGS=-g -N -nostdlib -T./linkleon -e _hardreset locore1.o LIBS=-L/opt/rtems/sparc-rtems/lib -lgcc -lm...

Solution Optimization flag should NOT be on! You are writing firmware / device driver – The compiler should NOT be changing your code – Best practice to write in assembly code, not C

Results Execution of non-accelerated code: – 19,561 ns Execution of accelerated code: – 8,612 ns Thats 227% faster!

Lessons Learned Hardware optimization really works SoCks requires many configuration changes before it can work at UVa – Should be updated to run on newer tools State of Cadence software Relying on compilers for firmware/drivers

Questions?