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 - Lab 9 (and Done!)
  • 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: aspork42
  • Date Created: 4 Dec 2018 6:20 AM Date Created
  • Views 754 views
  • Likes 5 likes
  • Comments 0 comments
  • tcl
  • avnet
  • path to programmable
  • xilinx
  • winners
Related
Recommended

Path to Programmable - Lab 9 (and Done!)

aspork42
aspork42
4 Dec 2018

About:

Through Avnet, Xilinx and Element14, a training program to learn about the Zynq 7000 platform which is System On Chip combining an FPGA with an ARM processor. This comes to the students as complete development board packed with goodies like a wireless chip from MuRata (BT/BTLE/WIFI), 8GB Flash memory, onboard RAM, USB to JTAG (JTAG programmable over USB), Arduino-style headers (3.3V compatible only), Microphone, Bi-Color LED, and two additional expansion ports.

 

See all blog posts for this training here.

 

Lab 9 - "The power of Scripting using TCL"

The final lab from Module #1 is talking more about TCL ("Tickle) scripting. There has been a fair amount of coverage of TCL in these labs - It was introduced right away in Lab 1, and Lab 4 was all about "The power of TCL" almost entirely dedicated to TCL. Lab 8 once again uses the TCL interface to "man in the middle" the FPGA (Program Logic / PL) commands directly rather than having to run software from the Processing System (PS) of the ARM processor. I think I get the point... image

 

Question - are there any readers out there that use Vivado on a regular / professional basis? Are you using TCL the ways that the training shows? How else are you using it?

 

Here is a video that summarizes the lesson:

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

 

Here is the 'Before' image showing the output from the previous lesson; and startpoint of Lab 9:

This is what we see starting Lab 9 when we open the previous lesson.

 

image

 

We can see the Zynq processor, the AXI Interconnect; which only links to BRAM and the PWM Controller.

 

The TCL script is called via the "source" command; after changing the directory appropriately to find the file:

cd C:/Speedway/ZynqHW/2017_4/Support_documents/Lab9/
source ./lab9.tcl

After calling the 'source' command, it is "go make a sandwich" time - this took quite some time to finish. It looks like most of that was spent running the synthesized design and generating the bitstream; but there was definitely some downtime in there waiting for it to finish.

 

The Final result after running the TCL Script:

image

 

 

 

The program appears to only use a single core. The computer seems to move the thread around from core to core, but only one core is ever utilized at any given time. The training notes that running synthesis can take anywhere from 15-45 minutes. My computer was closer to the 15 minute mark but there were a few other steps like writing the bitstream that still had to happen.

 

 

Interestingly, running the Synthesize command takes a long time. An examination of Task Manager tells the story:

image

 

 

Once that is complete, this message appears; prompting to open the new design:

image

 

 

 

 

We now have PMOD connections (2x), a Wireless controller, a Bluetooth UART, and all the other requisite interconnects. Check out the video posted above for a walk through of all of this!

 

One potential downside of this method is that it was very 'directory dependent' - It took some messing around to get the directory structure correct for the script file to run correctly. Once that was done, however, it ran like a charm. Perhaps this could be compensated for in how the TCL scripting is created, but for this lesson it took a few extra steps to use the 'correct' directory instead of the directory I've been using up until this point.

 

Thanks again to E14 and Xilinx for this program! I'm very excited to start the next lessons in Module 2!

 

- James

  • 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