基于Tcl脚本生成Vivado工程及编译
Tcl脚本简介
Tcl——Tool Command Language(读作tickle),诞生于80年代的加州大学伯克利分校,作为一种简单高效可移植性好的脚本语言,目前已经广泛应用在几乎所有的EDA工具中。在Xilinx最新的FPGA设计工具Vivado中,Tcl成为唯一支持的脚本。
使用Tcl脚本的优势如下:
- 能快速生成Vivado工程及编译工程,生成工程所需要的PL端bit文件;生成工程之后,根据自己的需要,可手动创建Block Design,或者在脚本添加IP、实现自动连接等功能。总而言之,Tcl的引入,使得Vivado设计过程也变得可编程控制,设计流程变得更加灵活多变。
- 在开发的过程中,直接打开Vivado软件,可视化地进行Block Design设计、配置IP和连线等。但是这样手动添加IP或者连线需要花一定的时间,且编译步骤重复累赘,因为打开了Vivado这个占用电脑资源比较大的软件,导致生成需要的bitstream文件需要花费大量时间。使用脚本可以快速的在Vivado 2017.4 Tcl Shell(Vivado自带的shell终端窗口)执行Tcl脚本命令,无需要打开Vivado软件就进行编译生成bit文件,花费的时间极大的缩短了。
- 如需修改工程的Block Design文件,可以打开Vivado进行修改或者直接修改Block Design Tcl脚本,所有的Block Design设计,Vivado都会自动保存成Tcl脚本文件。
基于TcL脚本生成Vivado工程
- Windows 7/10 64bit;
- Xilinx Vivado 2017.4。
表 1
开发板型号 |
是否支持本实验 |
TLZ7x-EasyEVM |
支持 |
TLZ7xH-EVM |
支持 |
TL5728F-EVM |
支持 |
TLA7-EasyEVM/TLA7-EVM |
支持 |
TLK7-EVM |
支持 |
TL665xF-EasyEVM |
支持 |
TL6678F-EasyEVM |
支持 |
由创龙提供的FPGA开发例程位于光盘Demo目录下,本文以创龙TLK7-EVM开发板为实验平台,以tl-led-flash例程为例,演示使用Tcl脚本生成Vivado工程及编译的开发步骤。
将Demo目录下的tl-led-flash例程复制到Windows非中文路径下,例如复制到C盘根目录。Vivado工程目录结构及文件说明见下表,表格中的xxx代表具体的例程,例如 tl-led-flash例程。Vivado工程的bin文件夹下存放适用于创龙各开发平台运行的可执行文件,src文件夹下包含constraints、hdl和scripts目录。
注意:Windows路径有长度限制,路径太长会导致出错。
表 2
目录 |
文件/目录 |
说明 |
bin |
xxx.bin/xxx.bit |
可执行文件,可直接运行测试 |
src |
constraints |
约束文件 |
hdl |
Verilog源码 |
|
scripts |
xxx_project.tcl |
执行该脚本生成Vivado工程 |
clean.sh |
删除log文件和生成的工程 |
使用TcL终端打开Tcl脚本
打开Vivado软件,点击菜单栏"Window->Tcl Consonle"打开Tcl控制台窗口。
在Tcl控制台窗口执行如下指令(注意指令中"/"符号的方向),进入需要执行的Tcl脚本所在路径,该脚本文件用于生成tl-led-flash例程的Vivado工程。
Vivado% cd C:/tl-led-flash/src/scripts
生成Vivado工程
进入xxx_project.tcl脚本所在路径,执行Tcl脚本生成对应平台的Vivado工程。本次操作中生成创龙TLK7-EVM开发板的Vivado工程——tl_led_flash,指令参数解释如下:
Vivado% vivado -mode batch -source tl_led_flash_project.tcl -tclargs tlk7-evm xc7k325tffg676-2
- vivado -mode batch:使用vivado的batch模式;
- -source axi_gpio_project.tcl:选中要执行的Vivado工程xxx_project.tcl脚本文件;
-tclargs tlk7-evm xc7k325tffg676-2:修改"-tclargs"参数,即可生成对应开发平台和芯片型号的工程。这里生成了TLK7-EVM开发板,FPGA型号为XC7K325TFFG676-2的Vivado工程。如需要生成TLZ7x-EasyEVM开发板,SoC芯片型号为XC7Z010CLG400-2的工程,则将指令修改为:-tclargs tlz7x-easyevm xc7z010clg400-2。
表 3
开发板型号 |
FPGA(SoC)型号 |
"-tclargs"参数 |
TLZ7x-EasyEVM |
XC7Z010CLG400-2 |
tlz7x-easyevm xc7z010clg400-2 |
XC7Z020CLG400-2 |
tlz7x-easyevm xc7z020clg400-2 |
|
TLZ7xH-EVM |
XC7Z100FFG900-2 |
tlz7xh-evm xc7z100ffg900-2 |
TL5728F-EVM |
XC7A100TFGG484-2 |
tl5728f-evm xc7a100tfgg484-2 |
TLA7-EasyEVM |
XC7A100TFGG484-2 |
tla7-evm xc7a100tfgg484-2 |
TLK7-EVM |
XC7K325TFFG676-2 |
tlk7-evm xc7k325tffg676-2 |
TL665xF-EasyEVM |
XC7A100TFGG484-2 |
tl665xf-easyevm xc7a100tfgg484-2 |
TL6678F-EasyEVM |
XC7K325TFFG676-2 |
tl6678f-easyevm xc7k325tffg676-2 |
Tcl脚本执行完成后,Tcl控制台窗口打印信息如下图所示,同时在工程源码"\src\runs"目录下生成对应开发平台的Vivado工程。本次生成了配套于创龙TLK7-EVM开发板的tl_led_flash工程。
Vivado工程编译
双击Vivado工程"src\runs\tl_led_flash.xpr"文件,打开新生成的Vivado工程如下图所示。
点击左边栏PROGRAM AND DEBUG下的Generate Bitsteam选项,弹出对话框中选择Yes选项,如下图所示:
在弹出的Launch Runs对话框中,点击OK开始编译Vivado工程,如下图所示:
用时约6min后,Vivado工程编译完成,实际编译时间跟FPGA工程和PC性能相关。在弹出以下对话框中,点击Cancel完成编译步骤。
编译完后会在Vivado工程"src\runs\xxx.runs\impl_1"目录下生成可执行文件xxx.bit和xxx.bin,如下图所示。其中xxx.bit文件内包含head information,可以通过下载器解析后加载到FPGA核,xxx.bin文件为可执行文件。
为便于测试,我司提供由Vivado工程编译生成的可行文件放于bin目录下,该目录下包含了适用于创龙全部开发平台的可执行文件,将其下载到开发板即可运行测试。
基于Tcl脚本生成Vivado工程及编译相关推荐
- 由tcl脚本生成板子对应的vivado工程
问题来源 试图根据PYNQ v2.4源代码重构Base Overlay,想到从tcl脚本直接生成Vivado工程 资源和开发套件 Vivado 2018.3 正点原子启明星开发板 Zynq7010 ( ...
- vivado中bit文件怎么没有生成_「超实用」一分钟学会用最小存储空间保存Vivado工程...
在平常调试FPGA的过程中,大家会发现Vivado工程动辄数百兆大小,甚至几个G都很常见.如果调试的版本过多,就连几个T的硬盘也不够用.怎么办呢?其实,Vivado自带了一种使用tcl命令保存viva ...
- 新建VHDL的Vivado工程
新建VHDL的Vivado工程 本文介绍基于VHDL语言的Vivado工程新建过程. 软件版本:Vivado2019.2 文章目录 新建VHDL的Vivado工程 1,打开软件 2, 新建工程 3, ...
- 流场可视化工程dlb-dynamicdr部署日志:阶段二:工程本地编译
流场可视化工程dlb-dynamicdr部署日志:阶段二: 工程本地编译 2022-02-25 阶段一 阶段二:勘误 阶段三:为之前的库编译生成静态链接库 .a文件 Par_METIS重新生成 MET ...
- 【懒人专用】Python实现Modelsim独立仿真Vivado工程的自动化脚本
引言 有两种方法可以使用 Modelsim 对 Vivado 工程进行仿真,即级联仿真和独立仿真. 级联仿真就是通过设置使 Vivado 调出 Modelsim 仿真界面并启动仿真,这种 ...
- 搭建属于自己的数字IC EDA环境(五):搭建FPGA自动化环境(Linux下vivado Tcl脚本自动化开发),业余IC设计流程与通路
1.简述 一个完整的IC EDA环境也不能缺少了FPGA,FPGA原型验证是IC设计流程中重要的一环.一个芯片从设计到流片需要投入大量的人力.财力以及很长的研发周期,如果流片失败,对于公司来说是一笔很 ...
- Qsys生成simulator时产生的tcl脚本建立仿真
用Qsys生成simulator时产生的tcl脚本建立仿真的过程: 对QSYS的仿真采用其自己生成的sim文件夹中的tcl脚本,不用自己在do文件中加入IP文件列表了,可以比较快速的建立qsys的仿真 ...
- 使用tcl 创建vivado工程
使用tcl 创建vivado工程 ubuntu 下vivado 运行tcl脚本 ubuntu 下vivado 运行tcl脚本 vivado -source xxx.tcl #creat_xilinx_ ...
- MATLAB如何生成scr文件,基于SCR脚本文件的MatlabAutoCAD结合使用
基于SCR脚本文件的Matlab/AutoCAD结合使用 郭彩立 (重庆市勘测院,重庆 400020) 摘要本文首先结合在AutoCAD中创建图层和添加文字样式的脚本文件,分别介绍了AutoCAD中S ...
最新文章
- java 空间复杂度_时间复杂度和空间复杂度
- JS Event handler example - event capture and bubble
- 网站发布错误“遭遇战”
- 【华为云专家原创】 服务注册与发现如何满足服务治理?
- java 取余_JAVA面试解析(有赞)
- 深入理解Web Service
- 查找算法---------斐波那契查找
- editormd生成博客编辑页面
- Excel小技巧分享-自动缩放的表格来了
- 独立开发一款简单的安卓app
- 网页游戏打击感实施要点
- 腾达路由器显示远程服务器无响应,腾达路由器设置及可能出现的问题
- 记录在处理SIF数据中,遇到的一些问题及解决过程
- vue 节流throttling防抖debounce
- matlab实现LSB图像水印的嵌入与提取
- 人工智能医疗检测:微核细胞情况自动检出率可达90%
- automated creative optimization for e-commerce advertising
- 网络云存储技术Windows server 2012 (项目九 存储服务器文件的安全性配置与管理)
- android点击按钮发出声音
- mt4下载正版官网下载(如何分辨真假MT4软件)
热门文章
- hitTest:(CGPoint)point withEvent:(UIEvent *)event
- XSS之xss-labs-level3
- 中国儿童乐园行业市场建设现状分析与营销策略研究报告2022版
- 小程序好看卡片式轮播
- MIPS DMIPS MFLOPS名词解释
- linux下电路仿真软件下载,Linux下电路仿真.pdf
- python安装anacondapanda_关于pandas:Pyarrow不安装python 3.7(anaconda 5.3.0,windows x64版本)...
- c语言之 杨辉三角
- Android使用Startup和Lifecycle打造一个单独的测试module
- Win10超详细 JavaJDK的安装(D盘)及环境配置