TCL管理Vivado工程
文章目录
- TCL管理Vivado工程
- 1. 项目目录
- 2. 导出脚本文件
- 3. 修改TCL脚本
- 3.1 project.tcl
- 3.2 bd.tcl
- 4. 工程恢复
TCL管理Vivado工程
工程结构
![[图片]](https://img-blog.csdnimg.cn/direct/e1763d7c036f4ac2ba54d024b1734f0c.png#pic_center)
![[图片]](https://img-blog.csdnimg.cn/direct/31cd720de0ef45a196e613d6c157eee7.png#pic_center)
1. 项目目录
![[图片]](https://img-blog.csdnimg.cn/direct/bcee1e9ce26a4f99a5cf2e2584cc4e5c.png#pic_center)
- config: 配置文件、coe文件等。
- doc: 文档
- fpga: 最后恢复的fpga工程目录
- ip: ip文件
- mcs: bit流文件等,方便直接使用
- src: .v、.vh等源文件
- tcl: 用来恢复工程的tcl脚本
2. 导出脚本文件
通过TCL Console 将目录切换到tcl目录。
-
生成新建工程tcl脚本
在TCL Console执行write_project_tcl -use_bd_files {./project.tcl} -
如果工程有bd文件,生成对应的tcl脚本用于恢复工程。
( 需要打开对应的bd文件,不打开会找不到)write_bd_tcl -no_ip_version {./bd.tcl}如果有多个bd文件,需要依次打开然后执行上述指令。
-no_ip_version选项用于去除IP的版本信息,方便工程在高版本vivado中打开的情况。 -
生成IP文件脚本
write_ip_tcl [get_ips ETH_RX_FIFO] {./ip.tcl}这里采用将原工程中ip的xci文件直接拷贝到ip目录中的方式。
-
添加仿真文件和约束文件
将原工程的源文件、仿真文文件、约束文件拷贝到src目录下。
![[图片]](https://img-blog.csdnimg.cn/direct/aeb2be8bfb9f478b91ceee90dd6317e5.png#pic_center)
- vcode中存放源文件
- xdc中存放约束文件
3. 修改TCL脚本
3.1 project.tcl
- 修改工程路径
将 set origin_dir "." 修改为 set origin_dir [ file dirname [ info script ] ] - 修改_xil_proj_name_即可更改工程名字
set _xil_proj_name_ "promanagement" - 修改恢复后工程的存放路径( 这里希望生成的工程在fpga目录下)
将 # Create project create_project ${_xil_proj_name_} ./${_xil_proj_name_} -part xc7z020clg484-1 修改为 create_project ${_xil_proj_name_} ../fpga/${_xil_proj_name_} -part xc7z020clg484-1 - 修改block design相关的配置
将 set files [list \[file normalize "${origin_dir}/../../promanagement/promanagement.srcs/sources_1/bd/system/system.bd" ]\[file normalize "${origin_dir}/../../promanagement/promanagement.srcs/sources_1/bd/system/hdl/system_wrapper.v" ]\[file normalize "${origin_dir}/../../promanagement/promanagement.srcs/sources_1/new/top.v" ]\ ] set imported_files [import_files -fileset sources_1 $files]# Set 'sources_1' fileset file properties for remote files # None# Set 'sources_1' fileset file properties for local files set file "system/system.bd" set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]] set_property -name "registered_with_manager" -value "1" -objects $file_obj 修改为 # Create block design source $origin_dir/bd.tcl# Generate the wrapper set design_name [get_bd_designs] make_wrapper -files [get_files $design_name.bd] -top -import set files [list \[file normalize "${origin_dir}/../src/vcode/top.v" ]\ ] set imported_files [import_files -fileset sources_1 $files] - 修改v文件配置
在上一步的修改内容中实际上已经进行了配置 - 修改ip文件配置
将 set files [list \[file normalize "${origin_dir}/../../promanagement/promanagement.srcs/sources_1/ip/clk_wiz_0/clk_wiz_0.xci" ]\ ] 修改为 set files [list \[file normalize "${origin_dir}/../ip/clk_wiz_0/clk_wiz_0.xci" ] \ ] - 修改约束文件配置
将 set file "new/top.xdc" set file_obj [get_files -of_objects [get_filesets constrs_1] [list "*$file"]] set file "[file normalize "$origin_dir/../../promanagement/promanagement.srcs/constrs_1/new/top.xdc"]" 修改为 set file "xdc/top.xdc" set file_obj [get_files -of_objects [get_filesets constrs_1] [list "*$file"]] set file "[file normalize "$origin_dir/../src/xdc/top.xdc"]"
3.2 bd.tcl
将
set list_projs [get_projects -quiet]
if { $list_projs eq "" } {create_project project_1 myproj -part xc7z020clg484-1
}
注释掉
4. 工程恢复
source project.tcl
相关文章:
TCL管理Vivado工程
文章目录 TCL管理Vivado工程1. 项目目录2. 导出脚本文件3. 修改TCL脚本3.1 project.tcl3.2 bd.tcl 4. 工程恢复 TCL管理Vivado工程 工程结构 1. 项目目录 config: 配置文件、coe文件等。doc: 文档fpga: 最后恢复的fpga工程目录ip: ip文件mcs: bit流文件等,方便直接使用src: .…...
R语言:microeco:一个用于微生物群落生态学数据挖掘的R包,第四:trans_beta class
trans_beta class:利用trans_beta类可以变换和绘制beta分集的距离矩阵。该类中涉及到beta多样性的分析主要包括排序、群距、聚类和方差分析。我们首先使用PCoA显示排序。 > dataset$cal_betadiv() The result is stored in object$beta_diversity ... > t1 &…...
Excel文件导入导出,SpringBoot整合EasyExcel批量导入导出,采用的JDBC+EasyExcel(附带整个Demo)
目录 0.为什么mybatis的foreach比JDBC的addBatch慢 1.引入依赖 2.Controller层 3.Service层 4.Utils工具类 5.自定义监听器 6.实体类 7Mapper层 不用Mybatis的原因就是因为在大量数据插入的时候jdbc性能比mybatis好1. 首先分批读取Excel中的数据 这一点EasyExcel有自己…...
Git——本地使用详解
目录 Git1、开始版本控制1.1、初始化Repository1.2、使目录脱离Git控制 2、把文件交给Git管控2.1、创建文件后交给Git2.2、git add之后再次修改文件2.3、git add "--all"与"."参数区别2.4、把暂存区的内容提交到存储库里存档 3、工作区、暂存区与存储库3.1…...
深度学习pytorch——Tensor维度变换(持续更新)
view()打平函数 需要注意的是打平之后的tensor是需要有物理意义的,根据需要进行打平,并且打平后总体的大小是不发生改变的。 并且一定要谨记打平会导致维度的丢失,造成数据污染,如果想要恢复到原来的数据形式,是需要…...
Selenium-webdriver_manager判断是否已经下载过驱动(复用缓存驱动)
1,谷歌浏览器默认位置 2,ChromeDriverManager 下载的驱动位置 其中admin为机器的用户名 def installDriver(self):"""判断是否需要下载driver""""""找到本机谷歌浏览器版本""""""C:\P…...
【SQL】1174. 即时食物配送 II (窗口函数row_number; group by写法;对比;定位错因)
前述 推荐学习: 通俗易懂的学会:SQL窗口函数 题目描述 leetcode题目:1174. 即时食物配送 II 写法一:窗口函数 分组排序(以customer_id 分组,按照order_date 排序),窗口函数应用。…...
mvcc介绍
前提:在介绍mvcc之前,先简单介绍一下mysql事务的相关问题,mvcc归根结底是用来解决事务并发问题的,当然这个解决不是全部解决,只是解决了其中的一部分问题! mysql事务 一、事务的基本要素(ACID&a…...
强化PaaS平台应用安全:关键策略与措施
PaaS(平台即服务,Platform-as-a-Service)是一种云计算服务模式,可以为客户提供一个完整的云平台(硬件、软件和基础架构)以用于快捷开发、运行和管理项目,从而降低了企业云计算应用的高成本和复杂…...
K8s 集群高可用master节点ETCD挂掉如何恢复?
写在前面 很常见的集群运维场景,整理分享博文内容为 K8s 集群高可用 master 节点故障如何恢复的过程理解不足小伙伴帮忙指正 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上…...
【Godot 4.2】常见几何图形、网格、刻度线点求取函数及原理总结
概述 本篇为ShapePoints静态函数库的补充和辅助文档。ShapePoints函数库是一个用于生成常见几何图形顶点数据(PackedVector2Array)的静态函数库。生成的数据可用于_draw和Line2D、Polygon2D等进行绘制和显示。因为不断地持续扩展,ShapePoint…...
如何利用POI导出报表
一、报表格式 二、依赖坐标 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.16</version> </dependency> <dependency><groupId>org.apache.poi</groupId><art…...
自动部署SSL证书到阿里云腾讯云CDN
项目地址:https://github.com/yxzlwz/ssl_update 项目简介 目前,自动申请和管理免费SSL证书的项目有很多,如个人正在使用的 acme.sh。然而在申请后,如果我们的需求不仅限于服务器本地的使用,证书的部署也是一件麻烦事…...
【系统性】 循序渐进学C++
循序渐进学C 第一阶段:基础 一、环境配置 1.1.第一个程序(基本格式) #include <iosteam> using namespace std;int main(){cout<<"hello world"<<endl;system("pause"); } 模板 #include &…...
rust - 一个日志缓存记录的通用实现
本文给出了一个通用的设计模式,通过建造者模式实例化记录对象,可自定义格式化器将实例化后的记录对象写入到指定的缓存对象中。 定义记录对象 use chrono::prelude::*; use std::{cell::RefCell, ffi::OsStr, fmt, io, io::Write, path::Path, rc::Rc,…...
elasticsearch(RestHighLevelClient API操作)(黑马)
操作全是换汤不换药,创建一个request,然后使用client发送就可以了 一、增加索引库数据 Testvoid testAddDocument() throws IOException {//从数据库查出数据Writer writer writerService.getById(199);//将查出来的数据处理成json字符串String json …...
用尾插的思想实现移除链表中的元素
目录 一、介绍尾插 1.链表为空 2.链表不为空 二、题目介绍 三、思路 四、代码 五、代码解析 1. 2. 3. 4. 5. 6. 六、注意点 1. 2. 一、介绍尾插 整体思路为 1.链表为空 void SLPushBack(SLTNode** pphead, SLTDataType x) {SLTNode* newnode BuyLTNode(x); …...
【Kubernetes】k8s删除master节点后重新加入集群
目录 前言一、思路二、实战1.安装etcdctl指令2.重置旧节点的k8s3.旧节点的的 etcd 从 etcd 集群删除4.在 master03 上,创建存放证书目录5.把其他控制节点的证书拷贝到 master01 上6.把 master03 加入到集群7.验证 master03 是否加入到 k8s 集群,检查业务…...
HCIP—OSPF虚链路实验
OSPF虚链路—Vlink 作用:专门解决OSPF不规则区域所诞生的技术,是一种虚拟的,逻辑的链路。实现非骨干区域和骨干区域在逻辑上直接连接。注意虚链路条件:只能穿越一个区域,通常对虚链路进行认证功能的配置。虚链路认证也…...
RAxML-NG安装与使用-raxml-ng-v1.2.0(bioinfomatics tools-013)
01 背景 1.1 ML树 ML树,或最大似然树,是一种在进化生物学中用来推断物种之间进化关系的方法。最大似然(Maximum Likelihood, ML)是一种统计框架,用于估计模型参数,使得观察到的数据在该模型参数下的概率最…...
基于Shapley值与随机森林的印度CPI通胀预测与特征重要性分析
1. 项目概述与核心价值在宏观经济预测领域,通胀预测的准确性直接关系到货币政策制定、市场预期管理乃至社会民生稳定。传统的计量经济学模型,如基于菲利普斯曲线的线性回归,虽然具有良好的可解释性,但在捕捉现实世界中复杂、非线性…...
2026年新能源人才全球本地化策略
导读:报告基于领英行业洞察,聚焦 2026 年全球新能源行业发展格局、中国企业出海现状、人才供需痛点及全球化人才本地化落地策略,为新能源企业海外人才招聘、培养与组织管理提供完整解决方案。关注公众号:【互联互通社区】…...
长期使用Taotoken Token Plan套餐带来的成本节约感受
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken Token Plan套餐带来的成本节约感受 1. 项目背景与成本挑战 我们团队负责一个持续进行文本分析与内容生成的内部…...
告别ENVI/Erdas!用PCI Geomatica处理Pleiades立体像对,手把手教你提取高精度DEM(附数据与避坑指南)
从Pleiades立体像对到高精度DEM:PCI Geomatica全流程实战解析 在遥感数据处理领域,数字高程模型(DEM)的生成一直是核心工作之一。传统主流软件如ENVI和Erdas虽然功能全面,但在处理高分辨率卫星立体像对时,特…...
Go语言单元测试:testing框架
Go语言单元测试:testing框架 1. 测试基础 func TestAdd(t *testing.T) {if Add(1, 2) ! 3 {t.Error("Add failed")} }2. 总结 单元测试是保证代码质量的基础,Go语言内置testing框架。...
c++乱码问题
大家下载vs2026或者更新时,可能会出现乱码问题点击工具,进入选项,在环境列表里找到文档,下滑到底部,勾选使用特定编码保存文件然后退出就可以了。如果还是存在问题,将自己的代码保存,重新新建一…...
2026年实用降AI率平台:亲测AI率从90%降至4%的省心方案
一、前言:2026年毕业必过AIGC检测门槛 2026年国内高校对学术论文的AIGC疑似度审核全面收紧,绝大多数院校都发布了明确的AIGC检测数值要求:985、211院校规定本科论文AI率需低于20%,硕士论文AI率不得高于15%,普通高校也普…...
Windows流媒体服务器终极指南:5分钟部署SRS高性能视频传输平台
Windows流媒体服务器终极指南:5分钟部署SRS高性能视频传输平台 【免费下载链接】srs-windows 项目地址: https://gitcode.com/gh_mirrors/sr/srs-windows 在Windows平台上快速搭建专业级流媒体服务器,SRS(Simple Realtime Server&…...
Unity Addressable资源管理系统实战指南
1. 这不是“换个加载方式”,而是重构资源交付链路的起点Unity Addressable系统刚发布那会儿,我正带一个横跨三端(iOS/Android/PC)的AR互动项目。美术团队每天提交200张高清贴图、50个FBX模型,打包后APK体积飙到1.8GB—…...
广义傅里叶特征物理信息极限学习机:高效求解高频偏微分方程
1. 项目概述:当物理信息机器学习遇上高频挑战在科学计算和工程仿真领域,求解偏微分方程(PDE)就像是为复杂的物理世界构建数字孪生。无论是模拟飞机机翼周围的气流,还是预测新材料的热传导性能,最终都归结为…...
