步骤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
要输入的命令是:
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. 标签:ram,单元格,fifo,Tcl,ObjectProperties,属性,Defining,REG,Constraints From: https://blog.csdn.net/cckkppll/article/details/142313996