+PirateKitty That's the line-rate of USB 2.0, but by the time you've factor in all the protocol overheads, and time-division-multiplexing in USB, 320Mbps is about as much as you can reasonably expect in perfect conditions, with no other traffic on the bus.
Also here from EEVblog. This is a very well produced video introduction to FPGAs and what could be done with the icoBoard using Open Source tools. I found it just at the right level for me as a newcomer to FPGAs. Thanks.
Thank you for this introduction. I ony used discrete logic for my electronics hobby projects, and a major factor for that was that I didn't want to mess with the proprietary tools of FPGA vendors. I'm really glad to see a clear demonstration of using FPGAs with completely free tools, and it motivates me to finally try it myself.
Awesome 2-part video, a lot of condensed content that's really hard to find on RUclips. As for me, FPGAs and RF are part of that "almost-magic" domain, any video that brings it down to a more manageable level is really useful.
I have more experience with RF personally, so I like the way I can think about FPGAs in a similar way to analogue circuit design. Microcontrollers, on the other hand, are the domain of evil pixies.
Nice little review/tutorial. Can you maybe do a video about how to determine what type of FPGA someone would need? What specs to you have to look for etc? What is suitable for audio only (like a DSP), for video etc etc
Well done! I worked for a Clarence Lehman who wrote his own Harware Design Language. The idea being that schematics might not be the best way to discribe logic. It certainly was interesting to use computer language and hardware discription with the output being a netlist. He created the OrCAD PLD compiler language for PALs/GALs and reading the source make a lot more sense then the alternative from altera? I wish that system worked with these larger components.
Excellent video. I've got this Digilent board laying around for the past 10 years to learn about FPGA's but I never really got it to work, so your video made it less intimidating to get into FPGA's and I'll be looking to learning it again.
I bought the ICO board from DigiKey here in the states. Kinda pricey but I like the fact that it plugs directly into a PI so much. I am going to use the flatflex connectors but was taken aback at how small they are! I shoulda known :-)
eevblog guest starring was astonishing in itself, but this.... this alien.... it looks like you are doing some technology shiz-waz intsa sub! very very well constructed video plenty of crystal clear explanation, amazing work mate!
Good videos! nice work, I've also come from EEVBlog, FPGA's have caught my attention a while ago, I think you encouraged me to start doing something with it! Regards from south america, Argentina
Lots of meat in this video, well done. I'm into Xilinx more but I did do some Lattice CPLD stuff back in the early 90's. It is interesting to see how open source tools are catching up to FPGA tech allowing some of the smaller (older?) devices to be accessible if, for eg., one is mandated to work with open source tools. Dave brought me here.. and I subbed. Looking forward to more content to come in future. Cheers, - Eddy
Nice Work -- I am a late starter. Raspberry has been out for a while and now just getting into it. FPGA with V32processor is the way to go. Hopefully there is watchdog and real time clocks solutions for this.
An interesting thought I had for connecting large amounts of pins to/from an FPGA is using USB-C connectors. Those are reversible, versitile and pretty rugged.
This is super interesting... but I was surprised to see the only shop seeming to sell them only ships UPS -- which makes it more expensive for shipping than for the boards when shipping to the US. Anyone know any other retailers selling the board? I'd like to pick one up but $65 for shipping a tiny circuit board is a little crazy. And by little, I mean an order of magnitude crazy.
I wonder if you could use this for a software-defined radio TV receiver? A couple of ADCs sampling the signal from the antenna and feeding their outputs into the FPGA which does the decoding and sends the results to the Pi for playback. My main doubt about the idea is whether this particular FPGA would have enough logic to implement a DVB-T decoder. AM/FM radio might be possible, though there probably isn't much point in doing it on an FPGA other than to see if you could when they're low-enough bandwidth signals that the Pi might well be able to decode them in software.
This was all very interesting and all (I have zero experience with FPGAs, but I do wish to learn), but I still have the problem of not really understanding what FPGAs are good for. Driving an SPI-display or such can be done even without one, and reacting to some debounced button-presses isn't much different. I suppose I'm trying to ask, what sort of a thing would be difficult/slow for e.g. RPi's SoC to do, but would be a simple job with an FPGA, either on its own or as an addon?
+Nita Vesa Ever had a problem where you needed some custom silicon to solve it well? FPGAs are the next best thing. For example the ice40 FPGA could easily drive dozens of displays. Larger FPGAs are where the real magic happens with massive data handling for broadcast video, RF communication, medical imaging, high frequency trading, machine learning. These are cases where specialist silicon would be ideal, but the costs are prohibitive. For makers, FPGAs let you play with really fast devices like the pros.
Would be interesting to hear from somebody in the know: What are the specs of that RISC-V softcore on this specific board, specifically achievable clock speed since the memory is mostly off-chip? Considering an FPGA clock of 100MHz, and the fabric being 78% full with a relatively simple C program, how much more can it be pushed?
There are couple of limitations to amateur use of FPGAs. This first is the high package pin count of FPGAs, usually BGA, making it difficult to build the PCBs and place the components. The second is the high cost of the development tools. This channel appears to address both of these problems. I have used FPGAs in professional applications, but because of the above limitations I have only used PLDs in hobby applications, mainly because they are in home placable packages. I have not yet explored the videos on this channel but I do hope it also uses VHDL as well as verilog, as I am familiar with the former and have little experience of the latter, and also because VHDL is more often used in Europe,with verilog more common to the USA. I would really like to know if there is open source tools that can compile VHDL.
I'm thinking about buying a FPGA board from terasic to learn verilog / VHDL. I don't know if i should get the cyclone 5 starter kit or a simpler board. The cyclone 5 starter kit has both SRAM and DDR2, but i don't know if i will be able to figure out how to get the hard memory controller working. It also only seems to be accessible in qsys and i have no idea if it's possible to adapt the avalon bus to wishbone to use it with open source stuff. My goal is to program clones of vintage computer / game systems and maybe make my own simple CPU. The external SRAM on the board would be a great way to store the cartrige data when the embedded memory is used up by RAM and framebuffers.
18:30 Why would you want to reduce the amount of logic tiles in use? You're only using 9% of them. Surely the goal should be as close to 100% of the RAM and logic tiles, without going over, in any case?
I really like the style of your explanations, would you consider doing a few videos on PC based development please? Perhaps with some of the cheaper HX1K/8K based development boards? I’ve made multiple custom boards for micro controllers but making the jump to offloading the handling high-speed IO to FPGAs still seems to be a large step. To my mind, with all these open-source tool chains it should not be this hard.
Hi, Great job ! I would just like to send a byte or 2 of information from the rpi2 to the ICOBOARD. I need the mappings RPI2SPIICOBOARDSPIICOBOARD sram. Do you have any links to share on that ? Or a video ? Or example code ?
Certainly. Indeed I could have just configured the FPGA as wires connecting the display through to the RPi's SPI master, and remove everything else - but that wouldn't make for a very interesting demo.
I would not know what to do with one of those. Everything I want to do I can do on a regular micro controller. And those I can program using C, which I know...
The iCE40 is considered to be rather a toy by FPGA beards. They're good for glue logic, moderate-high-speed but simple data stream processing, and applications that require very precise timing/low jitter. Larger FPGAs are where the magic really happens.
FPGAs excel at very specific tasks. For example I plan on driving an iPhone display from a uC somewhere in the future (since they are decent displays you can get for under 10$ from China), and doing this within a microcontroller alone would be a nightmare. This would be a pretty nice place for an FPGA I believe since you can adapt some display standard to the display in real time with relatively low power usage. Another thing would be a small FFT processing. Of course this can be done in a microcontroller as well, but if you are working within some constraints (e.g. power usage), it can be a good idea to use an FPGA as a coprocessor for such tasks. Then again, as OTL already mentioned, you probably need DSP blocks for such tasks, of which this chip does not have any.
Michi Lo Eventually you will run into something that needs to happen very quickly and precisely, or multiple things that need to happen concurrently. Micros don't do either of these well, so this is where FPGAs come into play. As an example, a single FPGA can decode an HDMI video signal, do image processing such as scaling, merge in a separate audio signal, and send the result to an HDMI output. A micro would be hopeless for this. (Note that this is not an easy task, and there are issues around HDCP, but it gives an idea of what can be done concurrently in real time.)
I had several boards, starting with no board Lattice CPLD maybe 20 years to 15 years back. Done nothing, then Xilinx cheap eval board, I think DE-0 without VGA and so. Then Xilinx DIL module (XuLA), only tested some small blinking. Then a DE-0 Nano board, done nothing, then a Zync 7000 series with ARM, also nothing - maybe blinking and now a Gatemate from Cologne Chip with an Eval board from Olimex. They claim to support the open source way and I was able to synthetise also a blinking sample. But then I found it not working and digged into what was wrong. Slightly different scripting to program the chip from non vendor tools. Fixed. Different example pin for LED. I was expecting the FPGA_LED to blink, but it was routed to header without a LED. Maybe small design differences. But with that, I started to fix my first verilog 'bug' and adopted the script to support my USB port for that eval board. The board with an VGA and PS2 connector seems well suited for soft core SoPC's and is really a cheap no brainer (~50€). Over all, open source yosys and propably open source place and route from vendor, I need to check if their claims are true here also. Long story short, I ever felt to have locked in to the vendor tools. Cologne Chip and Gatemate seems to be another alternative up to medium sized FPGA's.
Put a piece of red electrical tape over those 7 segment LED displays so they are readable. The manufacture of those pmods really shouldn't have chose the ones with the grey background colour.
Copied from another reply: I heard some rumors about VHDL support in the works for Yosys. Also, people have used vhdl2verilog as a front-end - I heard it works ok.
Sorry if I'm being an idiot but looking through IceStorm it looks like it treats HX4K parts as if they have just as many LUTS available using it as the HX8K. Is this right or is there any special sauce I need to use to make sure I don't use too many resources?
I havn't tried the 4K parts, so I can't tell you for certain, but if you look at the big table "Here is a list of currentently supported parts..." on the IceStorm page, you can see how the part is specified to arachne-pnr. I think the 4k is just a neutered version of the 8k structure - though I don't know the details off the top of my head.
Just done more looking around and it looks like the unobtanium BlackIce board uses the HX4K and that has a few projects that go way beyond it's specs in the datasheets. It seems like it's only neutered in Lattice's tools and by the amount of I/O. I've just ordered some stuff to test this out so if anybody is interested in my results let me know.
Would all of this work on the Programmable Logic IC Development Tools iCE40-HX1K iCEstick Eval Board sold directly from Lattice? I am new to FPGA and $22 is more the sort of price I would want to pay for something that might not be what i want.
+Hyss Yeah a lot of people are using IceSticks with the IceStorm toolchain. The HX1K is much smaller of course. I also have the ice40hx8k-evn . It's cheaper than the icobard, but has no sram, and no pmod connectors (I made a special pmod adaptor board for it), and having the integration with a powerful processor like on the raspberry pi is really nice to have
How do those who are reverse engineering the FPGAs avoid copyright legal action by the device manufactures? The tool sets to develope code for these devices are usually exorbitantly expensive and usually well outside the reach of all but the most dedicated amateur constructors. The last time I looked, only Xilinx was offering a free development software,with Altera offering a cut down and limited web version of its development tools.
Both Xilinx and Intel (Altera) tools have limitations with device support with largest devices in hi-end family and onchip debugging tools. When you use subscription you get IP library that have softcore cpu and memory controllers etc. With free version you can use hard ip:s that are hard blocks in FPGA like RAM, DSP, PCIe etc. If device have hard PCIe block then it's license is paid in device price. Both have good charts what is supported free vs paid version.
Real-time ray-tracing? Though, that's been possible on the CPU since the mid-1990s. No, seriously. There's a demo from 1996 called Transgression 2, which does low-resolution real-time ray-tracing on the CPU under MS-DOS. Needed a Pentium machine, and was probably heavily optimised, but given the Pi is around ten times faster than the early Pentiums, you could probably do similar scene complexity and a bit higher resolution without even touching the GPU. Though you could probably go up an order of magnitude if you could use that instead.
Wonderful presentation, thanks for the research into future prospects too! A near future where you can cross compile for all the brands, or we have access to some low cost ice40+sdram boards (like the stm32 blue pills) gets me really excited. Especially for the prospects of retrocomputer experimentation like Multicomp, searle.hostei.com/grant/Multicomp and this discreet 7400 series cpu minnie.tuhs.org/Programs/CrazySmallCPU/
Take a look also at mystorm.uk/ - I have one of their early boards from the workshop they ran at their introduction during the Wuthering Bytes festival in Hebden Bridge in 2016 .. mystorm.uk/storm-surge-mystorm-debuts-at-oshcamp-2016/ ... I believe they've gone through a few revisions and are still in quite low volume production, but they're a great product at a great price from some great folk.
Sizz uh gee It’s a word. Syzygy, an astronomical term: en.m.wikipedia.org/wiki/Syzygy_(astronomy) Also, loved this series, but note no new ones. What happened?
mikeselectricstuff The terms used to describe FPGA bitstreams and the way they work in general is a problem atm. eg. I'm constantly battling to distance things like (good) FPGA implementations of retro computers / consoles from the word "emulation". In the generalised definition of the word, you could argue that some FPGA cores are "emulation", but the issue is that the majority of people assume that to be the same or similar to "software emulation". (which of course, it isn't at all, unless you're running a software emulator ON an FPGA core. lol) I have seen the config bitstreams referred to as "firmware" though, and I think that's fair enough as a term for the layperson. I have used the term "firmware" a few times as well, but try to avoid it if possible, and say "bitstream" instead. It is tricky not to call it firmware on an end product though, especially if you have say an ARM chip which directly configures the FPGA from SD card etc. (and / or update it's own firmware.) There aren't too many other good descriptions for the "code", apart from maybe "HDL", so I think that one is fine. ;)
This was a great demo. With all the information provided I was able to get this working on my CATBOARD which is an ice40 HX8K by Xess. github.com/develone/otl-icoboard-pmodoledrgb-demo/blob/catboard/doc/oled.pdf. I working with parallel and serial using bare metal on the PI ultibo.org/forum/viewtopic.php?f=9&t=1046
Corrections:
- The FT2232H on the icoUSBaseboard is capable of 320Mbps transfers in synchronous FIFO mode.
OpenTechLab you did great job mate but i really do not know what u have done
I believe Syzygy rhymes with synergy
+gareth ronaldo check out the source code in the show notes. It might help make things clearer.
but the data sheet for FT2232H claims 480Mbps!
www.ftdichip.com/Products/ICs/FT2232H.html
+PirateKitty That's the line-rate of USB 2.0, but by the time you've factor in all the protocol overheads, and time-division-multiplexing in USB, 320Mbps is about as much as you can reasonably expect in perfect conditions, with no other traffic on the bus.
Followed the link here from EEVBLOG. Glad I did! Most interesting, instructive, and informative!
Also here from EEVblog. This is a very well produced video introduction to FPGAs and what could be done with the icoBoard using Open Source tools. I found it just at the right level for me as a newcomer to FPGAs. Thanks.
Thank you for this introduction. I ony used discrete logic for my electronics hobby projects, and a major factor for that was that I didn't want to mess with the proprietary tools of FPGA vendors. I'm really glad to see a clear demonstration of using FPGAs with completely free tools, and it motivates me to finally try it myself.
Awesome 2-part video, a lot of condensed content that's really hard to find on RUclips. As for me, FPGAs and RF are part of that "almost-magic" domain, any video that brings it down to a more manageable level is really useful.
There's lots more FPGA and RF stuff coming. It's going to be fun!
I have more experience with RF personally, so I like the way I can think about FPGAs in a similar way to analogue circuit design. Microcontrollers, on the other hand, are the domain of evil pixies.
that's amazing... finally someone into fpgas and foss... awesome work :)
Great to see some FPGA tutorials from the core basics :)
I am going to try this out myself. Thanks for making the source code freely available for viewers to learn & try.
Got here from eevblog. Nice video, great channel. Love the focus on open source.
Nice little review/tutorial.
Can you maybe do a video about how to determine what type of FPGA someone would need?
What specs to you have to look for etc? What is suitable for audio only (like a DSP), for video etc etc
Enjoyed. Thanks. Anything to demystify these devices is appreciated.
Well done! I worked for a Clarence Lehman who wrote his own Harware Design Language. The idea being that schematics might not be the best way to discribe logic. It certainly was interesting to use computer language and hardware discription with the output being a netlist. He created the OrCAD PLD compiler language for PALs/GALs and reading the source make a lot more sense then the alternative from altera? I wish that system worked with these larger components.
Excellent video. I've got this Digilent board laying around for the past 10 years to learn about FPGA's but I never really got it to work, so your video made it less intimidating to get into FPGA's and I'll be looking to learning it again.
I bought the ICO board from DigiKey here in the states. Kinda pricey but I like the fact that it plugs directly into a PI so much. I am going to use the flatflex connectors but was taken aback at how small they are! I shoulda known :-)
eevblog guest starring was astonishing in itself, but this.... this alien.... it looks like you are doing some technology shiz-waz
intsa sub!
very very well constructed video plenty of crystal clear explanation, amazing work mate!
Good videos! nice work, I've also come from EEVBlog, FPGA's have caught my attention a while ago, I think you encouraged me to start doing something with it! Regards from south america, Argentina
12:50 the best part of this great video.
Tangobaldy has subscribed after seeing you on eevblog.
ayy. ditto!
New subscriber here! The content of your channel is awesome, you really dig into the tools and boards. That's an excellent job! Thanks!
Lots of meat in this video, well done. I'm into Xilinx more but I did do some Lattice CPLD stuff back in the early 90's. It is interesting to see how open source tools are catching up to FPGA tech allowing some of the smaller (older?) devices to be accessible if, for eg., one is mandated to work with open source tools.
Dave brought me here.. and I subbed. Looking forward to more content to come in future.
Cheers,
- Eddy
jorgedo has subscribed after seeing you on eevblog. Excellent videos, congratulations!
thanks for the videos on icoboard and FPGAs. Really good content!
COngrads on the massive subscriber upgrade!
Great video, been looking to get into FPGA coding for some personal robotics projects. Came here via EEVblog. :)
Nice Work -- I am a late starter. Raspberry has been out for a while and now just getting into it. FPGA with V32processor is the way to go. Hopefully there is watchdog and real time clocks solutions for this.
New subscriber and my jaw is hanging open.....wow, very neat.
Would love to try that SMI technique you mentioned about.
I loved this! I hope you do more intro FPGA content. Maybe cover migen/misys next?
An interesting thought I had for connecting large amounts of pins to/from an FPGA is using USB-C connectors. Those are reversible, versitile and pretty rugged.
Love the content thanks!!
This is super interesting... but I was surprised to see the only shop seeming to sell them only ships UPS -- which makes it more expensive for shipping than for the boards when shipping to the US. Anyone know any other retailers selling the board? I'd like to pick one up but $65 for shipping a tiny circuit board is a little crazy. And by little, I mean an order of magnitude crazy.
I wonder if you could use this for a software-defined radio TV receiver? A couple of ADCs sampling the signal from the antenna and feeding their outputs into the FPGA which does the decoding and sends the results to the Pi for playback.
My main doubt about the idea is whether this particular FPGA would have enough logic to implement a DVB-T decoder. AM/FM radio might be possible, though there probably isn't much point in doing it on an FPGA other than to see if you could when they're low-enough bandwidth signals that the Pi might well be able to decode them in software.
Please tell us more about Raspberry SMI.
This was all very interesting and all (I have zero experience with FPGAs, but I do wish to learn), but I still have the problem of not really understanding what FPGAs are good for. Driving an SPI-display or such can be done even without one, and reacting to some debounced button-presses isn't much different. I suppose I'm trying to ask, what sort of a thing would be difficult/slow for e.g. RPi's SoC to do, but would be a simple job with an FPGA, either on its own or as an addon?
+Nita Vesa Ever had a problem where you needed some custom silicon to solve it well? FPGAs are the next best thing. For example the ice40 FPGA could easily drive dozens of displays. Larger FPGAs are where the real magic happens with massive data handling for broadcast video, RF communication, medical imaging, high frequency trading, machine learning. These are cases where specialist silicon would be ideal, but the costs are prohibitive. For makers, FPGAs let you play with really fast devices like the pros.
Thanks, great video! You should check out the recent interview of Clifford Wolf on The Amp Hour podcast, episode #374... brilliant guy.
Would be interesting to hear from somebody in the know: What are the specs of that RISC-V softcore on this specific board, specifically achievable clock speed since the memory is mostly off-chip? Considering an FPGA clock of 100MHz, and the fabric being 78% full with a relatively simple C program, how much more can it be pushed?
There are couple of limitations to amateur use of FPGAs. This first is the high package pin count of FPGAs, usually BGA, making it difficult to build the PCBs and place the components. The second is the high cost of the development tools. This channel appears to address both of these problems. I have used FPGAs in professional applications, but because of the above limitations I have only used PLDs in hobby applications, mainly because they are in home placable packages. I have not yet explored the videos on this channel but I do hope it also uses VHDL as well as verilog, as I am familiar with the former and have little experience of the latter, and also because VHDL is more often used in Europe,with verilog more common to the USA. I would really like to know if there is open source tools that can compile VHDL.
I'm thinking about buying a FPGA board from terasic to learn verilog / VHDL. I don't know if i should get the cyclone 5 starter kit or a simpler board.
The cyclone 5 starter kit has both SRAM and DDR2, but i don't know if i will be able to figure out how to get the hard memory controller working. It also only seems to be accessible in qsys and i have no idea if it's possible to adapt the avalon bus to wishbone to use it with open source stuff.
My goal is to program clones of vintage computer / game systems and maybe make my own simple CPU. The external SRAM on the board would be a great way to store the cartrige data when the embedded memory is used up by RAM and framebuffers.
What is the pin number on the icoboard for the SPI miso ?
A7
Another great video, wish you'd made this a year ago!
18:30 Why would you want to reduce the amount of logic tiles in use? You're only using 9% of them. Surely the goal should be as close to 100% of the RAM and logic tiles, without going over, in any case?
I really like the style of your explanations, would you consider doing a few videos on PC based development please? Perhaps with some of the cheaper HX1K/8K based development boards? I’ve made multiple custom boards for micro controllers but making the jump to offloading the handling high-speed IO to FPGAs still seems to be a large step. To my mind, with all these open-source tool chains it should not be this hard.
What camera and editing software are you using?
+David Leverett Panasonic G7, and kdenlive on Ubuntu, with help from ffmpeg via some scripts.
Hi,
Great job ! I would just like to send a byte or 2 of information from the rpi2 to the ICOBOARD. I need the mappings RPI2SPIICOBOARDSPIICOBOARD sram. Do you have any links to share on that ? Or a video ? Or example code ?
Figure it out.
Is it not possible to utilize the Pi to undertake the OLED display setup so that FPGA space is not needlessly consumed?
Certainly. Indeed I could have just configured the FPGA as wires connecting the display through to the RPi's SPI master, and remove everything else - but that wouldn't make for a very interesting demo.
I would not know what to do with one of those. Everything I want to do I can do on a regular micro controller.
And those I can program using C, which I know...
The iCE40 is considered to be rather a toy by FPGA beards. They're good for glue logic, moderate-high-speed but simple data stream processing, and applications that require very precise timing/low jitter. Larger FPGAs are where the magic really happens.
FPGAs excel at very specific tasks. For example I plan on driving an iPhone display from a uC somewhere in the future (since they are decent displays you can get for under 10$ from China), and doing this within a microcontroller alone would be a nightmare. This would be a pretty nice place for an FPGA I believe since you can adapt some display standard to the display in real time with relatively low power usage.
Another thing would be a small FFT processing. Of course this can be done in a microcontroller as well, but if you are working within some constraints (e.g. power usage), it can be a good idea to use an FPGA as a coprocessor for such tasks.
Then again, as OTL already mentioned, you probably need DSP blocks for such tasks, of which this chip does not have any.
Michi Lo Eventually you will run into something that needs to happen very quickly and precisely, or multiple things that need to happen concurrently. Micros don't do either of these well, so this is where FPGAs come into play.
As an example, a single FPGA can decode an HDMI video signal, do image processing such as scaling, merge in a separate audio signal, and send the result to an HDMI output. A micro would be hopeless for this. (Note that this is not an easy task, and there are issues around HDCP, but it gives an idea of what can be done concurrently in real time.)
FPGAS tend to be better at low latency parallel processes, such as real-time audio filtering. This would require a more powerful FPGA, though.
Basically i will know, when i need one, and until then, i am better of buying a lot of Pi Zeros.
I had several boards, starting with no board Lattice CPLD maybe 20 years to 15 years back. Done nothing, then Xilinx cheap eval board, I think DE-0 without VGA and so. Then Xilinx DIL module (XuLA), only tested some small blinking. Then a DE-0 Nano board, done nothing, then a Zync 7000 series with ARM, also nothing - maybe blinking and now a Gatemate from Cologne Chip with an Eval board from Olimex. They claim to support the open source way and I was able to synthetise also a blinking sample. But then I found it not working and digged into what was wrong. Slightly different scripting to program the chip from non vendor tools. Fixed. Different example pin for LED. I was expecting the FPGA_LED to blink, but it was routed to header without a LED. Maybe small design differences.
But with that, I started to fix my first verilog 'bug' and adopted the script to support my USB port for that eval board. The board with an VGA and PS2 connector seems well suited for soft core SoPC's and is really a cheap no brainer (~50€).
Over all, open source yosys and propably open source place and route from vendor, I need to check if their claims are true here also.
Long story short, I ever felt to have locked in to the vendor tools. Cologne Chip and Gatemate seems to be another alternative up to medium sized FPGA's.
Put a piece of red electrical tape over those 7 segment LED displays so they are readable. The manufacture of those pmods really shouldn't have chose the ones with the grey background colour.
Do you know if is possible to use this toolchain with VHDL?
Copied from another reply: I heard some rumors about VHDL support in the works for Yosys. Also, people have used vhdl2verilog as a front-end - I heard it works ok.
hummm interesting...
Sorry if I'm being an idiot but looking through IceStorm it looks like it treats HX4K parts as if they have just as many LUTS available using it as the HX8K. Is this right or is there any special sauce I need to use to make sure I don't use too many resources?
I havn't tried the 4K parts, so I can't tell you for certain, but if you look at the big table "Here is a list of currentently supported parts..." on the IceStorm page, you can see how the part is specified to arachne-pnr. I think the 4k is just a neutered version of the 8k structure - though I don't know the details off the top of my head.
Just done more looking around and it looks like the unobtanium BlackIce board uses the HX4K and that has a few projects that go way beyond it's specs in the datasheets. It seems like it's only neutered in Lattice's tools and by the amount of I/O.
I've just ordered some stuff to test this out so if anybody is interested in my results let me know.
Would all of this work on the Programmable Logic IC Development Tools iCE40-HX1K iCEstick Eval Board sold directly from Lattice? I am new to FPGA and $22 is more the sort of price I would want to pay for something that might not be what i want.
+Hyss Yeah a lot of people are using IceSticks with the IceStorm toolchain. The HX1K is much smaller of course. I also have the ice40hx8k-evn . It's cheaper than the icobard, but has no sram, and no pmod connectors (I made a special pmod adaptor board for it), and having the integration with a powerful processor like on the raspberry pi is really nice to have
What´s about a 013-3 followup..?
just a shame ice storm has no vhdl support
I heard some rumors about VHDL support in the works for Yosys. Also, people have used vhdl2verilog as a front-end - I heard it works ok.
yeah, cool. It's open source, so there's nothing stopping anyone from working on it
Can you recommend a cheap kit for learning FPGA? I know digital electronics, Arduino and C.
Sub'd +1
MachXO3L Starter Kit or Altera MAX II kit with a programmer from China. Check this tutorials ruclips.net/video/SmdEP_ZsBgM/видео.html
I did also a video on my videoblog how to use FPGA to drive fullhd LVDS notebook LCD. ruclips.net/video/MXM3ovkfT74/видео.html
I'll check'em out thanks.
How do those who are reverse engineering the FPGAs avoid copyright legal action by the device manufactures? The tool sets to develope code for these devices are usually exorbitantly expensive and usually well outside the reach of all but the most dedicated amateur constructors. The last time I looked, only Xilinx was offering a free development software,with Altera offering a cut down and limited web version of its development tools.
Both Xilinx and Intel (Altera) tools have limitations with device support with largest devices in hi-end family and onchip debugging tools. When you use subscription you get IP library that have softcore cpu and memory controllers etc. With free version you can use hard ip:s that are hard blocks in FPGA like RAM, DSP, PCIe etc. If device have hard PCIe block then it's license is paid in device price. Both have good charts what is supported free vs paid version.
I wonder how viable it would be to run Linux on that softcore.
By the way, here´s the board (for germany) : shop.trenz-electronic.de/de/OnSite-Broadcast-eU/
i still dont know when i would use an fpga :|
Real-time ray-tracing? Though, that's been possible on the CPU since the mid-1990s. No, seriously. There's a demo from 1996 called Transgression 2, which does low-resolution real-time ray-tracing on the CPU under MS-DOS. Needed a Pentium machine, and was probably heavily optimised, but given the Pi is around ten times faster than the early Pentiums, you could probably do similar scene complexity and a bit higher resolution without even touching the GPU. Though you could probably go up an order of magnitude if you could use that instead.
Wonderful presentation, thanks for the research into future prospects too! A near future where you can cross compile for all the brands, or we have access to some low cost ice40+sdram boards (like the stm32 blue pills) gets me really excited. Especially for the prospects of retrocomputer experimentation like Multicomp, searle.hostei.com/grant/Multicomp and this discreet 7400 series cpu minnie.tuhs.org/Programs/CrazySmallCPU/
Take a look also at mystorm.uk/ - I have one of their early boards from the workshop they ran at their introduction during the Wuthering Bytes festival in Hebden Bridge in 2016 .. mystorm.uk/storm-surge-mystorm-debuts-at-oshcamp-2016/ ... I believe they've gone through a few revisions and are still in quite low volume production, but they're a great product at a great price from some great folk.
Sizz uh gee
It’s a word. Syzygy, an astronomical term: en.m.wikipedia.org/wiki/Syzygy_(astronomy)
Also, loved this series, but note no new ones. What happened?
Is everything you say scripted? There isn’t an ounce of fat on anything you’re saying. You’re a machine.
I do a lot of retakes until I get bored of retrying and move on.
By the way, this guy here, did a logic analyzer (32ch, 100MSPS) for this: ruclips.net/video/RBvgKYwFUBQ/видео.html
FPGA code != firmware
It does in the company I worked for previously. Therefore I tend to say firmware in lieu of a less ambiguous term.
I like calling it configuration, but I get the premise of calling firmware/code
mikeselectricstuff
The terms used to describe FPGA bitstreams and the way they work in general is a problem atm.
eg. I'm constantly battling to distance things like (good) FPGA implementations of retro computers / consoles from the word "emulation".
In the generalised definition of the word, you could argue that some FPGA cores are "emulation", but the issue is that the majority of people assume that to be the same or similar to "software emulation".
(which of course, it isn't at all, unless you're running a software emulator ON an FPGA core. lol)
I have seen the config bitstreams referred to as "firmware" though, and I think that's fair enough as a term for the layperson.
I have used the term "firmware" a few times as well, but try to avoid it if possible, and say "bitstream" instead.
It is tricky not to call it firmware on an end product though, especially if you have say an ARM chip which directly configures the FPGA from SD card etc.
(and / or update it's own firmware.)
There aren't too many other good descriptions for the "code", apart from maybe "HDL", so I think that one is fine. ;)
My feeling is that the actual FPGA firmware is »more firmer« (TM) than the bitstreams which are more wibbly-wobbly and less firmer. :-)
Deepee Ayadges
Yeah, that sounds right. lol
SYZYGY = siz-zi-gee (think sizzle-'G')
This was a great demo. With all the information provided I was able to get this working on my CATBOARD which is an ice40 HX8K by Xess. github.com/develone/otl-icoboard-pmodoledrgb-demo/blob/catboard/doc/oled.pdf. I working with parallel and serial using bare metal on the PI ultibo.org/forum/viewtopic.php?f=9&t=1046
:)