2013.x / 2014.1 - 当寄存器位于子模块中且具有KEEP属性时,端口上的IOB属性不起作用

描述

在我的设计中,我在子模块中有一个输出寄存器,其上附有KEEP属性。

输入/输出块(IOB)属性通过XDC设置为输出端口,但不受尊重。

发生以下严重警告,触发器(FF)以SLICE结束。

[放置30-722]终端'XX'将IOB约束设置为TRUE,但它未连接到FLOP元件或连接的FLOP元件无法进入I / O
根据综合设计,由于KEEP属性,在FF和OBUF之间插入虚拟LUT1,否则网络名称将丢失。

但是,opt_design能够删除LUT1,并且IOB属性成功传播到寄存器。
即使我手动将寄存器锁定到OLOGIC站点,也无法遵守LOC约束。

可以看到不同的严重警告。

[Vivado 12-2285]无法设置实例'xxx'的LOC属性,loc被阻止
为什么寄存器无法被放入IOB?

这是一个布局错误,已提交变更请求。

解决方法是将IOB应用于叶寄存器单元。

这允许寄存器被置于IOB中,尽管LUT1被插入到综合中。
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 08:30:19 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它