热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FPGACyclone中的时钟资源

转载至:https:www.cnblogs.comzuilangsanshup9888608.htmlFPGA芯片一般有好几组时钟引脚 CLK[0..N][p,n],我的理解是:首

转载至:https://www.cnblogs.com/zuilangsanshu/p/9888608.html

FPGA芯片一般有好几组时钟引脚 CLK [0..N] [p,n],我的理解是:首先,时钟必须由外部晶振通过CLK引脚输入到FPGA的时钟网络,至于选用哪一组CLK,主要看FPGA哪个bank对时钟要求最为苛刻;其次,一般用p端,n端由quartus置位三态;再次,对于简单的系统,只有一组CLK输入作为系统主时钟,其他时钟引脚空置,或者作为某些高带载能力的时钟的输出口(是否可作为输出口,要看芯片手册);然后,复杂系统,可以有不同源的时钟分别从不同CLK引脚输入,只是猜想,没实践过,个人认为这样不好,因为FPGA的核心就是同步;另外,不要把CLK引脚和全局时钟、区域时钟什么的混为一谈,一个是时钟输入引脚,一个是内部时钟走线;最后,CLK引脚进去的走线肯定进过优化的(H型铜皮,专用的、直达每个触发器的布线资源),所以能做到小的抖动和偏斜,带载能力。


  1. 全局时钟:FPGA内部的专用全局时钟布线资源,具有直达每一个触发器的能力,且布线资源经过优化,时钟经过它传输后具有高扇出、最小的偏斜和抖动等。但也因为是全局布线相较于区域时钟,会有较大的插入延时(手册也这么说),而且资源较少(且用且珍惜)。全局时钟网络:1)可由CLK引脚、内部PLL、高速串口(HSSI)、普通逻辑电路产生的时钟(一般不这么干)驱动;2)可驱动所有输出引脚(尤其是CLK引脚,输出作为其他芯片的基础时钟)、内部PLL、区域时钟。

  2. 区域时钟:只在他们自己所在的区域有效,相当于区域内的全局时钟,在区域内,具有全局时钟的优点,且插入延时比全局时钟小,布线资源也比较多。区域时钟网络:1)可由CLK引脚(注意区域)、内部PLL、高速串口(HSSI)、普通逻辑电路产生的时钟(一般不这么干)驱动;2)可驱动所有输出引脚(尤其是CLK引脚,输出作为其他芯片的基础时钟)、内部PLL。

******注意******


  1. 常规操作:外部晶振—>时钟引脚—>PLL—>区域时钟、各个模块、输出。

  2. 关于CLK引脚选择:不是所有的CLK引脚都可以连接到所有的全局/区域时钟网路。

  3. 关于PLL:不是所有始终都可以驱动PLL,详见手册。

*********************************************************************************************************

Altera 的 Cyclone IV 器件 PLL 具有时钟倍频和分频、相位偏移、可编程占空比和外部时钟输出,进行系统级的时钟管理和偏移控制。 Altera 的 Quartus II 软件无需任何外部器件,就可以启用 Cyclone IV PLL 和相关功能。本文将介绍如何设计和使用 Cyclone IV PLL 功能。PLL 常用于同步内部器件时钟和外部时钟,使内部工作的时钟频率比外部时钟更高,时钟延迟和时钟偏移最小,减小或调整时钟到输出( TCO)和建立( TSU)时间。

 

Cyclone IV E 器件提供了多达 15 个专用时钟管脚 (CLK[15..1]),以用于驱动高达 20 个GCLK 时钟网络和 4 个时钟锁相环单元(PLL)。 其中 EP4CE6 和 EP4CE10 为 2 个 PLL。

技术分享图片

 

 

1. 时钟网络
GCLK 时钟网络驱动整个器件,并对器件各象限提供时钟。 器件中的所有资源(I/O 单元、逻辑阵列模块(LAB)、专用乘法器模块以及 M9K 存储器模块)都能够将 GCLK 用作时钟资源。这些全局网络资源可用于控制信号,例如:由外部管脚驱动的时钟使能及清零信号。另外,内部逻辑也能够驱动 GCLK,以用于内部生成的 GCLK 和异步清零、时钟使能,或者其它具有高扇出的控制信号。时钟控制模块( Clock Control Block) 用于驱动 GCLK 网路, 它们处于芯片的顶端、底部、 左侧及右侧四边, 每边为 5 个, 共 20 个, 位于靠近 FPGA 全局时钟的输入脚。

技术分享图片

 

时钟输入信号通过时钟控制模块后抖动和时延会被优化。 时钟控制模块的输入信号可以分别为专用时钟管脚(CLK1~15), 双功能时(DPCLK 和 CDPCLK), PLL 的输出和 FPGA 内部的逻辑信号。

 技术分享图片

 

 2. PLLs
Cyclone IV E 提供了 4 个 PLLs(EP4CE6 和 EP4CE10 只有 2 个 PLLs)为设备提供强大的时钟管理和外部系统时钟管理及高速的 IO 通信, 通过时钟输入, 产生不同频率和不同相位的时钟信号供系统使用。

技术分享图片

 

 PLL 的时钟输入可以是 PLL 所在的 Bank 的四个时钟输入管脚, FPGA 内部产生的信号不能驱动 PLL。 Cyclone IV PLLs 产生的时钟可以为单端时钟信号或差分时钟信号, 可以通过GCLKs 网络直接驱动 FPGA 外部的 IO 口。每一个Cyclone IV PLL 均采用 M/(N* 后缩放计数器) 缩放因子为 PLL 输出端口提供时钟合成输出。输入时钟由预缩放因子 N 分频, 然后乘以反馈因子 M。控制环路驱动 VCO以匹配 fIN (M/N)。每一个输出端口均有一个唯一的后缩放计数器,对高频 VCO 进行分频。对于不同频率的多个 PLL 输出, VCO 值是输出频率的最小公倍数,以满足其频率规格。例如,如果一个 PLL 所要求的输出频率是 33 和 66 MHz, 那么 Quartus II 软件会将VCO 设置为 660 MHz(33 和 66 MHz 在 VCO 频率范围内的最小公倍数)。然后,后放大计数器会降低每个输出端口的 VCO 频率。每一个 PLL 上均有一个预缩放计数器 N 和一个乘法计数器 M,范围从 1 到 512。由于计数器 N 仅用于计算分频,因此该计数器不使用占空比控制。此外,每个 PLL 上有五个用于驱动 GCLK 或外部时钟输出的通用后缩放计数器。这些后缩放计数器的范围从 1 到512,并具有 50% 的占空比设置。后缩放计数器的范围从 1 到 256,具有非 50% 的占空比设置。设计所选择的高/ 低计数值的总和,将用于给定计数器分频值的选择。Quartus II 软件根据输入到 ALTPLL 宏功能的输入频率、乘法和除法值来自动选择相应的缩放因子。

 


推荐阅读
  • 虚拟机网络设置与数据库远程连接优化指南
    本文针对个人计算机上虚拟机网络配置与数据库远程连接的问题,提供了一套详细的优化指南。在探讨远程数据库访问前,需确保网络配置正确,特别是桥接模式的设置。通过合理的网络配置,可以有效解决因虚拟机或网络问题导致的连接失败,提升远程访问的稳定性和效率。 ... [详细]
  • 在使用Block时,正确的声明方法和确保线程安全是至关重要的。为了保证Block在堆中分配,应使用`copy`修饰符进行声明,因为栈中的Block与栈的生命周期绑定,容易导致内存问题。此外,还需注意Block捕获外部变量的行为,以避免潜在的循环引用和数据不一致问题。建议深入研究相关文档,以掌握更多高级技巧和最佳实践。 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • HDU1176:免费馅饼问题的动态规划解法分析
    题目“免费馅饼”通过动态规划方法进行了解析。该问题的时间限制为 Java 2000ms 和其他语言 1000ms,内存限制为 Java 65536K 和其他语言 32768K。本文详细探讨了如何利用动态规划算法高效求解此问题,并对算法的时间复杂度和空间复杂度进行了深入分析。此外,还提供了具体的实现步骤和代码示例,帮助读者更好地理解和应用这一方法。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 在遍历集合的过程中,若需根据特定条件对集合进行修改操作,如添加或删除元素,应特别注意避免引发 `ConcurrentModificationException` 异常。例如,在当前场景中,当集合中的对象ID与另一个集合中的对象ID不匹配时,需要向集合中添加新元素。为了避免这一异常,建议使用迭代器的 `remove` 方法或采用线程安全的集合类型,如 `CopyOnWriteArrayList`,以确保操作的安全性和一致性。 ... [详细]
  • 如何在Mac上构建高效的本地服务器环境
    在Mac上构建高效的本地服务器环境,首先需要了解基本步骤:1. 配置目录基础;2. 启动Apache服务;3. 添加自定义文档至本地服务器;4. 查看自定义效果。此外,还可以通过手机或其他电脑访问本机服务器,以确保跨设备的兼容性和调试效果。Mac系统自带的Apache服务为本地开发提供了便捷的工具,本文将详细介绍每个步骤的具体操作方法。 ... [详细]
  • CAS 机制下的无锁队列设计与实现 ... [详细]
  • 【Linux进阶指南】第一阶段第三课:体验与部署Ubuntu系统
    在正式踏上Linux学习之旅之前,本课程将引导你深入体验和部署Ubuntu系统。通过详细的操作步骤和实践演练,你将掌握Ubuntu的基本安装、配置及常用命令,为后续的进阶学习打下坚实的基础。此外,课程还将介绍如何解决常见问题和优化系统性能,帮助你更加高效地使用Ubuntu。 ... [详细]
  • 通过 NuGet 获取最新版本的 Rafy 框架及其详细文档
    为了帮助开发者更便捷地使用Rafy领域实体框架,我们已将最新版的Rafy框架程序集上传至nuget.org,并同步发布了最新版本的Rafy SDK至Visual Studio。此外,我们还提供了详尽的文档和示例,以确保开发者能够快速上手并充分利用该框架的强大功能。 ... [详细]
  • 1. 设置用户密码:使用 `slappasswd` 工具生成加密密码,确保账户安全。具体步骤如下:输入命令 `slappasswd -s NewPassword`,系统将提示重新输入新密码,并生成加密后的哈希值 {SSHA}xxxxxxxxxxxxxxxxx。2. 编写配置文件:编辑 `vildapus` 配置文件,添加必要的用户账户信息,以确保新用户能够顺利登录系统。 ... [详细]
  • 本文详细介绍了 Windows API 中的按钮控件及其应用实例。主要功能包括:1. `CheckDlgButton` 用于更改对话框中按钮的选中状态;2. `CheckRadioButton` 用于设置单选按钮的选中状态。此外,还探讨了按钮控件在实际开发中的多种应用场景,帮助开发者更好地理解和使用这些功能。 ... [详细]
  • 在HDU 1166敌军布阵问题中,通过运用线段树数据结构,可以高效地计算指定区间的敌军数量。该算法不仅能够在限定的时间和内存条件下快速求解,还能够灵活应对动态变化的战场局势,为实时决策提供支持。 ... [详细]
  • 掌握Linux Shell核心概念与基础技能,本文详细介绍了文件系统和安全管理中的`chmod`命令。`chmod`命令支持两种模式:符号模式和绝对模式。符号模式使用`ugo`表示用户类别,`rwx`表示权限类型;而绝对模式则通过八进制数值来精确设置不同用户的权限。此外,文章还探讨了其他重要的Shell命令和技巧,帮助读者全面理解和应用Linux环境下的文件管理和安全控制。 ... [详细]
  • 本文详细介绍了使用C++实现插入排序算法的方法,并对其进行了优化。通过具体的代码示例,解释了插入排序的基本原理和优化技巧,包括交换两个元素的函数 `SwapTwo` 的实现。此外,文章还探讨了插入排序的时间复杂度和适用场景,为读者提供了深入理解该算法的全面指南。 ... [详细]
author-avatar
辞骸
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有