微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 如何发现并解决FPGA设计中的时序问题

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

时间:11-08 来源:互联网 点击:
Pblock和底层规划

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

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

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

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

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

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top