element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • 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 Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • 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 Path to Programmable Blog 2 - Xilinx Tool Flow & Getting Started with Zynq-7000
  • 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: avnrdf
  • Date Created: 30 Nov 2018 10:29 AM Date Created
  • Views 1450 views
  • Likes 1 like
  • Comments 0 comments
  • soc
  • path to programmable
  • zynq
  • xilinx
  • fpga
  • avnet minized
  • zynq-7000
  • programmable logic
  • minized
Related
Recommended

Path to Programmable Blog 2 - Xilinx Tool Flow & Getting Started with Zynq-7000

avnrdf
avnrdf
30 Nov 2018

HW Chapter 2 video: Xilinx Embedded Tool Flow

The presenter first went over the different Vivado Design Suite editions: WebPACK is free and supports the common Zynq devices that are found on most development boards (7010 and 7020), and the more expensive HL System & Design editions which support additional features like Partial Reconfiguration & System Generator for DSP.

image

The next slide summarized the typical workflow of Zynq Development. The hardware designer uses Vivado, the IP Integrator etc. for programming the PL (Programmable Logic), while the software designer uses Xilinx SDK for code that will run on the PS.

The next couple of slides highlighted the advantages of IP based design, which allows users to simply drag and drop pre-designed, tested and packaged IP into their project. This is similar to how typical HDL structural modelling works, except that the IP integrator takes it further by automating many tasks like interconnections and DRC.

To get started with IP based workflow, create a block design in Vivado & click on the '+' button to view available IP.

 

Lab 1 - Building a Basic Zynq Design

 

This lab was pretty simple as the agenda was to create a basic Zynq system.

To start, create a new project in Vivado & select the specific part being used - which is a xc7z007sclg225-1 (Z-7007S single ARM Cortex A9 Zynq with 23K Logic Cells, 225 I/O pins & speed grade 1) on the MiniZed.

Since I had downloaded the board definition files for the MiniZed, I could have also switched to the 'boards' tab and selected the MiniZed directly.

image imageimage

We then create a new block design and add the 'Zynq IP' by clicking on the '+'.

imageimage

The Zynq Processing System is added to the design, and we run 'Block Automation', which in this case makes the connections for DDR & I/O external:

image

To customize the Zynq Processing System, double-click on it, which will open up a configuration window.

image

 

HW Chapter 3 video: Zynq Processor Overview

 

This video focused on the technical aspects of the Zynq-7000 PS: the CPU, peripherals, memory interfaces & the AXI Interconnect.

image

There were a couple of slides on the memory system of the ARM: L1 & L2 caches, Snoop Control Unit & Accelerator Coherency Port. This was followed by a little about the Cortex-A9 NEON SIMD co-processor, the FPU Engine, clock tree in the Zynq-7000 for the CPU, DDR, I/O & PL and the DDR interface. The DDR controller supports variations of DDR2 & DDR3, a couple of different bus speeds & bus widths (though IIRC the SKU used on the MiniZed is limited to a 16-bit interface).

This video was pretty technical - a little more than it should have been at this point, but it was a nice refresher on computer architecture!

 

Lab 2 - PS Configuration Part 1 - HelloWorld

 

Picking up from where we stopped at the end of Lab 1, it's time to customize the Zynq7 Processing System.

 

{gallery} Zynq PS Configuration

image

Set the bank voltages to 3.3V

image

Enable the UART

Set the UART baud rate

image

image

Disable 'FCLK_CLK0': This is a clock that is routed to the PL, which we won't be using for now.

image

Also disable the AXI GPIO Interface since we're not using it.

image

Change the type of DRAM to DDR3L & select the correct part - this is based on how everything is wired up on the MiniZed

 

After selecting the DDR3L part, enter the timing parameters. The values depend on PCB routing, and pre-calculated values were provided. An Appendix at the end of the chapter also provided an insight into how these values are calculated, and a link to the Technical Reference Manual of the Zynq-7000 for referring to documentation on the DRAM controller.

 

{gallery} DRAM Configuration

image

Enter the given (pre-calculated) values.

image

The chapter in the Zynq-7000 TRM that describes the memory controller.

 

Next, validate the design and generate a HDL wrapper.

imageimage

Click on 'Generate Bitstream', which will automatically elaborate, synthesize & implement the design - which takes around 3 minutes.

This is the result: the Z_system contains the system that we've just configured, and the external connections go to the DDR & I/O. Clicking on the '+' reveals a structural design and after going in a couple of layers deeper you will see something that looks like the screenshot on the right.

imageimage

Zooming in closer reveals all the connections. This is a very simple design since it only uses the DDR & UART. The PS-PL interconnects haven't been used for now, and the PL is completely programmed. Vivado makes all these connections automatically so that you don't need to break a sweat. The image on the right shows how everything looks like on the chip. The 4 blocks (PL) are empty since the PL hasn't been programmed, and on the left is the ARM core & DDR interface.

imageimage

Export the hardware, and launch Xilinx SDK.

imageimage

Create a new BSP & Application. You project will now consist of 3 parts: the C application, Board Support Package & ARM Embedded Hardware.

Since we created the project using a template for 'Hello World' we can run it directly. Create 'Run Configuration' and use the 'Xilinx System Debugger'.

imageimage

Change the position of the boot switch on the MiniZed to J from F (so that it uses JTAG instead of Flash) and plug it in. Connect to the serial port, and click run.

imageimage

That's it for Lab 2!

 

The training is certainly better than most Zynq tutorials end up being a list of instructions that need to be followed to do something.  The tutorials don't try to explain everything (which is fine!), but provide adequate reasoning as to why some things are configured. I liked the way that the DRAM configuration was handled - pre-calculated values were provided so that the trainee could plug them in and continue (instead of explaining it right there, which could result in the trainee forgetting where they stopped off), but an Appendix at the end explained how they had been derived, and provided a link to the Technical Reference Manual so that trainees can have a look at the documentation when they feel like it.

 

Progress:

image HW Chapter 2 video: Xilinx Embedded Tool Flow

image Lab 1 - Building a Basic Zynq Design

image HW Chapter 3 video: Zynq Processor Overview

image Lab 2 - PS Configuration Part 1 - HelloWorld

 

Next up:

image HW Chapter 4 video: Peripherals, Peripherals & more Peripherals!

image Lab 3 - PS Configuration Part 2 - MIO Peripherals

  • Sign in to reply
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