Recoding openCV C++ project in pure verilog

M

Marvin L

Guest
I have a 6 month project to work with by hand-recoding openCV C++ project into pure RTL for FPGA usage.

I have a Xilinx Zynq FPGA and I have Vivado.

The code I am using are at https://github.com/Itseez/opencv/blob/master/modules/features2d/src/orb.cpp , https://github.com/Itseez/opencv/blob/master/modules/features2d/src/feature2d.cpp , and http://pastebin.com/N69WE89j

Anyone can advise on how to start working on this ? I have been told to scrutinise the code for any maths operations (especially floating) which I am doing now and I need to use the AXI interface and logicore IP for this, right ?

Thanks !
 
On 05/14/2016 06:16 AM, Marvin L wrote:
I have a 6 month project to work with by hand-recoding openCV C++ project into pure RTL for FPGA usage.

I have a Xilinx Zynq FPGA and I have Vivado.

The code I am using are at https://github.com/Itseez/opencv/blob/master/modules/features2d/src/orb.cpp
https://github.com/Itseez/opencv/blob/master/modules/features2d/src/feature2d.cpp
and http://pastebin.com/N69WE89j

Anyone can advise on how to start working on this ? I have been told to scrutinise the
code for any maths operations (especially floating) which I am doing now and I need to
use the AXI interface and logicore IP for this, right ?

Thanks !
Can you get the algorithm descriptions rather than the C++ code?
Optimizing an a implementation of an algorithm for software execution
and optimizing it for hardware execution are fairly different beasts.

If you cannot get the algorithm description, your best path will be to
create your own from the C++. Things like floating point operations are
important, but figuring out how to take advantage of the parallel nature
of hardware is crucial.

Good Luck,
BobH
 
On Sat, 14 May 2016 17:39:01 -0700, BobH wrote:

On 05/14/2016 06:16 AM, Marvin L wrote:
I have a 6 month project to work with by hand-recoding openCV C++
project into pure RTL for FPGA usage.

I have a Xilinx Zynq FPGA and I have Vivado.

The code I am using are at
https://github.com/Itseez/opencv/blob/master/modules/features2d/src/
orb.cpp
https://github.com/Itseez/opencv/blob/master/modules/features2d/src/
feature2d.cpp
and http://pastebin.com/N69WE89j

Anyone can advise on how to start working on this ? I have been told to
scrutinise the code for any maths operations (especially floating)
which I am doing now and I need to use the AXI interface and logicore
IP for this, right ?

Thanks !

Can you get the algorithm descriptions rather than the C++ code?
Optimizing an a implementation of an algorithm for software execution
and optimizing it for hardware execution are fairly different beasts.

If you cannot get the algorithm description, your best path will be to
create your own from the C++. Things like floating point operations are
important, but figuring out how to take advantage of the parallel nature
of hardware is crucial.

+1. Sometimes you even want to go as far as rearranging the algorithm to
take advantage of the underlying hardware -- processors and FPGA's just
do things differently, and that can bubble up pretty far in the design
chain.

--
Tim Wescott
Control systems, embedded software and circuit design
I'm looking for work! See my website if you're interested
http://www.wescottdesign.com
 

Welcome to EDABoard.com

Sponsor

Back
Top