Infrastructure design & implementation of MIPS processors for students lab based on Bluespec HDL Students: Danny Hofshi, Shai Shachrur Supervisor: Mony.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

Xilinx 6.3 Tutorial Integrated Software Environment (ISE) Set up basic environment Select Gates or Modules to Be simulated (Insert Program Code) Run Waveform.
Final Presentation Part-A
Lecture Objectives: 1)Define pipelining 2)Calculate the speedup achieved by pipelining for a given number of instructions. 3)Define how pipelining improves.
ECE 353 ECE 353 Fall 2009 Lab C Pipeline Simulator October 22, 2009.
© 2003 Xilinx, Inc. All Rights Reserved Debugging.
1 Performed By: Khaskin Luba Einhorn Raziel Einhorn Raziel Instructor: Rivkin Ina Spring 2004 Spring 2004 Virtex II-Pro Dynamical Test Application Part.
Term Project Overview Yong Wang. Introduction Goal –familiarize with the design and implementation of a simple pipelined RISC processor What to do –Build.
Chapter 6 In introduction to System Software and Virtual Machine ***Assembly Language.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE Computer Organization Lecture 23 - Course.
Configurable System-on-Chip: Xilinx EDK
Number One Tom Bozic Ian Nuber Greg Ramsey Henry Romero Matt Unangst.
The Xilinx EDK Toolset: Xilinx Platform Studio (XPS) Building a base system platform.
CPEN Digital System Design Chapter 10 – Instruction SET Architecture (ISA) © Logic and Computer Design Fundamentals, 4 rd Ed., Mano Prentice Hall.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
1 Lab Session-IV CSIT-120 Fall 2000 Precedence Rules Machine Language Programming The “Micro” Machine The “Micro” Simulator The “Micro” Translator (Thanks.
Reconfigurable Computing in the Undergraduate Curriculum Jason D. Bakos Dept. of Computer Science and Engineering University of South Carolina.
S. Barua – CPSC 440 CHAPTER 5 THE PROCESSOR: DATAPATH AND CONTROL Goals – Understand how the various.
Educational Computer Architecture Experimentation Tool Dr. Abdelhafid Bouhraoua.
Implementation of DSP Algorithm on SoC. Characterization presentation Student : Einat Tevel Supervisor : Isaschar Walter Accompany engineer : Emilia Burlak.
The Processor Andreas Klappenecker CPSC321 Computer Architecture.
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Lecture 27: Single-Cycle CPU Datapath Design Instructor: Sr Lecturer SOE Dan Garcia
© 2011 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
Out-of-Order OpenRISC 2 semesters project Semester A: Implementation of OpenRISC on XUPV5 board Final A Presentation By: Vova Menis-Lurie Sonia Gershkovich.
Constructive Computer Architecture Tutorial 4: SMIPS on FPGA Andy Wright 6.S195 TA October 7, 2013http://csg.csail.mit.edu/6.s195T04-1.
CSE430/830 Course Project Tutorial Instructor: Dr. Hong Jiang TA: Dongyuan Zhan Project Duration: 01/26/11 – 04/29/11.
CHAPTER 1 XNA Game Studio 4.0. Your First Project A computer game is not just a program—it is also lots of other bits and pieces that make playing the.
1 Layers of Computer Science, ISA and uArch Alexander Titov 20 September 2014.
CSCE 430/830 Course Project Guidelines By Dongyuan Zhan Feb. 4, 2010.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Out-of-Order OpenRISC 2 semesters project Semester A: Implementation of OpenRISC on XUPV5 board Midterm Presentation By: Vova Menis-Lurie Sonia Gershkovich.
Matrix Multiplication on FPGA Final presentation One semester – winter 2014/15 By : Dana Abergel and Alex Fonariov Supervisor : Mony Orbach High Speed.
Infrastructure design & implementation of MIPS processors for students lab based on Bluespec HDL Students: Danny Hofshi, Shai Shachrur Supervisor: Mony.
COSC 3430 L08 Basic MIPS Architecture.1 COSC 3430 Computer Architecture Lecture 08 Processors Single cycle Datapath PH 3: Sections
NIOS II Ethernet Communication Final Presentation
Performed By: Yahel Ben-Avraham and Yaron Rimmer Instructor: Mony Orbach Bi-semesterial, /3/2013.
Lecture 4: MIPS Instruction Set Reminders: –Homework #1 posted: due next Wed. –Midterm #1 scheduled Friday September 26 th, 2014 Location: TODD 430 –Midterm.
1 Instruction Set Architecture (ISA) Alexander Titov 10/20/2012.
Final Presentation Annual project (Part A) Winter semesterתשע"ב (2011/12) Students: Dan Hofshi, Shai Shachrur Supervisor: Mony Orbach INS/GPS navigation.
Computer Organization and Architecture Tutorial 1 Kenneth Lee.
Ted Pedersen – CS 3011 – Chapter 10 1 A brief history of computer architectures CISC – complex instruction set computing –Intel x86, VAX –Evolved from.
Computer Engineering 1502 Advanced Digital Design Professor Donald Chiarulli Computer Science Dept Sennott Square
Tools - LogiBLOX - Chapter 5 slide 1 FPGA Tools Course The LogiBLOX GUI and the Core Generator LogiBLOX L BX.
W.S Computer System Design Lecture 4 Wannarat Suntiamorntut.
Computer Software Types Three layers of software Operation.
VHDL and Hardware Tools CS 184, Spring 4/6/5. Hardware Design for Architecture What goes into the hardware level of architecture design? Evaluate design.
Ethernet Bomber Ethernet Packet Generator for network analysis
MIPS Pipeline and Branch Prediction Implementation Shuai Chang.
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.
By Wannarat Computer System Design Lecture 4 Wannarat Suntiamorntut.
Constructive Computer Architecture Tutorial 4: Running and Debugging SMIPS Andy Wright TA October 10, 2014http://csg.csail.mit.edu/6.175T04-1.
ISA's, Compilers, and Assembly
LECTURE 7 Pipelining. DATAPATH AND CONTROL We started with the single-cycle implementation, in which a single instruction is executed over a single cycle.
Teaching Digital Logic courses with Altera Technology
1 Basic Processor Architecture. 2 Building Blocks of Processor Systems CPU.
The Universal Machine (UM) Implementing the UM Noah Mendelsohn Tufts University Web:
© Copyright 2010 Xilinx ML605 MultiBoot Design May 2010 © Copyright 2010 Xilinx XTP043.
Implementing RISC Multi Core Processor Using HLS Language - BLUESPEC Liam Wigdor Instructor Mony Orbach Shirel Josef Semesterial Winter 2013.
IMPLEMENTING RISC MULTI CORE PROCESSOR USING HLS LANGUAGE - BLUESPEC LIAM WIGDOR INSTRUCTOR MONY ORBACH SHIREL JOSEF Winter 2013 One Semester Mid-term.
MIPS Instruction Set Advantages
Instruction Set Architecture
Andrew Putnam University of Washington RAMP Retreat January 17, 2008
ACOE301: Computer Architecture II Labs
Computer Architecture CSCE 350
Figure 1 PC Emulation System Display Memory [Embedded SOC Software]
October 29 Review for 2nd Exam Ask Questions! 4/26/2019
Week 5 Computers are like Old Testament gods; lots of rules and no mercy. Joseph Campbell.
Presentation transcript:

Infrastructure design & implementation of MIPS processors for students lab based on Bluespec HDL Students: Danny Hofshi, Shai Shachrur Supervisor: Mony Orbach Winter 2012

FPGA Bluespec Scemi Bluespec HDL C++ \ Perl What we did ? Xilinx FPGA MIPS

Project Goals Creating the Laboratory working environment. Creating varied types of MIPS architectures: - Multi-cycle - Pipelined (forwarding, Branch predictor, Cache). - Testing & debugging. Documentation and lab flow walkthrough.

Project tools Bluespec SCEMI C++ PERL Plan ahead Xiling Virtix 5 FPGA.

The multi-cycle MIPS

The pipelined MIPS

Emulation flow PCIe cable Virtex 5 FPGA Linux Environment

Write Assembler Code & Data memory Type executable command Receive performances and data addi $t1 $zero 2 addi $t2 $zero 2 add $t3 $t1 $t2 sw $t3 $zero 0 stop Compiler Communication module C++ MIPS Data received Simulation flow

Simple example Student #1Student #2 Assembly Code addi $t0 $zero 1 addi $t1 $zero 2 addi $t2 $zero 3 addi $t3 $zero 4 add $s0 $t0 $t1 add $s0 $s0 $t2 add $s0 $s0 $t3 sw $s0 $zero 0 stop addi $t0 $zero 1 addi $t1 $zero 2 addi $t2 $zero 3 addi $t3 $zero 4 add $s0 $t0 $t1 add $s1 $t2 $t3 add $s2 $s0 $s1 sw $s2 $zero 0 stop

Test your processor Code #1Code #2 Number of instructions to run 99 Arithmetic equation $s0 = $to + $t1 + $t2 + $t3 $s2 = $to + $t1 + $t2 + $t3 Who do you think will win, the Multi-cycle run test? ? Who do you think will win, the Pipeline run test? ? Who do you think will win, the Pipeline + forwarding test? ?

Test your processor PROC3PROC2PROC1ProgramParameter 999Add V1Number of instructions Number of cycles 999Add V2Number of instructions Number of cycles Machine output

Libraries content Perl: compiler for Assembly code Sim: Simulation compile environment to test the Mips designs on TCP\IP communication FPGA: Emulation build environment to test the Mips designs on PCIe communication SRC: Bluespec source codes for 9 different architecture combinations TB: C++ Test Bench communica tion code. LAB 1 PROC#1: Bit file PROC#2: Bit file PROC#3: Bit file ProgramsAssembly LAB 2 PROC#1: Bit file PROC#2: Bit file PROC#3: Bit file ProgramsAssembly Project source codes FINALDIRECTORYFINALDIRECTORY

Conclusions Conclusions regarding using Bluespec as preferred language. Conclusion regarding Scemi Conclusion regarding the lab.

Bluespec HDL During code writing of bluespec we encountered with some issue’s in the language, for example:

Bluespec HDL If in some clock cycle, y2=a, x2=b We would expect that in the next cycle: y2 = b+1 x2= a+1 However, bluespec always sequence all the rules which are fired in the same clock cycle. In Bluespec, if a register (x2,y2) appears in more then one rule. The rule which reads the register will always fire before the rule that updates the register.

Bluespec HDL In our example, rule r2a must fire before rule r2b because r2a reads y2 value and r2b updates y2 value. rule r2b must fire before rule r2a because r2b reads x2 value and r2a updates x2 value.

Bluespec HDL This scenario is treated as a conflict by the compiler And the scheduler will choose only one of the rules to fire. We encountered this situation in many places in our design and had use various workaround’s.

Bluespec HDL Conclusion: Writing methodology should be developed for writing bluespec HDL which can utilize the advantages of the language.

Bluespec HDL Debugging : There are only 2 ways available to debug Bluespec -Waveform of the verilog compilation output -Using $display Bluespec does not provide proper debug method that works in the same abstraction level as the code development

Scemi Scemi enabled us to create “click of a button” interface between hardware in software. However, Scemi makes it difficult using other periphery devices on the FPGA board. In addition, in most platforms, a reboot is required after a bit-stream is loaded to the FPGA.

Scemi Conclusion: consider developing USB interface with platform coupled with generic software that will replace SCEMI functionality, thus eliminating both problems.

Thank you !