Vivado增量式编译

Vivado 中的增量设计会重新利用已有的布局布线数据来缩短运行时间,并生成可预测的结果。当设计有 95% 以上的相似度时,增量布局布线的运行时间会比一般布局布线平均缩短2倍。若相似度低于80%,则使用增量布局布线只有很小的优势或者基本没有优势。

当设计进行到后期,每次运行改动很小,在开始后端实现前读入的设计网表具有较高相似度的情况下,推荐使用 Vivado 的增量布局布线功能。运行增量流程的前提是有一个已经完成布局布线的参考设计检查点(Design Checkpoint, DCP)文件,并以此用来作为新的布局布线的参考。运行过程中,Vivado 在 Tcl 脚本中用read_checkpoint –incremental *.dcp 读入。参考文件可以是布局或布线后的dcp文件。除此之外,也可以运行report_incremental_reuse 命令检查并报告参考设计检查文件和当前设计文件的相似度。

Using Incremental Compile in Non-Project Mode

To specify a design checkpoint file (DCP) to use as the reference design, and to run incremental place in Non-Project Mode:

1. Load the current design.

2. Run opt_design.

3. Run read_checkpoint -incremental <dcp_file>.

4. Run place_design.

5. Run phys_opt_design(optional). Run phys_opt_design ifit was used in the reference

design.

6. Run route_design.

TCL脚本:

link_design; # to load the current design

opt_design

read_checkpoint -incremental <dcp_file>

place_design

phys_opt_design; #if used in reference design

route_design

注:可以用增量式编译方法更新BRAM中的初始化数据,可以减少一半的综合时间。

参考文献:

[1] 何宾. Xilinx FPGA权威设计指南——Vivado2014集成开发环境. 电子工业出版社. 2015,2.

[2] Xilinx. UG904:Incremental Compile. 2013,10,2.

时间: 2024-07-31 14:31:40

Vivado增量式编译的相关文章

增量式编码器专题

编码器简介 编码器(encoder)把角位移或直线位移转换成电信号,前者称为码盘,后者称为码尺. 按照工作原理编码器可分为增量式和绝对式两类: ①增量式编码器: 将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小.通常为A相.B相.Z相输出,A相.B相为相互延迟1/4周期的脉冲输出,根据延迟关系可以区别正反转,而且通过取A相.B相的上升和下降沿可以进行2或4倍频:Z相为单圈脉冲,即每圈发出一个脉冲. ②绝对式编码器: 每一个位置对应一个确定的数字码,因此它的示值

利用stm32自带的正交编码器检测增量式编码器流程总结

由于手术的工频升级机需要自动平层功能,于是着手开始做这方面的工作.硬件选择的是增量式编码器,100脉冲每转,后来了解到stm32的每个定时器的通道1和通道2内置了正交编码器模块,可以直接使用.之前的公司工程师都是用定时器捕捉脉冲,然后自行处理的,我看了下代码挺麻烦的,现在用了stm32自带的感觉就容易多了.找了官方的软件说明,看了下网上已有的例子,一个下午就基本在我的系统架构中添加了这个设备,然后对这个设备初始化,设置上层接口API.最后看些例子将16位计数器软件扩展到32位.就顺利的完成了基本

利用Hbase的coprocessor实现增量式Apriori算法

Apriori在数据挖掘中是经典的频繁项集挖掘算法,其主要思想就是如果某个项集不频繁,则任何包含此项集的项集一定不频繁.而今天要实现的增量式的Apriori算法,有点像分布式的Apriori,因为我们可以把已挖掘的事务集和新增的事务集看作两个互相独立的数据集,挖掘新增的事务集,获取所有新增频繁集,然后与已有的频繁集做并集,对于两边都同时频繁的项集肯定全局频繁,而只有一边频繁的项集则需要统计其在两边的频繁计数,这样完成后就能获得所有的全局频繁集,并不需要重新挖掘已有的事务集,效率必然提高. 至于H

增量式强化学习

线性逼近: 相比较于非线性逼近,线性逼近的好处是只有一个最优值,因此可以收敛到全局最优.其中为状态s处的特征函数,或者称为基函数. 常用的基函数的类型为: 增量式方法参数更新过程随机性比较大,尽管计算简单,但样本数据的利用效率并不高.而批的方法,尽管计算复杂,但计算效率高. 批处理方法: 深度强化学习: Q-learning方法是异策略时序差分方法.其伪代码为: 离策略:是指行动策略(产生数据的策略)和要评估的策略不是一个策略.在图Q-learning 伪代码中,行动策略(产生数据的策略)是第5

增量式PID的stm32实现(转)

源:增量式PID的stm32实现,整定过程 首先说说增量式PID的公式,这个关系到MCU算法公式的书写,实际上两个公式的写法是同一个公式变换来得,不同的是系数的差异. 资料上比较多的是: 还有一种是: 感觉第二种的Kp Ki Kd比较清楚,更好理解,下面介绍的就以第二种来吧.(比例.积分.微分三个环节的作用这里就详细展开,百度会有很多) 硬件部分: 控制系统的控制对象是4个空心杯直流电机,电机带光电编码器,可以反馈转速大小的波形.电机驱动模块是普通的L298N模块. 芯片型号,STM32F103

增量式爬虫

目录 增量式爬虫 增量式爬虫 案例: 爬取4567tv网站中所有的电影详情数据 需求:爬取糗事百科中的段子和作者数据. 增量式爬虫 当我们在浏览相关网页的时候会发现,某些网站定时会在原有网页数据的基础上更新一批数据,例如某电影网站会实时更新一批最近热门的电影.小说网站会根据作者创作的进度实时更新最新的章节数据等等.那么,类似的情景,当我们在爬虫的过程中遇到时,我们是不是需要定时更新程序以便能爬取到网站中最近更新的数据呢? 增量式爬虫 概念:通过爬虫程序监测某网站数据更新的情况,以便可以爬取到该网

增量式爬虫案列

增量式爬虫 引言: 当我们在浏览相关网页的时候会发现,某些网站定时会在原有网页数据的基础上更新一批数据,例如某电影网站会实时更新一批最近热门的电影.小说网站会根据作者创作的进度实时更新最新的章节数据等等.那么,类似的情景,当我们在爬虫的过程中遇到时,我们是不是需要定时更新程序以便能爬取到网站中最近更新的数据呢? 一.增量式爬虫 概念:通过爬虫程序监测某网站数据更新的情况,以便可以爬取到该网站更新出的新数据. 如何进行增量式的爬取工作: 在发送请求之前判断这个URL是不是之前爬取过 在解析内容后判

爬虫篇 ---增量式爬虫

What is 增量式爬虫? 用来 监测 网站数据更新的情况,只会爬取网站中更新出来的新数据 增量式爬虫的核心 去重,因为你爬取到的数据是不可以出现重复的 怎么进行增量式爬取呢? 在发送请求之前判断这个URL是不是之前爬取过 在解析内容后判断这部分内容是不是之前爬取过 写入存储到 redis 时判断内容是不是已经在介质中存在 #总结分析 对比三种方式增量爬取的核心是去重, 至于去重的操作在哪个步骤起作用,只能说各有利弊.在我看来,前两种思路需要根据实际情况取一个(也可能都用). #第一种思路适合

增量式 爬虫

# 增量式 爬虫 概念: 监测网站的数据更新的情况,只爬取网站更新的数据. 核心: 去重 实现 Redis  set集合也行 --  如何实现redis去重? -- # 爬取电影站的更新数据 url去重 https://www.4567tv.tv/frim/index1.html# 下面代码以 http://www.922dyy.com/dianying/dongzuopian/ 为例 作为起始页 # spider.py 爬虫文件 # -*- coding: utf-8 -*- import s