Picture Manipulation using Hardware Presents by- Uri Tsipin & Ran Mizrahi Supervisor– Moshe Porian Final Presentation – Part B Dual-semester project 10.06.2013.

Slides:



Advertisements
Similar presentations
Computer Architecture
Advertisements

Sumitha Ajith Saicharan Bandarupalli Mahesh Borgaonkar.
Programmable Interval Timer
Internal Logic Analyzer Final presentation-part B
Internal Logic Analyzer Final presentation-part A
Characterization Presentation Neural Network Implementation On FPGA Supervisor: Chen Koren Maria Nemets Maxim Zavodchik
Asynchronous Pipelined Ring Interconnection for SoC Final Presentation One semester project, Spring 2005 Supervisor: Nitzan Miron Students: Ziv Zeev Shwaitser.
Presenting: Itai Avron Supervisor: Chen Koren Final Presentation Spring 2005 Implementation of Artificial Intelligence System on FPGA.
Firmware implementation of Integer Array Sorter Characterization presentation Dec, 2010 Elad Barzilay Uri Natanzon Supervisor: Moshe Porian.
Presenting: Itai Avron Supervisor: Chen Koren Characterization Presentation Spring 2005 Implementation of Artificial Intelligence System on FPGA.
Final Presentation Neural Network Implementation On FPGA Supervisor: Chen Koren Maria Nemets Maxim Zavodchik
Characterization Presentation Neural Network Implementation On FPGA Supervisor: Chen Koren Maria Nemets Maxim Zavodchik
Presenting: Itai Avron Supervisor: Chen Koren Mid Semester Presentation Spring 2005 Implementation of Artificial Intelligence System on FPGA.
Sept EE24C Digital Electronics Project Design of a Digital Alarm Clock.
Sub-Nyquist Sampling DSP & SCD Modules Presented by: Omer Kiselov, Daniel Primor Supervised by: Ina Rivkin, Moshe Mishali Winter 2010High Speed Digital.
Picture Manipulation using Hardware Presents by- Uri Tsipin & Ran Mizrahi Supervisor– Moshe Porian Final Presentation – Part B Dual-semester project
Lab 2: Capturing and Displaying Digital Image
Final presentation – part B Olga Liberman and Yoav Shvartz Advisor: Moshe Porian April 2013 S YMBOL G ENERATOR 2 semester project.
By: Daniel BarskyNatalie Pistunovich Supervisors: Rolf HilgendorfInna Rivkin.
Presented by : Maya Oren & Chen Feigin Supervisor : Moshe Porian Lab: High Speed Digital System One Semester project – Spring
Matrix Multiplication on FPGA Final presentation One semester – winter 2014/15 By : Dana Abergel and Alex Fonariov Supervisor : Mony Orbach High Speed.
Firmware based Array Sorter and Matlab testing suite Final Presentation August 2011 Elad Barzilay & Uri Natanzon Supervisor: Moshe Porian.
Presented by : Olga Liberman & Yoav Shvartz Supervisor : Moshe Porian
3. ISP Hardware Design & Verification
Picture to be sent (640x480) Displayed Picture (800x600) HOST VGA DE2 Board.
Picture Manipulation using Hardware Presents by- Uri Tsipin & Ran Mizrahi Supervisor– Moshe Porian Final Presentation – Part A Dual-semester project
Electrocardiogram (ECG) application operation – Part B Performed By: Ran Geler Mor Levy Instructor:Moshe Porian Project Duration: 2 Semesters Spring 2012.
REGISTER MANAGEMENT TOOL Preformed by: Liat Honig Nitzan Carmel Supervisor: Moshe Porian Date: 24/11/2011, winter semester 2011 Duration: One semester.
Lecture 16: Reconfigurable Computing Applications November 3, 2004 ECE 697F Reconfigurable Computing Lecture 16 Reconfigurable Computing Applications.
LZRW3 Data Compression Core Dual semester project April 2013 Project part A final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian.
Project Characterization Implementing a compressor in software and decompression in hardware Presents by - Schreiber Beeri Yavich Alon Guided by – Porian.
Final Presentation Annual project (Part A) Winter semesterתשע"ב (2011/12) Students: Dan Hofshi, Shai Shachrur Supervisor: Mony Orbach INS/GPS navigation.
Presented by : Olga Liberman & Yoav Shvartz Supervisor : Moshe Porian
LZRW3 Decompressor dual semester project Part A Mid Presentation Students: Peleg Rosen Tal Czeizler Advisors: Moshe Porian Netanel Yamin
LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.
Electrocardiogram (ECG) application operation – Part A Performed By: Ran Geler Mor Levy Instructor:Moshe Porian Project Duration: 2 Semesters Spring 2012.
High Speed Digital Systems Lab. Agenda  High Level Architecture.  Part A.  DSP Overview. Matrix Inverse. SCD  Verification Methods. Verification Methods.
1 Implementation in Hardware of Video Processing Algorithm Performed by: Yony Dekell & Tsion Bublil Supervisor : Mike Sumszyk SPRING 2008 High Speed Digital.
Sub-Nyquist Sampling Algorithm Implementation on Flex Rio
1 by: Ilya Melamed Supervised by: Eyal Sarfati High Speed Digital Systems Lab.
PROJECT - ZYNQ Yakir Peretz Idan Homri Semester - winter 2014 Duration - one semester.
Final Presentation Implementation of DSP Algorithm on SoC Student : Einat Tevel Supervisor : Isaschar Walter Accompanying engineer : Emilia Burlak The.
FPGA Calculator Core Final Presentation Chen Zukerman Liran Moskovitch Advisor : Moshe Porian Duration: semesterial December 2012.
Project Final Semester A Presentation Implementing a compressor in software and decompression in hardware Presents by - Schreiber Beeri Yavich Alon Guided.
FPGA Calculator Core Mid Presentation Chen Zukerman Liran Moskovitch Advisor : Moshe Porian Duration: semesterial November 2011.
Flush UART RX MP Dec RAM 1 SDRAM Controller WBS WBM – Wishbone Master WBS – Wishbone Slave Mem Ctrl Wr Mem Ctrl Rd SDRAM Arbiter WBS RAM 2 MP Enc UART.
Picture Manipulation using Hardware Presents by- Uri Tsipin & Ran Mizrahi Supervisor– Moshe Porian Characterization presentation Dual-semester project.
REGISTER MANAGMENT TOOL Preformed by: Liat Honig Nitzan Carmel Supervisor: Moshe Porian Date: 29/1/2012 winter semester 2011 Duration: One semester Middle.
Picture Manipulation using Hardware Presents by- Uri Tsipin & Ran Mizrahi Supervisor– Moshe Porian Middle presentation Dual-semester project
Part A Final Dor Obstbaum Kami Elbaz Advisor: Moshe Porian August 2012 FPGA S ETTING U SING F LASH.
Menu Navigation Presented by: Tzahi Ezra Advisors: Moshe Porian Netanel Yamin One semester project Presented on: Project initiation: NOV 2014.
Menu Navigation Presented by: Tzahi Ezra Advisors: Moshe Porian Netanel Yamin One semester project Project initiation: NOV 2014 PROJECT’S MID PRESENTATION.
Mid presentation Part A Project Netanel Yamin & by: Shahar Zuta Moshe porian Advisor: Dual semester project November 2012.
Company LOGO Final presentation Spring 2008/9 Performed by: Alexander PavlovDavid Domb Supervisor: Mony Orbach GPS/INS Computing System.
CDA 4253 FPGA System Design RTL Design Methodology 1 Hao Zheng Comp Sci & Eng USF.
CDA 4253 FPGA System Design Final Project Hao Zheng Comp Sci & Eng U of South Florida 1.
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)
VLSI Design of 2-D Discrete Wavelet Transform for Area-Efficient and High- Speed Image Computing - End Presentation Presentor: Eyal Vakrat Instructor:
Internal Logic Analyzer Characterization presentation By: Moran Katz and Zvika Pery Mentor: Moshe Porian Dual-semester project Spring 2012.
Menu Navigation Presented by: Tzahi Ezra Advisors: Moshe Porian Netanel Yamin One semester project Project initiation: NOV 2014 PROJECT’S CHARACTERIZATION.
CS 1410 Intro to Computer Tecnology Computer Hardware1.
Output imageIntput image. Output imageIntput image.
Internal Logic Analyzer Middle presentation-part A By: Moran Katz and Zvika Pery Mentor: Moshe Porian Dual-semester project Spring 2012.
Lab 4 HW/SW Compression and Decompression of Captured Image
ATLAS Pre-Production ROD Status SCT Version
Low cost FPGA implimentation of tracking system from USB to VGA
RTL Design Methodology Transition from Pseudocode & Interface
RTL Design Methodology
RTL Design Methodology Transition from Pseudocode & Interface
Presentation transcript:

Picture Manipulation using Hardware Presents by- Uri Tsipin & Ran Mizrahi Supervisor– Moshe Porian Final Presentation – Part B Dual-semester project

 Intro – Problem, Project’s goals, Algorithm  Previous System – Explained  Degeneration of the system  New Top Architecture – Additions and modifications  µArchitucture- components description, simulations and testing  Problems during the project  Conclusions

 Many military and civilian application use image manipulation as an integral part of their function Helmet mounted displays Medical procedures Army surveillance gear

Image Processing algorithms such as:  Image Rotation  Zoom  Crop Image which implemented by software are:  Slow  Heavy power consumers  Large space consumers  Hardware implementation of the algorithms using Board with FPGA and External Memory

Implement the following algorithms using FPGA:  Full panoramic rotation: 0 to 360 degrees  Support of Zoom function  Support of Crop-Image function  Minimum image distortion

(x_start,y_start) Input image

TX Path Memory Management Memory Management RX Path SDRAM Controller WBS WBM WBS Host (Matlab) VGA Display IS42S16400 SDRAM WBM Display Controller Display Controller WBS WBM UART VESA Wishbone INTERCON Wishbone INTERCON

1. Making the system support low resolutions: Debugging the current system in order to learn the data flow, components, processes. Changing generics in code 2. Making the system support non compressed image Removal unnecessary components Change the matlab output.

TX Path Memory Management Memory Management RX Path SDRAM Controller WBS WBM WBS Host (Matlab) VGA Display IS42S16400 SDRAM WBM Display Controller Display Controller WBS WBM UART VESA Wishbone INTERCON Wishbone INTERCON Image Manipulation WBS WBM

TX Path Memory Management Memory Management RX Path SDRAM Controller WBS WBM WBS Host (Matlab) VGA Display IS42S16400 SDRAM WBM Display Controller Display Controller WBS WBM UART VESA Wishbone INTERCON Wishbone INTERCON Image Manipulation WBS WBM

 Parameter registers- holds user parameters (angle,zoom,crop)  Address Calculator – Calculates "matrix address" of 4 pixels that are required for the bilinear-interpolation and converts the "matrix address" into a 1D SDRAM address  Bilinear Interpolator – Calculates a mean average between 4 pixels  Image Manipulation Manger – Controller for the block  Internal RAM- 1 KB  WBM/WBS- top block interfaces WBM Image Manipulation Addr Calculator Param Registers WBS ImgMan Manger RAM ReadProc WriteProc Biliniar WBM TYPE Reg TYPE Reg

 New registers were added to the system in order to hold the user parameters, which are required for image manipulation.  Registers addresses were expanded to 5bit addresses (up-to 32 registers) Register's nameAddressSize (bytes)PurposePlace x_start_reg E2X crop coordinateImg_man_top y_start_reg 102Y crop coordinateImg_man_top zoom_reg122Zoom ratioImg_man_top cos_reg142Cosine of rotation angle, multiplied by 0x100Img_man_top Sin_reg162Sine of rotation angle, multiplied by 0x100Img_man_top WBM Addr Calculator Param Registers WBS ImgMan Manger RAM ReadProc WriteProc Biliniar WBM TYPE Reg

 Main Goal – Calculates "matrix address“ of 4 pixels that are required for the bilinear-interpolation.  Method - Given a current pixel index in the output image, the unit will calculate the origin addresses of the pixel, by the following formula:  Inputs: ◦ User parameters (zoom factor, sin/cos[angle], crop indexes) ◦ Row/Col index (current calculating coordinate)  Outputs: ◦ TL,TR,BL,BR coordinate address ◦ Delta Row, Delta Col- holds the weight for billinear interpolation. ◦ Out of range ◦ Valid,Finish WBM Addr Calculator Param Registers WBS ImgMan Manger RAM ReadProc WriteProc Biliniar WBM TYPE Reg

WBM Addr Calculator Param Registers WBS ImgMan Manger RAM ReadProc WriteProc Biliniar WBM TYPE Reg

Zoom=x4 Angle =60 deg X Start =30 Y Start =29 Zoom=x4 Angle =60 deg X Start =30 Y Start =29 Zoom_factor=(1/zoom)*128=32 Angle =cos(60)=0.5*128=64 X/Y Start – remain the Same, no fracture required Zoom_factor=(1/zoom)*128=32 Angle =cos(60)=0.5*128=64 X/Y Start – remain the Same, no fracture required  Requested decimal accuracy – 2 digits [0-0.99]  in order to work with std_logic_signals(binary) (fixed/float types experience synthesis problems)  all signals were multiplied by 2^7=128 (2^6=64-> not enough accuracy) Example (user param.) WBM Biliniar Addr_calc WBS Image Manipulation registers manager x 128

WBM Addr Calculator Param Registers WBS ImgMan Manger RAM ReadProc WriteProc Biliniar WBM TYPE Reg

 Main Goal – Control the data flow within the image manipulation block and send Read/Write requests to outer units using the wishbone protocol  Method – the controller is implemented via a several FSM’s.  Enable output for display WBM Addr Calculator Param Registers WBS ImgMan Manger RAM ReadProc WriteProc Biliniar WBM TYPE Reg

 RAM- internal RAM which stores results before write- back to SDRAM. Burst RAM size is generic bytes.  Top FSM- controls the data flow between inner units and the main system.  Read FSM- controls the read process, sub-phase to the top FSM.  Write FSM- controls the write process, sub-phase to the top FSM. Writes the RAM contents to SDRAM. WBM Addr Calculator Param Registers WBS ImgMan Manger RAM ReadProc WriteProc Biliniar WBM TYPE Reg

 WBM_rd- interface for read purposes.  WBM_wr- interface for write purposes.  WBS- interface for writing to parameter registers. WBM Addr Calculator Param Registers WBS ImgMan Manger RAM ReadProc WriteProc Biliniar WBM TYPE Reg

WBM Addr Calculator Param Registers WBS ImgMan Manger RAM ReadProc WriteProc Biliniar WBM TYPE Reg TOP FSM Read FSM Write FSM Generic RAM (1024 Bytes) Generic RAM (1024 Bytes) Coordinate Process Address Calculator Process Bilinear Process ImgMan Manger

WBM Addr Calculator Param Registers WBS ImgMan Manger RAM ReadProc WriteProc Biliniar WBM TYPE Reg

 Purpose- test functionality of the IMG_MAN new block, debug problems during integration  Implementation- Matlab, text files from ModelSim

 ModelSim generates txt file with the calculated addresses Addr_calc_tb Addr_calc Output 1,1 Output.txt Output 1,2 Output 1,3 Output 600,

Zoom=x4 Angle =60 deg X Start =30 Y Start =29 Zoom=x4 Angle =60 deg X Start =30 Y Start =29  Using Matlab, the output image is created

 ModelSim generates txt file before/after writing back the pixels values to internal RAM, in order to make sure the new block is correct WBM Image Manipulation Addr Calculator Param Registers WBS ImgMan Manger RAM ReadProc WriteProc Biliniar WBM TYPE Reg TYPE Reg

Mem Type Reg DBG MSB REG Sine Reg Uart Serial out

 Learn previous system  Degenerate system to project goals  Build new block, functional TB, interfaces to main system (Wishbone protocol)  Integrate the new block with main system  TB and debugging

333[deg]180[deg]90[deg] zoomx1.5zoom x2Zoom x1 Start Point [1,1] Start Point [200,200]

 Top down design  Pipeline  Test bench  Results comparison with Matlab (Notepad++ plugin)  Components documenting  Working on lower resolution during simulations  design with generics parameters (change resolution)  Synchronize files via SVN.

1. Working with fractures First version of addr_calc used fixed point package. Problem occurred during synthesis. Solution- work with regular std_logic_Vector, with relevant adjustments.

2. Trigonometric calculations (sine, cosine) planed to be executed by VHD process, consumes expensive hardware resources. Solution- calculate Cos/Sin by software (Matlab).

3. Timing issues- synthesis timing results did not meet the requirements. solution- break arithmetic calculations into parts (piping).

4. Resolution issues- high resolution simulations takes more than 3 hours. solution- working with lower resolution and diagnose the errors before high resolution simulations.

5. Resolution issues- failed passing simulations while upgrade to high resolution. Even though generics were used, it was hard to detect the specific errors. solution- update VHDL generics (on the main system-Pixel manager), update counters.

 Pipeline makes the throughput shorter. With “heavy” calculations, it is recommended to break the arithmetic process.

 Working with generics parameters make the design more flexible.

 Top down design divides the coding procedure into stages, allows more than one person to work on solution, allows parallel work.

TasksMonth Finish Image Man. Manager – complete read/write states November Complete Top Block, Integration with global system December Simulation of complete systemJanuary Synthesis- working with DE2February Final Presentation – part BMarch