FPGARelated.com
Forums

Implement ARM cores on a FPGA chip?

Started by LucienZ September 30, 2009
Hi everyone, I am a master student and this is my first post in this
group. My research group is looking for a multicore embedded platform
for deploying an in-house developed computer vision algorithm. I've
checked some available development boards and now still weigh the
ideas in my mind.

One solution that interests me is 'synthesizable' processor cores on a
FPGA chip, where I can parallelize the data processing on different
cores. As far as I know, this solution is based on 'synthesizable'
soft-cores, e.g. MicroBlaze, Nios or ARM Cortex-M1 etc. But I've seen
one design article (carried out at NXP, the Netherlands) that claims
they have implemented two ARM926EJ-S processors on a Xilinx Virtex 4
FPGA chip. I am wondering what technologies enable this
implementation.

My current knowledge only reaches the level of HDL-based hardware
design on FPGAs (and some higher abstraction levels concerning
software), but I am not very familiar with the 'macrocells', 'hard
core IP' and digital ASIC design. I see some Virtex 4 products come
with embedded hard PowerPC blocks, but I have not seen ARM...So I
would like to ask you experienced scientists these questions:

1. How to implement one or more such ARM926EJ-S cores on a FPGA chip
(detailed information on the NXP design article is not available)? I
need some key words in this field and better with some recommended
design articles.
2. How to interpret the word 'synthesizable' with respect to soft-
cores and macrocells, respectively?
3. If someone has experiences on multicore parallel processing
development, I would be grateful if you can suggest some nice
development platforms (real-time performance is our top concern).
Probably I need to make a new post later describing the requirements=85

Thanks very much for your attention!
Lucien
LucienZ wrote:
> Hi everyone, I am a master student and this is my first post in this > group. My research group is looking for a multicore embedded platform > for deploying an in-house developed computer vision algorithm. I've > checked some available development boards and now still weigh the > ideas in my mind.
I might verify that the algorithm is amenable to parallel processing by borrowing a rack of servers before I took on building the same thing on an fpga. -- Mike Treseler
> But I've seen > one design article (carried out at NXP, the Netherlands) that claims > they have implemented two ARM926EJ-S processors on a Xilinx Virtex 4 > FPGA chip. I am wondering what technologies enable this > implementation.
The same technologies that enable any other CPU to be put on an FPGA. The ARM926EJ-S is no different, except that it will be a lot bigger and a lot slower, than other FPGA specific CPUs.
> 1. How to implement one or more such ARM926EJ-S cores on a FPGA chip
Talk to ARM, but you probably can't afford it. Jon
On Oct 1, 9:53=A0pm, Jon <j...@beniston.com> wrote:
> > But I've seen > > one design article (carried out at NXP, the Netherlands) that claims > > they have implemented two ARM926EJ-S processors on a Xilinx Virtex 4 > > FPGA chip. I am wondering what technologies enable this > > implementation. > > The same technologies that enable any other CPU to be put on an FPGA. > The ARM926EJ-S is no different, except that it will be a lot bigger > and a lot slower, than other FPGA specific CPUs. > > > 1. How to implement one or more such ARM926EJ-S cores on a FPGA chip > > Talk to ARM, but you probably can't afford it. > > Jon
http://www.elektroniknet.de/home/embeddedsystems/news/n/d/ohne-lizenz-zum-e= igenen-arm-soc-1/
> http://www.elektroniknet.de/home/embeddedsystems/news/n/d/ohne-lizenz...
That's not a 926 though, is it? Jon
On Sep 30, 10:15=A0pm, Mike Treseler <mtrese...@gmail.com> wrote:
> LucienZ wrote: > > Hi everyone, I am a master student and this is my first post in this > > group. My research group is looking for a multicore embedded platform > > for deploying an in-house developed computer vision algorithm. I've > > checked some available development boards and now still weigh the > > ideas in my mind. > > I might verify that the algorithm is amenable > to parallel processing by borrowing a rack > of servers before I took on building > the same thing on an fpga. > > =A0 =A0 =A0-- Mike Treseler
Thanks for your advice Mike! There are some obvious sections in the algorithm that I believe can be parallelized e.g. for-loops that process each line (independent on other lines) of the pixel matrix. I also plan to do some verification work before a real implementation on FPGAs. But server racks may not be easily accessible for me. So I am thinking about some tools like Pthread or OpenMP... (not used before). Do you have more suggestions for doing such a verification work?
On Oct 1, 8:53=A0pm, Jon <j...@beniston.com> wrote:
> > But I've seen > > one design article (carried out at NXP, the Netherlands) that claims > > they have implemented two ARM926EJ-S processors on a Xilinx Virtex 4 > > FPGA chip. I am wondering what technologies enable this > > implementation. > > The same technologies that enable any other CPU to be put on an FPGA. > The ARM926EJ-S is no different, except that it will be a lot bigger > and a lot slower, than other FPGA specific CPUs. > > > 1. How to implement one or more such ARM926EJ-S cores on a FPGA chip > > Talk to ARM, but you probably can't afford it. > > Jon
Thank you Jon. In my understanding, 'hard' processor cores on an FPGA are not using the FPGA fabric. They are made on the same die with FPGA fabrics by FPGA vendors e.g. PowerPC cores on Virtex products. Here the FPGA fabric is working as glue logics for interconnections or customized peripherals. Here I guess the PowerPC core on Virtex is not the same concept like Microblaze cores on Virtex. Am I right? So far I did not see a FPGA chip on market that contains a hardened ARM core on the same chip, and that is why I am asking this question. In your answer, what do you mean by 'FPGA specific CPUs'? And can you tell me more words on your mentioned 'technologies'?
On Oct 1, 9:12=A0pm, "Antti.Luk...@googlemail.com"
<antti.luk...@googlemail.com> wrote:
> On Oct 1, 9:53=A0pm, Jon <j...@beniston.com> wrote: > > > > But I've seen > > > one design article (carried out at NXP, the Netherlands) that claims > > > they have implemented two ARM926EJ-S processors on a Xilinx Virtex 4 > > > FPGA chip. I am wondering what technologies enable this > > > implementation. > > > The same technologies that enable any other CPU to be put on an FPGA. > > The ARM926EJ-S is no different, except that it will be a lot bigger > > and a lot slower, than other FPGA specific CPUs. > > > > 1. How to implement one or more such ARM926EJ-S cores on a FPGA chip > > > Talk to ARM, but you probably can't afford it. > > > Jon > > http://www.elektroniknet.de/home/embeddedsystems/news/n/d/ohne-lizenz...
Thank you too Antti. My Deutsch is poor...but I may have seen this product here: http://www.ge-research.com/arm_microcontroller.html I think they are the same thing. This is ideal for some microcontroller ASIC prototyping, but may not be very suitable for us. First I can only access the Cortex-M3 pins on one Altera FPGA, but not be able to deploy several Cortex-M3 cores on one FPGA (right?). Another thing is that I think it is too slow (50MHz) to be used for video processing.
On Oct 3, 3:37=A0am, LucienZ <lucien.zh...@gmail.com> wrote:
> On Oct 1, 9:12=A0pm, "Antti.Luk...@googlemail.com" > > > > <antti.luk...@googlemail.com> wrote: > > On Oct 1, 9:53=A0pm, Jon <j...@beniston.com> wrote: > > > > > But I've seen > > > > one design article (carried out at NXP, the Netherlands) that claim=
s
> > > > they have implemented two ARM926EJ-S processors on a Xilinx Virtex =
4
> > > > FPGA chip. I am wondering what technologies enable this > > > > implementation. > > > > The same technologies that enable any other CPU to be put on an FPGA. > > > The ARM926EJ-S is no different, except that it will be a lot bigger > > > and a lot slower, than other FPGA specific CPUs. > > > > > 1. How to implement one or more such ARM926EJ-S cores on a FPGA chi=
p
> > > > Talk to ARM, but you probably can't afford it. > > > > Jon > > >http://www.elektroniknet.de/home/embeddedsystems/news/n/d/ohne-lizenz... > > Thank you too Antti. My Deutsch is poor...but I may have seen this > product here:http://www.ge-research.com/arm_microcontroller.html > I think they are the same thing. > > This is ideal for some microcontroller ASIC prototyping, but may not > be very suitable for us. First I can only access the Cortex-M3 pins on > one Altera FPGA, but not be able to deploy several Cortex-M3 cores on > one FPGA (right?). Another thing is that I think it is too slow > (50MHz) to be used for video processing.
cortex m3 is easy obtainable a license for 1000 instances cost 2500 $ this IS common knowledge i assumed you know this Antti
LucienZ <lucien.zhang@gmail.com> wrote:

>On Oct 1, 9:12=A0pm, "Antti.Luk...@googlemail.com" ><antti.luk...@googlemail.com> wrote: >> On Oct 1, 9:53=A0pm, Jon <j...@beniston.com> wrote: >> >> > > But I've seen >> > > one design article (carried out at NXP, the Netherlands) that claims >> > > they have implemented two ARM926EJ-S processors on a Xilinx Virtex 4 >> > > FPGA chip. I am wondering what technologies enable this >> > > implementation. >> >> > The same technologies that enable any other CPU to be put on an FPGA. >> > The ARM926EJ-S is no different, except that it will be a lot bigger >> > and a lot slower, than other FPGA specific CPUs. >> >> > > 1. How to implement one or more such ARM926EJ-S cores on a FPGA chip >> >> > Talk to ARM, but you probably can't afford it. >> >> > Jon >> >> http://www.elektroniknet.de/home/embeddedsystems/news/n/d/ohne-lizenz... > >Thank you too Antti. My Deutsch is poor...but I may have seen this >product here: http://www.ge-research.com/arm_microcontroller.html >I think they are the same thing. > >This is ideal for some microcontroller ASIC prototyping, but may not >be very suitable for us. First I can only access the Cortex-M3 pins on >one Altera FPGA, but not be able to deploy several Cortex-M3 cores on >one FPGA (right?). Another thing is that I think it is too slow >(50MHz) to be used for video processing.
I very much doubt you'll get an ARM core inside an FPGA that runs fast enough. FPGAs are lousy at 'simulating' processors. Especially if you look at the MIPS per $. Implementing multiple ARM cores in an FPGA is definitily the wrong direction to solve your problem. If you want raw processing power, you should look into a PC platform or implement the algorithm in an FPGA directly IF there isn't a processor available that can do the job. I guess the project isn't big enough to go for an ASIC. -- Failure does not prove something is impossible, failure simply indicates you are not using the right tools... "If it doesn't fit, use a bigger hammer!" --------------------------------------------------------------