步骤4:使用对象定义约束
物业
您可以创建时间和放置约束,如本教程所示。你也可以
更改单元格的属性以控制Vivado实现如何处理它们。许多
物理约束被定义为单元对象的属性。
例如,如果您在设计中发现RAM存在时序问题,为了避免重新合成,您
可以更改RAM单元的属性以添加流水线寄存器。与确认后
设计师和验证团队认为这是一种可接受的方法,您可以更改设计。
设置单元格属性
因为在合成后返回RTL可能太耗时且成本太高,所以您可以
按如下方式更改网表。
1.选择编辑→查找,打开查找对话框,如下图所示。
a.从查找下拉列表中选择单元格。
b.在“属性”下,将PRIMITIVE_TYPE设置为BMEM。布拉姆。
c.确保选择了“搜索层次结构”,如下图所示。
d.单击“确定”。
“查找结果”窗口打开。
2.选择“查找结果”窗口工具栏菜单上的“显示搜索”按钮。
3.搜索ingressLoop,然后选择以下单元格:fftEngine/fftInst/
ingressLoop[7].ingressFifo/
在“单元属性”窗口的“属性”选项卡中,您可以看到DOA_REG和
DOB_REG设置为零,表示输出寄存器已禁用。
4.直接从Tcl控制台从该单元格生成自定义计时报告。Tcl
要输入的命令是:
report_timing -from [get_cells fftEngine/fftInst/
ingressLoop[7].ingressFifo/
buffer_fifo/infer_fifo.block_ram_performance.fifo_ram_reg]
提示:您可以将单元格名称从“单元格属性”窗口的“常规”选项卡复制并粘贴到
Tcl控制台。
5.在Tcl控制台的右上角,单击最大化按钮以最大化
窗口,更好地查看计时报告。
6.在报告的数据路径部分,此RAMB添加了1.800ns。
7.将Tcl控制台恢复到正常大小。
8.在“单元属性”窗口的“属性”选项卡中,选择DOA_REG和DOB_REG
此单元格的属性,并将其值从“0”更改为“1”
您可以在Tcl控制台中看到两个set_property命令正在运行。
Tcl控制台。
5.在Tcl控制台的右上角,单击最大化按钮以最大化
窗口,更好地查看计时报告。
6.在报告的数据路径部分,此RAMB添加了1.800ns。
7.将Tcl控制台恢复到正常大小。
8.在“单元属性”窗口的“属性”选项卡中,选择DOA_REG和DOB_REG
此单元格的属性,并将其值从“0”更改为“1”
您可以在Tcl控制台中看到两个set_property命令正在运行。
set_property DOA_REG {1} [get_cells {fftEngine/fftInst/
ingressLoop[7].ingressFifo/
buffer_fifo/infer_fifo.block_ram_performance.fifo_ram_reg}]
set_property DOB_REG {1} [get_cells {fftEngine/fftInst/
ingressLoop[7].ingressFifo
/buffer_fifo/infer_fifo.block_ram_performance.fifo_ram_reg}]
9. Run the timing report from the selected cell. The Tcl command to enter is:
report_timing -from [get_cells fftEngine/fftInst/
ingressLoop[7].ingressFifo
/buffer_fifo/infer_fifo.block_ram_performance.fifo_ram_reg]
10. Notice that the
data path delay
for the RAM is now 0.622 ns.