FPGA多时钟处理应用
FPGA项目设计中,通常会遇到多时钟处理。即一个PLL输出多个时钟,根据条件选择合适的时钟用作系统时钟。
方案一:

外部晶振时钟进入PLL,由PLL输出多个时钟,MUX根据外部条件选择时钟输出做为系统使用。
方案在时钟频率比较低的情况下是可行的。设计时注意MUX使用组合逻辑实现的,注意case语句中default选项必须有输出,否则会出现锁存器。
当输出时钟频率较高时,这种方案的时序约束就比较麻烦。除了使用creat_clock命令约束PLL输入时钟,使用creat_generate_clock约束PLL输出时钟外,还要根据PLL输出的多个时钟之间的关系,使用set_clock_groups约束。set_clock_groups:
- asynchronous表示时钟同时有效,但没有相位关系。
- exclusive 表示时钟是互斥的
- group,group之内的时钟相关,group之间的时钟互不相关。
这种设计使得时钟约束变得繁琐,时序变得紧张。
同时PLL输出时钟后使用MUX进行选择输出,会增加时钟布线延时,高速情况下并不可靠。
时序是设计出来的,不是约束出来的。
设计出好的时序一般不需要约束。
方案二:
在高速情况下,应该更改设计,提高电路速度。ALTERA FPGA提供PLL重配功能。可根据条件对PLL进行重配。

调用ALTERA提供的PLL重配模块,根据官方资料,可以动态的对PLL重新配置。这样PLL输出时钟直接驱动系统模块,将多时钟域转换到单时钟域上。不需要添加附加约束电路都可以正常工作。
方案三:
第三种方案,这里稍微介绍一下。

PLL输出一个高频时钟HCLK,其他时钟作为HCLK的使能端,用HCLK采样其他时钟,这也是一个可以考虑的方案,这个方案也不会造成多时钟处理及约束。但此方案也有限制,要求HCLK时钟频率至少是PLL输出其他时钟最高频率的两倍以上,这样才能满足采样定理,即奈奎斯特定理。在时钟频率比较低时,亦可以考虑此方案。
文章来源:FPGA极客空间微信公众号
版权所有权归卿萃科技,转载请注明出处。
作者:卿萃科技ALIFPGA
原文地址:bbs.alifpga.com

扫描二维码关注FPGA极客空间。
FPGA多时钟处理应用的更多相关文章
- Xilinx FPGA全局时钟和全局时钟资源的使用方法
对FPGA的全局时钟了解不多,遂转载一篇文档: http://xilinx.eetop.cn/?action-viewnews-itemid-42 目前,大型设计一般推荐使用同步时序电路.同步时序电路 ...
- FPGA异步时钟设计中的同步策略
1 引言 基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统.但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通信中,跨时钟域的情况经常不可避免. ...
- FPGA跨时钟域握手信号的结构
FPGA跨时钟数据传输,是我们经常遇到的问题的,下面给出一种跨时钟握手操作的电路结构.先上图 先对与其他人的结构,这个结构最大的特点是使用 req 从低到高或者高到低的变化 来表示DIN数据有效并开始 ...
- xilinx FPGA全局时钟资源的使用
1.什么是xilinx fpga全局时钟资源 时钟对于一个系统的作用不言而喻,就像人体的心脏一样,如果系统时钟的抖动.延迟.偏移过大,会导致系统的工作频率降低,严重时甚至会导致系统的时序错乱,实现不了 ...
- FPGA开发时钟资源评估需要考虑的问题
在第一个独立开发的FPGA项目中,使用了Altera平台的三速以太网IP,工作在100M模式下,外部输入的PHY时钟频率为25MHz. 由于在前期没有注意这个外部输入的时钟,导致最后不得不在板子上飞线 ...
- FPGA 异步时钟处理方
1 假设FPGA设计,包括不同的频率的时钟,它会发出涉及异步时钟. 我们需要一些方法来使时钟同步,从而保证FPGA可靠性设计. 2 在建立和保持时间所构成的有效时间窗体内,数据输入到触发器进行转换. ...
- FPGA跨时钟域处理方法
文章主要是基于学习后的总结. 1. 时钟域 假如设计中所有的触发器都使用一个全局网络,比如FPGA的主时钟输入,那么我们说这个设计只有一个时钟域.假如设计有两个输入时钟,如图1所示,一个时钟给接口1使 ...
- 7系列FPGA的时钟资源——UG472
时钟架构总览 7系的FPGA使用了专用的全局(Global)和区域(Regional)IO和时钟资源来管理设计中各种的时钟需求.Clock Management Tiles(CMT)提供了时钟合成(C ...
- 对FPGA的时钟资源理解(更新中)
7系列FPGA中包含了多达24个CMT(时钟管理单元)(实际上V7常见只有20个),MMCM和PLL均为时钟综合器,对外部输入时钟.内部时钟进行处理,生成需要的低抖动时钟.PLL是MMCM的功能子集, ...
随机推荐
- 对Java的数据类型和运算符的理解
我知道千里之行始于足下,包含着对编程的兴趣,希望能够在这个平台上记录下我学习过程中的点点滴滴! Java的基本构造 标识符和关键字 标识符规则 标识符就是用于给程序中变量,类.方法命名的符号 1.标识 ...
- 删除git项目
主页,点击右上头像-->your profile-->Popular repositories ,看到你要删除的项目,点击进去 --> 上面 选择settings-->到页面最 ...
- jQuery === 面条式代码?
自从React/Vue等框架流行之后,jQuery被打上了面条式代码的标签,甚至成了"过街老鼠",好像谁还在用jQuery,谁就还活在旧时代,很多人都争先恐后地拥抱新框架,各大博客 ...
- Spring事务管理(一)
对于Spring相信很多做web开发的小活动一定不陌生,Spring中我们经常谈到的就是IOC和AOP,但是对于Spring的事务管理,相信大家一定也很感兴趣,今天我们就探讨一下Spring中的事务管 ...
- 学会Git
学会Git 目录 一.版本控制概要 1.1.什么是版本控制 1.2.常用术语 1.3.常见的版本控制器 1.4.版本控制分类 1.4.1.本地版本控制 1.4.2.集中版本控制 1.4.3.分布式 ...
- Mybatis源码解析-BoundSql
mybatis作为持久层,其操作数据库离不开sql语句.而BoundSql则是其保存Sql语句的对象 前提 针对mybatis的配置文件的节点解析,比如where/if/trim的节点解析可见文章Sp ...
- 201521123001《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- 201521123072《java程序设计》第十三周学习总结
201521123072<java程序设计>第十三周学习总结 1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 ...
- 201521123038 《Java程序设计》 第十四周学习总结
201521123038 <Java程序设计> 第十四周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 接口: DriverManager ...
- 201521123019 《java程序设计》 第14周学习总结
1. 本章学习总结 2. 书面作业 Q1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自己的学号.姓名) 在自己建立的数据库上执行常见SQL语句(截图) ...