LogiCORE PCI v3.155,8.1isp2,Virtex-4-PAR无法在三个相邻时钟区域内放置逻辑,从而导致未布线的时钟网络-Altera-Intel社区-FPGA CPLD-ChipDebug

LogiCORE PCI v3.155,8.1isp2,Virtex-4-PAR无法在三个相邻时钟区域内放置逻辑,从而导致未布线的时钟网络

问题描述

PAR无法将逻辑放置在三个相邻的时钟区域内,从而导致未布线的时钟网络。发出以下警告:

“警告:布线:436 – 布线器检测到一个或多个连接的不可布线状况。”

用于Virtex-4器件的PCI 66 MHz设计需要使用区域时钟输入。由该时钟计时的所有逻辑必须落在三个相邻的时钟边界内。

有关区域时钟使用的更多信息,请参阅“Virtex-4用户指南”。在ISE 8.1i中工作的设计可能在8.1iSP2中失败,因为PAR并未将所有由PCI输入时钟计时的逻辑放入三个相邻区域。

解决/修复方法

要解决此问题,必须在逻辑上放置区域组约束,以强制PAR将由PCI时钟计时的逻辑放入三个相邻的时钟区域。以下示例使用AREA_GROUP约束来实现此目的。

请注意,这些示例适用于随CORE Generator提供的核心提供的UCF文件。对于由PCI UCF生成器生成的UCF文件或其他放置,您必须创建有效约束,以便正确放置逻辑。

对于使用4vfx20ff672_32_33r.ucf或4vfx20ff672_32_66r.ucf的32位设计:

INST“*”AREA_GROUP =“AG_FIX”;

AREA_GROUP“AG_FIX”RANGE = SLICE_X36Y64:SLICE_X59Y127;

对于使用4vfx20ff672_64_33r.ucf或4vfx20ff672_64_66r.ucf的64位设计:

INST“*”AREA_GROUP =“AG_FIX”;

AREA_GROUP“AG_FIX”RANGE = SLICE_X36Y32:SLICE_X59Y127;

对于使用4vlx25ff668_32_33r.ucf或4vlx25ff668_32_66r.ucf的32位设计:

INST“*”AREA_GROUP =“AG_FIX”;

AREA_GROUP“AG_FIX”RANGE = SLICE_X28Y128:SLICE_X55Y191;

对于使用4vlx25ff668_64_33r.ucf或v4lx25ff668_64_66r.ucf的64位设计:

INST“*”AREA_GROUP =“AG_FIX”;

AREA_GROUP“AG_FIX”RANGE = SLICE_X28Y96:SLICE_X55Y191;

对于使用4vsx35ff668_32_33r.ucf或4vsx35ff668_32_66r.ucf的32位设计:

INST“*”AREA_GROUP =“AG_FIX”;

AREA_GROUP“AG_FIX”RANGE = SLICE_X40Y128:SLICE_X79Y191;

对于使用4vsx35ff668_64_33r.ucf或4vsx35ff668_64_66r.ucf的64位设计:

INST“*”AREA_GROUP =“AG_FIX”;

AREA_GROUP“AG_FIX”RANGE = SLICE_X40Y96:SLICE_X79Y191;

在应用上述约束之后,PING设计导致未布线的时钟网络

PING示例设计中的三个端口与核心一起未明确锁定到提供的UCF文件中的引脚。这些是PING_DONE,PING_REQUEST32和PING_REQUEST64。 PAR必须将这三个引脚放在三个相邻时钟区域中的有效IOB上。 8.1iSP2中的PAR不会始终正确执行此操作。

要解决此问题,请将三个LOC约束添加到用于将这些引脚放置在有效站点上的UCF文件中。 4vlx25ff668_64_33r.ucf或v4lx25ff668_64_66r.ucf的示例如下:

NET“PING_DONE”LOC =“D10”;

NET“PING_REQUEST32”LOC =“C10”;

NET“PING_REQUEST64”LOC =“D9”;

请登录后发表评论

    没有回复内容