如何发现并解决FPGA设计中的时序问题
时间:11-08
来源:互联网
点击:
Pblock和底层规划
如果发现布局中有许多时序失败路径,手工布局调整通常无法解决问题。反过来,应当创建区域组。创建区域组(Pblock)的方式之一是在网表窗口中右击模块名字并选择“Draw Pblock”。然后在器件观察窗中希望放置区域组的地方画一个长方形。
工具会创建一个Pblock,同时会显示有关的详细信息。属性窗口会显示Pblock需要的逻辑资源以及画出的长方形区域组中可用的资源。
设计的底层规划是一个需要深度交互的过程。你可能会发现需要反复多次调整区域组才能够达到目标。请记住有时创建的区域组越小越少越好。你并不是总需要将整个模块固定为区域组。集中于时序失败的基本单元,将它们组合为区域组并单独为其进行底层规划。
在此过程中,应当利用Pblock指标(Metrics)来更好地理解有关功能,如区域组中可配置的逻辑块(CLB)的利用情况如何(可以在PlanAhead软件左上窗口中点击Metrics标签来查看可用的指标)。这可帮助确定是否某个特定区域中太拥挤以致妨碍布线。如果确实比较拥挤,可能需要通过平面规划将设计逻辑放得散开一些。
一旦利用PlanAhead软件获得尽可能好的时序分数,最后的任务就是优化代码。PlanAhead设计工具现在支持HDL源文件。根据你导入的源文件不同,你可以从时序问题出发通过交叉探查功能回查到网表或HDL。
利用原理图观察窗(Schematic view),可以察看整个时序路径。只需要从时序结果中选择时序路径并按F4。仔细观察从其他模块扇入扇出的逻辑。由于外部接口要求,工具可能经常需要将模块在芯片上散开部署。如果是这样,可能需要使用流水线。
Block RAM和DSP输出时序是引起时序问题的常见原因。通过在这些模块的输出进行存储,通常可以恢复一纳秒甚至更多的时间。
如果发现布局中有许多时序失败路径,手工布局调整通常无法解决问题。反过来,应当创建区域组。创建区域组(Pblock)的方式之一是在网表窗口中右击模块名字并选择“Draw Pblock”。然后在器件观察窗中希望放置区域组的地方画一个长方形。
工具会创建一个Pblock,同时会显示有关的详细信息。属性窗口会显示Pblock需要的逻辑资源以及画出的长方形区域组中可用的资源。
设计的底层规划是一个需要深度交互的过程。你可能会发现需要反复多次调整区域组才能够达到目标。请记住有时创建的区域组越小越少越好。你并不是总需要将整个模块固定为区域组。集中于时序失败的基本单元,将它们组合为区域组并单独为其进行底层规划。
在此过程中,应当利用Pblock指标(Metrics)来更好地理解有关功能,如区域组中可配置的逻辑块(CLB)的利用情况如何(可以在PlanAhead软件左上窗口中点击Metrics标签来查看可用的指标)。这可帮助确定是否某个特定区域中太拥挤以致妨碍布线。如果确实比较拥挤,可能需要通过平面规划将设计逻辑放得散开一些。
一旦利用PlanAhead软件获得尽可能好的时序分数,最后的任务就是优化代码。PlanAhead设计工具现在支持HDL源文件。根据你导入的源文件不同,你可以从时序问题出发通过交叉探查功能回查到网表或HDL。
利用原理图观察窗(Schematic view),可以察看整个时序路径。只需要从时序结果中选择时序路径并按F4。仔细观察从其他模块扇入扇出的逻辑。由于外部接口要求,工具可能经常需要将模块在芯片上散开部署。如果是这样,可能需要使用流水线。
Block RAM和DSP输出时序是引起时序问题的常见原因。通过在这些模块的输出进行存储,通常可以恢复一纳秒甚至更多的时间。
Xilinx FPGA 赛灵思 Linux DSP 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 基于PLB总线的H.264整数变换量化软核的设计(03-20)
- 迄今为止最牛的ASIC验证平台(05-22)
- 验证FPGA设计:模拟,仿真,还是碰运气?(08-04)