首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
资源利用率报告中的LUT和LUTRAM有什么区别
2
xilinx verilog语法技巧(三)--RAM的初始化
3
为什么推荐使用XPM?
4
Block RAM的基本结构
5
为什么要用XPM_MEMORY
6
Vivado中用于时钟操作的几个Tcl命令
7
影响FPGA时序的进位链(Carry Chain), 你用对了么??
8
动态时钟相位
9
动态时钟频率
10
如何缩短Vivado运行时间
11
你的FPGA设计有这些缺陷吗
12
report_utilization远比你想象的强大
13
vivado如何快速找到schematic中的object
14
FPGA中的CLOCK REGION和SLR是什么含义
15
FPGA中的BEL, SITE, TILE是什么含义
16
如何快速查找目标cell
17
都是pin,有什么区别
18
都是net,有什么区别
19
一张图看懂cell, pin, net, port
20
如何快速找到组合逻辑生成的时钟
21
【Vivado那些事】Vivado下头文件使用注意事项
22
Pblock可以这么画
23
关于Pblock的8个必知问题
24
常用的跟Pblock相关的Tcl命令
25
【Vivado】那些事儿-汇总篇
26
【Vivado那些事】Xilinx FPGA普通IO能不能直接接入PLL作为时钟输入
27
Storage Elements
28
D触发器都有哪几种类型?对应什么样的代码?
29
Xilinx 7系列FPGA逻辑单元理解
30
Vivado下查看芯片资源
31
对RAM初始化怎么做
32
干货:Vivado 直接修改RAM初始化文件,避免重新综合、实现的方法
33
借助Elaborated Design优化RTL代码
34
一张图理解什么是好的设计层次
35
9个关于SSI芯片的必知问题
36
Vivado 2018.3 report_qor_suggestions怎么用
37
Vivado 2019.1新特性(5):更新的report_qor_suggestions
38
Xilinx的高质量时钟输出ODDR原语【随路时钟】【全局时钟网络】【ZC706输出时钟】【ZYNQ】
39
FPGA中BEL Site Tile FSR SLR分别指什么?
40
跟I/O相关的几个命令
41
Vivado Non-Project模式
42
FPGA中降低时钟skew的几种方法
43
FPGA时序优化之Reduce MUXF Mapping
44
什么是Forwarded Clock?
45
几个常见问题
46
如何让同一层次的模块在布局时更紧凑一些
47
什么情况下要用OOC综合方式
48
Vivado 2019.1新特性(2):report_ram_utilization
49
URAM和BRAM有什么区别
50
write_first/read_first/no_change什么区别
清单首页FPGA文章详情

Vivado 2018.3 report_qor_suggestions怎么用

从Vivado 2018.3开始,可以通过图形界面方式使用命令report_qor_suggestions,如图1所示。从Tcl角度而言,就是多了一个-name选项。

图1

report_qor_suggestions的功能是在分析设计的基础上给出改善设计的建议,这些建议可以用.xdc或.tcl文件的形式体现出来,无论是Project模式还是Non-Project模式,这些文件均可加入工程中使用最终达到优化设计的目的。本质上,这些建议是与UFDM(UltraFast Design Methodology)保持一致的。

在图形界面方式下使用report_qor_suggestions会显示如图2所示界面,最终生成如图3所示的Summary。

图2
图3

点击Apply Suggestions按钮,如图4所示,会弹出图5所示界面。最终会生成针对设计的优化建议,也就是前文所述的.xdc或.tcl文件。

图4
图5

在图5中,Manual用于显示无法以.xdc或.tcl形式提供的建议。Synth and Impl用于生成可应用于Synthesis和Implementation阶段的建议,而Impl用于生成仅适用于Implementation阶段的建议。

如果选择Synth and Impl,会生成两个文件:RQSPreSynth.tcl和RQSImplCommon.tcl。Project模式下,RQSPreSynth.tcl可作为约束文件直接添加到Constraint Set里(Vivado支持.tcl文件作为约束文件,添加时将文件类型切换为.tcl即可,如图6所示)。

图6

RQSImplCommon.tcl则应作为Hook Script在Opt Design阶段添加,如图7所示。

图7

Non-Project模式下,这两个文件的添加方式如图8所示。

图8

如果选择Impl,则会生成两个文件RQSPreImpl.tcl和RQSImplCommon.tcl。两者添加位置如图9所示。

图9

Non-Project模式下,这两个文件的添加方式如图10所示。

图10

对于Vivado 2018.3之前的版本,尽管没有图形界面方式,但可直接通过Tcl命令执行。添加-output_dir选项,指定文件生成目录,可在指定位置生成上述文件。需要注意的是RQSPreSynth.tcl和RQSPreImpl.tcl两者是不能同时使用的。

对于一些以DSP、BRAM或URAM为起点或终点的路径,如果这些模块自带的一些流水寄存器没有使能,可通过选项-evaluate_pipelining生成额外的约束使能这些流水寄存器。但要特别注意,这时设计的功能已经被修改,生成的约束只能用于评估这些流水寄存器被使能的情况下对设计时序的影响。就时序评估而言,相比于通过修改RTL代码使能这些寄存器,采用选项-evaluate_pipelining更快捷。如果使能这些寄存器能改善时序,那么可以再返回修改RTL代码,保证设计功能正确。

常见问题:

Q: 什么阶段使用report_qor_suggestions?

A: 该命令可在Synthesis和Implementation的任意阶段使用,但从Baselining的角度而言,最先在哪个阶段发现时序违例,就在那个阶段使用。

Q: 该命令生成的.tcl文件在哪里?

A: 如果直接在Tcl Console中输入该命令,相应的.tcl文件生成目录由选项-output_dir确定;如果是通过图形界面方式使用,相应的.tcl文件在当前工作目录下。当前工作目录可通过命令pwd查询。

结论

report_qor_suggestions会在分析关键路径的基础上给出优化建议,生成相应的.tcl文件,而这些文件可加入工程中执行达到优化的目的。

下一篇
举报
领券