Final Presentation Annual project (Part A) Winter semesterתשע"ב (2011/12) Students: Dan Hofshi, Shai Shachrur Supervisor: Mony Orbach INS/GPS navigation.

Slides:



Advertisements
Similar presentations
Basic HDL Coding Techniques
Advertisements

ENEL111 Digital Electronics
CHAPTER 2 GC101 Program’s algorithm 1. COMMUNICATING WITH A COMPUTER  Programming languages bridge the gap between human thought processes and computer.
Final Presentation Part-A
Sumitha Ajith Saicharan Bandarupalli Mahesh Borgaonkar.
EXTERNAL COMMUNICATIONS DESIGNING AN EXTERNAL 3 BYTE INTERFACE Mark Neil - Microprocessor Course 1 External Memory & I/O.
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Lecture 1: Overview of Computers & Programming
Internal Logic Analyzer Final presentation-part B
Internal Logic Analyzer Final presentation-part A
Chapter 10 – Digital System Projects Using HDL Copyright © 2011, 2007, 2004, 2001, 1998 by Pearson Education, Inc. Upper Saddle River, New Jersey
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
Characterization Presentation Neural Network Implementation On FPGA Supervisor: Chen Koren Maria Nemets Maxim Zavodchik
Mid semester Presentation Data Packages Generator & Flow Management Data Packages Generator & Flow Management Data Packages Generator & Flow Management.
1 Matrix Multiplication on SOPC Project instructor: Ina Rivkin Students: Shai Amara Shuki Gulzari Project duration: one semester.
1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities and architectural bodies behavioral,
CS 104 Introduction to Computer Science and Graphics Problems
Chapter 1 Program Design
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
INS/GPS Integration Based Navigation using Particle Filter GPS Control System MidTerm presentation Performed by: Yuval Yosef Adi Weissman Supervised by:
Introduction 01_intro.ppt
Sub- Nyquist Sampling System Hardware Implementation System Architecture Group – Shai & Yaron Data Transfer, System Integration and Debug Environment Part.
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
Basics and Architectures
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.
Elad Hadar Omer Norkin Supervisor: Mike Sumszyk Winter 2010/11, Single semester project. Date:22/4/12 Technion – Israel Institute of Technology Faculty.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Spring Introduction  Today’s tutorial focuses on introducing you to Xilinx ISE and Modelsim.  These tools are used for Verilog Coding Simulation.
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.
High Speed Digital Systems Lab Asic Test Platform Supervisor: Michael Yampolsky Assaf Mantzur Gal Rotbard Project Midterm Presentation One-Semester Project.
PROCStar III Performance Charactarization Instructor : Ina Rivkin Performed by: Idan Steinberg Evgeni Riaboy Semestrial Project Winter 2010.
Getting Started with MATLAB 1. Fundamentals of MATLAB 2. Different Windows of MATLAB 1.
Company LOGO Mid semester presentation Spring 2008/9 Performed by: Alexander PavlovDavid Domb Supervisor: Mony Orbach GPS/INS Computing System.
Senior Project Presentation: Designers: Shreya Prasad & Heather Smith Advisor: Dr. Vinod Prasad May 6th, 2003 Internal Hardware Design of a Microcontroller.
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
EEE440 Computer Architecture
By: Daniel BarskyNatalie Pistunovich Supervisors: Rolf HilgendorfInna Rivkin 10/06/2010.
LZRW3 Decompressor dual semester project Part A Mid Presentation Students: Peleg Rosen Tal Czeizler Advisors: Moshe Porian Netanel Yamin
Implementing RISC Multi Core Processor Using HLS Language – BLUESPEC Final Presentation Liam Wigdor Advisor Mony Orbach Shirel Josef Semesterial Winter.
High Speed Digital Systems Lab. Agenda  High Level Architecture.  Part A.  DSP Overview. Matrix Inverse. SCD  Verification Methods. Verification Methods.
Infrastructure design & implementation of MIPS processors for students lab based on Bluespec HDL Students: Danny Hofshi, Shai Shachrur Supervisor: Mony.
Electrical and Computer Engineering University of Cyprus LAB 1: VHDL.
Final Presentation Final Presentation OFDM implementation and performance test Performed by: Tomer Ben Oz Ariel Shleifer Guided by: Mony Orbach Duration:
Final Presentation Implementation of DSP Algorithm on SoC Student : Einat Tevel Supervisor : Isaschar Walter Accompanying engineer : Emilia Burlak The.
Company LOGO Final presentation Spring 2008/9 Performed by: Alexander PavlovDavid Domb Supervisor: Mony Orbach GPS/INS Computing System.
Computer Architecture Lecture 32 Fasih ur Rehman.
GPS Computer Program Performed by: Moti Peretz Neta Galil Supervised by: Mony Orbach Spring 2009 Part A Presentation High Speed Digital Systems Lab Electrical.
Company LOGO Final presentation Spring 2008/9 Performed by: Alexander PavlovDavid Domb Supervisor: Mony Orbach GPS/INS Computing System.
Company LOGO Project Characterization Spring 2008/9 Performed by: Alexander PavlovDavid Domb Supervisor: Mony Orbach GPS/INS Computing System.
Different Microprocessors Tamanna Haque Nipa Lecturer Dept. of Computer Science Stamford University Bangladesh.
Fundamentals of Programming Languages-II
Performed by: Alexander Pavlov David Domb Instructor: Mony Orbach המעבדה למערכות ספרתיות מהירות High speed digital systems laboratory הטכניון - מכון טכנולוגי.
DDRIII BASED GENERAL PURPOSE FIFO ON VIRTEX-6 FPGA ML605 BOARD PART B PRESENTATION STUDENTS: OLEG KORENEV EUGENE REZNIK SUPERVISOR: ROLF HILGENDORF 1 Semester:
Mini scope one semester project Project final Presentation Svetlana Gnatyshchak Lior Haiby Advisor: Moshe Porian Febuary 2014.
Roman Kofman & Sergey Kleyman Neta Peled & Hillel Mendelson Supervisor: Mike Sumszyk Final Presentation of part A (Annual project)
Performed by:Liran Sperling Gal Braun Instructor: Evgeny Fiksman המעבדה למערכות ספרתיות מהירות High speed digital systems laboratory.
GPS-INS RESAMPLING VERIFICATION Final Presentation Annual project (Part B) Winter semesterתש"ע ((2009 Students: Oren Hyatt, Alex Dutov Supervisor: Mony.
GPS Computer Program Performed by: Moti Peretz Neta Galil Supervised by: Mony Orbach Spring 2009 Characterization presentation High Speed Digital Systems.
Full Design. DESIGN CONCEPTS The main idea behind this design was to create an architecture capable of performing run-time load balancing in order to.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Software Engineering Algorithms, Compilers, & Lifecycle.
 Problem Analysis  Coding  Debugging  Testing.
CHAPTER 2 GC101 Program’s algorithm 1. COMMUNICATING WITH A COMPUTER  Programming languages bridge the gap between human thought processes and computer.
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Lecture 1.3 Hardware Description Languages (HDLs)
Lesson 4 Synchronous Design Architectures: Data Path and High-level Synthesis (part two) Sept EE37E Adv. Digital Electronics.
Chapter 1 Introduction(1.1)
Presentation transcript:

Final Presentation Annual project (Part A) Winter semesterתשע"ב (2011/12) Students: Dan Hofshi, Shai Shachrur Supervisor: Mony Orbach INS/GPS navigation system using RPF Implemented with Bluspec HDL. Using Xilinx Virtex5 FPGA

Intro 1. Abstract 2. Algorithm Reminder 3. Previous projects background. 4. Solution approaches 5. Detailed information on the final implementation. 6. summary

 This project is a part of a continues effort to implement a RPF based navigation system in the laboratory of high speed digital systems at the Technion university. The project and the algorithm initially written by Professor Yaakov Oshman and Mark Koifman from the faculty of Aerospace.  Previous to our project, another group of students tested and simulated the algorithm in a C++ environment and verified the algorithm functionality [1]  Later on, a group of several students designed the algorithm blocks to work on several Altera FPGA simultaneously, as the hardware resources requirements was too much to meet a single FPGA capability. Abstract 1. ^ ("Gps computer program", by Neta Galil and Moti Perets, Winter 2010).

Reminder – The Algorithm Principle of operation A visual demonstration of the particle filter navigation, excluding data correction process. Measurement update

Previous projects information & conclusions  Retrieving information on Timing and location complexity for each of the algorithm blocks and parameters. (Data busses widths, Number of particles, mathematical implementation of certain blocks).  A particle filter implementation on a single FPGA require a fundamental thinking about the way you parallelize the algorithm or reducing mathematical complexity.  A particle filter project is too big to be designed by a single\group without a proper structural design in advance.  Location complexity requires an external memory use.

First Approach for solution  Trying to reduce mathematical complexity - Failed Algorithm PhaseQuaternionEuler Trigonometric calculation Multipliers Trigonometr ic calculation Multipli ers Initialization81220 Propagation Measurement update This phase is identical for both State vector Revaluation 173 N-effective calculation This phase is identical for both Covariance matrix calculation 3800 Re-samplingThis phase is identical for both Regularization81200 Re-WeightThis phase is identical for both

First approach for solution  Indeed looks very convincing as 53*N multipliers & 11*N trigonometric calculations can be reduced only by using Euler angles through all the algorithm run. But with a close look at the algorithm calculations, you can notice many cases of singularity that can't be solved by Euler angles without leading the algorithm to diverge.  Thus we choose to continue the project with the current verified algorithm using Quaternion calculations.

Second approach for solution From sequential to Parallel implementation. Initialization: Creates a new Set of N particles Propagation: using the INS data to propagate the particles in time Measurement Update: Using the GPS data to give weight to each particle Normalization: Normalize all particles weight to a total sum = 1 Covariance matrix calculation Re-Sampling Regularization Effective number of particles check Re-weight Good Bad Routine operation Data correction State vector revaluation To User

Second approach for solution With a proper parallelization of the algorithm the sequential blocks number can be reduced from 9 to 5 with a real feasibility to be implemented on the desired single FPGA.

Tools and hardware Starting from a point of view that Xilinx Virtex5 FPGA is our board for this tasks, we’ve defined the rest of the working tools.  Bluespec HDL.  Bluespec GUI (Compiler, Simulator)  DDR2 SDRAM external memory.  XUPV5-110T development enviornment.

Project goals  Learning Bluespec and pointing the language advantages/drawbacks.  Design, Built & simulate the top level design of the complete Algorithm infrastructure allowing future design of each of the algorithm blocks by individual groups.  Well describing the future tasks to accomplish the project.

Why Bluespec  Bluespec language syntax corresponds to fit today's large scale digital system design methodologies, with a special respect to parallel design.  It is interesting new design methodology.

Introduction to Bluespec Bluespec system verilog or in short, Bluespec, is a relatively new high level HDL language. Bluespec language is designed to provide a way to express high level hardware constructs in an easy and highly parameterized way.  The language syntax enables you to concentrate on high level details of the design and to bring closer the way you think to the way you write.  "methods" define an abstract, user defined, interface which can be translated into Verilog outputs and inputs,  "rules" which define a group of abstract operations which can be translated into combinational logic.

Introduction to Bluespec  Atomicity Bluespec rules is considered as an atomic operation: meaning that once you fired a rule, the operation of the rule cannot be interrupted till the rule have finished its logic.

Introduction to Bluespec Methods Rules Methods FIFO's, memory components, other submodules Methods Rules Registers, Methods FIFO's, memory components, other submodules Registers,

The Parallelized algorithm Stage 5 – normalization using the same module as stage 2

Stage 1  Initialization.  Sequentially randomizing N particle according to GPS and INS data.  Only Write to main memory. Normalization ParticleMemory

Stage 2 Propagation: Measurement update: State vector revaluation: The above 3 modules includes a sequential calculation required a single particle at a time, Thus we can allow all the 3 modules to work in parallel.  Each particle first being propagated and than cascaded to the next two modules in parallel.  Measurement update rules works only when a GPS data is valid.  This stage already reads all N particles from the memory. Thus in order to save memory calls the measurement update module prepares the total weight for next stage. Memory Propagation State Vector Revaluation Measurement Update

Stage 3 Normalization: Resampling: Covariance matrix: Covariance matrix square root:  The covariance matrix calculation process is too big to stand the time constrains when taking in sequence to normalization.  In any Case, Normalization module cascades the data to prepare the covariance matrix square root in parallel with re-sampling modules.  At the end of normalization, if the data correction process is irrelevant, the process stops and the data is flushed. Memory NormalizationResampling Covariance calculation Memory 1Memory 2 Matrix Memory

Regularization: Reweight: Where is a randomized vector  Regularization uses the pre-prepared data of the covariance matrix square root and the resampling data and cascades the results to Rewight.  The same as in stage 2, in order to save memory call cycles, Reweight prepare the total weight for stage 5, Normalization. Stage 4 Memory NormalizationResampling Regularization Memory 2 Matrix Memory

Stage 5  Normalization The same module as in stage 2 is operating.

Quaternion to Euler and back  Those operation is a separate module that can be cascaded on the way where needed.

A word about timing  Roughly choosing a 150 MHz clock.  Total Time = 6.66 [ns] x 36 x 30,000 = 7.2 ms Number of clocksThroughputUnit 30,0001Propagation 1Measurement update 17x30,0001Normalization Follows NormalizationRe-sampling 1/17Covariance calculation 17x30,0001/17Regularization 1Re-weight 30,0001Normalization

Particles memories  Bluespec enables the user to encapsulate a Verilog code with a Bluespec methods.  The Particle memory controller was designed with 3 different spaces. 1. Main memory – for normal quaternion particles used in the routine operation of the algorithm. 2. Second and third memory – design to keep particles in their Euler angles form for the data correction process

Particles memories  Particle memory is N sequential & address independent. A Start signal is Asserted in the beginning of each stage. (inner design of the controller should control the addresses)  Read commands are given in advance by the memory controller to avoid data acquisition delay. The data is stored in a local FIFO.  The main memory controller is available at the top level design.  Note: a DDR2 optional burst write\read mode consists of 4*128 bit data that should fit the above tasks.

Covariance matrix memory  The covariance matrix calculation is a set of 17^2 multiplications per particle, creating an additive value of the complete matrix.  In order to stand in the time constrains, a single row calculation of the matrix with a data bus of 17*56 Bit need to be opened to the memory.  Concerning the above, “add” method (instead of write) is added to the covariance matrix memory. (adding entire row to the matrix SUM)  read command is done element by element.  The Covariance matrices memories is available only within the covariance matrix top module.  The Covariance matrix memory is the virtex5 internal block RAMs

Covariance matrix square root memory  The same as the Covariance matrix memory but,  Write method is done element by element [row,col]  Read method is done per Matrix row. (17*56 bit).

Modules design  The user receives an empty module, with predesigned interfaces (Methods) and inner Fifos & registers containing all the relevant data needed for a single particle calculation of its relevant algorithm phase.  In some cases, when a time constrain forces a certain register size or certain data flow, the data flow arrives at the correct size & flow sequence.

Modules design In Fifo Out Fifo Data registers Operational Rule or inner modules Single module block – for future individual design

Future tasks Project B  Understanding and creating a Bluespec wrapper for encapsulating a DDR2 memory controller for Xilinx Virtex5 FPGA.  Writing the Bluespec memory controller for the sequential Particles memory.  Simulating the controller. Future generations:  Writing all of the algorithm inner modules according to the final report descriptions of necessary constrains. The modules can be written in Verilog and encapsulated to Bluespec.

Summary  Top down design processes are easier to implement in Bluespec as no time scheduling is required.  Bluespec HDL encapsulation capabilities allows fast parallelism, simulations and test benches of large systems even if already written in Verilog.  the current BSV structure is operating properly, an inner design of each module can be done and simulated with the same code.  The Number of particles in the algorithm is open for changes without harming the algorithm operation.

The END