Jump to content
  • 0

Guidance


C_R

Question

I've just bought my Nexys 4 DDR trying to learn this amazing technology. I've installed Vivado 2017.1, visited your links in your website and I was not even able to compile one of your examples and down load it to the board. It's very time consuming to be watching videos that are not usefull or visiting places that in the end doen't help. Can you please tell me (as there is no CD in the board box) which is the formal and sequencial way to aquire knowledge to:

1- Install a working copy of vivado

2- What are the things you need to initilize in vivado (I copy some files for the borads)

3- Where do you put in the file structure the files get them compiled by the software.

4- How you download the file?

I've seen books like: Designing with Xilink FPGA using vivado, Sanjay Churiwala and Circuit design with VHDL, Pedroni. Are these books a correct path to understand all these topics? Do you have any suggestion.

Thanks !

 

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

Hi @C_R,

Welcome to the forum! Here are some tutorials on installing and getting started with Vivado on our wiki which also includes a tutorial on how to install our board files as well. Here is the Nexys 4 DDR resource page that has tutorials and Demo projects. We recently updated our projects to Vivado 2016.4. Unfortunately we do not have the ability to have our projects updated to every version of Vivado.  I am in the process of downloading Vivado 2017.1 to see if I can get them to work in the newer version(no guarantee). Here is a link to our learn site that also has some suggested materials. Here is a link to our learn site for digital design. I also like the website fpga4fun for more assistance with verilog/VHDL based projects. You are always welcome to post any questions you might have here on the forum and we will be happy to help you out.

cheers,

Jon

Link to comment
Share on other sites

@C_R,

Welcome to the forum, and welcome to the wonderful world of FPGA design!  Let me see if I can answer some of your questions:

  1. Regarding your question of textbook, I've never used one so ... I may not be the best person to ask.  However, an individual on the #yosys freenode IRC channel just recently read through FPGAs: Instant Access, and found that it helped to answer many of his questions.
  2. As for installing Vivado, ahm ... I just followed the instructions that came with the package?  There were a couple of gotcha's that I had to deal with though, but these may be because I use Linux.  1) I needed to make certain I installed the board drivers as I went through the design flow--this required admin access, 2) I needed to make sure I ran a setup script before running Vivado in every window I ran it in, and 3) the interface between Vivado and my web browser was broken, so getting the license took a bit more work.
  3. To start with Vivado, you will first want to create a new project.  You will initialize this new project with the FPGA you are programming for.  You can find that in the schematic, and sometimes in the web page for your board.  Then you'll want to add files to your project.  If you are just starting from scratch, you can come back and add those later.
  4. Vivado has it's own file structure for things.  I don't care for it.  It feels like something that I can't control, so I impose my own.  Really, the structure you choose is in many ways up to you.  I tend to use the coding guidelines I found on Open Cores, with one exception: I create a "xilinx" directory to tell Vivado about, and to have Vivado dump all of its info into.
  5. The easiest way to download a file onto your board is using the hardware manager within Vivado.  So, the flow works as 1) create/edit your design, 2) synthesize your design, 3) implement your design, 4) generate a bit stream, and 5) download that bitstream onto your board.
  6. With any new board, there are two basic designs you will find valuable.  The first is the demo design offered by the manufacturer.  This often gives you a quick "proof" that all the hardware on your board works, but ... not everybody finds that a useful starting point.  My personal approach to a new board starts with first verifying that I can load a design into the board to turn an LED on, then again to turn it off, and finally to get it to blink.  These three designs will make sure you are up and running with the tool set, that you really are up and running with the tool set, and last that you have a valid clock on your board.  From this point, I can usually build everything else.  (I'll come back to this in a moment.)

I'm afraid, though, that my instructions will only get you so far.  So ... can you write back regarding any steps you get confused or stuck on, and we can work through them?

Dan

Link to comment
Share on other sites

Dear @C_R

This is amazing technology and after learning it you will feel empowered because so many things you will be able to do. Digilent forum is very friendly place, however, search engine is your best friend.

Important to note that FPGA is a configurable hardware and HDL is a hardware definition language not a programming language as C, Java, etc. I've started FPGA programming with background in C without deep understanding distinctions between C and VHDL. It took me a couple months to write the first testbench and synthesizable code.

Your progress depends very much on your experience. Some books make connections with hardware design, others take more abstract approach. I've used books for learning because they give systematic approach. This is especially helpful for VHDL which is very structural. I like VHDL because it is forces you to use consistent types and eliminates a lot of mistakes while editing. I wish to know SystemVerilog too. One decent book I used is "VHDL Primer" by J. Bhasker. It goes straight to the point but with my hardware backgroud it worked for me.

Good luck!

Link to comment
Share on other sites

21 hours ago, jpeyron said:

Hi @C_R,

Welcome to the forum! Here are some tutorials on installing and getting started with Vivado on our wiki which also includes a tutorial on how to install our board files as well. Here is the Nexys 4 DDR resource page that has tutorials and Demo projects. We recently updated our projects to Vivado 2016.4. Unfortunately we do not have the ability to have our projects updated to every version of Vivado.  I am in the process of downloading Vivado 2017.1 to see if I can get them to work in the newer version(no guarantee). Here is a link to our learn site that also has some suggested materials. Here is a link to our learn site for digital design. I also like the website fpga4fun for more assistance with verilog/VHDL based projects. You are always welcome to post any questions you might have here on the forum and we will be happy to help you out.

cheers,

Jon

Thanks a lot for you advice !

Link to comment
Share on other sites

20 hours ago, D@n said:

@C_R,

Welcome to the forum, and welcome to the wonderful world of FPGA design!  Let me see if I can answer some of your questions:

  1. Regarding your question of textbook, I've never used one so ... I may not be the best person to ask.  However, an individual on the #yosys freenode IRC channel just recently read through FPGAs: Instant Access, and found that it helped to answer many of his questions.
  2. As for installing Vivado, ahm ... I just followed the instructions that came with the package?  There were a couple of gotcha's that I had to deal with though, but these may be because I use Linux.  1) I needed to make certain I installed the board drivers as I went through the design flow--this required admin access, 2) I needed to make sure I ran a setup script before running Vivado in every window I ran it in, and 3) the interface between Vivado and my web browser was broken, so getting the license took a bit more work.
  3. To start with Vivado, you will first want to create a new project.  You will initialize this new project with the FPGA you are programming for.  You can find that in the schematic, and sometimes in the web page for your board.  Then you'll want to add files to your project.  If you are just starting from scratch, you can come back and add those later.
  4. Vivado has it's own file structure for things.  I don't care for it.  It feels like something that I can't control, so I impose my own.  Really, the structure you choose is in many ways up to you.  I tend to use the coding guidelines I found on Open Cores, with one exception: I create a "xilinx" directory to tell Vivado about, and to have Vivado dump all of its info into.
  5. The easiest way to download a file onto your board is using the hardware manager within Vivado.  So, the flow works as 1) create/edit your design, 2) synthesize your design, 3) implement your design, 4) generate a bit stream, and 5) download that bitstream onto your board.
  6. With any new board, there are two basic designs you will find valuable.  The first is the demo design offered by the manufacturer.  This often gives you a quick "proof" that all the hardware on your board works, but ... not everybody finds that a useful starting point.  My personal approach to a new board starts with first verifying that I can load a design into the board to turn an LED on, then again to turn it off, and finally to get it to blink.  These three designs will make sure you are up and running with the tool set, that you really are up and running with the tool set, and last that you have a valid clock on your board.  From this point, I can usually build everything else.  (I'll come back to this in a moment.)

I'm afraid, though, that my instructions will only get you so far.  So ... can you write back regarding any steps you get confused or stuck on, and we can work through them?

Dan

Thanks a lot for taking the time to answer me. I'll explore all the information you gave me to see if I can run a couple of examples.

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...