Jump to content
  • 0

FPGA Board purchase suggestion


kampianakis

Question

Hello everyone,

 

I am interested in purchasing a simple developing board to develop (more or less) an RFID emulator. Basically the chip only has to drive an RF SPDT connected to one of its pins based on some logic that I will implement. Initially I will just just need to have some data (2-3 kB) saved in memory that I will encode using Hamming(16,10) and send it to the SPDT with a rate of 5Mbits/sec.

I am fairly new to FPGA developmen and although I have written some VHDL (a simulation of the tomasulo algorithm, a simple ALU during my undergrad), I consider myself a complete newbie. Do you guys have a recommendation for an FPGA dev kit with a simple programming interface(e.g. USB), preferably compatible with linux AND windows machines? I suspect that the logic that I am going to download will not occupy too much space so I don't need a large in terms of LUT's FPGa but I might need to do some signal processing so I would prefer something with the "newest technology" (talking newbish here).

Moreover, I am very concerned about the toolchain, I have used webkit in the past and, well I will just say that I don't expect much from the newer versions. Is there anything better or do you have any suggestions. I am not really concerned about paying for a 1000$ license if I can save a month of bug/driver/compatibility nonsense.

I also want to buy PC and I am looking for something that will be able to handle all the driver/connectivity/performance constrains that are associated with the toolchain. I have payed for a 1000$ Dell once with a fake PCIe4 port and I don't want to have the same experience again. see here

 

Thank you very much in advance

Lefteris

 

 

 

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

Hi, if I interpret correctly, I think you want to learn / refresh / learn your digital / hardware design ? Then you may need this board to do RFID design? 

If so, you can consider Basys 3 (pure FPGA dev board for newbie) or ZYBO ( FPGA + Microprocessor ARM A9) 

As I don't know the detailed use of FPGA for the RFID project, so I don't know which one is suitable for you. 

Link to comment
Share on other sites

Hello Alex

Sorry for the late response and thank you for your reply. I just re-read my post and I have not made my self completely clear so I am going to give some more details about my project. I don't want to refresh my digital/hardware design skills. I have a very specific project in mind that is part of my deliverables as a PHD candidate in EE. This project regards the development of the emulator for a 16-QAM backscatter communication modulator  that operates at 96Mbits/sec. The backscatter modulator is described here:

https://www.dropbox.com/s/s22pjxfg4xy52oy/06193049.pdf?dl=0

What I want to develop eventually is the logic that drives the RF SP16T switch that generates the symbols.

First I will start with the simple case of a BPSK modulator that controls a single RF SPDT to emulate the functionality of the BPSK chip that was developed here:

https://www.dropbox.com/s/zgnyt12b3iaxxrt/06107769.pdf?dl=0

I will start with something simple like having some pre-saved data  in memory and shifting them out to the modulator (SPDT) and move on to somewhat more complex logic like Hamming(16,11) and manchester encoding of the pre-saved data. 

http://en.wikipedia.org/wiki/Manchester_code

http://en.wikipedia.org/wiki/Hamming_code

Then I will move on to the project that controls  the logic for the SP16T for the QAM modulation. Now I don't think I will require very complex or large FPGAs since, at least initially I will only need a few shift registers and few kB of memory. After that the Hamming and manchester encoding shouldn't require much logic either. I am asking for help because I don't know what to buy from Digilent that would be easily programmable/debuggable and I am also asking for the toolchain that can provide that as well.

Sorry for the dropbox links but the papers are on IEEExplore and I am not sure if everyone has access to them. 

Thanks

Lefteris

 

 

Link to comment
Share on other sites

Interesting project!

Pretty much any FPGA will meet your needs. The Basys3 recommended by Alex is pretty good - it has about 1.8 Mbits of memory that could be used to play back predefined sequences, and plenty of logic for ECCs and other coding schemes. Each of the 100 or so dual-port RAM blocks can be configured as 16k x 1 ROMs, so hook one of them to a 14 bit counter out you are generating your bits.

There are three things that I would double-check before your purchase. 

1. Will you eventually need some way of interfacing to a PC or laptop to send near real-time sequences? If so, as far as I know the Basys3 is limited to about megabit data rates as the USB UART, which seems to be the only on-board interface for talking with a host. The older boards (e.g. Nexys2) have a USB enhanced parallel port interface, and can transfer data at a far higher rate (10MB/s or so), so that might be an advantage to using an older board. Also being able to dynamically change the sequences might be a big win (or it might be of no use at all...)

2. What clocking signals will your design need? The Basys3 has a 100MHz reference clock on it, and if you want to use 96MHz you have a few few low hoops to jump through (using a PLL to divide by 25 and then multiply by 24). In doing so you might end up with unwanted frequency domain stuff in your output. It might be perfectly fine (after all, the jitter can only be a fraction of a ns or so), but I don't know enough about RF to provide any useful advice. If you have access to a similar FPGA board and test gear you might want to assess this before going to far, just in case it becomes an big issue once you have sunk a lot of time into the design.

3. How are you going to physically interface to the rest of your design. Are the PMOD connectors up to the job of sending data at the rate you want? You definitely won't want a mess of jumper wires for anything above a few Mb/s, and you might have signal integrity issues if you plan on having any cables in there at all and are running > 10 MB/s (numbers from practical experience of interfacing a camera module at 25Mb/s).

MIke

Link to comment
Share on other sites

Hello Mike

Thanks for your reply!

So I have a few specification updates on my end. I just realized that it would be highly convenient for my application to have a programmable device that can retain its memory/functionality regardless even when it is rebooted. I know that FPGAs cannot do that, at least with a default setup. However, some USRPs from Ettus can store the FPGA binary file to some sort of non-volatile memory and retain the same functionality even after power-down. Do you know the configuration with which I can achieve such functionality?Since, at least initially I don't want to do something other than shift bits to a transistor basically, I was thinking of CPLDs but I don't think that CPLD's can match my rate specifications. Also I know that I can use the Webpack to program CPLDs but has anyone had any experience with the toolchain? 

That said​ , let me answer your precisely put questions:

1) Will you eventually need some way of interfacing to a PC or laptop to send near real-time sequences?

Nope. In the first phase of my project I will just save a set of pre-stored data and shift them out really fast to my  modulator. The next step would be to encode the data but again the encoding will involve pre-saved data.

2) What clocking signals will your design need?

The end-goal of the project is to produce symbols with a rate of 96 symbolspersecond /16 bitspersymbol  = 6Mbits/sec. In other words, the rate at which I will need to control my output ports will actually be 6MHz not 96. Sorry for not clarifying that. So I think there is a lot of freedom to convert a 100MHz clock to 6MHz (I think).  

3) Good question. I think I will this will be an issue since even 6MHz might be to much for the connectors. "Too much" = I will experiment with different modulators and some of them may have issues with the parasitics that may be introduced from the non-RF specified connectors.

Thanks!

Lefteris

 

 

 

Link to comment
Share on other sites

Hi Lefteris,

I can't comment on all of your project (although it does sound cool), but in terms of programming an FPGA to non-volatile memory, you can check these two forum posts that explain how to get the bit stream stored on flash memory for Digilent FPGAs here and here.

Link to comment
Share on other sites

Hi, sorry for the late reply. The project looks interesting. Actually you can store bit files in flash through SPI port. The details is at the Basys 3 wiki page https://reference.digilentinc.com/doku.php?id=basys3:basys3

FPGA Configurations

After power-on, the Artix-7 FPGA must be configured (or programmed) before it can perform any functions. To configure the FPGA, you have the option of one of three ways. 

  1. 1. A PC can use the Digilent USB-JTAG circuitry (portJ4, labeled “PROG”) to program the FPGA any time the power is on.
  2. 2. A file stored in the nonvolatile serial (SPI) flash device can be transferred to the FPGA using the SPI port. 
  3. 3. A programming file can be transferred from a USB memory stick attached to the USB HID port.
 
Link to comment
Share on other sites

Sounds like a great project!  

Were you looking to store the FPGA configuration between power cycles or were you looking to save some sort of data or statistics?  

If you are looking into preserving FPGA configuration between power cycles then exactly what Alex said.  It is really easy to do by storing the bit file in the on-board flash. 

Else if you were looking into storing/recalling other data then the solution can get much more creative like storing on a USB drive, microSD card, etc.

Do you have a blog or something where I could keep up with your project? I would like to know more about it.

Best of Luck!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...