Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

virtex 7 vs Zynq 7100. FPGA vs SOC. Which is better for image processing?

Status
Not open for further replies.

madnavs

Newbie level 3
Joined
Jun 8, 2015
Messages
4
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
23
I need to implement stereo vision with optical flow and navigation control on FPGA for UAV. I need to choose between virtex 7 and zynq 7100. Can you explain the advantages and disadvantages of both.
 

One has a hard ARM core, and the other doesnt but has more FPGA resources.
The advantages come down to if you need an ARM core or not...
 

An FPGA is ideal for lower complexity, higher rate processing. Optical flow seems to use a large amount of inner-products and similar functions. These parts are a good fit for an FPGA because the logic is simple, and a large number of computations are needed, and they can be done in parallel.

A CPU is ideal for higher complexity, lower rate processing. Navigational control might have aspects where a CPU is useful, though I can't really say.

This complexity-compute split has a few common solutions:
1.) external computer -- an external PC does complex algorithms at a low rate then sends commands to the FPGA.
2.) external on-board CPU -- an external CPU performs the higher complexity parts. This solution tends to have a lower CPU performance than having an external computer, but offers lower latency and higher bandwidth between the devices.
3.) SOC -- the internal CPU offers an exceptional amount of bandwidth and the lowest latency between the CPU and the FPGA as they are on the same package and were designed for this. The CPU might be slower than an external CPU though.
4.) FPGA only -- When applications don't have any high-complexity parts, FPGA-only makes sense. Doing everything in an FPGA (even when there is no performance reasons to do so) can increase design time.
 
The Virtex 7 is a high end FPGA - with lots of hardware resources.
Using it will dictate a hardware oriented solution - with some soft processor support at best.
The Zynq will allow you to implement software algorithms on a high speed processor and leverage the benefits of software/hardware approach (offloading critical time consuming tasks to the FPGA).

I don't know about "optical flow", but when it comes to "navigation & control" - I know that there's a huge software infrastructure in that field. I.E - Control Theory (PID, Fuzzy Logic), Kalman Filtering, 3D Object Math (Euler, Quaternions), etc.
This will give an edge to the Zynq SOC approach.

In the real world - if it was my decision, I'd base it mostly on the technical background of my engineers:
Do they have they have strong software / OS experience?
Have they ever implemented complex designs on an FPGA/ARM SOC before?
If there's mostly software guys - do they have a good understanding of FPGA design flow?
 
What application of image processing are you trying to implement?? If its just a image processing with just few filters and not applying any computer vision algorithms then FPGA resources are enough. If its a complex process then I suggest you go for Zynq board. Moreover if you want only basic filtering then you can use Zynq. So its a flexible option. There is a trade off with the cost of both the boards. You can also have a look at the application note from Xilinx for Zynq.

https://www.xilinx.com/support/documentation/application_notes/xapp794-1080p60-camera.pdf
 
  • Like
Reactions: madnavs

    madnavs

    Points: 2
    Helpful Answer Positive Rating
    V

    Points: 2
    Helpful Answer Positive Rating
Are there any disadvantages of of using SOC compared to FPGA
Again, SOC implies a software approach at its heart. the FPGA fabric will generally serve a secondary roll of a co-processor.
This isn't an advantage or disadvantage - just a different approach.
Usually, the more parallelism the algorithm presents the more it's suited for a pure hardware (non-SOC) implementation.

Regarding power consumption - the SOC will almost always give you better results.
This is because the processor section of the device is a highly optimized silicon section - just like any other ASIC.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top