[POLL] Do you find it hard to setup FPGA-based embedded system? - Page 1
Forum section: electronics / general

author: jefflieu
author_rank: Contributor
timestamp: April 30, 2017, 11:13:26 pm
content: Do you find it difficult to set-up FPGA-based embedded system?I'm thinking of a collection of pre-verified FPGA-based embedded system binaries (NIOS/MICROBLAZE) where people can just download (the hardware definition file and the bit file) and and start C/C++ coding straight away. Just like a microcontroller kit, but you have the option of changing architecture to suit your own project. For example, having 2 or more processors instead of one, at the expense of not having hardware FIR ... something like that. For each FPGA kit we can have multiple flavours of architectures that are suitable for different projects.Would it be helpful and FPGA-based embedded system is adopted more widely?This poll is more for people who has been using other microcontrollers and never used FPGA before.Thanks!Jeff

author: ebclr
author_rank: Super Contributor
timestamp: April 30, 2017, 11:26:40 pm
content: If you need a microprocessor, buy a microprocessor FPGA is much more than a microprocessor, It's real hardware parallelism.Microblase , Micos, must be used only for the external graphical or serial interface to set/control the parametrize the actual IP you may have, Those microprocessor Ip's in recent FPGAS are already in hardware like in the Zinc-7000 ,

author: FrankBuss
author_rank: Unknown
timestamp: April 30, 2017, 11:35:06 pm
content: I agree, it doesn't make sense to use something like Nios, if you want it cheap. The FPGA resources a soft-core needs requires a much more expensive FPGA than the cost of an additional external microcontroller. I have used Nios and it is nice to have memory-map your VHDL entities, or add lots of standard peripherals as you need them, and all integrated, but unless you have very special requirements, like lots of IOs are used so that an external microcontroller can't access the FPGA with a fast parallel interface, it just doesn't make sense. Of course, if it is an integrated hard-core, like with the Xilinx Zynq, it makes sense again.

author: jefflieu
author_rank: Contributor
timestamp: May 01, 2017, 04:21:18 am
content: Probably I should have mentioned better where I'm coming from.I didn't mean to compare in professional world. I meant for hobbyists and enthusiastsThe Zynq is expensive and I think is an overkill for hobbyists.I like the NIOS, I think it can be useful for hobbyists.It has full support and potential to scale from simple application such as LED blinking to complex UI interface, network packet processing ... etc...But it's not widely used. As you guys pointed out it doesn't make sense because it is more costly to have FPGA compared to having another micro controller.But I think it CAN make sense. For example the MAXIMATOR board here is $50 EUR.http://maximator-fpga.org/I totally believe that this board can be as cool as or even cooler than the Arduino/AVR boards. How about having 2 NIOSes?So my concern was whether or not , the reason for NIOS system not being widely used in the hobbyist world is the setting-up of the hardware. or it's really something else such as cost.In other words, would a collection of different architectures that can be downloaded to the MAXIMATOR make it attractive for other microcontrollers' users?

author: ebclr
author_rank: Super Contributor
timestamp: May 01, 2017, 05:20:34 am
content: If you wanna play on FPGA, as a hobby for educational purpose, with no long-term applicability in mind, here some nice articleshttp://hackaday.com/2014/05/01/a-z80-retro-microcomputer-for-the-papilio-pro-fpga-board/http://jeelabs.org/article/1550b/

author: FrankBuss
author_rank: Unknown
timestamp: May 01, 2017, 08:27:07 am
content: Quote from: jefflieu on May 01, 2017, 04:21:18 amMaybe the entry hurdle is too high. Last time I used Nios, it was not that easy single-button click to get it running, but you had to compile the SOC design, the VHDL files, the C code etc. all in the right order and with different programs. But in order to do something useful with it, you have to learn what an FPGA is, how Nios and Eclipse works and how to program it in C and VHDL. And some people might not like it to install a 14 GB package, but this might be no problem anymore nowadays with TB disks.

author: jefflieu
author_rank: Contributor
timestamp: May 01, 2017, 12:10:29 pm
content: Exactly. That's what I feel as well.It is still not easy and involved quite a few tools to get the software run.If you have the hardware bit file, it's not that bad to write the software, compile and bundle hardware/software/bootloader into 1 flash image and download to the flash.

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: May 01, 2017, 01:07:51 pm
content: I got one these mojos to play:https://embeddedmicro.com/products/mojo-v3.html

author: NorthGuy
author_rank: Super Contributor
timestamp: May 01, 2017, 02:54:36 pm
content: FPGA is totally different from MCU, but IMHO, it is easier to work with and at the same time more powerful. Price is the biggest drawback.Of course, if you're just stitching IPs together, as you would do with Arduino modules, these two approaches may not look very different from each other.However, if you work with the FPGA fabric directly or through VHDL/Verilog, the experience is completely different from MCU.It all depends on your goals.

author: free_electron
author_rank: Super Contributor
timestamp: May 01, 2017, 03:03:10 pm
content: precompiled does not work.it would require fixed pin mappings on the fpga and you would not be able to add your own logic. the bitstream is irellevant.anyway, it is not difficult ot make a nios based system. quartus has a nice configuration tool. clikcetyclick to build the core and peripherals , assign pins and it even creates the build file for the operating system... all without writing a single line of c, vhdl or verilog.

author: rstofer
author_rank: Super Contributor
timestamp: May 01, 2017, 04:49:33 pm
content: You need to think about the broad spectrum of electronics hobbyists. Some are stuck on Ohm's Law and others have advanced degrees with skills to match (not me...). I don't think FPGAs, beyond the point of blinking an LED, are an entry level device. More often than not, you need serious hardware design skills and the ability to visualize entire systems.It seems to me that if you want an ARM processor, you buy one. OTOH, if you want a retro computer like, say, the IBM1130, you either build it with 74xxx logic or an FPGA. The FPGA is easier but it's a serious project either way. Something over 10,000 lines of code ought to do it (including peripherals).Two different things, FPGAs and uCs.I did buy an Altera prototype board and I got NIOS running, including the toolchain, but when I looked at the IDE licensing, I walked (no, ran!) away from Altera. I never went back. I'm firmly in the Xilinx camp.

author: james_s
author_rank: Super Contributor
timestamp: May 01, 2017, 06:07:00 pm
content: I use both Altera and Xilinx devices in hobby projects, the free hobby license of both IDEs. I find I like some things about one and other things about the other, there is no firm winner. I would definitely say that FPGAs are not beginner friendly, it took me a couple years of working on my own off and on before something clicked and I started to feel semi-competent writing VHDL. I do think a digital design background is more useful than software/firmware programming experience. HDL looks like a programming language but it's really not, it's a language used to describe digital hardware.

author: rstofer
author_rank: Super Contributor
timestamp: May 01, 2017, 10:37:23 pm
content: Quote from: james_s on May 01, 2017, 06:07:00 pmWhen I looked at the Altera license for the 'free' version several years back, there was a clause whereby they could cancel my license at any time in the future for no reason at all. This reminded me of UCSD cancelling all the UCSD Pascal licenses after an entire industry was created for the system. Sure, they transferred the rights to another company but those folks were selling software, not giving it away.So, once burned and all that... I just gave up on Altera and stayed with Xilinx.

author: james_s
author_rank: Super Contributor
timestamp: May 01, 2017, 10:47:11 pm
content: I suppose they could, but why would they? If they cancel the license, I'll stop using their products.Xilinx can probably do the same thing, legally speaking. For some reason the FPGA vendors have been really slow to learn that you pretty much have to give away your development software if you want people to use your products. Make money on the hardware, don't charge people money to be able to make something that will get them to buy your hardware.

author: ebclr
author_rank: Super Contributor
timestamp: May 02, 2017, 02:44:44 am
content: If you are a Richard Stallman follower you can use a GNU software

author: jefflieu
author_rank: Contributor
timestamp: May 02, 2017, 04:44:55 am
content: Quote from: rstofer on May 01, 2017, 04:49:33 pmSmall FPGAs can't do anything interesting with HDL alone.But maybe it's going to be interesting if there's a NIOS running.If you don't need custom logic, download the architecture that suits your project. The same board with sufficient LOGIC can serve both amateurs and experienced hobbyists I think.And if you want to custom logic, writing a custom peripheral and hook it up to AVALON bus would be a good starting point of learning VHDL.Quote from: free_electron on May 01, 2017, 03:03:10 pmYeah, we need Arduino model, where the interface remains the same between different development kits. Shields will be plugged in as required.Probably these 2 boards would be a good start:-http://maximator-fpga.org/-http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=218&No=1021What I'm trying to say is that FPGA-based system should be a winner (I'm not comparing against ARM or other processors that runs at hundreds MHz range). But apparently, it's not.

author: hans
author_rank: Super Contributor
timestamp: May 02, 2017, 11:15:26 am
content: Still the problem is that with a fixed bitstream, the added value of a NIOS in a FPGA with some standard peripherals is negligible to a ARM CPU. Softcore CPU's shine once you start to design custom mix or completely new peripherals designed for your application, as well as hardware acceleration of compute intensive tasks/high data rate streams.Altera has a nicetutorialhow to set up the NIOS, which is like a button course aside from anything else. Frankly if you're unfamiliar with designing VHDL, I question why you would want to start with FPGA's aside from the brag/cool factor, as you're way better of buying the latest ARM CPU offerings of vendor of choice.

author: NorthGuy
author_rank: Super Contributor
timestamp: May 02, 2017, 02:04:57 pm
content: Quote from: jefflieu on May 02, 2017, 04:44:55 amYou can do plenty of interesting things with HDL.However, if you're going to use it as an MCU, it's better to get hardware MCU. It'll be cheaper and better.

author: rstofer
author_rank: Super Contributor
timestamp: May 02, 2017, 02:39:22 pm
content: Quote from: jefflieu on May 01, 2017, 04:21:18 amAs I see it, the Maximator is using a VERY small device. I'm not sure how Altera defines Logic Element (same as LUT?) but 8k of them doesn't sound particularly useful. My Spartan 3E boards have 19512 equivalent logic cells. The Arty (Artix 7) board has 33,280 logic cells. 8k is kind of tiny!Another selection criteria is the amount of RAM, particularly BlockRAM.I think the reason the NIOS approach doesn't get much attention in the hobby community is that nobody cares. I can buy a much more capable ARM processor with a huge amount of flash and RAM plus all the peripherals, an FPU, MMU and anything else that has been dreamed up (Icache, Dcache) and I'm ready to go.Where the FPGA comes into its own is when you need custom logic or custom peripherals.I do see a need for small cores inside the FPGA. It seems to me that it would be easier to talk to some peripherals in assembly language than it would be to write HDL. I don't think C is required for the small cores. This approach might also result is a lower gate count. Even a simple File System is kind of a PITA to code in HDL.

author: Bassman59
author_rank: Super Contributor
timestamp: May 02, 2017, 08:10:59 pm
content: Quote from: james_s on May 01, 2017, 10:47:11 pmAlong these lines, Microsemi has decided that from version 11.8 of their Libero tools onward, they are charging for the "Gold" and higher tool level. This was previously free, and it's a right royal pain in the ass, since the parts we use have more than 25k logic cells and thus require that level. The license isn't particularly expensive but it makes doing firmware changes at a remote site impossible if it is locked to a local machine.

author: free_electron
author_rank: Super Contributor
timestamp: May 05, 2017, 10:18:18 pm
content: Quote from: free_electron on May 01, 2017, 03:03:10 pmYeah, we need Arduino model, where the interface remains the same between different development kits. Shields will be plugged in as required.we do NOT need arduino model ! the beauty of an fpga is that you can assign any function to any pin !i want to be able to add my own custom logic and map it to the pin i like the best ( because it makes my board layout simpler) if i need 25 pwm channels i can add those in the fpga.for that purpose bitstreams don't work. i need the core package.the best solution right now is cypress psoc.

author: jefflieu
author_rank: Contributor
timestamp: May 06, 2017, 12:00:36 am
content: Quote from: free_electron onTodayat 08:18:18 AM>Quote from: free_electron on May 02, 2017, 01:03:10 AMYeah, we need Arduino model, where the interface remains the same between different development kits. Shields will be plugged in as required.we do NOT need arduino model ! the beauty of an fpga is that you can assign any function to any pin !i want to be able to add my own custom logic and map it to the pin i like the best ( because it makes my board layout simpler) if i need 25 pwm channels i can add those in the fpga.for that purpose bitstreams don't work. i need the core package.the best solution right now is cypress psoc.If you can design your own board, there's nothing to discuss.My point was for FPGA to have a chance to "thrive" in hobbyists' world, First, FPGA development kits have to have a "standard" interface, then people can have many choices of "shields".Then, if it is difficult to setup hardware. FPGA development kit vendors should have pre-compiled bitfile with NIOS uC, timers, UART ... so that people who are familiar with uC can start straight away.As rstofer pointed out, 8K logic is tiny. Can't do much with HDL code alone.But its strength comes when you have uC running, and hobbyists can customize peripherals as required.I have this kithttp://www.alterawiki.com/wiki/BeMicro_Max_10for US$30 and I loved it. Too bad it's discontinued.With 8k Logic, I'm able to squeeze:- 2 NIOS processors- 1 SDRAM Controller- 2 x 16kB on chip RAM for each processor. Without C++ support and full printf function, 16kB is kind of plenty. But there is SDRAM to use.- 1 Timer that can be used for delay function- 1 UART- 1 Mutex for exclusive access to UART- 1 custom IO module that supports Bidirectional and PWM. IO array can be changed from 1 to 31 by Generic settings- 1 I2C master- 1 ADC block to access MAX10 ADC Core- System runs at 80MHz- And I have 2000 LUT to spare.Yes it'll be slower than the same-price ARM dev kit.But I mean, this same board can be used for lots of things for its flexibility.So the whole point of this poll is to see why no one (in hobbyists world) cares about FPGA-based embedded system.I agree that for the same price, you can have dev boards with pretty fancy processors

author: james_s
author_rank: Super Contributor
timestamp: May 06, 2017, 12:39:03 am
content: There already are some Arduino-like FPGA boards such as the Papilio. They have their place, but the form factor is also quite limiting given the small number of IO pins. I've made a number of daughterboards that plug onto cheap Chinese FPGA boards and those work well. You can do a lot without any kind of standardized board though, all you need are header pins to which you can connect any sort of module you want. It's handy to have stuff like SRAM and/or ROM on the FPGA board itself since it uses a lot of pins and may need to be high speed but much can be external. The beauty of an FPGA is that you can use almost any pin for anything you want, and the HDL can be written relatively platform agnostic and easily modified to run on whatever hardware you're using. You just need a constraints file that maps the pins.

author: up8051
author_rank: Frequent Contributor
timestamp: May 06, 2017, 10:15:39 am
content: Hi,I bought "Future Electronics Creative Development Board " witch Microsemi SmartFusion2 (in promotion only 1 cent)http://www.futureelectronics.com/en/Technologies/Product.aspx?ProductID=FUTUREM2SFEVBMICROSEMI8075272&IM=0https://www.microsemi.com/products/fpga-soc/design-resources/dev-kits/smartfusion2/future-creative-boardI will try to make my first project with FPGA SoC.I have some experience with VHDL an Xilinx ISE but I think that FPGA SoC is rather very difficult to start.Unfortunately "Future Electronics Creative Seminar Series" is not avaliable in Poland and Microsemi dosn't have own technical forum.But Smartfusion2 looks interesting for me.Regards,up8051

author: ebclr
author_rank: Super Contributor
timestamp: May 06, 2017, 11:05:15 am
content: Check the tools quality and license terms , before wasting time and money on this board

author: BrianHG
author_rank: Super Contributor
timestamp: May 06, 2017, 11:44:32 am
content: I managed a complete video switching, mixing, scaling, format converting image processor on an Altera EP3C55F780 written 95% in Verilog using Quartus II v9.1. I filled it to the rim with 3 x 32bit MCUs internal + all the graphics core & debug 100% unbreakable internal OSD & I still added an external ARM as an Ethernet bridge with TCPIP stack and it also operated as an FPGA Bootprom firmware updater and real-time battery backed clock. This was not easy, but at the time, 6 years ago, it was the only way to get the massive IO speeds & memory bandwidth for scaling & processing 2x 1080p inputs onto 2x 1080p outputs with picture-in-picture & all the controls you would expect in a rack-mount studio video scaler. Since then I havent taken on any new major FPGA projects, but, I wonder how much they advanced in speed and density since then.Note that the system would operate without the external ARM, but, it would run with it's last settings without a means of logging onto the local network. Though the front panel worked, it didn't allow access to all the functions.

author: FrankBuss
author_rank: Unknown
timestamp: May 06, 2017, 12:17:29 pm
content: For some projects the Propeller might be useful, because of the multiprocessor architecture. For their new version, they plan to implement a small CPU core for each of the 64 pins, which are powerful enough to implement things like an UART, SPI or PWM:http://forums.parallax.com/discussion/163134/propeller-2-specsLooks like an interesting idea. Some time ago I tested the first version of the Propeller and it is a nice chip, much easier to use for beginners than a FPGA, but more powerful for tasks that require lots of custom realtime IO than a standard microcontroller.

author: ebclr
author_rank: Super Contributor
timestamp: May 06, 2017, 12:40:21 pm
content: Cheap and nice board for newcomers to FPGA worldhttp://www.earthpeopletechnology.com/?wpsc-product=ept-570-ap-u2-usbpld-development-system-for-the-arduino-unohttps://www.amazon.com/Altera-CPLD-Development-Board-UnoProLogic/dp/B00EYXM56G/ref=lp_7935068011_1_1?srs=7935068011&ie=UTF8&qid=1494074362&sr=8-1

author: up8051
author_rank: Frequent Contributor
timestamp: May 06, 2017, 01:23:37 pm
content: Quote from: ebclr on May 06, 2017, 11:05:15 amDid you have bad experience with Microsemi Software?M2S025 is supported by free Libero Version.1 cent is not much moneyRegardsup8051

author: NorthGuy
author_rank: Super Contributor
timestamp: May 06, 2017, 02:25:36 pm
content: If I were to buy an introductory board, I would go for something like this:http://store.digilentinc.com/cmod-a7-breadboardable-artix-7-fpga-module/It may be a little more expensive than others, but it has a good FPGA, it is easy to connect to whatever you want, and IMHO it doesn't need anything else.

author: ebclr
author_rank: Super Contributor
timestamp: May 06, 2017, 02:48:01 pm
content: I guess a real free Libero Version does not exist, They call free but is time limited, and very few IP are provided on those licenses,Evaluation 60 daysSilver 1 yearAlso if you had experience with Altera and Xilinx tools, the customer experience if very poor on LiberoI was very excited with Microsemi SmartFusion2, but after reading the license terms and playing a little with Libero, I quick returned to Altera / Xilinx / Lattice where I fell better served

author: BrianHG
author_rank: Super Contributor
timestamp: May 06, 2017, 03:31:29 pm
content: Quote from: ebclr on May 06, 2017, 12:40:21 pmPrices are dropping. 6 years ago, anything FPGA would have been at least 200$, for the IC I was using, with DDR2/3 ram modules, EP3C55-6 altera FPGA, we are talking at least 750$ range easy.

author: ebclr
author_rank: Super Contributor
timestamp: May 06, 2017, 08:47:43 pm
content: Why are you comparing MCU IDE/toolchain with FPGA, those are 2 totally different animals, FPGA isn't a microprocessor ( can be if you want, but isn't the big deal ). If you wanna do anything cool in FPGA forget sequential things and start making everything in parallel.

author: nctnico
author_rank: Super Contributor
timestamp: May 06, 2017, 10:10:35 pm
content: Quote from: free_electron on May 05, 2017, 10:18:18 pmwe do NOT need arduino model ! the beauty of an fpga is that you can assign any function to any pin !True but having an example which works on an easy to use board makes a lot of difference. I find it easier to start from an existing design which works and then work towards my own design step-by-step than having to do everything from scratch with many things which can go wrong.

author: NorthGuy
author_rank: Super Contributor
timestamp: May 06, 2017, 11:33:03 pm
content: Quote from: nctnico on May 06, 2017, 10:10:35 pmThis is a question of preference. I find it easier to do everything step-by-step from scratch. This gives me more freedom. The start, of course will be slow and will require work, but once started, everything will fly.

author: jefflieu
author_rank: Contributor
timestamp: May 11, 2017, 01:01:01 pm
content: Quote from: evb149 on May 06, 2017, 06:30:40 pmYeah, I kind of agree. Speaking about this, I'm also annoyed by their expensive programming cable as well.Quote from: ebclr on May 06, 2017, 08:47:43 pmI'm not comparing them directly. I'm just a believer in FPGA and FPGA-based processor. I think FPGA-based micro controller could be as popular in hobbyists world as the Arduino. A $50 FPGA board can be really versatile, you can have your own logic to drive custom hardware or if you're more familiar with microcontroller and C language, just configure it as one and customise the peripherals.But reality is FPGA-based embedded system is not so popular.So I was trying to find out if I believe in the right thing, and if the reason is setting up of hardware part.Put it another way. If I sell a $50 FPGA board that is preconfigured with microprocessors system, to save you time and effort of setting up the hardware, would you consider it instead of hard micro controller. Would FPGA-based embedded system be more popular that way, if it is marketed as a customisable microcontroller kit?If the true reason is cost, then there wouldn't be any differenceThanks!

author: renewin
author_rank: Newbie
timestamp: May 12, 2017, 01:46:06 pm
content: Quote from: jefflieu on April 30, 2017, 11:13:26 pmWhy not just use a raspberry pi zero?, if you want to code C/C++ an FPGA is most likely not the right tool, besides the rasp zero is 5-10$ and FPGA is easily 50-100$.

author: nctnico
author_rank: Super Contributor
timestamp: May 12, 2017, 02:00:54 pm
content: Quote from: renewin on May 12, 2017, 01:46:06 pmIt is not about price (and the Rpi isn't a good solution for every situation). You can do a lot of interesting things if you have a softcore inside an FPGA because you can define your own peripherals and hardware accellerators. IMHO it is much easier to get going from a simple and well structured example.

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: May 12, 2017, 02:06:25 pm
content: In fact the RPis are the worst of all these fruit sbcs.