Xilinx IOB输出寄存器约束笔记
关于IOB寄存器的使用,网上已经有很多资料可以查找,这里就不多余说了。
例如https://blog.****.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为什么会有,上图来的实在
本来F_SRAM1_nBWa、F_SRAM1_nBWb、F_SRAM1_nCE都需要做IOB寄存器约束,但是会有上面的警告。也就是说这三个约束都没有成功执行。从图也可以看出,是由于三个信号输出逻辑相同,工具优化掉了两个寄存器。
解决这个问题很简单,只需要把源文件中的这三个寄存器让其保持(* KEEP="TRUE"*),不要被工具优化掉,这样就会解决这个warning,从而IOB寄存器约束也会成功实施。如下图