Jump to content
  • 0

Which FPGA board should I choose for DSP?


digility

Question

Hello, I'm a student who is studying on electronics. I've seen digital design lesson one term. I also have a bit Verilog knowledge. I wanna improve myself on DSP using FPGAs. Which board do you recommend me to buy? I know its a general question but please help me. Also, I wanna know what is "ECE Curriculum". Electronics and Computer Engineering or what? I've seen this title on Nexys A7-100T. 

1) As I know there are more DSP slices on the board Nexys A7-100T than Pynq Z1. Should I choose Nexys A7?

2) I've read that the FPGA in Pynq Z1 is similar to Arty A7 but which one? 100T or what? Which one is bigger?

Link to comment
Share on other sites

Recommended Posts

  • 0
22 minutes ago, artvvb said:

The Cmod S7 is cheaper and smaller.

If you can't afford anything that's available but are determined to buy something now , regardless of any rational, ... the Cmod S7 lets you do complete FPGA development right through learning how to do timing closure. If you can find a cheaper FPGA board that works with Vivado Hardware Manager, then buy that one.

Link to comment
Share on other sites

  • 0
15 hours ago, artvvb said:

Learn some Python. Any algorithms you implement in hardware are probably best prototyped in some other area first, and numpy and matplotlib are pretty easy to pick up, and free. I think the Octave tool zygot mentioned is similar? Also MATLAB.

I didn't fully understand what you said here. Can you clarify? Why are you suggesting me to learn Python? I also didn't grasp the examples with numpy and matplotlib. Did you recommend them for processing digital signals? Currently, I only know some C language.

About Cmod, I'm not thinking to buy it. I would buy Basys3 instead of it. There's no huge price difference anyway.

Link to comment
Share on other sites

  • 0
3 hours ago, digility said:

I didn't fully understand what you said here. Can you clarify? Why are you suggesting me to learn Python? I also didn't grasp the examples with numpy and matplotlib. Did you recommend them for processing digital signals? Currently, I only know some C language.

A lot of people are prototyping DSP algorithms in Python or Matlab because they have facilities for rapid prototyping, as well as great visualization tools which allow to quickly figure out if algorithm does what it's meant to do. The key here is not the language, but the algorithm itself. That's what I think he meant.

Link to comment
Share on other sites

  • 0

Python is a general language and is currently a lot more popular than C which is my preferred language.

OCTAVE and Scilab are attempts to provide users with a free alternative to MATLAB. These are not general purpose languages, per se, but tools for simplifying all sorts of complex problem solving in the "DSP" realm or otherwise. Still, using Octave, MATLAB or Python ( the non-compiled varieties ) is very similar. OCTAVE/MATLAB, as has been mentioned incorporate visualization as a more fundamental part of its core. What you get with OCTAVE or MATLAB is the ability to do hard mathematical problem solving with minimal mathematical competency; basically it abstracts most of the hard stuff away so that you can work on a higher level of conceptualization. Of course, sooner or later if you will be doing this seriously, you will have to develop an understanding of the underlying principals. It's very similar to using Vivado.

Because it's so popular you can find free libraries in Python that simplifies complex mathematical solutions in any field of science that you can imagine. Be aware that because it's so popular Python is currently subject to supply side malware attacks. Finding similar support for the same mathematical tools is harder to come by with other languages, at least for no cost. There are languages specifically designed for science, like R.

If you want to learn "DSP" as it relates to communications, filtering, video processing, or whatever area interest you, these tools are the best way to do that. Once you have some idea as to how to implement DSP algorithms without worrying about arithmetic and number base representations you can start thinking about how to implement high level algorithms in digital logic; in logic you will need to know a lot of very low-level details to effectively implement complex algorithms.

I use OCTAVE and Python extensively. Python is less concerned about math and science and more of an alternative to C or Fortran. To my constant consternation, Python, uses array indexing from 1->n instead of 0->n-1, like C does. It's a real pain for modulo arithmetic, addressing and counters which are a lot easier to implement in digital logic.

Oh, Python , OCTAVE, and MATLAB are used in interpreted form as opposed to compiled executable form so they tend to be a bit slower. There are people creating Python-like languages that are used in compiled format to speed it up. Recently, the people who maintain Python has been working on integrating performance into the language.

[edit] last thought on Python. People even use Python to do FPGA development. Do a web search on Migen. I'm not suggesting that learning Python should be something that you need to work on, but seeing how people use it might be an interesting short-term pastime. As far as Migen and all the other attempts at making FPGA development simple and easy to understand, I'm not a believer... but there are a few interesting demos that have some people interested. There have been a lot of attempts at making logic design simple.

Edited by zygot
Link to comment
Share on other sites

  • 0

Hello again, and thank you to the three friends @asmi @zygot @artvvb who shared their thoughts on the subject. I am also delighted to see over 20 responses to the topic. I hope that I can truly embark on a successful and stable journey in the field of FPGA or DSP.

After conducting extensive research for a while, I decided to purchase the Basys3, and I have placed an order. I opted for a brand-new product, not a second-hand one. So, why did I choose Basys3? Well, the primary reason is that it is reasonably priced and comes equipped with "trainer peripherals" that I believe will be beneficial during the learning process. Additionally, it has 4 PMOD inputs, a VGA output, and a USB port, providing me with the flexibility to undertake various general-purpose projects more comfortably. I believe the Basys3 board will serve me well for a long time. If needed, after I improve my skills, I'm planning to sell it and get a new FPGA board that suits my needs.

I also took note of your opinions on Python and Matlab. I truly think both Python and Matlab will be extremely helpful for DSP-related tasks. I already had a rough idea of what Matlab is, but now I'm considering actively using it. 

That's all, thanks.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...