新闻中心

EEPW首页>EDA/PCB>设计应用> 如何发现并解决FPGA设计中的时序问题

如何发现并解决FPGA设计中的时序问题

作者: 时间:2009-03-02 来源:网络 收藏

问题不同,在PlanAhead软件中处理这些问题的解决方案也跟着变化。在PlanAhead设计工具中解决问题需要不断实践。该解决方案体现以下操作步骤中:


1. 选择高亮显示失败的时序路径。

2. 右击路径上的某个实例,选择“Highlight With →color of choice”。

3. 在左侧栏中,将底部第二个Mult18释放。右击“Unplace。这将为时序失败的块RAM腾出空间。

4. 点击拖动底部的Mult18向左上移动一个位置。

5. 点击拖动右边的块RAM到底部左侧的自由块RAM位置。

6. 选定失败的时序路径,确认路径看起来是优化的。

7. 选择“Tools→Clear PlacementConstraints”。点击第一个选项中的“Next”。

8. 选择“Unplace All But SelectedInstances”。在余下的向导步骤点击“Next”。

9. 如果希望在“PlanAhead软件外运行实施流程,选择“File →Export Floorplan”。

10. 工具会输出一个新的文件名为“top.ucf”的UCF文件。你可直接使用这一文件,或者将文件中的约束加入到原始UCF中。

11. 另一个选择是在PlanAhead软件内运行实施工具。


选择“Tool→Run ISE Place Route with ExploreAhead。

ExploreAhead提供了许多很好的功能,包括:自动从器件观察窗导入约束到UCF;简化了从ExploreAhead中运行的布局和时序结果的导入。

图2. PlanAhead 10.1版软件显示出将DSP48和块RAM锁定后的正确路径。


Pblock和底层规划


如果布局中有许多时序失败路径,手工布局调整通常无法解决问题。反过来,应当创建区域组。创建区域组(Pblock)的方式之一是在网表窗口中右击模块名字并选择“Draw Pblock”。然后在器件观察窗中希望放置区域组的地方画一个长方形。


工具会创建一个Pblock,同时会显示有关的详细信息。属性窗口会显示Pblock需要的逻辑资源以及画出的长方形区域组中可用的资源。


设计的底层规划是一个需要深度交互的过程。你可能会需要反复多次调整区域组才能够达到目标。请记住有时创建的区域组越小越少越好。你并不是总需要将整个模块固定为区域组。集中于时序失败的基本单元,将它们组合为区域组并单独为其进行底层规划。


在此过程中,应当利用Pblock指标(Metrics)来更好地理解有关功能,如区域组中可配置的逻辑块(CLB)的利用情况如何(可以在PlanAhead软件左上窗口中点击Metrics标签来查看可用的指标)。这可帮助确定是否某个特定区域中太拥挤以致妨碍布线。如果确实比较拥挤,可能需要通过平面规划将设计逻辑放得散开一些。


一旦利用PlanAhead软件获得尽可能好的时序分数,最后的任务就是优化代码。PlanAhead设计工具现在支持HDL源文件。根据你导入的源文件不同,你可以从时序问题出发通过交叉探查功能回查到网表或HDL。


利用原理图观察窗(Schematic view),可以察看整个时序路径。只需要从时序结果中选择时序路径并按F4。仔细观察从其他模块扇入扇出的逻辑。由于外部接口要求,工具可能经常需要将模块在芯片上散开部署。如果是这样,可能需要使用流水线。


Block RAM和DSP输出时序是引起时序问题的常见原因。通过在这些模块的输出进行存储,通常可以恢复一纳秒甚至更多的时间。


上一页 1 2 3 下一页

关键词:FPGA发现时序

评论


相关推荐

技术专区

关闭