LimeSDR FPGA "hello world"

I am interested in learning about FPGA’s and would like to use the Cyclone IV on my LimeSDR to do so. Ultimately I want to decoed GPS (time, if not location fix) on a FPGA.

I saw the thread “LimeSDR for embedded use” and @Zero posted about using LimeUtil to flash the FPGA over USB, or using Quartus (presumably with JTAG? or can you use USB with Quartus?)

Anyways I was wondering if someone has or could share a “hello world” (toggle lights on the board or something) using the FPGA on the LimeSDR while retaining its RF functionality?

Thanks,

philip

1 Like

You have two possibilities to flash FPGA on LimeSDR-USB board:

  1. Using LimeSuiteGUI or LimeUtil;
  2. Using Altera Byte Blaster programmer which is USB ↔ JTAG adapter.

I don’t believe there is something like that. I would suggest to try re-compile FPGA gateware provided. Then upload it and check if everything is working again. Then you may try to blink LED. I can help you with this.

3 Likes

Before decoding GPS signal there is a lot to learn about Verilog, half-adders and stuff. The great book on this topic I would recommend - Digital Design and Computer Architecture.

If you never programmed FPGAs before you may consider to start experimenting with a bit cheaper devices first. I personally would recommend Lattice iCEstick board. It costs about 30$ (depending on where you buy it) and there are tutorials and example projects for this board on hackaday.com. The best thing about this particular board is that there are completely free and open source development tools for it (yosys, arachne, icestorm).

The Lime FPGA source is VHDL, not Verilog (except the top level, which for some reason is Altera schematic blocks - which I haven’t seen since ~Quartus 5.0).

And IMO the Lime FPGA is not a good place to play and learn - it’s quite complex, and anyone not already familiar with the Altera tools, and VHDL, and FPGAs in general is going to have trouble following what’s going on.

A small FPGA dev board (as afiskon above recommends) is a better approach for starting out.

Nice tip @afiskon however, they are back-ordered 26 weeks, and shipping is $45

It is more convenient to see quite complex structure as a schematic instead of digging into VHDL or Verilog :slight_smile:

@gerryk I personally bought my iCEstick on AliExpress. There are still offers available ( example ) - 36$ and free shipping worldwide. There are also other ICE40HX1K based boards (on eBay as well), not iCEsticks and a little more expensive but should work as well.

UPD: Amazon.com also is worth checking.

myStorm is a nice board, but not sure what the current situation is with regards sales.

https://mystorm.uk/

1 Like

Farnell also have them… no stock until November, but shipping is free.

See also:

https://www.olimex.com/Products/FPGA/iCE40/iCE40HX1K-EVB/open-source-hardware (requires a programmer)

And:

https://www.digikey.com/product-detail/en/trenz-electronic-gmbh/TE0887-03M/1686-1083-ND/7086896 (more expensive, but nice build and can be programmed via the attached Pi)

Thanks @andrewback I am following up on the Blackice board. It has the higher end ICE40 - 3.5K LEs, and an ARM CPU, onboard i2c and spi processors and a bunch of RAM.
Not bad for €40

I would go with this one:
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=139&No=593
:slight_smile:

Or look at Terasic web site, there are more nice boards.

I’d like one of those… as a born-again student I can take advantage of academic pricing too

Thanks all. I was trying to get away with using the hardware I had on had as opposed to buying a development kit to learn but I can see the value in that. I’d like to focus on signal processing so it makes sense to me to use a board that had meaningful signals already connected to it :slight_smile: .

@zack I will start with recompiling firmware and seeing if I can tweak it. If there isn’t a hello world, with a bit of help to do so, I’d be happy to document/publish it.

@afiskon Thanks for the book recommendation.

For FPGA playtime, I just got a “Snickerdoodle” board that’s got a Zynq ARM/FPGA device on it. It wasn’t terribly expensive and i’m looking forward to playing with it. I would agree that the kind of middleware involved in the LimeSDR probably isn’t the best place to start tinkering as a beginner. I considered doing exactly the same thing until a more knowledgeable person pointed me to a cheap dev board and suggested I play there for a bit and learn to understand how VHDL works before delving into a large established codebase.

Cheers
Will

1 Like