我的FPGA是否耗尽了路由资源?


9

我的串行ATA控制器设计可用于几乎所有种类的Xilinx 7系列设备,但Artix-7设备除外,这让我头疼。

纯设计(SATA 6.0Gb / s,150 MHz设计时钟)可以在我的Artix-7 200T上实现。如果添加ILA内核(以前称为ChipScope),则无法满足时间要求。

我该怎么做才能缓解这种情况:-在每个ILA内核中增加了2个流水线级-在GTP收发器和逻辑之间增加了1个流水线级-使用重定时,重映射和广泛放置作为替代实施策略

此图像显示了正常的设计流程。ILA内核远离SATAController(SATAC)和8位CPU(SoFPGA),但是控制器仍然具有故障路径(这是唯一具有故障路径的区域)。

在此处输入图片说明

感觉Artix-7在某些区域没有路由资源。我如何获得表明这种怀疑的报告?

我还尝试了重新计时,重新映射和更广泛的放置策略。结果是这样的:

在此处输入图片说明

计时失败几乎是相同的...

PS该设计仅使用178个> 300 BlockRAM。我使用Xilinx ISE在其他设计中几乎使用了每个BlockRAM,但是我从未遇到过这种行为。

编辑:

这是每个切片的所有负松弛值的热图(以红色显示) 在此处输入图片说明


3
在Altera Quartus中,有一个称为LogicLock的区域,它使您可以将逻辑分区或逻辑块约束到特定区域。我认为Xilinx会有类似的东西(尽管不确定它会被称为什么)。如果可以这样做,则应将ILA限制在逻辑之外的区域(以防止其替换重要的内容),并添加额外的流水线(不受该区域限制)以帮助安排时间。
汤姆·卡彭特

2
也可能是ILA的时钟域与任何其他时钟域之间的路径错误,导致路径错误,从而导致钳工付出额外的努力(导致对真实路径的优先级降低,导致计时失败)
Tom Carpenter

2
我在SignalTap上也遇到过类似的问题(再次与Altera等效,相当于ILA),原因是失败的路径是因为抽头逻辑希望将更灵敏的路径分开,希望更接近被抽头的信号。这主要发生在高BRAM密度的地方,因为SignalTap BRAM迫使其他BRAM进一步分开。一旦SignalTap被限制在一个临界填充程度较低的区域,问题就消失了。
汤姆·卡彭特

@TomCarpenter放置约束称为PBlock :)。据我所知,在SoFPGA或SATAC区域中没有ILA单元,它们在151个跟踪信号中的每一个上通过3个FF级被分离。探测的设计与ILA(150 MHz)在相同的时钟域中运行。所有路径均受约束(无约束,无故障时钟间路径)。提到的故障路径都在SATAC或ILA本身的同一时钟域中。我发现了一条路由拥塞报告,其中说约有54%的使用情况(水平和垂直)。请看我的阴性。松弛的热图增加了我的问题。
Paebbels,2016年

1
我发现了两个问题:首先,Artix-7比Kintex-7慢15%至50%。如果我将默认速度等级从-2更改为-3,一切都很好(安全余量为200 ps,而负余量为670 ps,因此,速度等级-3将6.600 ns的路径改善了近0.970 ns!似乎纯粹是由于跟踪信号的附加会导致较高的扇出,从而导致时序问题;此外,跟踪路由会通过8位CPU的100 MHz时钟域,这又会导致(5次运行中的1次) 。在时钟域问题,只要线/航线得来的其他线路造成的问题。
Paebbels

Answers:


1

通过在Xilinx Vivado中进行设计分析,可以获得详细的报告。在tcl控制台中运行以下命令:“ report_design_analysis”它为您提供了已实施设计的时间,复杂性和拥塞报告。您还可以通过转到工具->报告->报告设计分析来运行此报告。

在此报告中,您可以查看哪些区域由于放置而导致拥堵。充分使用了哪些切片,或者这些切片和/或路线的租金是多少。

我希望这会有所帮助。

问候,KWQ


感谢您提供这份报告(对我来说是未知的)。与上一张图片(定时热图)有何不同?
Paebbels 16-10-26
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.