Xilinx IOB输出寄存器约束笔记

 关于IOB寄存器的使用,网上已经有很多资料可以查找,这里就不多余说了。

例如https://blog.csdn.net/shanekong/article/details/44157555

本文主要是讲关于XILINX WARNING:Pack:2549 - The register "*" has the property IOB=TRUE, but was not packed into the OLOGIC component. The output signal for register symbol * requires general routing to fabric, but the register can only be routed to ILOGIC, IODELAY, and IOB的解决方案。其中*表示某一个需要IOB寄存器约束的寄存器。

首先这个warning为什么会有,上图来的实在
Xilinx IOB输出寄存器约束笔记
本来F_SRAM1_nBWa、F_SRAM1_nBWb、F_SRAM1_nCE都需要做IOB寄存器约束,但是会有上面的警告。也就是说这三个约束都没有成功执行。从图也可以看出,是由于三个信号输出逻辑相同,工具优化掉了两个寄存器。

解决这个问题很简单,只需要把源文件中的这三个寄存器让其保持(* KEEP="TRUE"*),不要被工具优化掉,这样就会解决这个warning,从而IOB寄存器约束也会成功实施。如下图

Xilinx IOB输出寄存器约束笔记