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

DSP as an avocation is a topic with a pretty expansive range. It would seem that you are more interested in FPGA hard blocks that implement multiplies, adds, MAC, and other operations. It's unfortunate that programmable logic vendors refer to these as DSP blocks. When the first hardware multiplier appeared on a general purpose processor, that was enough to warrant the DSP label. 

It really doesn't matter what FPGA platform you choose, as I don't know of any that don't have enough 'DSP' blocks to keep you busy for a while.

Unfortunately, for AMD/Xilinx tools at least, getting to use all of the features of the various versions of Series 7 or UltraScale DSP blocks in existence has gotten harder. The tools only allow you to implement a sub-set of possible DSP block features. You can implement them with macros or primitives, but those have been depreciated in recent Vivado releases.

I suppose that a better answer to your depends on what you want to do with these 'DSP' blocks. As you might suspect, the more money you have to spend, the more DSP resources you can have. It isn't too hard to find out how many DSP slices ( 2 DSP blocks per slice ) any particular FPGA has. The actual DSP block is pretty complicated, but there are user guides for each variant. Whether or not you can use any of their features is, I suppose, something that can be investigated with the tools.

You might want to read up on Cyclone V 'DSP' blocks as they are different than those from Xilinx. I mention that device because it's the best that you can get with the free version of the Quartus tools.

Designing hardware that can do fundamental mathematical operations involved in DSP is the easy part. DSP involves a lot of math and complicated concepts... but that's where the fun is. The reason for talking about this last part is that DSP blocks in common FPGA devices only work really well for solving problems that can be organized a certain way. The limitation is in the DSP design and interconnecting fabric. That doesn't mean that hard MACs don't speed up processing, just that efficient use of them is complicated.

Edited by zygot
Link to comment
Share on other sites

  • 0

@zygotthank so you much for your answer. Maybe you'll be upset with me for saying this, but actually, I don't have a specific roadmap in mind. First and foremost, I want to understand how a FPGA works. Then, I would like to work on DSP and communication projects. However, as I mentioned, I don't have a specific roadmap in mind. It's important for you to suggest an FPGA because it's highly likely that I won't have the opportunity to upgrade to a higher model for a long time. Currently, the FPGAs within my budget are Pynq Z1, Zybo Z7-10, and Nexys A7-100T. I cannot afford more expensive FPGAs. I know that each of them has its own advantages. All of these boards will most likely suffice for a long time. However, I still don't want to make the wrong decision. For example, I'm considering purchasing the Pynq Z1 board, but it has a very limited number of PMOD connectors, and I don't want it to cause problems for me in the future. The Zybo Z7-10 has HDMI and microphone inputs/outputs that I think will be useful for my needs. Additionally, it has a considerably larger number of PMOD connectors, but the FPGA on this board is smaller compared to the others. Unfortunately, my budget doesn't allow me to go for the Zybo Z7-20 model. On the other hand, the Nexys 7 A7-100T has a sufficient number of PMOD connectors, but it doesn't have all the inputs and outputs that the Zybo Z7-10 has. There is a solution to all these problems, of course. For example, if our board doesn't have a VGA output, we can solve it by connecting a PMOD, but that would be both expensive and inconvenient.

Link to comment
Share on other sites

  • 0
7 hours ago, digility said:

Maybe you'll be upset with me for saying this, but actually, I don't have a specific roadmap in mind.

Are you kidding me? Projects with no goal other than to ask questions and see where the answers lead me are my favorite kind of projects.

 

7 hours ago, digility said:

First and foremost, I want to understand how a FPGA works. Then, I would like to work on DSP and communication projects. However, as I mentioned, I don't have a specific roadmap in mind. It's important for you to suggest an FPGA because it's highly likely that I won't have the opportunity to upgrade to a higher model for a long time.

Well, understanding how an FPGA works is the proper place to begin. From questions posted to this site I'm guessing that most people just want to do something and never get around to that first step. There's plenty of information from AMD/Xilinx or Intel about how there programmable devices are made and how to use them. Understanding how they work is only part of the FPGA developer's journey. You need to understand how the FPGA vendor's tools work. You need to understand how to convey your logic design effectively to the tools in order to build logic that works. You need to understand how HDLs like Verilog and VHDL convey basic digital logic design concepts to the tools. You need to understand how to create functional logic that works the way that you intend it to. You need to understand how logic simulators work in order to debug your HDL description as well as your own short-comings in grasping all of the necessary details of what's involved. It's a lot of reading and practicing. But never get bogged down in the shear weight of all of that knowledge. You can start off slow and simple, mastering simple logic structures and progressing on to more complex things. And then, as incentive there's DSP and other uses for logic that can keep you motivated and pull you along.

All of that reading and practice can be done without any hardware at all. You can use the logic simulators that come with vendor tools to build just about anything on any FPGA platform that you can think of. Most of us think that we need some physical feed-back on actual hardware as a reward for our hard labor. It isn't true, but still that feedback can be a psychological boost that will keep us going.

So, after all of that, we come to making a purchase that we don't want to outgrow because it will have to last us for a long time. This is how I view buying a car. I need to last for 10 years or more. Fortunately, buying an FPGA board is a bit less complicated than buying a car. My advise to to buy the cheapest thing that you can find. For Digilent boards this would be something like the CMOD to ARTY. Either one can keep you busy for many years. Ten years ago I'd have made the argument that, if it takes you 5 years to exhaust the possibilities of the cheapest board, then that's about when the next generation of FPGA devices will arrive and make it obsolete. I think that the industry has changed recently to that argument isn't really a factor as new, low cost device families may not be on the horizon. Still, I would assert that in those 5 years you are likely to have grown in knowledge and competence and confidence to where you have develop some clear goals. Once you have goals, then budget and FPGA board features will steer you to the next level of FPGA platform, if there is a next level, and you have the money and time to pursue it.  You don't need a $10000 bike to learn how to ride a bike. Once you learn how to ride a bike there are lots of divergent paths forward; do you want a road bike? A mountain bike? A unicycle? Who knows the future.

Being fascinated and driven by  ideas like DSP or communications applications of programmable logic is a good thing. But you need to develop some expertise on both DSP ( or Communications ) as well as FPGA development before you can do that.

I'd avoid things like the PYNQ as it really isn't designed to be a general purpose FPGA platform. You are, without a lot of effort, restricted to one framework that has as its main objective abstracting away all of the tedious FPGA development flow so that the user can consecrate on a more software-like design approach. I'd advise against anything with a closed development framework. In the end most schemes to simplify programmable logic design just end up being restrictive and over complicated.

Just to throw you a curve ball; the AD2 is FPGA based. It's a great, inexpensive platform for connecting the real world to your classroom textbooks ( do they even use those anymore? ). The down-side is that they aren't design to allow the user to change the FPGA application. They are more of an instrument. The up-side is that they are very well supported and allow you to explore a wide range of applications using real-world physical connections.

Basically, what I'm saying is that I don't think that you can make a bad decision by spending the least amount possible. You can make a bad decision by spending more money than you can afford on something that has expensive features you might never use.

As a general rule, spending money today on technology on the basis of what you know today and in anticipation of what will exist  or what you will want to do in the future is a losing gamble.

 

Edited by zygot
Link to comment
Share on other sites

  • 0
On 7/9/2023 at 8:11 PM, zygot said:

Being fascinated and driven by  ideas like DSP or communications applications of programmable logic is a good thing. But you need to develop some expertise on both DSP ( or Communications ) as well as FPGA development before you can do that.

I'm not starting completely from scratch. I am a university student and I have knowledge in electronics and DSP. The same goes for communication systems. However, my knowledge is currently limited to what I have learned in school. I am constantly working on improving my knowledge in both electronics and other areas. But yes, I have very little knowledge when it comes to FPGAs.

 

On 7/9/2023 at 8:11 PM, zygot said:

Basically, what I'm saying is that I don't think that you can make a bad decision by spending the least amount possible. You can make a bad decision by spending more money than you can afford on something that has expensive features you might never use.

Okay, I will listen to you. The most expensive product I will buy is the Basys3. But can I really learn something without a board? I don't think the learning process will take that long. After learning digital design and knowing the Verilog language, can't we start doing small projects? For example, I want to connect a temperature sensor and a light sensor. I don't think it's possible to simulate these without a board. Of course, different projects can be done with simulations.

The other question is, would it really be advantageous for me to purchase Digilent's product? I think using Vivado would be better. Besides, I can also support my projects with PMODs. There are also much more affordable products from different companies. For example,  Xyloni from Efinix is really cheap FPGA board.

Link to comment
Share on other sites

  • 0
4 hours ago, digility said:

But can I really learn something without a board?

Yes, you can learn a lot without any hardware. You can even buy, sometimes very expensive, FPGA boards that don't connect to any external hardware other than a PC PCIe slot. But programmable logic has traditionally been used as a means for embedded processors to interact with external hardware in a way that they were not equipped to do. So, understanding how digital signals work in real-world circuits is a very important part of programmable logic design. Having a design operate on hardware is the best way to understand what happens to signals that are more complex than the ideal logic '1' or logic '0'. A hardware platform is the only way to refine your simulation "IQ". While most modern FPGA devices have internal ADC capabilities, none that I can think of offer a corresponding DAC resource. A lot of really interesting problems that can be solved in logic require conversion between the digital and analog realms. 

I am certainly not encouraging you to forgo using an FPGA development board, just pointing  out that there are more than one way to look at FPGA development. You can learn about how FPGA devices work and implement very complex algorithms in logic without having to consider how to use the IO resources. I'm sure that there are people who do this. On the other hand, designing interfaces, that connect those internal algorithm implementations to external devices is a different skill set. You don't have to be an expert in both areas, but it certainly  is nice if you are. Some people don't care about the low level details of how a problem gets solved, only about solving a higher level problem.

Digilent's PMOD ecosystem definitely is a place where you can explore digital design and connect it to the real world in a relatively inexpensive, but limited way. But the PMODs do some of the most important interface design tasks for you, and limit your boundaries. Is this the best place for you? I do not know the answer to that question. If you want to design your own custom creation, put it on a PCB that you design, and connect it to an FPGA platform then the PMOD connectors found on Digilent's cheaper FPGA boards will likely not be so useful. Is using a generic FPGA board as a way to implement an unbounded project like that what you want to do? Again, I can't venture a guess about that.

So, my point here is that if you don't have a specific project in mind that requires specific external hardware and interface resources don't worry about whether your first investment will be a wise one.

Want to learn programmable logic design, or how the tools work, or how FPGA devices work? Just download the tools and get going. Do this first regardless.

Want to implement complex data processing algorithms in logic? You can do that with just the tools.

Want to learn digital design and how to implement high speed interfaces and create you own custom hardware? Then you can start with a cheap FPGA board with easy to use IO connectors.

Want to understand how a particular light-to-digital IC works and do some real-world experimentation? Well, you will want physical hardware for that. You will still want your logic simulator.

Want to do all of that? Great! Want to buy a cheap FPGA board today that will let you pursue some project 5 years in the future based on the knowledge and interest of your future self? It could happen.... but the odds aren't very high.

Link to comment
Share on other sites

  • 0

DSP in FPGA revolved around fixed point math, you can implement a floating-point math, but it will consume a lot of resources. So that's one big area you might want to pay some attention.

Also download and work through document UG479 - 7 Series FPGAs DSP48E1 Slice User Guide from AMD/Xilinx website, to get an idea of what actual DPS block can and can not do. Zygot is wrong - as usual - in stating that you can't take full advantage of DSP hardware, but it did take me several "readings" of that user guide to completely understand how to use it, so either I was too dumb to "get" it on the first reading, or the guide is not well structured.

There is also a UG193 - Virtex-5 FPGA XtremeDSP Design Considerations User Guide, it's a bit dated (refers to the previous generation of DSP HW), but again it should allow you to see how these things are used in specific applications, which should hopefully give you some ideas on your future projects.

As far as hardware goes, you can start from simple things, like audio processing. It has a benefit of you being able to actually hear the results, yet you can practice a lot of DSP concepts while not being limited by performance - audio requires comparatively little bandwidth, the timing are very relaxed, so you can do a lot with little. With that you will need to get a board which has an audio codec, unless you don't mind getting your hands dirty with designing your own.

Link to comment
Share on other sites

  • 0
1 hour ago, asmi said:

Zygot is wrong - as usual - in stating that you can't take full advantage of DSP hardware, but it did take me several "readings" of that user guide to completely understand how to use it, so either I was too dumb to "get" it on the first reading, or the guide is not well structured.

Thanks for inadvertently expanding on my comments above. As usual, asmi thinks that reading a couple of very dated user guides for gen 4 or gen 5 FPGA devices makes you an expert on using DSP features on Series 7 devices using IPI or even primitives with current Vivado tools. It's a typical mistake made by someone who's never actually had to implement specific functionally in a custom design with a particular purpose in mind. I was using DSP slices back before Vivado, when the information that asmi references worked on ISE for FPGA families that predate Series 7 like Spartan 3 or Spartan 6 or Virtex4 or Virtex 5. I also currently use DSP resources with modern FPGA families like Series 7 and UltraScale on current tools. In practice, promotional or introductory reading material only get you so far long the path of design and implementation when you have hard specifications to meet. DSP slice functionality is only part of the story.

Nevertheless, those are good resources to start with. There are also some good old applications notes and user guides. Be aware that it's tough sledding for someone just beginning in FPGA development. You should also consult Intel DSP literature as their DSP blocks are different than those in Xilinx families. Once you've understood what's the DSP block can do you still have to read the IPI IP user's guide to see what those implementations allow you to do... if like asmi you want to use the IPI flow. It's all a lot more complicated to get what you want than simply reading a few resources.

But I'd be happy to see some actual Verilog or VHDL code where asmi struts his vast experience that produces comments like the one that I just quoted. People who know nothing are complete experts in everything... until they have to build something that works and isn't just pasting together tinker toys from a third party.

It's all something to keep in the back of your mind; doing complex unique things in logic is rarely easy or straight-forward.

Link to comment
Share on other sites

  • 0
1 hour ago, zygot said:

Thanks for inadvertently expanding on my comments above. As usual, asmi thinks that reading a couple of very dated user guides for gen 4 or gen 5 FPGA devices makes you an expert on using DSP features on Series 7 devices using IPI or even primitives with current Vivado tools.

So you can see that zygot can't even read, as user guide I recommended is for 7 series device.

1 hour ago, zygot said:

It's a typical mistake made by someone who's never actually had to implement specific functionally in a custom design with a particular purpose in mind.

It's funny to hear such statements from someone who can't even design an FPGA board.

This is why nobody reads your walls of text, because signal-to-noise ratio of them is indistingushable from zero.

Link to comment
Share on other sites

  • 0

Thank you to both of you as well. I respect the opinions of both of you. So @asmi I would also like to hear your opinion on this matter. I currently don't have a clear roadmap. However, I'm interested in working with FPGAs for digital signal processing and communication projects. I understand that I will probably need to grasp the working principles of FPGAs before diving into more complex projects. I need to start with some basic projects. My budget is limited, so as a first FPGA board, what do you recommend? Do you have any specific suggestions? It doesn't have to be Digilent. I'm open to different recommendations. 

Link to comment
Share on other sites

  • 0
33 minutes ago, digility said:

So @asmi I would also like to hear your opinion on this matter. I currently don't have a clear roadmap. However, I'm interested in working with FPGAs for digital signal processing and communication projects. I understand that I will probably need to grasp the working principles of FPGAs before diving into more complex projects. I need to start with some basic projects. My budget is limited, so as a first FPGA board, what do you recommend? Do you have any specific suggestions? It doesn't have to be Digilent. I'm open to different recommendations. 

Like I suggested above, I would recommend diving into the world of DSP from audio processing. This is how I myself started, and me being a hobby guitar player, I started making all kinds of effects for an electric guitar. This will let you try FIR, IIR, signal mixing (for example for echo or delay effects), and since audio samples are typically fixed point, they lend themselves well for FPGAs as their DSP blocks are fixed-point (ignoring some higher-end devices which cost more than a house just for a single chip).

The next steps depend on your interests, if you want to look at I/Q modulation and RF digital comms, you will need to get your hands on some SDR with FPGA onboard.

Alternatively, if you lean more towards computer vision, you might want to try your hand at video DSP like image filters/enhancers all the way to object recognition.

Now, as far as tooling goes, there are basically two ways to ago about it - one is slow and painful, but potentially more efficient - this is manual HDL, and another one which is much more quick but probably less efficient - this is Vitis HLS. The latter allows you to write the code in regular C/C++ (with certain limitations), debug it like you do with any "normal" C/C++ code, and then use Vitis HLS to convert the code into HDL as IP core which can be included into FPGA designs. I know there are some purists out there who dismiss HLS tools altogether, but I also know that HLS is quite popular in the actual commercial development - a significant share of my customers (for whom I designed custom FPGA boards as per their requirements) used it for implementing their soluions, so it's definitely a tool any aspiring FPGA designer needs to learn and have in his toolbox in case it will be required. Xilinx also includes a sizeable library of pre-verified functions for various aspects of DSP and CV.

Now, for the boards, I usually recommend Digilent boards to beginners exactly because they provide good support aimed specifically for beginners, including this very forum. If you want to work with audio, you will need a board with audio codec onboard. Nexys Video is an obvious candidate, but it's a bit on expensive side, Zybo Z7-20 is a good option too if you want to try both software and hardware approaches, as it features Zynq SoC which contains a dual core ARM Cortex-A7 CPUs as well as enough FPGA fabric to give it some serious workout (Z7-10 version is a bit limited in this regard, so I think it's worth to invest an extra $100 for Z7-20 version). 

Another possible way is to pick up a cheaper board (say Arty A7 or S7) and add audio DAC/ADC via PMOD headers, but I would recommend this only as the last resort because this can cause additional problems due to PMOD interface being not really designed for high-speed communications.

Link to comment
Share on other sites

  • 0
57 minutes ago, asmi said:

Now, for the boards, I usually recommend Digilent boards to beginners exactly because they provide good support aimed specifically for beginners, including this very forum.

Digilent mostly supports the external memory and interfaces with a MicroBlaze based IPI design flow. Their support for things like DDR, Ethernet isn't too helpful if you use the HDL design flow. Vivado IPI flow isn't going to be any use to you if you decide that an Intel Cyclone V board, one one from another FPGA vendor is the ideal platform for a project. Asmi believes that the IPI design flow is great for beginners. I believe that the HDL design flow is what beginners should develop competency in. Eventually, even with the IPI flow you will need to understand the HDL design flow to get some projects completed. This is a whole discussion topic that I won't pursue here. I do programmable logic design involving devices and tools from all of the vendors.

Terasic is the Intel version of Digilent's educational promotion efforts, but for Intel FPGA devices. They generally don't have Ethernet or a USB interface similar to DPTI and their main FPGA boards. They do have a lot of project demos involving Qsys ( Intel's version of IPI ) but they also have some good HDL support with source code for things like DDR and their ADC/DAC adaptor boards. It's worth looking into.

I'm really hoping that you get more than two people responding to your questions as the more perspectives the better. Whether all of that information will guide you to a decision that you will be happy with in the years to come is anyone's guess.

One thing that asmi and I can agree on is that Digilent offers a unique forum for anyone wanting to ask for advice regardless of their experience.

Edited by zygot
Link to comment
Share on other sites

  • 0
10 minutes ago, zygot said:

Digilent mostly supports the external memory and interfaces with a MicroBlaze based IPI design flow. Their support for things like DDR, Ethernet isn't too helpful if you use the HDL design flow. Vivado IPI flow isn't going to be any use to you if you decide that an Intel Cyclone V board, one one from another FPGA vendor is the ideal platform for a project. Asmi believes that the IPI design flow is great for beginners. I believe that the HDL design flow is what beginners should develop competency in. Eventually, even with the IPI flow you will need to understand the HDL design flow to get some projects completed. This is a whole discussion topic that I won't pursue here. I do programmable logic design involving devices and tools from all of the vendors.

As I told you many times, you are too hang up on IPI flow. In reality it's nothing more than a glorified HDL code generator, and it generates pretty much the same HDL that you would write yourself to wire things up. You can use this generated code as a module in your HDL modules, and vise versa - your HDL modules can be incorporated into IPI diagrams just as easily (with one little caveat is that SystemVerilog modules currently are not supported by IPI, so you will need to create a Verilog/VHDL wrapper around them). I use it because it automates mundane tasks of wiring everything together, as well as the visual diagram is a great documentation tool because it clearly shows what is connected to what, and one big advantage is that it's always accurate because generated HDL always matches what you see on a diagram.

15 minutes ago, zygot said:

Terasic is the Intel version of Digilent's educational promotion efforts, but for Intel FPGA devices. They generally don't have Ethernet or a USB interface similar to DPTI and their main FPGA boards. They do have a lot of project demos involving Qsys ( Intel's version of IPI ) but they also have some good HDL support with source code for things like DDR and their ADC/DAC adaptor boards. It's worth looking into.

I used their boards in the past, but I didn't like that their examples tend to be provided in a very old versions of IDE, and as far as I can see, never updated to later version, unlike Digilent which actually updates theirs from time to time, and at the very least guide users who attempts such updates on their own. Their free IP library also doesn't hold a candle to what Xilinx offers, which is why I tend to recommend Xilinx devices to beginners (more experienced or professional users usually can afford to purchase required licenses if needed to it's less of a problem for them, or they can design their own cores).

Link to comment
Share on other sites

  • 0
4 hours ago, asmi said:

As I told you many times, you are too hang up on IPI flow. In reality it's nothing more than a glorified HDL code generator, and it generates pretty much the same HDL that you would write yourself to wire things up.

That's just a silly thing to assert. Vendor IP is composed of script generated HDL code plus, perhaps, PERL and TCL scripts. Sometimes the HDL sources are available in readable form and sometimes come with encrypted form. I don't what kind of logic design you do, but it's pretty rare that anything that I do can be done with canned IP that is very limited in terms of how it can be used and modified. Often the sources are almost unreadable and involve dozens of files that are hard to unwind. IPI IP HDL aren't anything like what I'd write or want to maintain. Also, my sources don't get broken or disappear when the vendor releases a new tool version or decides that it doesn't want to provide the IP anymore. Typically I have to worry about a lot of other considerations like very limited resource usage constraints, which vendor IP happily slurps up hoping that you'll think that you need a more expensive device to fit your design into. I could go on and on... Obviously, playing with legos works out fine for some projects. Some people actually have to produce unique things that require more work but is maintainable in a commercial application and meets real-world requirements. There's no one right way to do design. If IPI works for you, then that's great. It doesn't work for me or any company that I've worked with. 

I never choose an FPGA platform based on the vendor, it's tools, and certainly not its "free IP", which I rarely use anyway, unless the tools force me to. If I buy a general purpose FPGA platform, it's based on cost and suitability to execute a design concept.

Edited by zygot
Link to comment
Share on other sites

  • 0
5 hours ago, zygot said:

That's just a silly thing to assert.

Yeah, your entire post is silly because you obviously have no idea what are you talking about, like I said many times.

5 hours ago, zygot said:

Vendor IP is composed of script generated HDL code plus, perhaps, PERL and TCL scripts.

Now tell me what Vendor IPs have to do with IPI? Newsflash - you can use IPI flow WITHOUT using any of IPs, and only wiring your very own HDL modules. Which is precisely what I often do to save time on wiring big busses together. The reverse is also true - you can use vendor IPs in your own HDL code. So IPI does not imply nor force designers to use vendor IPs, nor using vendor IPs force you to use IPI (though for some of them using them in IPI will make things easier).

So IPI and vendor IPs are completely orthogonal to each other.

With that fact established the rest of your post is just silly.

5 hours ago, zygot said:

People who write their own source code don't care about such things.

Some people prefer to not reinvent a wheel, and instead focus on other problems for which there are no ready-made solutions.

Link to comment
Share on other sites

  • 0
13 hours ago, zygot said:

I'm really hoping that you get more than two people responding to your questions as the more perspectives the better. Whether all of that information will guide you to a decision that you will be happy with in the years to come is anyone's guess.

I hope too. I believe that what matters is to make a start and carry on. To continue without giving up, with confidence.

14 hours ago, asmi said:

Now, for the boards, I usually recommend Digilent boards to beginners exactly because they provide good support aimed specifically for beginners, including this very forum. If you want to work with audio, you will need a board with audio codec onboard. Nexys Video is an obvious candidate, but it's a bit on expensive side, Zybo Z7-20 is a good option too if you want to try both software and hardware approaches, as it features Zynq SoC which contains a dual core ARM Cortex-A7 CPUs as well as enough FPGA fabric to give it some serious workout (Z7-10 version is a bit limited in this regard, so I think it's worth to invest an extra $100 for Z7-20 version). 

Another possible way is to pick up a cheaper board (say Arty A7 or S7) and add audio DAC/ADC via PMOD headers, but I would recommend this only as the last resort because this can cause additional problems due to PMOD interface being not really designed for high-speed communications.

Unfortunately, the "Nexys Video" FPGA exceeds my budget as well. I also liked the Zybo Z7-20, but it is also beyond my budget. I'm primarily considering getting an Arty or Basys 3. However, the problem is that I want to buy them second-hand, and I haven't been able to find a reasonably priced Arty/Basys 3 board. I found a Pynq Z1 at a reasonable price. What are your thoughts on this board? It has the same FPGA as the Zybo Z7-20. The number of PMODs is limited, but it has HDMI input/output and audio output ports.

My biggest concern about the Pynq Z1 is that I might have difficulty finding resources. I'm not sure, but this worries me. I don't think I'll have much use for the built-in processor and Python-related features.

image.png.247213b5a407fca848ffb10e22d9fb9c.png

I don't understand the difference between the part I enclosed in red and the PMOD inputs. It is referred to as the 'Arduino/chipKIT Shield Connector,' but can't we do the same things here as we do with PMODs using GPIO pins? Can't we use it with any microcontroller, or does it have to be an Arduino specifically? 

Are there any difference in speed between the PMOD input and the inputs enclosed in the red box?

Link to comment
Share on other sites

  • 0
8 hours ago, digility said:

Unfortunately, the "Nexys Video" FPGA exceeds my budget as well. I also liked the Zybo Z7-20, but it is also beyond my budget. I'm primarily considering getting an Arty or Basys 3. However, the problem is that I want to buy them second-hand, and I haven't been able to find a reasonably priced Arty/Basys 3 board. I found a Pynq Z1 at a reasonable price. What are your thoughts on this board? It has the same FPGA as the Zybo Z7-20. The number of PMODs is limited, but it has HDMI input/output and audio output ports.

I never used that board, but looking at specs it doesn't actually contain an audio codec, but only a microphone and a PWM output, so you can't really expect any sort of audio quality out of it, and since there is no audio input, you can't get singal into it. I would also caution you about purchasing a used FPGA boards, as FPGA being a complex device can be broken in all kinds of ways, which are not easy to diagnose.

8 hours ago, digility said:

I don't understand the difference between the part I enclosed in red and the PMOD inputs. It is referred to as the 'Arduino/chipKIT Shield Connector,' but can't we do the same things here as we do with PMODs using GPIO pins? Can't we use it with any microcontroller, or does it have to be an Arduino specifically? 

Are there any difference in speed between the PMOD input and the inputs enclosed in the red box?

This is just a connector, you can connect anything you want to it (provided it doesn't damage the FPGA of course). As for speed, all of those are low speed connectors, so I wouldn't be hopeful about running reliably running even moredately fast (in tens of Mbps range).

Link to comment
Share on other sites

  • 0

I forgot to mention that Digilent also has Pmod I2S2: https://digilent.com/shop/pmod-i2s2-stereo-audio-input-and-output/ that houses an audio ADC and DAC ICs, which could be used to add audio capabilities to boards. I've never used it myself, but Digilent provides examples for Arty A7, S7 and Cora Z7 boards, so that might be something worth looking at for you. The cheapest from those is Arty S7, having worked with Spartan-7 devices myself (here is one board I designed with that device: https://www.eevblog.com/forum/fpga/custom-spartan-7-board-for-beginners/ ), I would highly recommend S7-50 variant for a beefier FPGA because S7-25 device is rather small - for example just DDR3 controller will eat up to 1/3 of all resources available in this device, so it won't leave much space for your own custom code, which it would only take about 15% of FPGA resources, leaving quite a bit for your stuff.

Edited by asmi
Link to comment
Share on other sites

  • 0
On 7/13/2023 at 6:28 PM, asmi said:

I would also caution you about purchasing a used FPGA boards, as FPGA being a complex device can be broken in all kinds of ways, which are not easy to diagnose.

Yes, a friend of mine warned me about this. For instance, we want to buy Basys3 as second-hand. I want to ensure that the board is functional and free from any permanent damages. Is there a way to find this out?

On 7/14/2023 at 6:45 PM, asmi said:

I forgot to mention that Digilent also has Pmod I2S2: https://digilent.com/shop/pmod-i2s2-stereo-audio-input-and-output/ that houses an audio ADC and DAC ICs, which could be used to add audio capabilities to boards. I've never used it myself, but Digilent provides examples for Arty A7, S7 and Cora Z7 boards, so that might be something worth looking at for you. The cheapest from those is Arty S7, having worked with Spartan-7 devices myself (here is one board I designed with that device: https://www.eevblog.com/forum/fpga/custom-spartan-7-board-for-beginners/ ), I would highly recommend S7-50 variant for a beefier FPGA because S7-25 device is rather small - for example just DDR3 controller will eat up to 1/3 of all resources available in this device, so it won't leave much space for your own custom code, which it would only take about 15% of FPGA resources, leaving quite a bit for your stuff.

I'm currently leaning towards Basys3 because the student price is more affordable. The Arty S7-50 exceeds my budget a bit. Thank you for the link to PMOD. Is the reason for your suggestion of Arty S7-50 due to the availability of example projects with this PMOD? Would I face difficulties in finding resources while working with Basys3? I'm talking about using PMOD stuff with Basys3 not Basys3 itself.

@JColvinI would also like to hear your opinions on this topic.

 

Edited by digility
Link to comment
Share on other sites

  • 0
On 7/7/2023 at 3:17 AM, digility said:

I've seen digital design lesson one term. I also have a bit Verilog knowledge. I wanna improve myself on DSP using FPGAs.

 

7 hours ago, digility said:

The Arty S7-50 exceeds my budget a bit. Thank you for the link to PMOD.

Though I've pretty much lost interest in this thread, your persistence, and how the thread has involved intrigues me. Your goal started out as 'DSP using FPGA'. You can't afford one of the cheapest FPGA boards available from any vendor, yet you are obviously intent on buying something now, without a specific DSP project or goal. You aren't too keen on the free approach, which would just be to use the free tools.

  • Why do you believe that spending money on something with lots of DSP slices is better for DSP using FPGA'?
  • Why do you believe that spending money on an FPGA with 2-4 PMOD connectors as the only available IO pins for project use and then spending more money later for as-yet-to-be-determined additional PMOD add-on boards is more affordable than a cheap FPGA board with everything that you need to pursue your foreseeable ( yet undefined so far ) interest?

I'm not sure what either the notion of DSP or FPGA actually means to you from what you've posted. A good tool for getting exposed to DSP concepts is OCTAVE. It's free. It covers a lot of possible area of interest. When I implement "DSP" type algorithms in logic, I always start off with OCTAVE to prototype my implementation. Implementing complex processing algorithms in logic is a lot harder to do than in software.. if you want to actually get down and dirty into the most basic level of logic and algorithm implementation. If you want to use canned libraries, or IP, that does all of the hard work for you, why bother with an FPGA board anyway? Do you think that not understanding what's happening on an FPGA board implementing "DSP" algorithms is better than not knowing what's going on with an RPi ( or your current PC ) implementing similar "DSP" algorithms in software? You don't have any money, why are you so set on spending it before you even have a good reason to do so?

I'm only posting this reply because having you answer questions might be a more productive route to the best solution.

Edited by zygot
Link to comment
Share on other sites

  • 0
1 hour ago, zygot said:

Though I've pretty much lost interest in this thread, you persistence intrigues me.

I'm so sad to hear this. I am a beginner who wants to get started. Even if my answers to your questions may seem silly, please don't stop supporting me.

If I need to give a general answer to why I persistently want to buy an FPGA board, it's because I feel compelled to do so. In a few months, when schools reopen, I will choose FPGA courses as electives. Our instructor will ask us to work on a project using an FPGA. While there are FPGA boards available in the laboratory, I want to have one at home for more comfortable practice. But I need the board's itself because I will connect an PCB (for example PMOD) to board.There are multiple FPGA courses offered, and the course content isn't limited to just digital signal processing with FPGAs. Some courses focus on explaining how FPGAs work. I will also take those courses because I have a genuine interest in FPGAs beyond just digital signal processing. The reason I want to buy an FPGA isn't solely for processing digital signals; it's also because I have a passion for FPGAs themselves. It's a different aspect that intrigues me.

 

1 hour ago, zygot said:

Why do you believe that spending money on something with lots of DSP slices is better for DSP using FPGA'?

I didn't say that the most crucial thing for processing signals with FPGAs is the number of DSP slices on the FPGA. However, I considered it as a factor, and having more DSP slices could be beneficial. At the beginning of our conversation, I mentioned expensive boards like Nexys A7, which I was initially considering buying. However, following your advice, I decided to opt for a more affordable board. There is still so much I need to learn about FPGAs initially, and I believe that some cheap board will be sufficient for a long time. If needed, I plan to purchase PMODs to extend its capabilities.

1 hour ago, zygot said:

Why do you believe that spending money on an FPGA with 2-4 PMOD connectors as the only available IO pins for project use and then spending more money later for as-yet-to-be-determined additional PMOD add-on boards is more affordable than a cheap FPGA board with everything that you need to pursue your foreseeable ( yet undefined so far ) interest?

I didn't fully understand what you meant here. But as far as I can tell, according to your view, you want me to work on projects for free before buying a board and improve my skills in this field. You are suggesting that it would be more logical to purchase an FPGA board that fits my needs after reaching a certain level. You believe that buying a cheap board and supporting it with PMODs would be more costly and impractical. Is that correct? Yes, you are right. However, due to the reasons I explained in the second paragraph, I am compelled to buy a board. PMODs are much more cost-effective compared to the FPGA boards themselves and can be acquired gradually over time. I don't think it will be so difficult to cover these costs. What is more, I am thinking of making some simple copies of PMODs myself by purchasing the necessary components. For example, I can create something similar to a PMOD DAC by using a more affordable DAC integrated circuit. To do this, I will use spirit of salt and hydrogen peroxide. When the time comes, I might consider selling my current board and getting a new one.

 

Edited by digility
Link to comment
Share on other sites

  • 0
1 hour ago, digility said:

I persistently want to buy an FPGA board, it's because I feel compelled to do so.

Don't spend money because you feel compelled to, spend money because you have a good reason to do so. With or without a physical FPGA platform you still need to hone your Verilog skills as well as your understanding of how to use the tools. You can do this with nothing other than Vivado... now, without consideration of what you anticipate that your future needs will be. I argue that this approach will make your anticipated future course work easier and more productive. 90% of FPGA development is spent in FPGA vendor tools, not using hardware; the exception is when your hardware becomes a tool for developing other FPGA designs.

1 hour ago, digility said:

Our instructor will ask us to work on a project using an FPGA. While there are FPGA boards available in the laboratory, I want to have one at home for more comfortable practice. I need the board's itself because I will connect an PCB (for example PMOD) to board.

There are a lot of assumptions about how your future will transpire. If you are required to purchase an FPGA board for your coursework that's one thing. I understand wanting the comfort of being able to work on assignments outside of the lab. Are your expectations really a good reason to make a decision now, rather then later? Are you really expecting to buy everything that you need in a lab once the lab assignment work gets assigned? Is that a reasonable plan? I don't know, but neither can I or anyone else help you with that analysis. When I was in school there were a lot of courses where the textbook and lectures were insufficient to compete in tests. I was expected to use the school library, and  hope that the material that was needed was available. I suppose that I could have just bought every textbook that I thought that I might need for future coursework in advance so that I could use them in the comfort of my domicile. I had enough trouble just buying the required textbooks.

1 hour ago, digility said:

There is still so much I need to learn about FPGAs initially, and I believe that some cheap board will be sufficient for a long time. If needed, I plan to purchase PMODs to extend its capabilities.

In general, I'd advise that hoping that the possibility of add-on boards is a cost-effective and useful plan for future undefined FPGA projects is a poor one. Especially, for PMODs which are low performance, older technology, and haven't had new product introductions for a while now. This ecosystem is pretty good for educational institutions but perhaps not as good for users. This is a general thought as individual needs are different. You say that: "PMODs are much more cost-effective compared to the FPGA boards themselves". I disagree, as a general statement. Have you priced PMOD boards compared to the cheaper FPGA boards? I want to make it clear that my opinion on this should not be something that constrains your decision. 

1 hour ago, digility said:

What is more, I am thinking of making some simple copies of PMODs myself by purchasing the necessary components.

I make my own add-on boards. It isn't for the budget constrained. Making a PCB can be cheap. Populating it for 1 copy of a board that has limited use is usually a very expensive way to to do things. If it's the only way to do what you need to do to complete a particular project, then that's what you have to do. Gardening is a similar endeavor. For most people the food that they get from a garden is more expensive, once you account for ALL of the costs, than what they could get from the local grocery store. Price is, in general, a bad reason to have a garden.

Marketing is about imagination... possibilities. Reality is about actual use of a product over years of use. Modern societies are dependent on economies and tend to encourage exchanging money for perceived possibilities. Just a thought....

Edited by zygot
Link to comment
Share on other sites

  • 0
On 7/16/2023 at 10:26 PM, digility said:

I'm currently leaning towards Basys3 because the student price is more affordable. The Arty S7-50 exceeds my budget a bit. Thank you for the link to PMOD. Is the reason for your suggestion of Arty S7-50 due to the availability of example projects with this PMOD? Would I face difficulties in finding resources while working with Basys3? I'm talking about using PMOD stuff with Basys3 not Basys3 itself.

@JColvinI would also like to hear your opinions on this topic.

The Pmod I2S2 project is relatively simple compared to other FPGA demos. It only consists of a couple of parameterized Verilog modules, plus customized constraint files and preconfigured clocking wizards for each board it supports directly. There aren't any dependencies that would prevent a port to the Basys 3 - the parameters, clocking wizard, and constraints are the only things that need checking, everything else should work as is. Getting it up and running in a recent version of Vivado could be annoying if it's something you haven't done before (the latest releases are provided for 2018.2). That said, trying out the setup process, up to the step where the board is programmed, is absolutely something you can do before purchasing any hardware.

Thanks,

Arthur

Link to comment
Share on other sites

  • 0
13 hours ago, artvvb said:

The Pmod I2S2 project is relatively simple compared to other FPGA demos. It only consists of a couple of parameterized Verilog modules, plus customized constraint files and preconfigured clocking wizards for each board it supports directly. There aren't any dependencies that would prevent a port to the Basys 3 - the parameters, clocking wizard, and constraints are the only things that need checking, everything else should work as is. Getting it up and running in a recent version of Vivado could be annoying if it's something you haven't done before (the latest releases are provided for 2018.2). That said, trying out the setup process, up to the step where the board is programmed, is absolutely something you can do before purchasing any hardware.

Thanks,

Arthur

Thank you for your response. I'm not sure if you've read the whole conversation from the beginning, but I would like to know your general opinion on the subject. The more diverse opinions, the better for me. I am someone interested in FPGAs and I want to do digital signal processing with FPGAs. My budget is limited as well. In this case, do you think I should improve myself without buying any board or should I buy an affordable one like Basys3 and upgrade it later?

Link to comment
Share on other sites

  • 0

I have pretty minimal experience with actual DSP. The below is from a very broad view of the subject from some stuff that I've played around with over the years. I'm also definitely repeating a bunch of what asmi and zygot have already 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.

As mentioned previously, you can do FPGA design without hardware; simulation is invaluable for debugging and proving that your design works as intended. It might not feel as satisfying as getting "real" signals in and out of a board, but a lot of the actual work of creating a project can be done before spending money (ignoring debugging).

When you get to hardware, the pitch for the Basys 3 and Nexys A7 is that they're intended to be best for brand new users of FPGAs, and provide a decent learning curve in the peripherals provided - blink an LED, implement some basic ALU that uses a bunch of switches as input and a bunch of LEDs as output, send characters back to a host over UART, maybe design a VGA controller. That said, I'm honestly not sure how well-suited they are. Quite some time ago, an intern designed a music looper project on a Nexys Video, that would also probably be doable on a Nexys A7, so there are definitely relevant projects which could be done with it. Also note, the only substantial improvement the Nexys A7 brings over the Basys for this is DDR memory.

If you don't need the "trainer peripherals", the Cmod A7-35T is cheaper, has the same size of FPGA as the Basys, and has a Pmod port. The Cmod S7 is cheaper and smaller.

Thanks,

Arthur

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...