FPGARelated.com
Forums

EDK vs. ISE for image processing

Started by fpganovice August 17, 2006
Hi all,

I'm working on an FPGA implementation of an image processing algorithm.
 I'll be using the ML401 to do the job which has DDR memory and a VGA
port to output the image directly on screen.  Should I go with a
microblaze solution?  EDK comes with DDR and VGA controllers for this
board, however I'm not at all familiar with it regarding the buses and
stuff.  If I use ISE only, I'll probably use MIG 1.5 to generate the
memory controller and I've also found a VGA/LCD display module on
opencores.org.  So both solutions seem viable to me (or do they not?),
which path should I choose?  Please comment.  Thanks!

"fpganovice" <alecwei@gmail.com> wrote in message
news:1155833480.035692.283020@b28g2000cwb.googlegroups.com...
> Hi all, > > I'm working on an FPGA implementation of an image processing algorithm. > I'll be using the ML401 to do the job which has DDR memory and a VGA > port to output the image directly on screen. Should I go with a > microblaze solution? EDK comes with DDR and VGA controllers for this > board, however I'm not at all familiar with it regarding the buses and > stuff. If I use ISE only, I'll probably use MIG 1.5 to generate the > memory controller and I've also found a VGA/LCD display module on > opencores.org. So both solutions seem viable to me (or do they not?), > which path should I choose? Please comment. Thanks! >
If you don't need a CPU, then you don't need EDK either. If you do need a CPU, it is much easier to use EDK. However, if you decide not to use EDK you will probably have to spend more time interfacing your pieces, e.g. the opencores VGA controller probably needs a Wishbone bus... On the side note, it might be worth mentioning that some of the EDK ready-to-use cores are behind performance-wise from what is generally available, e.g. I believe MIG allows for faster DDRAM interfaces than you could achieve by using any of the EDK memory controllers. /Mikhail
Hi Mikhail,

Thanks for your reply.  The VGA core does use a Wishbone bus, and it
has built-in Wishbone master and slave interfaces.  It seems like I
just need to set some registers through the slave and get access to
external memory through the master.  Therefore I was thinking those
interfaces could connect with my FPGA hardware directly, or do I still
need something to talk to the core?

Thanks again.


MM wrote:
> "fpganovice" <alecwei@gmail.com> wrote in message > news:1155833480.035692.283020@b28g2000cwb.googlegroups.com... > > Hi all, > > > > I'm working on an FPGA implementation of an image processing algorithm. > > I'll be using the ML401 to do the job which has DDR memory and a VGA > > port to output the image directly on screen. Should I go with a > > microblaze solution? EDK comes with DDR and VGA controllers for this > > board, however I'm not at all familiar with it regarding the buses and > > stuff. If I use ISE only, I'll probably use MIG 1.5 to generate the > > memory controller and I've also found a VGA/LCD display module on > > opencores.org. So both solutions seem viable to me (or do they not?), > > which path should I choose? Please comment. Thanks! > > > > If you don't need a CPU, then you don't need EDK either. If you do need a > CPU, it is much easier to use EDK. However, if you decide not to use EDK you > will probably have to spend more time interfacing your pieces, e.g. the > opencores VGA controller probably needs a Wishbone bus... > > On the side note, it might be worth mentioning that some of the EDK > ready-to-use cores are behind performance-wise from what is generally > available, e.g. I believe MIG allows for faster DDRAM interfaces than you > could achieve by using any of the EDK memory controllers. > > > /Mikhail
"fpganovice" <alecwei@gmail.com> wrote in message
news:1155836380.092010.183830@m73g2000cwd.googlegroups.com...
> Hi Mikhail, > > Thanks for your reply. The VGA core does use a Wishbone bus, and it > has built-in Wishbone master and slave interfaces. It seems like I > just need to set some registers through the slave and get access to > external memory through the master. Therefore I was thinking those > interfaces could connect with my FPGA hardware directly, or do I still > need something to talk to the core? >
Depending on what you mean under "directly". The MIG memory controller is not aware of Wishbone... So, you will need to do a Wishbone interface for it, however simple. The same is true for the other direction... /Mikhail
Hi fpganovice,

Forget about MicroBlaze, you will never get the desired speed. Image
processing should be done in logic ONLY. Try to figure out how you can
serialize your processing algorithm to work pixel-to-pixel. This way
you probably won't even need a DDR.

There is also a Xilinx thing called Multi Port Memory Controller 2
which has a fast interface to DDR, PowePC and GigaLAN. PLB_LCD (native
LCD) controller is also included in the project cores. The only
drawback is that it consumes a lot of logic, which you can use for
image processing.

Cheers,

Guru

fpganovice wrote:
> Hi all, > > I'm working on an FPGA implementation of an image processing algorithm. > I'll be using the ML401 to do the job which has DDR memory and a VGA > port to output the image directly on screen. Should I go with a > microblaze solution? EDK comes with DDR and VGA controllers for this > board, however I'm not at all familiar with it regarding the buses and > stuff. If I use ISE only, I'll probably use MIG 1.5 to generate the > memory controller and I've also found a VGA/LCD display module on > opencores.org. So both solutions seem viable to me (or do they not?), > which path should I choose? Please comment. Thanks!
Oh yes, I forgot one more thing:

FPGA->VGA OPB bus driver was included in the Spartan3 starter kit Xpong
project - opb_color_video_ctrl_v1_00_a.

Cheers,

Guru


fpganovice wrote:
> Hi all, > > I'm working on an FPGA implementation of an image processing algorithm. > I'll be using the ML401 to do the job which has DDR memory and a VGA > port to output the image directly on screen. Should I go with a > microblaze solution? EDK comes with DDR and VGA controllers for this > board, however I'm not at all familiar with it regarding the buses and > stuff. If I use ISE only, I'll probably use MIG 1.5 to generate the > memory controller and I've also found a VGA/LCD display module on > opencores.org. So both solutions seem viable to me (or do they not?), > which path should I choose? Please comment. Thanks!
Does a ML301 has a video DAC? Opencores VGA/LCD controller needs three
8 bit DACs!!!!.

Guru



Guru wrote:
> Oh yes, I forgot one more thing: > > FPGA->VGA OPB bus driver was included in the Spartan3 starter kit Xpong > project - opb_color_video_ctrl_v1_00_a. > > Cheers, > > Guru > > > fpganovice wrote: > > Hi all, > > > > I'm working on an FPGA implementation of an image processing algorithm. > > I'll be using the ML401 to do the job which has DDR memory and a VGA > > port to output the image directly on screen. Should I go with a > > microblaze solution? EDK comes with DDR and VGA controllers for this > > board, however I'm not at all familiar with it regarding the buses and > > stuff. If I use ISE only, I'll probably use MIG 1.5 to generate the > > memory controller and I've also found a VGA/LCD display module on > > opencores.org. So both solutions seem viable to me (or do they not?), > > which path should I choose? Please comment. Thanks!
Microblaze is not so fast but why not to design microblaze plus some
hardware accelerators. It could be fast enough and easy to design, I
suppose.

/Wayne

Guru wrote:
> Hi fpganovice, > > Forget about MicroBlaze, you will never get the desired speed. Image > processing should be done in logic ONLY. Try to figure out how you can > serialize your processing algorithm to work pixel-to-pixel. This way > you probably won't even need a DDR. > > There is also a Xilinx thing called Multi Port Memory Controller 2 > which has a fast interface to DDR, PowePC and GigaLAN. PLB_LCD (native > LCD) controller is also included in the project cores. The only > drawback is that it consumes a lot of logic, which you can use for > image processing. > > Cheers, > > Guru > > fpganovice wrote: > > Hi all, > > > > I'm working on an FPGA implementation of an image processing algorithm. > > I'll be using the ML401 to do the job which has DDR memory and a VGA > > port to output the image directly on screen. Should I go with a > > microblaze solution? EDK comes with DDR and VGA controllers for this > > board, however I'm not at all familiar with it regarding the buses and > > stuff. If I use ISE only, I'll probably use MIG 1.5 to generate the > > memory controller and I've also found a VGA/LCD display module on > > opencores.org. So both solutions seem viable to me (or do they not?), > > which path should I choose? Please comment. Thanks!
Hi Wayne,

This is what I was originally thinking.  I already have a VHDL module
for image processing pixel-by-pixel.  So I was thinking of integrating
it with the microblaze and use the DDR and VGA controllers that come
with the microblaze design.


quickwayne@gmail.com wrote:
> Microblaze is not so fast but why not to design microblaze plus some > hardware accelerators. It could be fast enough and easy to design, I > suppose. > > /Wayne > > Guru wrote: > > Hi fpganovice, > > > > Forget about MicroBlaze, you will never get the desired speed. Image > > processing should be done in logic ONLY. Try to figure out how you can > > serialize your processing algorithm to work pixel-to-pixel. This way > > you probably won't even need a DDR. > > > > There is also a Xilinx thing called Multi Port Memory Controller 2 > > which has a fast interface to DDR, PowePC and GigaLAN. PLB_LCD (native > > LCD) controller is also included in the project cores. The only > > drawback is that it consumes a lot of logic, which you can use for > > image processing. > > > > Cheers, > > > > Guru > > > > fpganovice wrote: > > > Hi all, > > > > > > I'm working on an FPGA implementation of an image processing algorithm. > > > I'll be using the ML401 to do the job which has DDR memory and a VGA > > > port to output the image directly on screen. Should I go with a > > > microblaze solution? EDK comes with DDR and VGA controllers for this > > > board, however I'm not at all familiar with it regarding the buses and > > > stuff. If I use ISE only, I'll probably use MIG 1.5 to generate the > > > memory controller and I've also found a VGA/LCD display module on > > > opencores.org. So both solutions seem viable to me (or do they not?), > > > which path should I choose? Please comment. Thanks!
I'm using an ML401.  It does have a DAC from analog device.

Guru wrote:
> Does a ML301 has a video DAC? Opencores VGA/LCD controller needs three > 8 bit DACs!!!!. > > Guru > > > > Guru wrote: > > Oh yes, I forgot one more thing: > > > > FPGA->VGA OPB bus driver was included in the Spartan3 starter kit Xpong > > project - opb_color_video_ctrl_v1_00_a. > > > > Cheers, > > > > Guru > > > > > > fpganovice wrote: > > > Hi all, > > > > > > I'm working on an FPGA implementation of an image processing algorithm. > > > I'll be using the ML401 to do the job which has DDR memory and a VGA > > > port to output the image directly on screen. Should I go with a > > > microblaze solution? EDK comes with DDR and VGA controllers for this > > > board, however I'm not at all familiar with it regarding the buses and > > > stuff. If I use ISE only, I'll probably use MIG 1.5 to generate the > > > memory controller and I've also found a VGA/LCD display module on > > > opencores.org. So both solutions seem viable to me (or do they not?), > > > which path should I choose? Please comment. Thanks!