问:你们建议如何处理全局和本地/区域时钟?
Actel:我们基于闪存的Pro
asic3E
FPGA系列提供18个专用全局时钟,这意味着大部分设计不会受到时钟的限制。对于区域时钟,这些全局时钟中的12个被局部化到该器件的四分之一区域。那么,FPGA设计师应该如何处理跨越用户设计区域和IP模块的公共全局时钟呢?通常,客户必须在更低一级的模块中例示一个全局时钟,将其带到一个输出端口,然后再分发到设计的其他部分。借助Actel的Libero IDE 7.3,客户可以获得基于模块的设计方法,并补救时钟分配问题,客户只需要例示一个全局时钟占位符(CLKINT)。然后,全局缓存可以在设计的顶层中实现。这使得时钟分配和分发更加直观,并简化了在多个设计中模块的重利用。
问:在IP模块集成方面,你看到了哪些问题?你能给工程师什么购买IP的建议?
Actel:IP产生了边界,限制了自动化工具能够优化的东西。另一方面,让IP边界可辨识对调试是非常有帮助的。对于一个复杂度越来越大的设计流程,IP模块是一个用来限制改变的自然边界。
现代FPGA除了逻辑门之外还有很多固定资源。通常多个IP模块共享这些资源。很少FPGA供应商的工具可以最优化处理这一资源共享问题,但Actel Libero在设计时就考虑到了这一问题。其中一个例子是在Actel Fusion混合信号FPGA上多个IP模块间时钟和内存资源的高效共享。
在选择IP时,应该检查其功能和配置以确定它是否能满足你的设计要求。你应该观察该IP是否是针对你的目标FPGA而设计的,以及其尺寸和性能是否高效。好的IP还配有完整的测试向量和高质量的文档。最后,在你答应使用前检测一下该IP核的来历和供应商。
Xilinx:在集成IP模块时的确有一些小挑战,这主要是由于IP供应商实际交付的IP模块与那些可交付使用的IP模块之间存在细微差别而引起的。集成IP模块的一个较大的挑战是确保客户设计仍然能够满足时序和资源要求。我们提供给购买IP的工程师的最重要建议是,确定IP供应商是如何检测和验证该IP的,也就是确认质量和易用性。
问:什么样的时序问题正在引起最大的麻烦?你们建议如何处理?
Actel:最小延时和保持时间分析似乎经常被忽视。外部保持时间和跨时钟域路径(而不是与时钟歪斜时序相对的简单的寄存器到寄存器数据路径)会引起大部分导致硬件失败的时序问题。首先,用户应该进行时序仿真和静态时序分析。仿真提供了功能验证,静态分析提供最好的时序覆盖。为了进行精确的外部保持时间计算,时序应该在最好的工作条件下(包括最高电压、最低温度和最快速度)从发送端、接收端和PCB提取。Actel SmartTime时序分析仪允许用户输入外部输入和输出延时,然后进行所有这些计算。
我们看到的与跨时钟域路径相关的主要问题是时序验证不够充分。当设计中存在跨时钟域路径时,静态时序分析是非常关键的。但是,一些静态时序分析工具不能自动进行这一分析。为了进行这一分析,用户必须定义每个时钟的频率,在最好和最坏的工作条件下进行分析,以及对于每一种工作条件,估计不同时钟之间最大和最小时序偏移。
Lattice:下列三大时序问题正在引起最大的麻烦:高速时钟域转移、竞争条件和保持时间不足。随着工作频率提高,时序窗口正变得越来越小。仔细的时序分析和强大的软件工具可以帮助工程师确定问题区域并解决这个问题。
由于Lattice FPGA交换逻辑的极高性能,保持时间不足的可能性已经开始明显增加。保持时间不足通常发生在时钟偏移大于数据时延的时候。即使Lattice FPGA的主时钟走线具有非常小的偏移,但由于数据路由太快以致于这些不足情况是可能发生的。Lattice ispLEVER设计工具提供自动校正保持时间不足的功能。