FPGA Based Processor for Hubble Space Telescope Autonomous Docking – A Case Study Jonathan F.
Download ReportTranscript FPGA Based Processor for Hubble Space Telescope Autonomous Docking – A Case Study Jonathan F.
FPGA Based Processor for Hubble Space Telescope Autonomous Docking – A Case Study Jonathan F. Feifarek [email protected] Timothy C. Gallagher [email protected] Lockheed Martin Space Systems Co. Courtesy NASA GSFC Feifarek ‹#› MAPLD 2005/A220 Background: Need for Hubble Repair ● 4 / 1990: Hubble Space Telescope (HST) launch ● 12/1993: SM* 1- Corrective COSTAR, WFP Camera2 ● 2 / 1997: SM 2 – Add NICMOS, STIS, Thermal Blankets ● 10/1997: Hubble Operations Extended from 2005 to 2010 ● 12/1997: SM3A Replace 6 Gyros, 3 Fine Guidance Sensors ● 3 / 2002: SM3B Replace Solar Panels, NICMOS Coolant ● 3 / 2003: SM 4 Cancelled Following Columbia Disaster ● 6 / 2004: Hubble HRV Request For Proposal Issued ● 8 / 2004: Lockheed Martin awarded HST Robotic Vehicle (HRV) ● 12/2007: Target HRV Launch Date * SM = Service Mission Feifarek ‹#› MAPLD 2005/A220 HRV Mission : Autonomous Docking Mission Phase Pursuit Requirement • Orbit phasing with HST • HRV checkout • Range from HST for initial sensor acquisition Proximity • HST approach with safe-hold points • Acquire sensor data on HST orientation and rotation rate Approach • Rate matching with HST • Maneuver to HST capture point Capture/Berth • Capture HST: • Robotic Arm Captures HST Grapple Fixture • Berth to HST aft interface Feifarek ‹#› MAPLD 2005/A220 Vision Processing Algorithm Selection Criteria ● Implementation Concerns - Computational Intensive – – – ● Field Programmable Gate Array (FPGA) Flight Computer, DSP Processor Combination Implementation Approach – – – All: Conventional Programming Languages FPGA High-Order Languages (HOLs) FPGA Register Transfer Logic (RTL) in VHDL or Verilog ● ● ● Feifarek Error-prone Time consuming (calendar time plus engineering cost) Difficult to achieve bit accurate & cycle accurate operations using hand-coded conversions ‹#› MAPLD 2005/A220 Vision Processing Algorithm Selection Results ● FPGA Reconfigurable Architecture Chosen – ● Searched Internet and Conference Proceedings for comparisons between Processors and FPGA Reconfigurable Computer (RCC) ● Space Based RCC technology leaders such as Los Alamos National Labs1 and NASA2 noted FPGA system performed between 10-1000x faster then processors ● Many other references on FPGA based accelerated image processing from University studies3,4 Microprocessor Embedded in FPGA – – – Allows rapid evaluation of architecture performance Can host large amounts of existing code such as decision logic and complex sequential math For certain algorithms Floating Point is more efficiently implemented in processor code then in gates Feifarek ‹#› MAPLD 2005/A220 Vision Processing Algorithm Selection Results ● FPGA Implementation: Combination of HOL, RTL – – – – – HOL (Celoxica Handel-C) for fast and efficient implementation Provided fast development cycle needed for mission ● Quickly ported math libraries & existing C++ code ● Performance matched RTL speed, area ; slower than handcode ● Highest speed increase from hand floorplanning RTL for IO Wrapper, IO reuse, and custom-optimized code Combined the benefits of all worlds Microprocessor Implementation ● Incorporated Xilinx MicroBlaze ™ Core in FPGA ● Xilinx tools: Platform Studio© SDK / EDK suite ● Used gnu© C compiler / “gdb” debugger Feifarek ‹#› MAPLD 2005/A220 Vision Processing FPGA Development Flow System Spec FPGA C Algorithm Acceleration Nexus-PDK Implementation Provide rapid iteration of partitioning decisions throughout flow C/C++ Matlab/ Simulink C to RTL Generate human-readable VHDL and Verilog for 3rd party synthesis Algorithm Design C-Based HLL HW IP Partitioning RTL Simulator System Verification HW/SW Co-Verification Software ISS RTL C Synthesis IDE Software Compiler SW IP C to FPGA Verification Drive continuous system verification from concept to hardware EDIF Synthesis Synthesis FPGA Vendor Place & Route Direct implementation to device optimized programmable logic RTOS FPGA Used with permission of Celoxica, Inc. Feifarek ‹#› MAPLD 2005/A220 Vision Processing Card (VPC) Block Diagram RAM Serial Camera Pixels Raw images Program, Data Memory t+1 t Edge Enhanced Images Loading Loading t FPGA Memory Manager Xilinx microBlaze™ MicroProcessor Core Project Model Points (3D to 2D Images) Image Patches Pixels Project Edges Compute New Pose (Iterative) Output Pose Enhanced Pixels Pyramidal Downsampling/ Edge Enhancement Image Points Edge Single FPU Instance With Multiple Software Invocations Edge Finder Best Fit Edge Custom Floating Point Unit(FPU) uBlaze In/Out Operation Request Operator Operands In , Results Out Data Data Floating Point Unit Pipeline Scaler, Matrix */Convert uBlaze Software Libs uBlaze Hardware FPU Feifarek Memory Manager Image Points Lukas Kanade Trackers Compute New Pose Front End Image Processor ‹#› Control MAPLD 2005/A220 SerDes COP B Xilinx V2 SRAM SRAM COP A Xilinx V2 COP C Xilinx V2 SDRAM SerDes SDRAM SerDes SDRAM SerDes SDRAM Port D SRAM Port C SDRAM Port B SDRAM Port A SDRAM SDRAM SRAM Vision Processor Card Architecture COP D Xilinx V2 Internal PCI Common Interconnect Bus SRAM Flash PCI-PCI Bridge / Config Power Switch PCI Connectors Feifarek J8 ‹#› MAPLD 2005/A220 VPC Engineering Development Board Used with permission of SEAKR Engineering, Inc. Feifarek ‹#› MAPLD 2005/A220 VPC SEU Approach ● Main SEU Mitigation: Dual Voting at FPGA output – Detects SEE's but cannot correct for them – Tight power restrictions (thermal reasons) restrict triple voting – Vision Processing Algorithm tolerant of drop-outs ● Multiple camera views / algorithms into Kahlman filter ● HRV mission uses very low rate docking (1 inch / sec) ● SEU Correction at FPGA-to-Memory Interfaces ● Microprocessor returned to Reset State after each image ● Algorithm memory only 1 image deep; flushes SEU effects ● Voting, Configuration Scrubbing Performed in Rad Hard Part ● Analysis Shows Low SEE Rate (1 effective upset / 10 hours) Feifarek ‹#› MAPLD 2005/A220 VPC Sizing Results for NFIR Algorithm Single LK Tracker MicroBlaze Processor Front End + LK Tracker Total Available Percentage Utilized LUTs 2700 8000 7000 17700 67584 26% Flip Flops 2000 4000 2700 8700 67584 13% Multipliers 4 0 19 23 144 16% BlockRAMs 33 42 24 99 144 69% Multipliers 4 0 70 74 144 51% BlockRAMs 33 42 68 143 144 99% Quad LK Trackers MicroBlaze Processor Front End + LK Tracker (4) Total Available Percentage Utilized Feifarek LUTs 2700 8000 13580 24280 67584 36% Flip Flops 2000 4000 10580 16580 67584 25% ‹#› MAPLD 2005/A220 VPC Performance Results for NFIR Algorithm Function Timed Cycles/Loop Project Model Points 26000 Lktracker (hardware) 2000000 FindExtrinsic 3078000 Project edges 120000 FindEdges (hardware) 400000 Project ellipses 80000 computeAllFis 180000 computeVsumCsum 280000 computeAlpha 230000 UpdatePose 6000 getAllErrors 240000 Total 6640000 Feifarek ‹#› Loops 1 1 1 3 1 3 2 2 2 3 3 Total Cycles 26000 2000000 3078000 360000 400000 240000 360000 560000 460000 18000 720000 8222000 MAPLD 2005/A220 VPC Performance Results for NFIR Algorithm (cont.) FindExtrinsic timing Normalize SVD6x6 SVD3x3 FindHomography ProjectPoints Rest Total Feifarek Cycles/Loop Loops Total Cycles 73000 170000 35000 1100000 190000 600000 2168000 ‹#› 1 3 1 1 4 1 73000 510000 35000 1100000 760000 600000 3078000 MAPLD 2005/A220 Summary: Lessons Learned ● Using OpenGL algorithm for development hampered design ● Parallel PC board and FPGA designs helped meet schedule ● Using FPGA’s was key to meeting speed requirements ● Use of microprocessor core reduced development time ● Early allocation of algorithm to hardware/software paid off ● Use of HOLs made implementing complex tasks possible ● Engage expert tool user on team (MicroBlaze, Handel-C) ● Having reference software / test data eased verification ● Benefited from small, enthusiastic, tight knit team ● Worked around MicroBlaze libraries bugs with custom logic Feifarek ‹#› MAPLD 2005/A220 References ● ● ● ● (1) “A Space Based Reconfigurable Radio”, Michael Caffrey, Los Alamos National Laboratory, MAPLD September 2002 (2) “Developing Reconfigurable Computing Systems for Space Flight Applications”, Thomas P. Flatley, NASA Goddard Space Flight Center Greenbelt, Maryland 20771 (3) "Implementing Image Applications on FPGAs," B. Draper, R. Beveridge, W. Böhm, C. Ross and M. Chawathe. International Conference on Pattern Recognition, Quebec City, Aug. 11-15, 2002. (4) “Performance of Reconfigurable Architectures for Image-Processing Applications”, Domingo Benitez, University of Las Palmas G.C., Journal of Systems Architecture: the EUROMICRO Journal, September 2003 Feifarek ‹#› MAPLD 2005/A220