Corflow Online Tutorial Eric Chung

Slides:



Advertisements
Similar presentations
RAMP Gold : An FPGA-based Architecture Simulator for Multiprocessors Zhangxi Tan, Andrew Waterman, David Patterson, Krste Asanovic Parallel Computing Lab,
Advertisements

Sumitha Ajith Saicharan Bandarupalli Mahesh Borgaonkar.
Jared Casper, Ronny Krashinsky, Christopher Batten, Krste Asanović MIT Computer Science and Artificial Intelligence Laboratory, Cambridge, MA, USA A Parameterizable.
Internal Logic Analyzer Final presentation-part B
COSC 120 Computer Programming
1 Performed By: Khaskin Luba Einhorn Raziel Einhorn Raziel Instructor: Rivkin Ina Spring 2004 Spring 2004 Virtex II-Pro Dynamical Test Application Part.
Configurable System-on-Chip: Xilinx EDK
FPGA BASED IMAGE PROCESSING Texas A&M University / Prairie View A&M University Over the past few decades, the improvements from machine language to objected.
Students:Gilad Goldman Lior Kamran Supervisor:Mony Orbach Mid-Semester Presentation Spring 2005 Network Sniffer.
Altera’s Quartus II Installation, usage and tutorials Gopi Tummala Lab/Office Hours : Friday 2:00 PM to.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
Reliable Data Storage using Reed Solomon Code Supervised by: Isaschar (Zigi) Walter Performed by: Ilan Rosenfeld, Moshe Karl Spring 2004 Midterm Presentation.
1 I/O Management in Representative Operating Systems.
Implementation of DSP Algorithm on SoC. Mid-Semester Presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompaning engineer : Emilia Burlak.
Implementation of DSP Algorithm on SoC. Characterization presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompany engineer : Emilia Burlak.
Word Processing, Web Browsing, File Access, etc. Windows Operating System (Kernel) Window (GUI) Platform Dependent Code Virtual Memory “Swap” Block Data.
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.
Synthesizable, Application-Specific NOC Generation using CHISEL Maysam Lavasani †, Eric Chung † †, John Davis † † † : The University of Texas at Austin.
A Flexible Architecture for Simulation and Testing (FAST) Multiprocessor Systems John D. Davis, Lance Hammond, Kunle Olukotun Computer Systems Lab Stanford.
General Purpose FIFO on Virtex-6 FPGA ML605 board midterm presentation
© 2011 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
Dr. Konstantinos Tatas ACOE201 – Computer Architecture I – Laboratory Exercises Background and Introduction.
Programmable Logic- How do they do that? 1/16/2015 Warren Miller Class 5: Software Tools and More 1.
Out-of-Order OpenRISC 2 semesters project Semester A: Implementation of OpenRISC on XUPV5 board Final A Presentation By: Vova Menis-Lurie Sonia Gershkovich.
Students: Oleg Korenev Eugene Reznik Supervisor: Rolf Hilgendorf
Programming the Cell Multiprocessor Işıl ÖZ. Outline Cell processor – Objectives – Design and architecture Programming the cell – Programming models CellSs.
1 Input/Output. 2 Principles of I/O Hardware Some typical device, network, and data base rates.
Out-of-Order OpenRISC 2 semesters project Semester A: Implementation of OpenRISC on XUPV5 board Midterm Presentation By: Vova Menis-Lurie Sonia Gershkovich.
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
VSIPL++ / FPGA Design Methodology
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
GBT Interface Card for a Linux Computer Carson Teale 1.
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
Research on Reconfigurable Computing Using Impulse C Carmen Li Shen Mentor: Dr. Russell Duren February 1, 2008.
FPGA (Field Programmable Gate Array): CLBs, Slices, and LUTs Each configurable logic block (CLB) in Spartan-6 FPGAs consists of two slices, arranged side-by-side.
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.
PROCStar III Performance Charactarization Instructor : Ina Rivkin Performed by: Idan Steinberg Evgeni Riaboy Semestrial Project Winter 2010.
© 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
Accelerating Homomorphic Evaluation on Reconfigurable Hardware Thomas Pöppelmann, Michael Naehrig, Andrew Putnam, Adrian Macias.
This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
1 EDK 7.1 Tutorial -- SystemACE and EthernetMAC on Avnet Virtex II pro Development Boards Chia-Tien Dan Lo Department of Computer Science University of.
Part A Presentation Implementation of DSP Algorithm on SoC Student : Einat Tevel Supervisor : Isaschar Walter Accompanying engineer : Emilia Burlak The.
© 2003 Xilinx, Inc. All Rights Reserved System Simulation.
HARDWARE BASED PACKET FILTERING USING FPGAs (or “How hardware is better than software at judging a book by its cover”) Timothy Whelan Supervisor: Mr Barry.
Lecture 12: Reconfigurable Systems II October 20, 2004 ECE 697F Reconfigurable Computing Lecture 12 Reconfigurable Systems II: Exploring Programmable Systems.
Computer Engineering 1502 Advanced Digital Design Professor Donald Chiarulli Computer Science Dept Sennott Square
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.
Fast Fault Finder A Machine Protection Component.
Lab 2 Parallel processing using NIOS II processors
Computer Software Types Three layers of software Operation.
Proposal for an Open Source Flash Failure Analysis Platform (FLAP) By Michael Tomer, Cory Shirts, SzeHsiang Harper, Jake Johns
1 Technion – Israel Institute of Technology Department of Electrical Engineering High Speed Digital Systems Lab Instructor: Evgeny Fiksman Students: Meir.
Content Project Goals. Workflow Background. System configuration. Working environment. System simulation. System synthesis. Benchmark. Multicore.
DDRIII BASED GENERAL PURPOSE FIFO ON VIRTEX-6 FPGA ML605 BOARD PART B PRESENTATION STUDENTS: OLEG KORENEV EUGENE REZNIK SUPERVISOR: ROLF HILGENDORF 1 Semester:
Teaching Digital Logic courses with Altera Technology
CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT Operating Systems.
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
Introduction to the FPGA and Labs
Operating System Overview
Lab 0: Familiarization with Equipment and Software
Andrew Putnam University of Washington RAMP Retreat January 17, 2008
High Level Synthesis Overview
Programmable Logic- How do they do that?
Star Bridge Systems, Inc.
THE ECE 554 XILINX DESIGN PROCESS
COMP755 Advanced Operating Systems
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

Corflow Online Tutorial Eric Chung

Prerequisites Are you familiar with CoRAM concepts? – watch the “Concepts” video – or check out the papers – will NOT cover in detail in this tutorial Where to get materials –

CoRAM and Corflow CoRAM is a research concept – standard architecture that separates application from FPGA platform Corflow is an implementation of CoRAM – prototype SW tool developed at CMU in 2011 – emulates CoRAM features on existing FPGAs

How Corflow Works BAA DMA Clusters Mem On-Chip Network DRAM Interfaces B0B0 B1B1 Control Thread Control FSM FPGA Application

How Corflow Works Portable Application Identify RAMs CoRAM Control Compiler (CORCC) LLVM C Frontend Verilog C-based Control Threads Instantiate Clusters Network- on-Chip Generator Verilog Writer BBlocks + Control Actions Bitstream Platform Libraries Standard EDA Tools

Agenda Prequisites Corflow Overview FPGA Design Example: Matrix-Vector Multiply Online Web Demo Simulation to Bitstream Debug and Output General Design Principles

Matrix-Vector Multiply A x y = “A” matrix too large to fit in FPGA memory Assume “x” and “y” vectors can fit on-chip All data stored in DRAM contiguously (row-order) y = Ax

Multiple vectors A x0x0 y0y0 = Assume multiple ‘x’ and ‘y’ vectors Allows re-use of ‘A’ values x1x1 y1y1

Memory Blocking Because A matrix too large, we will only bring in sub-blocks of A one at a time A0A0 x0x0 y0y0 = x1x1 y1y1 A1A1 A N-1

Simple FPGA Design Hardware – Single 32-bit multiply-accumulator – 3 CoRAMs to store matrix state – Single control thread to manage data transfers Procedure – Data from matrices ‘A’, ‘x’ are streamed in – Multiply-accumulator computes multiple dot products and stores in ‘y’ buffer – ‘y’ buffer written back to DRAM

FPGA Core Logic for MVM 32-bit Integer Multiply-Adder Checksum A coram X coram Y coram 32 Start Compute / Get Checksum Software Control Thread MvM FSM

Agenda Prequisites Corflow Overview FPGA Design Example: Matrix-Vector Multiply Online Web Demo Simulation to Bitstream Debug and Output General Design Principles

CoRAM Online Tool Try out Corflow through the browser – visit – click on “Online Demo” Disclaimers – tool still in beta, expect bugs – send bug reports/comments/suggestions to

Corflow Output 100MHz Router Cache Bank Memory Controller (Xilinx MIG) 128b Router Arbiter Router Cache Bank 128b Cache Bank 100MHz Xilinx Platform Adapter 200MHz 512b Router I/O Devices (e.g., RS232) x + Control Unit x + x + Control x + Control Unit x + x + Control CoRAM Cluster I/O Subsystem and Drivers Application Compute Elements NoC and ClustersDRAM InterfacesDRAM Caches CoRAM Cluster CoRAM Cluster Router Xilinx ML605 Board

Requirements Windows or Linux Machine – Windows 7, 64-bit – Ubuntu 10.04, 64-bit – 4GB of RAM or more Minimum software – Xilinx ISE 13 – Icarus Verilog 0.95 ML605 Board from Xilinx

Simulation Corflow includes testbench & scripts corproj-ml605/run_icarus.sh// Icarus Verilog corproj-ml605/run_vsim.sh// Modelsim Rename script extension to “.cmd” for Windows Tested Simulators – Icarus Verilog 0.95 (Linux + Windows) – QuestaSim 6.4f (Windows) – Synopsys VCS D (Linux)

Bitstream Generation Corflow includes “push-button” ISE scripts corproj-ml605/par/iseflow.sh// Xilinx ISE scripts Rename script extension to “.cmd” for Windows Current platform support – Available: ML605 – Pending: BEE3, Altera boards

Debugging Your System Simulation-only Primitives for Control Threads cpi_printf() cpi_dumpram() cpi_finish() Board-Level Debugging – RS232 printing from control threads – Chipscope/LEDs for User Logic

Agenda Prequisites Corflow Overview FPGA Design Example: Matrix-Vector Multiply Online Web Demo Simulation to Bitstream Debug and Output General Design Principles

Control Thread Restrictions Think of control thread as a state machine – this is NOT software in traditional sense – subset of ANSI-C to describe FSMs Ground rules – No pointers – No floating point – No structs (might be added in future) – No syscalls or memory management (e.g., alloc) – No recursion

Complete Definitions Complete List of Control Actions – defined in “cpi.h” CoRAM Black-Box Verilog Primitives – defined in “coprims.v” Both available on demo page

ML605 Address Spaces Control threads can initiate transfers to memory and I/O address spaces Memory address range (ML MB DRAM) – Lo address: 0x – Hi address: 0x I/O Devices (RS232) – Lo address: 0x – Hi address: 0x8FFFFFFFF

Current Tool Limitations Verilog preprocessor needs work – No CoRAMs allowed within “generate” statements – CoRAM object parameters must be fixed constants Hardware restrictions – Don’t allow CoRAMs configured as non-multiples of 4B wide – No multi-FPGA support (yet) Web interface limited – limited number of allowed CoRAMs (under 4) – fixed NoC and platform – come talk to us for source code (no limitations)

Thank you! If you are interested in source code, contact us at If you need help with the tools or would like to leave feedback: