FPGARelated.com
Forums

FPGA selection recommendation

Started by Piotr Wyderski April 14, 2018
Piotr Wyderski <peter.pan@neverland.mil> wrote:
> Theo Markettos wrote: > > > What's the application that needs an on-FPGA CPU, rather than a CPU with > > attached FPGA? Could you use an existing CPU instead? eg a Beaglebone > > with FPGA wired to the PRU pins? > > This is an option, but the CPU must be capable enough to run a decent > OS, which means a fast ARM with MMU, which most likely means BGA again. > So then it is better to use a Zynq/Cyclone V with such an ARM on chip.
Well, there's things like the Ingenic X1000, which has a 1GHz single core MIPS and runs Linux. It has 64MB LPDDR in package. It's 0.8mm BGA, but you don't need to solder many of the balls to get it going, so you can do it with a simpler PCB. Though it doesn't have GPIO capability if you want that (and that would mean soldering more balls)
> > OpenRISC might be worth a look. There are some RISC-V cores but nothing > > I've seen stable enough to use for real Linux work. On all of these the > > Linux ports are a bit sketchy (you'll be managing your own toolchains and > > OS builds - no apt-get install here). > > The compiler toolchain must be existing and stable, the hobbyists will > not debug their custom GCC ports.
TBH it's no different from NIOS or Microblaze. The toolchains aren't custom, but aren't to the same level as ARM or MIPS. Yocto, Angstrom and similar make it a bit easier to build a distro for a custom platform. But expect glitches.
> > What storage will you be using for the OS and data? > > Probably a QSPI FLASH, maybe an SDHC card.
So you'll need IP cores for those too. There's an open source SD controller on OpenCores, but I'm not sure how well it works. I haven't looked at QSPI. Plus you'll need drivers (Linux+bootloader).
> > By the end of all this, you've built yourself a pretty cumbersome Linux > > system. I'd suggest trying to use a hard CPU in some way instead. > > Is there anything solderable and still capable of running a pretty heavy OS?
There's the older generation of parts with ARM7s and ARM9s in them - mostly QFP. Also the Allwinner A13 is a Cortex A8 in QFP. However you still need to attach DDR2/3 memory, which is BGA. You might be able to find DDR2 in TSOP perhaps? Apart from the goal of QFP-ness, do you actually need an FPGA for anything? Or would a suitable SoC in QFP fulfill your needs?
> > Cyclones should build with the free Quartus Lite (formerly Web edition). I > > think NIOS and other bits of basic IP should be included, but I haven't > > confirmed that. > > There are evaluation versions of the mentioned IPs, but they work as > long as the JTAG is connected. You'll not create a stand-alone device > this way.
Ah, understood. Theo
Piotr Wyderski wrote:
> The older Spartan 3Es (3S500E) or equivalent Cyclone 3 in PQFP208 > would have been aa good choice here, but I seem to be blocked by > the licenseing issues. I'd gladly stick to these platforms, but > could you please recommend me any robust open-source IP cores > which fit inside this class of FPGAs?
http://plasmacpu.no-ip.org/cpu.htm All that you need in Public Domain...
On Saturday, April 14, 2018 at 12:02:09 PM UTC-5, Joe Chisolm wrote:
> On Sat, 14 Apr 2018 17:06:37 +0200, Piotr Wyderski wrote: > > > I need an FPGA chip with about 100 GPIO pins and capable of hosting a > > CPU with an existing Linux port, mainly to run a web server. I would > > like to connect it to a 16-bit DRAM, so there should exist a memory > > controller with this feature, either a hard macro or a soft IP core. > > There should also be a fast ethernet MAC. Nothing fancy, but: > > > > 1. This is for a small non-profit project, so the IP cores must be free. > > Paying O(500) bucks for a Nios/MicroBlaze license is out of the > > question. Ditto about the MAC. As far as I know, neither Xiling nor > > Altera have a free/very cheap licensing option for non-profit > > applications, so the most obvious way is a no-go. Are there any > > *reasonable* open CPU/MAC/memory controller cores to use instead? > > $1000 per year is extremely cheap for commercial purposes, but > > a showstopper for hobby applications, where you can buy a bucket > > of STM32-class chips. > > > > 2. The chip must be hand-solderable and introduce no thermal strain > > problems. This excludes the BGA/chip scale packages and leaves only > > the QFP variants on the table. I don't care about the superior > > signal integrity benefits of the leadless packages, 50MHz is more > > than needed. But this requirement kills Zynq/Cyclone V, otherwise > > a perfect choice for this application. The PCB must be manufacturable > > in a cheap PCB shop and they can often do at most 4 layers. > > > > 3. The FPGA must be SRAM-based. > > > > 4. I don't want the SOM modules. > > > > The older Spartan 3Es (3S500E) or equivalent Cyclone 3 in PQFP208 > > would have been aa good choice here, but I seem to be blocked by > > the licenseing issues. I'd gladly stick to these platforms, but > > could you please recommend me any robust open-source IP cores > > which fit inside this class of FPGAs? > > > > Best regards, Piotr > > 100 GPIO + CPU + Ethernet + DRAM + Linux in non-BGA? Not likely > > I have not done an exhaustive search in a while but 144pin XC6SLX9 > will give you 102 IO pins. You can get a Altera EP1C12Q240C7N in a > QFP-240 with 173 IO. > > If this is a learning tool to program a FPGA I can see the need > but I scoped out FPGA vs a SOM or Raspberrry PI Compute module and > the latter always won. Even in quanity I cannot compete price wise > with a SOM or Rpi CM. A XC6SLX9 will run you 16 bucks from > Digi-Key and the EP1C12Q240C7N is $48. I dont think you will have > enough resources in the FPGA to do a soft cpu, dram controller and > ethernet block plus some gpio pins. > > You can buy a CM3 for $30. You will be hard pressed to make a board, > get the FPGA, config memory, DRAM, Phy, etc for 30 bucks unless you > are thinking mega quanity. No way you are gonna hand solder > enough boards to get in that range. > > Granted you will have to have a carrier board/socket for the CM3 or > SOM so that adds to the $30 cost. > > A uC with maybe a SPI or I2C port expander would give you more horse > power and still be hand solderable. > > -- > Chisolm > Republic of Texas
The Altera-Intel MAX X family is available in 144 pin flat-pack Jim Brakefield
Piotr Wyderski wrote:

> I need an FPGA chip with about 100 GPIO pins and capable of hosting a > CPU with an existing Linux port, mainly to run a web server. I would > like to connect it to a 16-bit DRAM, so there should exist a memory > controller with this feature, either a hard macro or a soft IP core. > There should also be a fast ethernet MAC. Nothing fancy, but: >
I don't think this is possible. The FPGAs that can support a Linux environment with a WEB SERVER are "serious" FPGAs. The lowest performance and capacity FPGAs that can support micro-style CPUs are not going to be able to handle a web server under Linux. Given that, the only ones that can are ALL going to be BGA-type packages. Jon
On 14/04/18 17:06, Piotr Wyderski wrote:
> I need an FPGA chip with about 100 GPIO pins and capable of hosting a > CPU with an existing Linux port, mainly to run a web server. I would > like to connect it to a 16-bit&nbsp;&nbsp;&nbsp;&nbsp; DRAM, so there should exist a memory > controller with this feature, either a hard macro or a soft IP core. > There should also be a fast ethernet MAC. Nothing fancy, but: > > 1. This is for a small non-profit project, so the IP cores must be free. > Paying O(500) bucks for a Nios/MicroBlaze license is out of the > question. Ditto about the MAC. As far as I know, neither Xiling nor > Altera have a free/very cheap licensing option for non-profit > applications, so the most obvious way is a no-go. Are there any > *reasonable* open CPU/MAC/memory controller cores to use instead? > $1000 per year is extremely cheap for commercial purposes, but > a showstopper for hobby applications, where you can buy a bucket > of STM32-class chips. > > 2. The chip must be hand-solderable and introduce no thermal strain > problems. This excludes the BGA/chip scale packages and leaves only > the QFP variants on the table. I don't care about the superior > signal integrity benefits of the leadless packages, 50MHz is more > than needed. But this requirement kills Zynq/Cyclone V, otherwise > a perfect choice for this application. The PCB must be manufacturable > in a cheap PCB shop and they can often do at most 4 layers. > > 3. The FPGA must be SRAM-based. > > 4. I don't want the SOM modules. > > The older Spartan 3Es (3S500E) or equivalent Cyclone 3 in PQFP208 > would have been aa good choice here, but I seem to be blocked by > the licenseing issues. I'd gladly stick to these platforms, but > could you please recommend me any robust open-source IP cores > which fit inside this class of FPGAs? > > &nbsp;&nbsp;&nbsp;&nbsp;Best regards, Piotr >
I think you might want to step back a little, and try to think what you are actually trying to achieve. What is the task at hand? What are the quantities? What is the target environment? Why are you looking for an FPGA - why are you even /considering/ making a board when you are talking about such small quantities that a $500 license fee is relevant? You say you need "a web server". That can range from something needing a multi-core multi-GHz processor, to something that can be done on a $5 microcontroller with a FreeRTOS or mbed demo program. At no stage in between is an FPGA a cost-effective way to run a web server application. You say you want 100 pins, but not what you are doing with them - perhaps they are mostly for the ram you think you need, the Ethernet interface, etc. What else do you want to do with these pins? You say you don't want SOM's or other modules - why not? They would reduce your development effort by orders of magnitude, and make certification, testing and production far simpler and cheaper. As far as I can see, your specifications here don't add up. It sounds like you have picked a "solution" of an FPGA without considering if it is the right tool for the job. And it sounds like you have a somewhat mixed up view of where the costs lie in going from vague idea to a produced product. (Most people have unrealistic views of costs - many will spend weeks of developer effort to "save" a few hundred dollars of license fees, without considering the cost of that developer time.)
On Sat, 14 Apr 2018 20:02:16 +0200, Piotr Wyderski wrote:

> Joe Chisolm wrote: > >> 100 GPIO + CPU + Ethernet + DRAM + Linux in non-BGA? Not likely > > The number of GPIOs is just a rough estimate and not all of them > must be created equal. There are dirt-cheap 16-bit SPI expander chips. > The CPU and Linux running capabilities are not related to the specific > packaging, it's just a legal (licensing) problem. > > On the market there are still the old Cyclones in PQ240, many > chips from Altera and Xilinx are available in PQ208 and a horde > of them is in PQ144. But even if you solder it succesfully to > the board, you can't do much with it only because of the legal wall. > I don't want to persuade Xilinx/Altera their policy is wrong, I don't > even want to discuss it, as it is a pure waste of time of all the > involved parties. I just consider this situation to be a law of nature > and adapt to it by avoiding the quality implementations the vendors > don't want to share. So I am open to the alternatives (Microsemi, > Lattice, open-source IP cores, legacy chips). > >> If this is a learning tool to program a FPGA I can see the need >> but I scoped out FPGA vs a SOM or Raspberrry PI Compute module and >> the latter always won. > > Exactly, but the purpose is to learn building such a system from > scratch, including PCB design, and it is beyond hobby capabilities > to re-create even an RPi.
It seems your goal is you want to do a DIY build of a system that uses a FPGA, or make the concept of the kit avilable to others so they can replicate what you have done. Design a board using a FPGA and make the FPGA do "something". That's all well and good but the board,fpga and hand solderable is a VERY small part of the equation. Where is the FPGA bit stream going to come from to "make it do something"? And no, I'm not asking about the config memory. You are going to have to be able to use the free versions of the FPGA tool chain of the vendor you choose. That's just one hurdle, the 2nd big one is getting today's hobbist to learn a HDL and how to use the tools - simulation and test bench, systhsis, P&R, build the bit stream, load it, test again. To be able to take something off of open cores and actually make it do something in your own FPGA is not a trivial task. You are not going to down load a "openrisc-v2.1.34-for-cyclone-v" bit stream and magically make it work. Just dealing with io placement will throw that off. I think it's a noble cause and I'd love to see more people know the down and dirty of how a box works but what you are asking is indeed difficult. If your hobbist target group is people doing digital design, maybe a uC with glue logic, etc is one thing but taking some person who's been doing python on linux and get them thinking hardware, VHDL or Verilog thinking, can be a rather large mountian to climb. [snip] -- Chisolm Republic of Texas
Joe Chisolm <jchisolm6@earthlink.net> wrote:
> I think it's a noble cause and I'd love to see more people know > the down and dirty of how a box works but what you are asking is > indeed difficult. If your hobbist target group is people doing > digital design, maybe a uC with glue logic, etc is one thing but > taking some person who's been doing python on linux and get them > thinking hardware, VHDL or Verilog thinking, can be a rather large > mountian to climb.
Agreed 110%. What's more, a lot of this is out of the competence of people who do software. There's a huge pile of stuff built just to get to a shell prompt. But maybe your thing doesn't work. Is it a software bug, an OS bug, a compiler bug, a cache bug, a CPU bug, a peripheral bug, a memory bug, it failed to meet timing, you failed to constrain it properly, a signal integrity bug, a power supply bug...? The reason I suggested looking again at systems-on-module, particularly the ones with hard ARM cores in them, is that you have at least a working system that will reliably boot Linux, without too much in the way of dependencies on external infrastructure - just power and connectors. The OS works, the compiler is fairly well tested, the dev environment is familiar and tools like gdb work. All of these you have to build yourself from the ground up with a soft CPU. Then, if you wish, you can build your own CPU alongside in the FPGA soft-logic. Eventually you can turn off the ARM altogether if you want. But you always have the ARM as a familiar dependable environment to fall back on as a halfway house - and to debug your soft CPU. SOMs make custom PCB assembly easier, but also people can use off-the-shelf dev boards if they want. The only thing you lose is the ability to solder your own FPGA, which is not really an advantage to anyone unless you're selling in volume. Oh, did I also mention it's hard to buy FPGAs for sane prices if you're not selling in volume? Theo
On 15/04/18 20:40, Joe Chisolm wrote:

> I think it's a noble cause and I'd love to see more people know > the down and dirty of how a box works but what you are asking is > indeed difficult. If your hobbist target group is people doing > digital design, maybe a uC with glue logic, etc is one thing but > taking some person who's been doing python on linux and get them > thinking hardware, VHDL or Verilog thinking, can be a rather large > mountian to climb. > >
That immediately brings to mind MyHDL - do the HDL design in Python. Putting a big cpu and logic for a Linux system in an FPGA is a complex task - even with a hard cpu core. I can't see how it adds anything to a "learn hardware design" board. I am not even convinced that a microcontroller beside the FPGA is worth the effort, but it could be fun to play with. Key features I would think for the system are: 1. An FPGA with some pins on LEDs, keys, etc., and some on headers. 2. An Arduino ARM compatible microcontroller and layout, with some pins on LEDs, keys, etc., and some to the FPGA. 3. A USB hub chip, with downstream components (FTDI devices or whatever) covering an FPGA interface compatible with a standard programmer for the FPGA device, a programmer interface for the Arduino chip, a serial port, and a connection to the FPGA for making your own USB device in programmable logic. 4. A few sensors, buzzers, etc. 5. Arduino compatible or Raspberry Pi compatible headers, but connected to the FPGA pins. And on the software side, a whole bunch of MyHDL examples and components for the board. Plus some in VHDL and some in Verilog, for more advanced stages.
Piotr Wyderski <peter.pan@neverland.mil> writes:

> I need an FPGA chip with about 100 GPIO pins and capable of hosting a > CPU with an existing Linux port, mainly to run a web server. I would > like to connect it to a 16-bit DRAM, so there should exist a memory > controller with this feature, either a hard macro or a soft IP core. > There should also be a fast ethernet MAC. Nothing fancy, but:
I think Lattice has the IP available for free. But no solderable FPGAs in the relevant families it seems. The other small player, Microsemi (or Microchip now) almost seems to have the FPGAs in the Igloo2 family, TQFP package with 84 I/O and a hard DDR2/DDR3 controller but I don't know about free IP. Or if the chips that are available in the TQFP are big enough for this (12k LEs, I think Altera's Max10 demo boards stuffed a Nios in their 8 k LE devices). Looks like Intel's Max 10 is the best bet for FPGA. EQFP package with 101 I/O and hard DDR2/3.
> Are there any *reasonable* open CPU/MAC/memory controller cores to use > instead?
For a soft CPU a RISC-V might be reasonable and a Linux port exists even if it's very new. RISC-V is an instruction set but as I understand it, there are loads of free implementations on Github. I don't know if decent ethernet MACs with Linux drivers are available for free. Maybe consider a separate chip? Microchip's ENC28J60 is probably one of the cheapest but it's 10 Mbps and SPI interface.
On Sat, 14 Apr 2018 17:06:37 +0200, Piotr Wyderski wrote:

> I need an FPGA chip with about 100 GPIO pins and capable of hosting a > CPU with an existing Linux port, mainly to run a web server. I would > like to connect it to a 16-bit DRAM, so there should exist a memory > controller with this feature, either a hard macro or a soft IP core. > There should also be a fast ethernet MAC. Nothing fancy, but: > > 1. This is for a small non-profit project, so the IP cores must be free. > Paying O(500) bucks for a Nios/MicroBlaze license is out of the > question. Ditto about the MAC. As far as I know, neither Xiling nor > Altera have a free/very cheap licensing option for non-profit > applications, so the most obvious way is a no-go. Are there any > *reasonable* open CPU/MAC/memory controller cores to use instead? > $1000 per year is extremely cheap for commercial purposes, but a > showstopper for hobby applications, where you can buy a bucket of > STM32-class chips.
Have you looked at the LM32 CPU core ?