在FPGA设计中,全局时钟网络资源的管理至关重要,因为全局时钟负责驱动整个FPGA内的单元模块,确保数据同步和信号完整性。然而,全局时钟资源相对有限,因此必须通过合理规划和分配来优化资源的使用。 我们需要了解全局时钟网络资源的构成。在Altera公司的FPGA中,例如Cyclone3系列,FPGA的每一侧最多可以配置五个全局时钟输入。例如,一个极端的应用场景可能需要使用PLL(相位锁环)输出的四个时钟信号(PLL1_C0、PLL1_C1、PLL1_C2和PLL1_C3),再加上一个外部输入的时钟信号,共五个时钟信号,全部作为全局时钟资源。 在FPGA一侧接入五个全局时钟信号时,可以根据布线要求,将这些信号连接到任意一个专用的时钟输入脚(CLK[0..3])。由Quartus II软件自动分配完成,确保每个时钟信号都能分配到全局时钟网络资源中。但需要注意的是,每侧最多只能连接五个全局时钟。如果需要接入外部的两个时钟信号,并假设连接在CLK0和CLK1,那么这两个时钟信号中会有一个无法占用全局时钟资源,而不得不使用普通的布线资源。普通布线资源会导致时钟到达各个寄存器的时间不一致,产生较大的时钟偏差(CLKSKEW),从而降低了时序收敛性能。 为了避免这种情况,可以将一个时钟信号(比如CLK1)连接至下一组时钟专用管脚(CLK[4..7]),这样所有时钟信号都能在全局时钟网络上运行。在系统占用较多的全局时钟资源时,需要综合考虑外部输入时钟和FPGA内部生成的时钟资源,并且考虑PLL的位置以及外部输入时钟管脚的位置,以保证每个时钟信号都能分配到全局时钟资源中,从而获得最佳的时序性能。 此外,每个全局时钟信号都与一个时钟控制模块(ClockControlBlock)相关联,这些模块的大部分配置由Quartus II软件自动完成。用户能设置的是CLKSELECT[1..0],可以通过MegaWizard来配置I/O--ALTCLKCTRL模块。这个模块的数据必须来自专用时钟管脚或PLL输出,不能连接到由逻辑单元(LC)驱动的全局时钟资源。 对于需要进行时钟切换的应用,最好使用专门的时钟切换功能模块,这是因为使用由LC产生的时钟选择模块可能会引入信号毛刺,导致时序电路无法正常工作。 当系统中涉及过多的信号(如外部输入或内部产生时钟,时钟使能,异步清零信号等)占用全局时钟资源时,FPGA可能无法满足需求。此时,设计者需要在全局时钟和非全局时钟之间做出选择。具体设置可以通过Quartus II的Assignment Editor完成,设置项包括AutoGlobalClock(用于设置时钟是否占用全局时钟资源)和AutoGlobalRegisterControlSignals(用于设置寄存器控制信号是否占用全局时钟资源)。通过这些设置,设计者可以有选择性地控制哪些信号可以占用全局时钟资源,哪些可以使用普通的布线资源。 总体而言,掌控全局时钟网络资源需要对FPGA的设计工具有深入的了解,需要对硬件资源分配有明确的规划,对时钟网络的管理应谨慎细致,以确保达到最佳的时序和性能表现。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助