UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor kakiayam
Visitor
3,679 Views
Registered: ‎03-17-2019

Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

Dear all,
Would need some affirmation from any FPGA engineer out there. Would I be able to self learn FPGA programming? My background is mainly electronics, a jack of few trades but master of none kind. I could understand digital circuitry, did some programming on Perl for CGI scripts and C++. I used to program the good old 8051 microprocessor and Microchip PIC16F84 in assembly. But these are like 20 years ago. I am way behind in terms of technology.
I am thinking deeply to invest in buying the Zedboard as I observed most of the online tutorial are based on this development board. But it will cost this old engineer a bomb and I need to be sure that I am investing on the correct thing. I understand Zedboard is already in the market for many years, would it still be the right platform to learn on?
Would greatly appreciate any advise on this. In addition, what forum would best serves me in this learning process?
Thanks.

1 Solution

Accepted Solutions
3,599 Views
Registered: ‎01-22-2015

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

@kakiayam 

I too am an old dog who learned new tricks (FPGA programming) late in life. Like you, I also cut my teeth writing assembly language for the 8051 and various Microchip PICs. Here’s how I got started with FPGAs.

1) Pick a Hardware Descriptive Language (HDL) – either VHDL or Verilog – and find a good book to help you learn it.  Xilinx offers a language called Vivado-HLS for programming FPGAs.  However, I don’t recommend Vivado-HLS for beginners for reasons explained in <this> post and <this> post.

2) Download the free Webpack Vivado-HLX (not to be confused with Vivado-HLS).  This is the latest Integrated Development Environment (IDE) from Xilinx for entering, compiling, and downloading your HDL to the FPGA.

3) Read Xilinx document, UG910, about using Vivado-HLX. Learn how to type your HDL programs into Vivado.

4) Read Xilinx document, UG900, (mostly Chapter 4) about using the Vivado Simulator to test your HDL programs.

These four steps will get you up and running with very little cost. -and you’ll be able to see if you still have the old mojo.

Getting your HDL into an FPGA and running will require quite a few jumps in learning – mostly about hardware found in the FPGA and about how your HDL becomes hardware.  If you make it this far, then I recommend that you buy a simple development board like the Arty. This board costs $99 and has the Artix-7 FPGA – a great starter FPGA.  I do not recommend the Zynq FPGAs/boards for beginners (too many bells and whistles).

Finally, I learned a lot from reading posts and asking questions on this Forum.  

-best of luck,
Mark

View solution in original post

16 Replies
Voyager
Voyager
3,627 Views
Registered: ‎08-16-2018

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

I guess anyone can learn anything. The main excuse to not do it is usually "time" but we all, rich and poor, clever and dumb, have days of 24 hours, don't we? So when we say "I don't have time" we actually mean "I don't fancy doing it". What I mean with this is I believe anyone can learn anything provided there is motivation, passion, whatever you call it.

Because of that, the question is back to you, do you really want to learn? 

Said that, the zedboard is a good choice, not overly expensive and up to date. It has a number of peripherals to develop things, and, what is most important, I think, it has a good community. 

Where to learn? It also depends... I prefer books to videos, others the opposite. Some people need someone with a whiteboard, others just loneliness. There are some books focused on some boards, there are those online courses, and plenty of personal blogs. I use a bit of everything. I think it's how it is in this World of data and communication. The secret sauce is maybe not "what and where" but "how to screen the good and bad", again I believe it's personal, depending on your goals, current skills, approach to learning (some people are more theoretical, others more empirical).

But, overall, the zedboard is a good beginners choice, look for some blogs, tutorials, etc and welcome!

Observer maxdz8
Observer
3,615 Views
Registered: ‎01-08-2018

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

What Zedboard? There are several models AFAIK. Nonetheless, the microzed with Zynq7010 is 200USD!

If you want something more frugal you could consider the new Cora from Digilent, the smaller model could be half that price (it comes with a 7Z007S, quite small). Still, I suggest against FPGA only at start, Zynqs are much easier to work with especially if you want to work with some RAM and while soft-cpus are super cool, I have read some users have issues with extending them to BRAM and reaching higher frequencies.

Watch out, FPGAs are truly fluid. You will be dealing at lower-than-assembly level.

Be sure to check out the official Xilinx documentation. It took me a while to grok it but to my suprise my design worked at first go in hardware.

3,600 Views
Registered: ‎01-22-2015

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

@kakiayam 

I too am an old dog who learned new tricks (FPGA programming) late in life. Like you, I also cut my teeth writing assembly language for the 8051 and various Microchip PICs. Here’s how I got started with FPGAs.

1) Pick a Hardware Descriptive Language (HDL) – either VHDL or Verilog – and find a good book to help you learn it.  Xilinx offers a language called Vivado-HLS for programming FPGAs.  However, I don’t recommend Vivado-HLS for beginners for reasons explained in <this> post and <this> post.

2) Download the free Webpack Vivado-HLX (not to be confused with Vivado-HLS).  This is the latest Integrated Development Environment (IDE) from Xilinx for entering, compiling, and downloading your HDL to the FPGA.

3) Read Xilinx document, UG910, about using Vivado-HLX. Learn how to type your HDL programs into Vivado.

4) Read Xilinx document, UG900, (mostly Chapter 4) about using the Vivado Simulator to test your HDL programs.

These four steps will get you up and running with very little cost. -and you’ll be able to see if you still have the old mojo.

Getting your HDL into an FPGA and running will require quite a few jumps in learning – mostly about hardware found in the FPGA and about how your HDL becomes hardware.  If you make it this far, then I recommend that you buy a simple development board like the Arty. This board costs $99 and has the Artix-7 FPGA – a great starter FPGA.  I do not recommend the Zynq FPGAs/boards for beginners (too many bells and whistles).

Finally, I learned a lot from reading posts and asking questions on this Forum.  

-best of luck,
Mark

View solution in original post

Voyager
Voyager
3,581 Views
Registered: ‎08-16-2018

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

Blessed FPGAs, they are truly fluid!! 

0 Kudos
Scholar vanmierlo
Scholar
3,571 Views
Registered: ‎06-10-2008

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

The Cora and the MiniZed are pretty comparable products for comparable prices (~$100).

Whether you want to dive into FPGA only or also into ARM (either standalone or linux) is up to you.

Scholar u4223374
Scholar
3,561 Views
Registered: ‎04-26-2015

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

I would agree with others that the Zedboard is probably not the ideal starting point. It's a nice board, but these days it is getting a bit old (you can get the Ultra96 Zynq UltraScale+ board for not much more than half the money) and having most of the I/O on FMC is pretty poor for a hobbyist (you can't solder an FMC connector by hand).

I wouldn't recommend an UltraScale+ board just yet (still not used widely enough, so there's not all that much community support) which then leaves you with either the Zynq 7000 or Artix/Spartan 7 boards as sensible options.

My personal preference is Zynq, although that's mostly because I like having the ability to program the board without JTAG (Zynq can boot from an SD card) - this isn't relevant to you because all the Digilent boards include USB JTAG adaptors. For just learning HDL, I'd probably recommend a pure FPGA board like the Arty; it's just a bit less to deal with, and the boards give you full access to everything (on the Zynq boards, many peripherals can only be accessed through the CPU, so you really do have to start using them). When you're comfortable with that and looking for something more, then I'd start investigating the Zynq UltraScale+ boards.

 

Edit: with regards to the original question... can you learn FPGA programming without doing a course on it? Absolutely. The key thing is (as always) to look for and ask for help if you get stuck. The long build times mean that you can very easily burn hours or days trying things that don't work, and it's easy to get tired of that. The Xilinx forums tend to be very helpful for almost any Xilinx-related question, as long as (a) you can describe what you're trying to do, (b) you can show what you've already done, and (c) you can tell us what isn't working.

Adventurer
Adventurer
3,543 Views
Registered: ‎01-18-2019

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution
>have days of 24 hours, don't we? So when we say "I don't have time" we actually mean "I don't fancy doing it"
I get the point but it is not that easy. To have 4 kids, a fulltime (non-FPGA) job and aging parents who need help takes up a lot of time...
Scholar vanmierlo
Scholar
3,537 Views
Registered: ‎06-10-2008

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

You're original question doesn't seem to indicate this, but if you're interested in the ARM side of the Zynq and placing standard peripherals in the FPGA, then you could start with it even without learning VHDL or Verilog.

Vivado lets you select and place soft IP blocks like extra UART, SPI, ethernet on the Block Design to create your own architecture. You will need to create pin constraints to locate the IO pins. This could be an easy start on getting to know the Zynq.

But it doesn't really get you into programming an FPGA.

And then there is also HLS which is about offloading CPU-work (written in C) to the FPGA.

Voyager
Voyager
3,506 Views
Registered: ‎08-16-2018

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

Hats off to people like you! 

0 Kudos
Explorer
Explorer
3,392 Views
Registered: ‎07-17-2014

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

Yes.

As others have said, figure out what you want to do (ARM or FPGA?) and then get a kit accordingly. 

I'm doing some designs right now with the Zynq-020 (microzed-020) from Avnet. But I've worked on Spartans and CPLDs previously. 

But it all started from a background in hardware and a little programming. I tell people I'm a hardware guy that was forced to program. :D 

It's ok - FPGAs are fun.

Like others have said, get a good language book. If you're used to C - you might like Verilog better than VHDL.

I find it's easier to have a purpose in mind to design something. That usually guides the tools/resources I'll need to engage to get there. 

But if you want to do it -- you'll do it. It's just sitting down and putting your nose in the books.

That's how I pretty much learn everything. Read a lot, try (and fail) a lot, occasionally ask others for a little guidance/sanity-checking. Just keep plugging. The only way you fail is by giving up.

Research and homework skills are a must. This stuff is REALLY complicated - so if you find your brain melting, you're not alone. (That's what the forums are here for.)

Good Luck!

Contributor
Contributor
3,244 Views
Registered: ‎12-03-2018

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

I've been doing FPGA work since the 1980's.  My advice would be to use the Altera platform (now Intel).  The Xilinx chips are pretty good but their tools are absolutely horrible.  I don't think I have ever used a version of their tool that didn't have at least one bug in it.

0 Kudos
Explorer
Explorer
3,220 Views
Registered: ‎12-11-2017

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

Sure, why not? It's pretty easy to get started. Although it's been a few years for you, flops are still flops, gates still gates, memories still memories, state machines still... you get the idea. The fundamental logic design concepts haven't changed (and I've been doing this since, well, the 8051 was *new*.)

What's changed is the scope of what you can do, with the toolchain automating more and more mundane design tasks plus leveraging pre-developed IP. Vivado HLS makes it pretty easy to create a functional design in a matter of minutes, whether you use Verilog, VHDL, block design or a mix of all three. And there's lots of inexpensive boards to choose from (and expensive ones, too) as targets your design.

The nice part about doing Xilinx FPGAs nowadays is that not only are tools much better, but so are the devices. They're fast, easy-to-route and close timing well. Density is quite high, even the smaller devices can capture a lot of functionality. Because of this, most of the time you don't have to deal with any physical design at all other than locking down pins. This is very different from the old XACT days, where I spent endless hours hand-placing and hand-routing nets to get better timing than what the P&R tool gave me.

What skills do you need? You'll need to develop some proficiency in one of the main HDL languages. Fortunately there's lots of help in Vivado to get you there, such as the HDL template that's part of the editor.

Which HDL, then? I feel it's easier to learn Verilog, especially if you come from a C programming background. Verilog borrows a lot of syntax and structure from C. VHDL on the other hand is more like an OO language, with strong typing and more abstraction. It's more verbose than Verilog, but also more powerful in some ways.

In general, chip people prefer Verilog, FPGA folks (especially in Europe) prefer VHDL.

Visitor kakiayam
Visitor
2,882 Views
Registered: ‎03-17-2019

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

Hi Mbence76,
While I am not blessed with kids but I do spend at least 5 hours a day travelling to and from my work place. And like you too, I am fully tied up with non-fpga task in the workplace as well. :)

0 Kudos
Visitor kakiayam
Visitor
2,878 Views
Registered: ‎03-17-2019

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution
Hi Vanmierlo,
I am now split between getting the Arty-7 or the MiniZed. This decision is critical as it will affect my objectives. While I have the long term goal of learning up FPGA, my immediate goal is to be able explore Zynq-7 series and be able to generate boot files to test the connected peripherals on a board that I am assigned to.
0 Kudos
Visitor kakiayam
Visitor
2,872 Views
Registered: ‎03-17-2019

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

Hi Mark, 

Thanks for the encouragement. I would need to decide on whether to follow the path you mentioned and get the Arty-7 OR to get a MiniZed and start straightaway with Zynq. 
I would like to do both, but which should I start first?
The reason for the dilemma is that I have a board with Zynq-7 series with all the interconnected peripherals (USB, WiFi, Ethernet, SPI chips). There is a strong motivation for me to test and verify these peripherals. 
Do you still think I should start with FPGA first before proceeding with Zynq?

Thanks!

0 Kudos
2,834 Views
Registered: ‎01-22-2015

Re: Would I be able to self learn FPGA programming Zynq 7000 series?

Jump to solution

@kakiayam 

     The reason for the dilemma is that I have a board with Zynq-7 series.
Please read <this> post to learn more about what it takes to work with Xilinx SoCs like the Zynq.

     There is a strong motivation for me to test and verify these peripherals.
Other boards (eg. KC705) with traditional FPGAs have lots of peripherals too. 

     Do you still think I should start with FPGA first before proceeding with Zynq?
In some sense we are comparing apples and oranges.  With your background in C/C++ programming, it probably seems natural to start with a Zynq and work mostly with the ARM-based Processor System (PS) part of the Zynq.  As other have told you, Xilinx provides already-written functions (called IP) that will help you work with the peripherals on the Zynq board.  The good news is that sometimes you will simply connect-up a bunch of IP and things will work great.  The bad news is that sometimes you will connect-up a bunch of IP and things will NOT work – and you will have no idea how to fix it.

The flip side of this is that an ARM processor is not an FPGA.  If you want to be an FPGA programmer, then I still recommend taking a back-to-basics approach and learning an HDL (like Verilog or VHDL). Then, write lots of your own HDL and learn how it becomes hardware inside the FPGA.  Xilinx provides lots of IP for traditional FPGAs too.  Eventually, you’ll be ready to connect-up a bunch of IP – and when things do NOT work, you WILL have an idea how to fix it.

Whichever route you choose, don’t be shy about creating other posts with beginner questions like the one you asked here.  As you can see, many of us are happy to be mentors.

Enjoy the journey!
Mark