nitin29

Hello, Digilent Community!

Recommended Posts

Hi All,

I hope you all are doing great.

I am engineer with bachelors in mechanical engineering and masters in robotics, presently working in industrial automation but at home much more active with electronic projects and programming algorithms etc.

I have no experience with FPGA and I would like to learn them as I am interested in implementing filters, algorithms, image processing etc. I have experience with Arduino and STM32 MPU and several sensors, I know Python and C/C++. I hope if other members can help me select a right FPGA. Right now, I can see Cmod A7-35T, Arty Artix-7, Basys3 Artix-7 and Zynq-7000 under my budget (up to €200).

Which board is good for complete beginner like me and why? Any other alternative, anything else I must take care before starting my journey into FPGA world?

Thank you very much!

Share this post


Link to post
Share on other sites

Welcome to the forums!  Sounds like you will fit right in.

I have the CMod-S6, Basys-3, and Arty, so ... I think I might manage to offer you an opinion about what you might be interested in getting:

1. The CMod's are really designed for someone who wants to connect the board to their own home-built circuitry.  They work wonderfully for that purpose, as they don't have many peripherals to speak of otherwise.  If you'd like to start with working with some standard, pre-wired peripherals, you'll want either Basys-3 or Arty.

2. The Basys-3 comes with a small wealth of peripherals attached to it that you can play with.  Unlike the Arty, the Basys-3 offers you PS2 interfaces to a mouse and a keyboard, as well as an on-board seven segment display.  Further, the Basys-3 offers a VGA video output that you can use to display just about anything a VGA display will allow.  What the Basys-3 doesn't have, though, really hurts it from a video display standpoint: it doesn't have any off-chip memory (other than flash, which is more ROM than RAM).  That will limit what you do with your VGA output--since there's not enough memory to build a proper frame buffer anywhere.

3. The Arty is different in several respects from the Basys-3: it has fewer eye-candy peripherals (seven segment display, LED's push buttons, PS-2 interface, etc.).  It has no VGA, HDMI, or other video ouput.  What it does have, though, that the Basys-3 does not have is memory and ethernet.  For this reason, if you are interested in building a soft-core CPU, or something that uses a soft-core CPU (microBlaze for instance), the Arty is a recommended platform.  You can do a lot of "computer" sorts of things with an Arty that you cannot do with a Basys-3, whereas you can do a lot of FPGA types of things with a Basys-3 (as defined by the peripherals above) that you cannot do with the Arty.

So, in the end, it depends upon what your purpose is.

My first board was the Basys-3.  This was an excellent starter board for me.  Getting the video working was quite a challenge for me, given the RAM discussion above.  In the end, I got it to display fixed images that were stored compressed on the flash.  From that standpoint, it worked sort of like a slide projector working from a fixed deck.  I even added a mouse-controlled pointer.  It was kind of fun, and definitely a learner opportunity.

My second Digilent board was a CMod-S6 (not S7).  I used this to prove some of what could be done with a very small FPGA.  You can find that project here if you are interested.  I figure that building a soft core CPU, and my own multitasking operating system, and getting it all to run on the CMod-S6 was impressive in its own right.  It certainly shows what can be done with only a small amount of logic.

My third Digilent board was an Arty.  I'm still working on it.  You can see my work on it here, but I'm a long way out from having all the pieces working.  In particular, I'm bull headed enough to refuse to use Xilinx's Memory Interface Generator (MIG), and so I'm trying to build my own DDR3 SDRAM controller.  My first implementation was a complete failure, and I'm getting ready to go back and try again this coming week.  The good news, though, is I managed to build a flash controller for it that now allows me to read/write the flash at will, to include writing my own configurations to the flash.

Still, in the end, it depends upon your purpose, and what you want to do.

Hope this helps,

Dan

Share this post


Link to post
Share on other sites

Hi Dan,

Thank you very much for the information! :)

As I'm complete beginner, yes, all of the information is overwhelming for sure. I'm interested in various sensor systems so I would like to do typical operations that I do with microcontroller, but at higher rate. Faster data acquiation, faster processing and faster transmission to TFT, LCD, storage medium or computer is the main reason to learn FPGA as I'm thinking of developing some products and maybe a startup in future (who knows), second to improve my skill level. I'm sure that I'll be doing stuff that I did on microcontroller on FPGA for some time.

In point 3, you said " You can do a lot of "computer" sorts of things with an Arty that you cannot do with a Basys-3, whereas you can do a lot of FPGA types of things with a Basys-3 (as defined by the peripherals above) that you cannot do with the Arty."

I'm confused here. What you mean Basys-3 will do more FPGA stuff compared to Arty? Isn't connection of VGA Pmod or other devices pmod or something possible to Arty, if needed? I think, both boards  (Arty -7 35T and Basys3) are using exactly the same chip Artix-7, or there is something else that I am missing.

Also, if I buy any of these board, will I get Vivaldo node locked license for only 1 year or unlimited time?

Checked the links to your work. Awesome work. Keep it up!

Thank you once again!

 

Share this post


Link to post
Share on other sites

@nitin29,

You are right on all counts.  My "computer sort of things" comment turned out to be ... ambiguous at best.  Let me try to clear it up:  The Arty and the Basys-3 use the same Artix-7 FPGA, so there's no difference between them from the standpoint of the FPGA itself.  I think that's true of the CMod-S7 as well, I'm just going from memory and not double checking the spec.  The differences between these boards are specifically the memory, and the peripherals.  If you wish to connect a VGA peripheral to the Arty, then all power to you.  Be aware, Digilent isn't currently selling any VGA Pmod's.  Still, I'd give you bonus points for running a VNC display from an Arty :D--there's enough resources that you *should* be able to do it.  You might also wish to know that the ethernet PMod is designed for the chipKits, not the FPGA boards, so putting an ethernet on a Basys-3 will take some extra design work on your part.  That's not to say that it is impossible, or difficult, or ... I don't know your skill set, it is only to say that some amount of engineering and design would be required.  On the other hand, connecting the Basys-3 board to a high-speed DDR3 memory might truly be impossible.

Again, it really depends upon what you wish to do.  While I'm not going to recommend putting a soft-core computer on a Basys-3, I've done it.  You can do it.  It's not that hard.  It's just that what you will be able to do with that computer will be limited.   The soft-core computer I placed on my Basys-3 was sufficiently powerful enough to run the first version of my operating system, and so I ran multiple programs focused around the PMod-GPS: One program decoded the NMEA messages, another program adjusted what was on the VGA display, another program displayed useful data on the PMod-CLS.  So you can do it, it is quite doable, but if you want to do something that requires more than 128kB of memory or that requires a VGA, you'll find yourself ... limited.  An example here might be the classic Arty example: running a web-server.

Oh, and as for licenses, both Basys and Arty can be programmed with Xilinx's free "webpack" license.  I think this license is unlimited in time.  It is certainly not node-locked, so you can use it on whatever board you need to and so forth.  I'm not sure if Digilent will also provide you with another, non-webpack license, but either way the webpack license will work for you.

Dan

 

Share this post


Link to post
Share on other sites

Hello nintin29,

In addition to what Dan already said (great description by the way) I will list here another board that runs in your budget which is Zybo which is very different from the ones listed below. It is equipped with a ZYNQ FPGA and has an ARM processor. It has VGA, HDMI, ethernet, audio. It's more complicated but you must see what engineering students could do with them at our contest. They were beginners too but were able to pull together some amazing projects.

I would recommend this if you are interested in image processing and complex things. 

I personally started to work with a Basys3 and my first project was a PAC MAN game. My advise is to pick a board suited for the type of applications you want to make. It's true what Dan said, that Basys is more limited but just if you want to make big games and image processing. 

Arty on the other hand is made for communication. It also has an Arduino/Chipkit shield. 

I know is lot to process but if you want something simple just for learning purpose, to try different things, get used with FPGA go for Basys3, if you want ethernet and communications, a board with an Arduino shield then go for the Arty and if you want strong processing and you like working with embedded then go for the Zynq...

Best regards,

Bianca

Share this post


Link to post
Share on other sites

@D@n : Thank you Dan for the information. I guess, I will go with Zybo Board as it offers what Arty and Basys 3 offers, so no need to worry for ram for those video application :D Zynq 7020 based Zedboard with hardware acceleration looks very tempting but it is out of my budget.

@Bianca: Hello Bianca, thank you for clearing the difference between these boards and introducing a new board, Zybo that seems to fit my need and is under my budget. Can you clarify Vivaldo Design Suite license scene? What is a webpack license or nodelocked license actually means? are both for Vivaldo? Does webpack free license means that I need to be online while using it? I am based in Germany and will order the board from Digikey or Mouser, will the license comes with the board? There is a separate kit for license (Zybo Accessory Kit)? Sorry for all these questions, I have zero idea of FPGA, boards and license and I don't want to make any mistake and regret later regarding license :unsure:

Thank you very much!

Edited by nitin29
adding more information

Share this post


Link to post
Share on other sites

@nitin29 Webpack and nodelocked licenses are both for Vivado and ISE. 

The difference between them is that the node lock will allow you to use Vivado just on one computer and Digilent licence is also device locked that means that you'll be able to use it just with your board. On the other hand the webpack can be installed and will work with almost all FPGA families (except Kintex7- Genesys 2).

The webpack license is free and the nodelocked will cost you some money.

My advice is to purchase your board without a Vivado license and install the webpack Xilinx provides. Starting with 2015.4 Version you can find amazing stuff in the free version including the Logic Analyzer that came at cost on the previous versions.

I hope this information helps and fell free to ask if you have further questions.

Best regards,

Bianca

Share this post


Link to post
Share on other sites

@Bianca: Thank you very much! One question more...someone people on internet discussing that combining FPGA+ARM is like Ferrari tied to a horse, losing the advantage of all the parallelism and so the speed advantage. Is that true? :huh:

Share this post


Link to post
Share on other sites

@nitin29,

You may find those are fighting words in some quarters ... :D

The big strength of an FPGA is its parallelism.

The big strength of a CPU is it's sequentialism (is that a word?).  Ahmm ... it's ability to run sequential logic, sequence things, and to be reconfigured.  I mean, consider an operating system as the ultimate example: you can run multiple programs on the same chip, just by time slicing between them?  Wow.  Try doing that with the parallel logic of an FPGA.

An FPGA can be made to run a CPU, of most any design--subject to the speed of the FPGA and the area available to build the CPU within the FPGA.  In other words, you can make an FPGA act like an ARM, or ... quite a few other CPU's.  Once Xilinx saw that a lot of people were placing soft-cores onto their FPGA's, Xilinx saw a business opportunity to put an even faster CPU onto their FPGA by connecting the FPGA to a hardware accelerated ARM.  Hence, the Zynq.  The ARM on the Zynq should run much faster than anything you can build within the FPGA.  Xilinx has also done a lot of work to make sure that the two portions of the chip can communicate with each other at high speed and so ...

The question you are asking, though, is why would you?  Why mix FPGA and CPU together?

The answer isn't really that hard: because you need both parallel and sequential logic to accomplish a task.

Consider the task of reading from an SD card: There is a lot of setup involved.  The controller must first send a command zero, then a command 1, then a command 8, followed by an alternate command 41, and so on.  Each of these commands needs an appropriate argument, and, depending upon the card, the logic regarding what argument is appropriate gets quite complex.  Now, suppose you have a camera that needs to write to an SD card at high speed.  It makes sense to have a sequential logic controller (CPU) to set up the card and start the write, but then that you would switch to your parallel logic controller to handle moving the data from the camera's sensors to the SD-card.  Both parallel, and sequential, logic are required to accomplish the task.

Dan

Share this post


Link to post
Share on other sites

@D@n @Bianca :Got the Zybo board today :) What a lovely board!

So immediately downloaded Vivaldo,, selected Webpack version at the time of installation and installation done. Now license manager shows some license options, but webpack license option seems missing ..it only shows ISE Webpack (Vivaldo and ISE are different, I think) and then it also points to some 180 days evaluation (I thought it is device limited but time unlimited option). Please see attached image. Please suggest, what should I do? ...reinstallation, selecting one of license with webpack option or something else? :unsure:

Thank you!

VivaldoLicense.jpg

Edited by nitin29
missing attachment

Share this post


Link to post
Share on other sites

Hmm ... been a while since I did this, but I seem to remember that I got the license while logged into a xilinx web page, and that they then e-mailed the webpack license to me with instructions for how to install it.

Dan

Share this post


Link to post
Share on other sites

@D@n: Thanks for the tip Dan :) I logged in and then I clicked on this 3rd option as in the attached image.Then I was on license generation page, there I found option for webpack license along with some other evaluation licenses. So finally node-locked webpack license generated :D Now, need to copy the board files.

Share this post


Link to post
Share on other sites

Dear nitin29,  I've had the same issue with getting a license file for Vivado WebPack 2016.3 .  I do as you suggest but the closest option is Vivado WebPack 2015 and earlier.  Did you use the older version or found the 2016 license?

Regards,

Radd

Share this post


Link to post
Share on other sites

@Radd: Getting a license is very straightforward process, I did not have any problem. All I did is register and generate the license. I've installed Vivado Webpack 16.2 but now I could update it version 16.3, I will get update up to version 17.8 if I remember correctly.

Share this post


Link to post
Share on other sites

Thank you for replying.  I don't know what I am doing wrong.  I just don't see an option for Vivado WP 2016.  Just 2015 and older.

v1.JPG

v2.JPG

Share this post


Link to post
Share on other sites

@Radd:

I'm assuming that you need a Node-Locked license for Vivado Webpack latest version (16.3). Before anything, you need to register to Xilinx website. Thereafter, you need to generate a license there. After license has been generated, you will receive an email with license file. If you haven't installed Vivado 16.3, then do install with Webpack license option. Then, on a window machine, open the Start -> Vivaldo 16.3 -> "Manage Xilinx license" .The re on the left side, you will find "Get License", under that you will find "Load license" and there is option to copy license file. Then point the file dialog to the location of license file. That's it.

Hope you'd enjoy! :)

Share this post


Link to post
Share on other sites
On 10/28/2016 at 2:08 PM, Radd said:

 

Thank you for replying.  I don't know what I am doing wrong.  I just don't see an option for Vivado WP 2016.  Just 2015 and older.

 

 

It doesn't matter.  I just did this with version 2016.4, and chose the 2015 license, and it worked fine.  The license manager claims the license thus generated should be good up through the 2018 version.

Share this post


Link to post
Share on other sites

Hi Peterb,

Thanks for your info.  I'm using 40 setups of web pack 2016.3.  It seems what I found since my post is that the license manager comes up at the end of the install, but can be just closed it out since a license is not needed for the 2016 Web Pack.  I guess it pops up because the installer can install things other than the Web Pack.

Radd

Share this post


Link to post
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