实现

FPGA的实现过程可以对综合后生成的网表进行逻辑综合优化、以及布局、布线方面的优化。针对特定的设计可以进行选择功率以及物理综合设计进行优化。

右键实现的选项,点击实现设置即可看到实现有关的配置界面,可以在设置中选择指定的约束文件,综合策略。

在strategy的下拉菜单中,可以针对不同的性能和指标要求尝试选择不同的策略应用与项目工程中。

同时,在description中的各个部分也可以指定directive进行定制各个部分的实现方案。

例如下表中为实现不同指标的优化,例如Area、Power、phys等,对各个阶段的directive的设计是不同的。

当实现策略中包含SLL或者SLR的术语,该策略只能在SSI设备中进行使用运行。

directive与strategy的区别

directive:是指定某一阶段的指令,用于定制某一阶段的优化策略和实现方法。

strategy:则是为了实现某个指标,而运行的一系列的directive,可以将strategy看做是一个对各个阶段的directive指定好的策略合集。

所以,针对不同策略来说,对应的各个阶段的directive可能是不同的,使用者可以在进行实现时,进行定制自己的实现策略。

建议:尝试Performance_Explore

Performance_Explore策略是一个很好的首选,因为它可以涵盖所有类型的设计。

当设计不太满足设计指标需求时,可以进行尝试使用Performance_Explore策略。但相比较而言带来的坏处就是,会增加大量的实现阶段的时间。

TCL 设计(pre、post)

针对各个步骤,可以通过tcl脚本进行指导运行,可实现针对某个阶段或者整个流程的管控。

增量实现

传统的FPGA开发流程中,我们设计完成RTL代码,然后进行综合,实现。但是针对RTL在完成功能设计后,有些情况下检查发现只是部分逻辑功能有问题,需要做少量改变,此时,我之前的做法是将前面的过程再重复一遍…做过FPGA开发的都知道,工程规模的扩大,综合实现的时间在增加。很显然只改了一行RTL代码而编译整个工程,这样做是很蠢的。

因此,为了解决这一问题,赛灵思在工具中引入了增量实现的功能。该功能需要用到之前综合设计好dcp文件然后在实现阶段进行增量布局布线,从而实现对代码的微调的设计的快速实现。

增量实现的应用场景与好处

当改变的部分小于所使用的cell的5%时,可以使用增量实现的方式运行实现阶段的布局布线。

相比正常设计流程,布局布线的速度将会提升3倍左右。同时也会指导工具提供预测性更强的结果,此外也会更加利于时序收敛。

参考设计和当前设计

增量实现的参考设计是指当前设计的早期的迭代版本,他应该是已经作何布局布线后的设计,将会使用到布局布线后的dcp文件,如:XXXX_routed.dcp

当前设计是相比参考设计而言,进行了微小的设计调整和优化,这些设计优化可以是:

  1. RTL的修改变化
  2. 网表的修改变化
  3. 同时修改的网表和RTL的工程设计

增量实现的运行机制

增量实现的运行过程,首先对参考设计以及当前设计的cell和net进行提取,然后进行对比比较,在布局布线中将会复用那些匹配的cells和nets的布局布线结果。

微小改变并不都适合增量实现

但对于增量设计而言,并不是所有的我们认为的微小调整都可以被增量布局布线所接受。

以下在设计部分对增量布局布线有很大影响:

  • 增加推断存储器的大小,个人觉得原因如下,因为存储器在实现过程中要涉及到多个的级联拼接,而对于BRAM实际在FPGA中的布局情况以及级联排列的相关规则,势必会给布线带来很大的难度,因此,该部分的修改不见得会将布局布线延时减小。下图展示的是一个BRAM存储器在实际设计中的布局情况,随着使用位宽和容量增大,会将RAM资源进行级联布线。

下图展示了部分bram布线情况。

  • 拓展内部总线,类似改变存储器的情况。
  • 将有符号数改成无符号数,将有符号数改成无符号数后,所有关于该数的运算都要进行重新考量和计算,因此会引入大量的布线布局布线改动。

改变约束和综合选项也可能会对增量布局布线带来影响:

  1. 改变时序约束和重新综合
  2. 保留或消除逻辑层次
  3. 启用寄存器re-timing

设置增量布局布线

在实现的选项栏中,可以找到设置增量实现的相关操作栏,可以指定参考的dcp文件,设置启用增量实现。

查看增量实现报告

在报告栏中,我们可以打开增量实现的报告用于查看复用的网络以及cell和port的数量和占比。

同时也可以在报告中查看当前路径的布局布线情况,确认在增量布局布线的设置下,该链路是否进行了重新布局布线的操作。使用report_timing/report_timing_summary –label_reused 可进行查看。

表示中的R、PNR用于指示该部分的状态,具体如下:

  • R:该部分进行了布局布线的复用。
  • NR:该部分都没有进行了布局布线的复用。
  • PNR:该部分复用了布局但是没有进行布线的复用。
  • N:该部分是新设计增加的对象。

以Vivado工具为例了解FPGA实现相关推荐

  1. 以Vivado工具为例了解FPGA综合

    Vivado设计流程 使用Vivado进行设计开发的步骤如下: 功能设计:使用HDL语言设计.自带或者第三方的IP.嵌入式处理器等. 综合:在综合时可以加入第三方的网表文件和约束文件. 实现:在Viv ...

  2. 通过vivado工具实现zynq的FPGA内部RAM读写

    通过vivado工具实现zynq的FPGA内部RAM读写(调用vivado自带IP核),从新建工程到仿真并下载到FPGA开发板中,通过vivado自带的ILA逻辑分析仪查看读写数据是否正确,包含详细步 ...

  3. 无招胜有招-Vivado非工程模式下的FPGA设计流程

    参考:UG892 UG835 Vivado集成开发工具为设计者提供了非工程模式下的FPGA设计流程.在Vivado非工程模式下,FPGA开发人员可以更加灵活地对设计过程的每个阶段进行控制,从而进一步提 ...

  4. 虹科干货 | BI软件如何实时连接本地Excel?—以HK-Domo商业智能工具为例

    由于资源和人才的限制,很多中小微企业目前在数据收集和数据应用上还处于比较落后的阶段,没有合适的方法处理数据.最典型的情况就是通过Excel收集数据,然后频繁的手动生成报告.这样会导致数据质量差,流程重 ...

  5. Vivado与Synplify联合设计FPGA

    这篇文章主要记录近几天在使用Vivado以及Synplify工具进行FPGA的Synthesis.Implementation.以及BitStream出现的相关问题. 一.工具使用 RTL代码编辑:修 ...

  6. Vivado使用Tcl命令下载FPGA

    作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 使用 # vivado -mo ...

  7. Vivado工具修改仿真波形界面颜色

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/guancan7221/article/ ...

  8. 安装版本swf文件转换其他视频格式工具(例:swf to mp4) ,转换后的视频无水印...

    查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧! 1.卸载你当前呆板中的Adobe Flash Player,安装11.2.202.235版本 ...

  9. swf文件转换其他视频格式工具(例:swf to mp4) ,转换后的视频无水印

    1.卸载你当前机器中的Adobe Flash Player,安装11.2.202.235版本.(高版本的Flash在使用iWisoft Flash SWF to Video Converter转换后的 ...

  10. FPGA/IC基础知识

    1.简述建立时间和保持时间 建立时间Tsu(setup):触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间. 保持时间Th(hold):触发器在时钟上升沿到来之后,其数据输入端的数 ...

最新文章

  1. 【WinForm】“System.Data.SqlClient.SqlConnection”的类型初始值设定项引发异常
  2. 洛谷 P1008 三连击 Label:水
  3. SAP Event Mesh 简介
  4. 2049. 统计最高分的节点数目
  5. window.postMessage 跨窗口,跨iframe javascript 通信
  6. 随想录(再论内存屏障)
  7. Android NDK学习记录(一)
  8. 更好的理解装饰设计模式和代理设计模式
  9. Slob分配器的数据结构和分配逻辑
  10. 区块链的概念是由()于2008年提出_区块链,下一个时代的基础设施
  11. 大数据查询怎么优化?
  12. IDEA左侧目录,按照文件夹排序
  13. 甲骨文服务器操作系统,甲骨文年内完成操作系统移换 Linux将成主要平台
  14. 计算机属于什么学1001计算机属于什么学,怎样学电脑(初学电脑先学什么)
  15. nginx fastcgi_buffers设置
  16. 《东周列国志》第三十二回 晏蛾儿逾墙殉节 群公子大闹朝堂
  17. 线性回归和逻辑回归的典型面试考点
  18. ajax防止表单重复提交
  19. YYModel之字典/Json转模型
  20. [转]详细解释数据挖掘中的 10 大算法

热门文章

  1. html票据页面怎么做,票据入库.html
  2. Python机器学习零基础入门 -- 骨科患者的生物力学特征分析处理
  3. 【Java 数据结构 算法】宁可累死自己, 也要卷死别人 14 汉诺塔
  4. 外汇市场的起源和发展
  5. Lessonnbsp;5nbsp;Nonbsp;wrong…
  6. 热分析概述及应用范围与详解
  7. 支持ps4html5,PS5支持PS4游戏吗 PS5可以玩PS4买过的游戏吗
  8. 贝叶斯判别matlab,matlab – 朴素贝叶斯分类器和判别分析的准确性是有道理的
  9. 作为企业员工工作计算机,企业员工计算机培训实践与思考.doc
  10. Arial.tff字体,YOLO中下载。已解决