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 6 - Hardware Debugging & some more TCL
  • 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: 6 Dec 2018 2:55 PM Date Created
  • Views 776 views
  • Likes 2 likes
  • Comments 1 comment
  • soc
  • path to programmable
  • zynq
  • xilinx
  • fpga
  • avnet minized
  • zynq-7000
  • xilinx zynq
  • programmable logic
  • minized
Related
Recommended

Path to Programmable Blog 6 - Hardware Debugging & some more TCL

avnrdf
avnrdf
6 Dec 2018

In the previous blog post Path to Programmable Blog 5 - Creating Custom IP , we created custom IP which comprised of some HDL code that implemented a PWM controller, which was then connected to the AXI bus as an AXI-4 Lite Slave, allowing the PS to control the PWM controller. We also added an Integrated Logic Analyzer and JTAG-AXI core.

 

HW Chapter 9 video: Vivado's Hardware Manager

This video went over the different debugging techniques:

image

Although the ILA is implemented in the FPGA fabric along with the main design, it is fully programmable at run time & can be customized with probe comparators, counters & flags.

The JTAG-AXI core allows the user to interact with the AXI bus without the CPU present, since it is also a master to the interconnect. Users can issue commands to execute AXI bus interactions, allowing hardware engineers to test & debug AXI peripherals without actually having any software running on the CPU.

image

 

Lab 8 - Hardware Debugging Zynq Designs

We start by exporting the implemented design that we created in the preceding blog post.

In Xilinx SDK, generate a new BSP, and import the previous projects (BRAM_DMA, Hello World, Memory & Peripheral Tester).

Create a new 'Empty Application', and then import the provided "LED_Dimmer_Int.c" file into sources. This file contains code that reads a value from the UART, converts it to a PWM value and writes it to the register in the PWM Controller. It also sets up an Interrupt Service Routine to handle Interrupts from the PWM Controller.

 

To test all this out, we program the bitstream, open up a serial terminal and run the example.

image

Entering any value from 0-9 sets a different value, and the brightness of the LED on the MiniZed varies accordingly. Entering any other character causes an Interrupt (due to the value in the PWM Controller register), which resets the brightness to 0.

 

To get started with hardware debugging, go back to Vivado and open the Hardware Manager. Connect to the board, and the detected debug cores will show up. Clicking on 'capture' will display the status of the signals connected to the ILA (assuming the ILA core was selected), just like a logic analyzer.

imageimage

Like any logic analyzer, you can set it to automatically trigger based on the value of a signal (eg rising edge of the interrupt line in this case).

image

Another way of debugging/testing is to use the AXI-JTAG core, which lets you take control of the bus so that you can issue commands that trigger transactions as shown:

image

This part of the lab involved executing a couple o TCL commands to perform reads & writes to addresses on the AXI bus i.e. PWM Controller registers and the BRAM.

 

HW Chapter 10 video: TCL Scripting

 

This video highlighted the advantages of TCL scripting. TCL allows users to automate builds & backups, so importing a new project only involves running the script, which will add the necessary files, IP and even make connections. Without TCL, users would have had to spend hours configuring everything via the GUI when rebuilding on importing projects.

 

Lab 9 - The Power of Scripting using Tcl

 

We started off this lab by running a TCL script that was provided in the supporting documents.

 

 

{gallery} Project Block Design

image

Before

image

After

 

The script did quite a lot: it added I2C, UART & GPIO AXI slaves, a wireless manager, extra ports, connected all of them, merged the interrupt sources and imported additional constraints.

The lab document goes through the TCL script and tries to briefly explain what some of the commands did.

image image

HW Chapter 11 video: What's Next

 

This video summarized some learning resources, portfolio etc.of Xilinx and Avnet:

  • Xilinx HLS: Next Generation High Level Design Tools which Abstract the hardware from the user.
  • Free and Commercial Software Development Tools.
  • Portfolio of development boards, reference designs, ready to use IP, documentation etc.
  • For support visit zedboard.org or the Xilinx forums

 

image HW Chapter 9 video: Vivado's Hardware Manager

image Lab 8 - Hardware Debugging Zynq Designs

image HW Chapter 10 video: TCL Scripting

image Lab 9 - The Power of Scripting using Tcl

 

With this, the Module 1 of Path to Programmable "Developing Zynq Hardware" is complete!

  • Sign in to reply

Top Comments

  • DAB
    DAB over 6 years ago +1
    Nice update. I am impressed with the capability of the software tools. I would have killed for that capability back when I was doing bit-slice development. I had to use an oscilloscope and an old HP logic…
  • DAB
    DAB over 6 years ago

    Nice update.

     

    I am impressed with the capability of the software tools.

    I would have killed for that capability back when I was doing bit-slice development. I had to use an oscilloscope and an old HP logic analyzer.

     

    DAB

    • Cancel
    • Vote Up +1 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