Intel FPGA Clock Region概念以及用法

Intel FPGA 的Clock Region概念

FPGA里面有着大量的逻辑资源,DSP,Memory,PLL,硬核IP,布线资源等。 我们可以用这些资源来实现我们的设计。当设计占用的资源过多时,布线资源将会变得拥塞,设计的Fmax将没那么容易提高。

本笔记将从 Clock Region这一小视角,来分析和理解硬件资源

许多大型FPGA提供了 专用的全局时钟网络,区域时钟网络,专用的快速区域时钟网络等。这些层次化的时钟结构将允许在不同设备区域的多个时钟得到一个较低的延迟和抖动。

Intel 不同系列FPGA 的Clock Region

我们可以用Quartus 的chip planner 来查看不同型号FPGA的硬件资源:

1. Clock Region Assignments in Intel Stratix 10 Devices

每个sector 有编号。约束的时候 可以以 SX# SY#去约束

2. Clock Region Assignments in Intel Agilex Devices


3. Clock Region Assignments in Intel Cyclone V SX Devices

3.1 Spine Clock Region

3.2 Periphery Clock Region

3.3 Quadrant Clock Region

3.4 Regional Clock Region

3.5 Global Clock Region

Clock Region的用法

首先 Quartus 可以自动布线来决定Clock Tree的位置和大小。然后我们也可以直接的对Clock Tree 进行约束,比如使用Clock Region Assignment 或用 LogicLock来约束

如何用?

我想到一个使用场景,并实际应用了一下:(example) 在 Agilex 中需要对DDR4做一个Logiclock约束

如果没理解Clock Region 之前,我们可能起始位置和结束位置,就照着IO分布和需求大概画一个。

这次,我画LogicLock区域的时候,刚好以clock Region 的边界为起始。

这样就能将DDR4 塞到尽量少的 Clock Region 中(资源够的情况下减少跨clock region)。 虽说资源多,但同一个clock region 中需要兼顾的logic多了,总会互相挤占布线资源。

参考链接