Cyclone IV中的全局时钟网络
发布网友
发布时间:2024-09-30 06:48
我来回答
共1个回答
热心网友
时间:2024-12-01 11:30
全局时钟网络在FPGA中扮演着至关重要的角色。本文以Altera的Cyclone IV为例,探讨FPGA中的全局时钟网络。以下将围绕以下几个问题展开:
1. 全局时钟网络是什么,其作用是什么?
2. 哪些信号可以接入全局时钟网络?
3. 如何将信号配置为全局时钟信号?
全局时钟网络是FPGA内部一组特殊的信号通路,分布均匀。网络上的时钟信号具有较小的偏斜,确保时钟信号到达各个触发器的时间尽可能接近。FPGA通常工作在时序逻辑下,所有触发器在相同节拍下工作。若时钟偏斜过大,易引发时序问题。
全局时钟网络不仅传输时钟信号,还用于同步或异步清零信号、使能信号等高扇出信号。它相当于FPGA中一条“干净、快速”的通路,类似于PCB板覆铜部分。
接下来,我们分析什么信号可以接入全局时钟网络。以下是一张图,展示了Cyclone IV中某个全局时钟网络GCLK的信号来源示意图。
从图中可知,全局时钟网络主要有以下4个来源:
1. FPGA内部逻辑
2. DPCLK引脚
3. CLK引脚
4. 经CLK引脚输入的PLL输出
这4种情况几乎涵盖了FPGA中的所有信号。时钟引脚自然可以接入全局时钟网络,非时钟引脚也可通过转为内部逻辑接入时钟网络。
全局时钟网络受到Clock Control Block的控制,可由ALTCLKCTRL IP核进行控制。Clock Control Block中存在两个多路选择器,用于选择内部逻辑或DPCLK接入全局时钟网络,两者任选其一。在运行中,全局网络上的信号不可切换,是静态的。
当选择第三个输入时,相当于将第二个多路选择器接入。此时,4路信号接入时钟网络,具体选择哪一路取决于下方的多路选择器CLKSELECT[1:0]。在此情况下,我们可以动态选择全局时钟网络的时钟源。
具体操作时,可生成一个名为ALTCLKCTRL的IP核。静态使用时,将内部逻辑或DPCLK接入IP核例化后的inclk。动态切换时,选择多路输入,通过CLKSELECT[1:0]在运行中进行切换。
此外,Quartus II会自动将时钟引脚输入或PLL输出连接至全局时钟网络,无需人为配置。若将单一信号连接至全局时钟网络,可在Quartus II中的Assignment -> Assignment Editor中,将时钟信号选为Auto Global Clock,或将其他控制信号选为Auto Global Register Control Signals。
编译后,可在Fitter -> Resource Section -> Global & Other Fast Signals中查看全局时钟网络资源的使用情况。