element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Path to Programmable
  • Challenges & Projects
  • Design Challenges
  • Path to Programmable
  • More
  • Cancel
Path to Programmable
Blog FPGA - 01 - Initial Zynq block config
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Events
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: nixiefairy
  • Date Created: 8 Jan 2019 1:28 PM Date Created
  • Views 769 views
  • Likes 2 likes
  • Comments 2 comments
  • path to programmable
  • minized
Related
Recommended

FPGA - 01 - Initial Zynq block config

nixiefairy
nixiefairy
8 Jan 2019

Hey guys,

Hope this new year brings luck and fortune to everyone!

 

ZynqHW_2017_4_lab_1_v11 :

 

So I would just cover briefly Lab 1 :

  1. Guides to setup a new project. I didn't like the fact Avnet is forcing it's users to select target language as VHDL. Would have been great if they could leave the decision up to the reader. So ignoring this particular instruction , I went ahead with Verilog.

image

 

    2. After selecting the correct target device, a new Zynq project was created

    3. One of the fundamental tools in Vivado is the Block Design. There was no such tool in the Xilinx ISE. So after adding the Zynq IP to the block design, a few pins were made external (DDR and Fixed_IO). Final block design looks like this :

    image

 

Really happy with the little diagrams they have put in every step of the manual. It increases the length and complexity of the lab and I think for someone who is starting with Vivado from scratch it is pretty comprehensive.

Not to happy with the layout though. A few sections I think were unnecessary were being covered in the lab. This could easily be a six to seven page lab manual rather than being an eighteen page one. A simpler version could be drafted for this lab, just containing the steps that are needed to be performed and the reason behind it. I feel these topic aren't required : Lab Setup, Lab Instruction Notes, Technical Support, Lab Overview and Exploring Further.

So that briefly covers Lab 1.

 

ZynqHW_2017_4_lab_2_v12 :

 

In lab 2, experiment 2 there is a talk of the DDR3 bus. Now the DDR stands for Double Data Rate, which is basically a data transfer protocol occurring at each clock edge (that is : both posedge and negedge). The 3 suffix implies that the memory controller must wait three clock cycles until data is delivered after a request is made. The different steps for DRAM training is explained in UG585, Section 10.6.9 . Now to understand the "DQS line" the DDR configuration has been talking about, this github page is pretty useful : Understanding DDR Memory - Github  . In a nutshell, DQS is just the "Data Line Strobe" and it is basically used as an alignment (reference) signal for the Clock and the Data lines of the DDR controller. The Zynq block design looks like this :

image

The final part of experiment 2 talks about adding a few delays to "DQS to Clock" and "Board". Now, from what I've learnt : "Never mess with the auto-generated complicated stuff. Especially in Vivado", I will not change any delay values. I know I sound stupid, but to me it just looks like Avnet wants complicate this lab further (why am I so smartimage).

image

Onto the most time consuming task in this lab. Getting SDK to work on Ubuntu (lol). After two days of head banging, I would highly recommend everyone to run SDK on Windows. If however you do want to descend into this madness :

  • Please do remember to add the following paths to Xilinx SDK in Linux : /usr/lib/gcc/x86_64-linux-gnu/7/include and /usr/include . Eclipse does not add the gcc header files path for you :<
  • Make sure you have the FTDI drivers installed (use dmesg | tty FTDI to check)
  • SDK terminal crashes the SDK environment when used (that is to say, when a serial output is being printed).
  • \r (carriage return) I think acts funny on Minicom. Not sure about this point though.

So the final result of the "Hello World " came out to be like this :

image

Please note I did fix up the DQS to clock delay but still no luck. Lab 3 looks like a DMA experiment, so we could see the results then image.

 

The Arch linux setup would be put up as an extra section hopefully by next blog or the next to next one. I have a bloody slow internet connection.

Github link : My git repo for Path to Programmable

  • Sign in to reply
Parents
  • mu.udhay
    mu.udhay over 6 years ago

    Hi Eashan,

    I am using Ubuntu 16 LTS but i have run SDK on Ubuntu 18 also , it works fine . May be the Older Version of SDK (of 2017 )is causing the Trouble .I am using 2018 version with Putty as the Serial Terminal

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • mu.udhay
    mu.udhay over 6 years ago

    Hi Eashan,

    I am using Ubuntu 16 LTS but i have run SDK on Ubuntu 18 also , it works fine . May be the Older Version of SDK (of 2017 )is causing the Trouble .I am using 2018 version with Putty as the Serial Terminal

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
  • nixiefairy
    nixiefairy over 6 years ago in reply to mu.udhay

    Hey Udhay,

    I had got it working by the next blog -FPGA - 02 - Memory Tests . Turns out all the drivers are not installed (here Zynq) in a minimal Ubuntu installation. In Linux, you have to specifically run a separate script which comes along with the Vivado installation.

    Just for reference to others :

    cd [Vivado Installation]/data/xircom/cable_drivers/lin64/install_scripts/install_drivers/

    ./install_drivers

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube