ARM + FPGA CPU Module running Yocto Linux?

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
Is there any ARM + FPGA CPU Module running linux using any of:

* NXP i.MX6/7/...
* Texas Instrument Sitara AM335x or better
* Microchip SAMA5
* Renesas RZ/xxx

It needs to be connected to a low price FPGA, Intel or Xilinx.

* Zynq or Intel SoC solutions need not apply.

Other vendors will be difficult to accept.

=====================

The CPU Module needs at least
* 128 MB RAM
* 128 MB Flash.
Connector will have
* 100 Mbps Ethernet
* 12 x 10 Mbps SPI channels (most will be implemented in the FPGA)
* 5 x 921,200 BAUD serial ports (some in FPGA perhaps)
* SD-Card
* A few custom protocol LVDS channels
=====================
The processor has to be connected to an FPGA on a suitable
interface providing 5-10 MB/second transfer rate.
The FPGA needs to have 80-100 free I/O, not including the
interface to the CPU to implement SPIs, UARTs and other custom signals
=====================
The CPU should be able to load the FPGA after reset.
Preferably right after loading the U-Boot (during the BOOTDELAY timer).
=====================
Preferably, the processor should be able to access the internals
of the FPGA like it was on the memory bus.

Putting the FPGA on a 16 bit memory interface will work

Some chip support a transparent mode where you do a memory read/write
which gets translated to a Quad SPI access, or a NAND flash controller  
access.

I.E:
     You can write to a register over SPI by:
       FPGA_REGISTER = value;
     instead of

     spi_packet = {
            .cmd = SPI_WRITE,
            .addr = FPGA_REGISTER,
            .size = sizeof(value),
            .data = &value
     }
     spi_transfer(&spi_packet);


We plan to use Yocto for developing Linux, so any Yocto solution
would be appreciated.

Looking forward to ideas.

AP

Re: ARM + FPGA CPU Module running Yocto Linux?
On Wednesday, January 30, 2019 at 12:13:34 PM UTC-5, A.P.Richelieu wrote:
Quoted text here. Click to load it

I am not familiar with modules (i.e. boards) that contain an ARM and an FPGA unless they are in the same devices which you have an unstated reason to avoid.  Care you share the rational for not using those obvious solutions?  

You don't indicate what your outline size requirements are.  Would you consider a daughter board mounted on something like a Beagle board?  What sort of quantities would you be expecting to buy?  


  Rick C.

  - Get 6 months of free supercharging
  - Tesla referral code - https://ts.la/richard11209

Re: ARM + FPGA CPU Module running Yocto Linux?
Den 2019-01-30 kl. 18:28, skrev snipped-for-privacy@gmail.com:
Quoted text here. Click to load it

We will do a base board, for which we need a CPU+FPGA module, so no  
adding two boards together.

We are looking for an existing board for some prototyping.
Not having someone design it for us. A few boards will be OK.

Ideally, the module would have a suitable connector that
can be used, or if not, it would be good to have a schematic
that can be used to design our own physical format.

Volume for the end product is 1k/year, but we expect the production
to be long lifed.

AP
Quoted text here. Click to load it


Re: ARM + FPGA CPU Module running Yocto Linux?
onsdag den 30. januar 2019 kl. 19.28.43 UTC+1 skrev A.P.Richelieu:
Quoted text here. Click to load it

if you only need a few for prototyping why does it matter if it  
is stacked boards?


Re: ARM + FPGA CPU Module running Yocto Linux?
Den 2019-01-30 kl. 20:27, skrev snipped-for-privacy@gmail.com:
Quoted text here. Click to load it

It will be mounted on a low volume test board, to test the functionality  
outside the module. There is a maximum height restriction.
The real motherboard can have a different module connector.

AP


Re: ARM + FPGA CPU Module running Yocto Linux?
onsdag den 30. januar 2019 kl. 20.35.51 UTC+1 skrev A.P.Richelieu:
Quoted text here. Click to load it

if you are doing a board anyway just put the FPGA on that


Re: ARM + FPGA CPU Module running Yocto Linux?
Den 2019-01-30 kl. 21:05, skrev snipped-for-privacy@gmail.com:
Quoted text here. Click to load it

Not going to happen.

Please everyone.
I know what I plan to do and I am not going to explain why.

I want a CPU module.
That CPU module has those restrictions I have mentioned.

That means
* no Zync
* No SoC
* no FPGA outside the module
* no CPU outside the module
* Not two PCBs
* No Marvell CPU, No CPU which is not delivered by NXP,TI, or MicroChip.
* No SPI interface between CPU and FPGA.
* Not anything that will deviate from what I described so far.

AP

Re: ARM + FPGA CPU Module running Yocto Linux?
onsdag den 30. januar 2019 kl. 21.33.14 UTC+1 skrev A.P.Richelieu:
Quoted text here. Click to load it

so you are firmly committed to a plan that involves a board you can't  
find and might not even exist  

best of luck


Re: ARM + FPGA CPU Module running Yocto Linux?
Den 2019-01-30 kl. 22:31, skrev snipped-for-privacy@gmail.com:
Quoted text here. Click to load it

If we cannot find the module, then we will design it ourselves.
Right now, I prefer getting something which is as close
to our final solution as possible, but fits from a physical point of view.

AP

Quoted text here. Click to load it


Re: ARM + FPGA CPU Module running Yocto Linux?
onsdag den 30. januar 2019 kl. 18.13.34 UTC+1 skrev A.P.Richelieu:
Quoted text here. Click to load it

why not Zynq? it has everything you ask for and the same ARM-9 as the NXP

Re: ARM + FPGA CPU Module running Yocto Linux?
Den 2019-01-30 kl. 18:44, skrev snipped-for-privacy@gmail.com:
Quoted text here. Click to load it

Because it is way too expensive.

You can get a better ARM chip for $6-7 in 1k qty.
A Cyclone 10 FPGA is $8-9.
Can You get a Zynq for $14-16 in 1k volume?
Digikey shows one off pricing for the cheapest Zynq to be $46.
If they can give 40% discount at 1k, it is still $30 = 2x price.


Another thing is that the onboard peripherals generally suck.
At least when I looked at them the last time.
I do not care to waste my time on why.

This means that we have to spend time doing peripherals in the FPGA.
They need to be supported by Linux drivers.
We do not want to add that development effort.

AP

Re: ARM + FPGA CPU Module running Yocto Linux?
On Wednesday, January 30, 2019 at 1:21:30 PM UTC-5, A.P.Richelieu wrote:
Quoted text here. Click to load it
.
XP


It is hard to know what you really need and what you may have prematurely d
iscounted from what you post above.  You say you need peripherals with Linu
x drivers, but you didn't indicate much in your original post other than va
rious peripherals you plan to mostly implement in the FPGA.  

So even with the separate CPU and FPGA approach how can anyone recommend a  
solution when we don't know all the requirements?  

One thing I do know is that the FPGA vendors will provide some amazingly go
od prices if you can commit to quantities they care about.  They want to ta
lk to you in person and are happy to do so.  That's why Digikey doesn't hav
e qty 1k pricing.  Set up some lunch dates and let Xilinx and Intel take yo
u to lunch.  They are often happy to do that.  They've done it with me.  


  Rick C.

  + Get 6 months of free supercharging
  + Tesla referral code - https://ts.la/richard11209

Re: ARM + FPGA CPU Module running Yocto Linux?
Den 2019-01-30 kl. 19:29, skrev snipped-for-privacy@gmail.com:
Quoted text here. Click to load it
We are using the Zynq in other places, so the decision has been made to  
skip it for this project due to price, but mostly because of the periperals.

I have stated my needs.
=========================
A CPU + FPGA combination.
5-10 MB/s connection to the FPGA
80-100 FPGA I/O, some with LVDS.
Memory needs
An existing board with decent Linux support.
It should not be based on Zync or SoC.
The ARM chips should be from the vendors above.


Exactly what we intend to do with the FPGA is not something I can  
comment. And it is not worthwhile to enter a discussion why a Zynq or  
SoC should fit, that train has left.

An example of something that almost works is
https://www.embeddedarm.com/products/TS-4100

This has everything, except a slow interface to the FPGA.
The MACH series is a little small though.
A Cyclone 10 or Spartan 6 are probably the minimum
level FPGA we are looking for.

https://www.embeddedarm.com/products/TS-4740
Seems to have a nice interface, but the Marvell processor is a no,no.

AP

Quoted text here. Click to load it


Re: ARM + FPGA CPU Module running Yocto Linux?
Quoted text here. Click to load it

Bear in mind that on a daughterboard you have to pay for
ARM+FPGA+DRAM+storage+PCB+connectors+vendor profit.

If you're doing a Zynq/CycloneSoC you're paying for
Zynq+DRAM+storage

It's not immediately clear that you're going to win by buying a third-party
board, especially one where you want security of supply (so no random China
board).

I could see it swing towards the daughterboard approach if this means you
can get away with a cheaper PCB (no BGAs, DDR routing).  I'm not sure if the
power supply arrangements would be simpler too.

Quoted text here. Click to load it

You mean the hard peripherals (ethernet, USB, SD, etc), usually Synopsys IP
as found in other SoCs?  Or the Xilinx/Intel soft peripherals?

Quoted text here. Click to load it

AFAICS some of your requirements (100M ethernet, SD) will be hard logic on
Zynq or Cyclone.  The others (12 SPI channels, 5 UARTs) will have to be soft
logic, at which point the driver situation is more or less the same
whichever platform you pick.

Theo

Re: ARM + FPGA CPU Module running Yocto Linux?
Den 2019-01-30 kl. 19:49, skrev Theo:
Quoted text here. Click to load it

You are trying to convince me to look at Zynq and SoC.
That is what I explicitly said I was not going to do.

AP

Re: ARM + FPGA CPU Module running Yocto Linux?
Quoted text here. Click to load it

No, I'm pointing out that your argument on costs doesn't necessarily stack
up.

The reason why the options are so constrained, and why this doesn't exist as
a popular product, is that not many Linux-capable CPUs have an external bus
interface or a high bandwidth GPIO interface.  Basically you're stuck with
PCIe (which ups the FPGA cost a lot) or things with SPI to try and squeeze
enough bandwidth out.

Things like the OMAP PRUs might do it, but I'm not sure what useful
bandwidth you can get at the end of the day (since there's no help with the
wire protocol, you have to do it all in software).

That leaves the options as roughly:

- Zynq/Intel SoC parts (on-chip FPGA)
- some Microsemi parts with a hard Cortex M (not Linux capable)
- OMAP PRU
- I think I saw a single iMX part with an external bus interface, but it was
  slow
- an FPGA with a soft core running Linux (Microblaze, NIOS-II, RISC-V of
  some kind).  These have a myriad of sharp edges, as the
  core/kernel/drivers/compiler/distro is often not very polished
- PCIe
- a few parts (eg Cavium ThunderX) which expose the cache coherency protocol
  externally.  You'd be very much on your own here.

Another horrible idea: write a NAND flash interface for the FPGA and use
that to emulate an external bus interface.  You'd have to disentangle
whatever cleverness the CPU's NAND controller tries to do, but in principle
the bandwidth is there.

Basically you've boxed yourself into a corner here, so all these options are
not very appealing.

Theo

Re: ARM + FPGA CPU Module running Yocto Linux?
On Thursday, January 31, 2019 at 6:25:32 AM UTC-5, Theo wrote:
Quoted text here. Click to load it
k
 as
Quoted text here. Click to load it
us
h
e
he
was
col
le
are

I was thinking about his bandwidth requirement.  While you say there aren't
 many ARMs running Linux with external memory interfaces (which makes me wo
nder how they build all those Beagle Bones, etc.) wouldn't an Ethernet inte
rface at 100 Mbps do the job?  Ok, I guess you'd need two since the OP want
s one for other use.  Are there any ARM CPUs with TWO Ethernet interfaces?
  

  Rick C.

  -- Get 6 months of free supercharging
  -- Tesla referral code - https://ts.la/richard11209

Re: ARM + FPGA CPU Module running Yocto Linux?

Quoted text here. Click to load it

I did find one, only checked what AP listed. Turns out Atmel nee
Microchip has ARM processors with SRAM-like external memory interfaces
in the SAMA5 family. I don't know if it's fast or easy to use from a
software point of view.

A Belgian company has apparently designed a router based on one of
these,
http://dab-embedded.com/en/cases/openwrt-atmel-sama5d3-and-max10-fpga-board/

It has an FPGA (Intel's Max 10) connected to the ARM via this external
memory interface.

Re: ARM + FPGA CPU Module running Yocto Linux?
Den 2019-02-01 kl. 14:18, skrev Anssi Saari:
Quoted text here. Click to load it

Thank You.
That is the type of answer I am looking for.
The Max 10, is most likely too small.
Cyclone 10, Spartan 6 or better in terms of logic.
Need internal SRAM for buffers as well.
No need for Gigabit transceivers though.

AP.

Re: ARM + FPGA CPU Module running Yocto Linux?
Den 2019-01-31 kl. 22:47, skrev Theo:
Quoted text here. Click to load it

The AM335x on the Beaglebone has two buses. One for DDR3 memory,
and then a second bus which can either be
* A normal non-multiplexed bus A[2x..0], D[15..0]
* A Multiplexed bus with A[2x..16], AD[15:0]
* A double Multiplexed bus with AAD[15:0].
   The Adress is sent over two cycles.
   Unfortunately, one of the write strobes is in conflict with a
   peripheral I need, so I can only do word access, not byte access to
   the FPGA.

Quoted text here. Click to load it
Plenty of them, but we are not going to run Ethernet to the FPGA...
I doubt a CPU module would do that as well.

Quoted text here. Click to load it
AP

Site Timeline