首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» 揭开未扩展时钟的秘密
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
揭开未扩展时钟的秘密
发短消息
加为好友
我是MT
当前离线
UID
1023166
帖子
6651
精华
0
积分
3328
阅读权限
90
来自
燕山大学
在线时间
230 小时
注册时间
2013-12-19
最后登录
2016-1-5
论坛元老
UID
1023166
性别
男
来自
燕山大学
1
#
打印
字体大小:
t
T
我是MT
发表于 2014-8-31 10:15
|
只看该作者
揭开未扩展时钟的秘密
作者:John Bleker
赛灵思
公司工具及方法战略应用工程师
时钟扩展对使用赛灵思Vivado设计套件的工程师来说是一个很大的挑战,但不是一个不可逾越的障碍。
随着越来越多的赛灵思用户开始使用Vivado®设计套件,部分用户对未扩展时钟表示困惑。那么什么是未扩展时钟呢?他们是如何进行关联和计时的?应对未扩展时钟的标准方法又是什么呢?下面让我们来详细探讨一下这个问题,重点是探讨确保设计人员使用正确的同步技术安全地穿越未扩展时钟之间的跨时钟域(clock domain crossing)的方法。
随着Vivado工具的推出,赛灵思现在能够支持采用业界标准Synopsys设计约束(SDC)格式的时序约束。这是ISE设计套件工具处理时序方式上的重大转变。Vivado套件最根本的区别在于所有时钟在默认条件下都彼此关联。这样在ISE中处于无约束状态的时序路径在Vivado设计套件中则处于受约束状态。如果两个时钟之间不存在周期性关系,这种约束会造成非常严格的时序要求。
未扩展时钟是指在1,000个时钟周期内与另一个时钟之间不存在周期性关系的时钟。Vivado BFT 内核范例设计即是体现未扩展时钟工作方式的良好途径。
发起和捕获
时序路径从发起事件开始,由捕获事件终止。发起事件发生在同步单元的时钟从非工作状态转入工作状态的时候。捕获事件发生在下游的或者负责捕获的同步单元的时钟从非工作状态转入工作状态的时候。从发起事件到捕获事件之间所需的时间被称为“路径要求”,它代表自事件发起后到捕获单元引脚处出现有效数据之间所需的时间。
如果发起时钟和捕获时钟同时位于同一物理时钟网中,路径要求仅指时钟周期。以250MHz时钟为例,如果发起单元和捕获单元的工作沿相同(上升沿对上升沿或下降沿对下降沿),那么发起事件和捕获事件之间的时间间隔则恰好为4纳秒。如果发起单元和捕获单元的工作沿不同,路径就必须按一半的时钟频率进行时间计算。这就是时钟的上升沿对下降沿或下降沿对上升沿转换的情况,对一个250MHz的时钟来说,对应的就是2纳秒的路径要求。
在时钟源(source clock)和时钟目标端(destination clock)非同一个时钟的情况下,时序问题就变得更加复杂。具有不同时钟源和时钟目标端的时序路径被称为跨时钟域(CDC)路径。
2014-1-15 15:49:00 上传
下载附件
(74.42 KB)
图1:扩展时钟的TCL脚本
如果发起时钟和捕获时钟之间的相位关系未知,就无法计算路径要求。由于不确定相位关系,则无法准确确定路径时序。不安全时钟在Vivado设计套件生成的时钟交互报告中会突出显示。在发起时钟和捕获时钟之间的相位关系已知的情况下,只要两个时钟之间存在周期性关系,就可以用数学方法推导出路径要求。用于判断给定发起时钟和捕获时钟之间最低路径要求的方法称为时钟扩展。不过确定两个时钟之间是否存在周期性关系需要用实际限制加以约束,因为一般情况下两个不同时钟之间不存在共同的周期性特征。Vivado设计套件使用的实际限制条件是1,000个时钟周期,以两个时钟中较小的时钟周期为测量标准。如果在扩展两个时钟到超过1,000个时钟周期后没出现周期性关系,那么这两个时钟就被称为“未扩展”时钟。Vivado设计套件对两个未扩展时钟之间的路径要求为发起时钟和捕获时钟相邻工作沿之间相隔的最少时间。但需要注意的是对超过1,000个时钟周期的情况有更加严格的路径要求,这就是Vivado设计套件将这种类型的两个时钟之间的关系称之为未扩展的原因。
2014-1-15 15:49:01 上传
下载附件
(22.21 KB)
图2:125MHz和156.25MHz时钟的时钟扩展
Vivado BFT内核可为测试不同时钟速率提供理想设置,从而判定两个时钟是否为扩展时钟
为更好地理解Vivado设计套件计算未扩展时钟的方法,先以图1中的TCL脚本来对扩展任意两个时钟速率之间的上升沿对上升沿路径要求的方法进行详细说明。图2是这个脚本的输出,即两个分别运行在125MHz和156.25MHz的时钟的扩展。
为确认上述TCL脚本得出的结果,我们来观察一下Vivado BFT 内核范例设计。BFT 内核可为测试不同时钟速率提供理想设置,从而判定两个时钟是否为扩展时钟。该内核有两个独立的时钟源,分别命名为wbClk和bftClk。时序约束可将wbClk和bftClk的频率分别设置为100MHz和200MHz。用户可可对任意两个时钟速率的此类约束进行修改,以便确定由Vivado时序引擎判别的扩展关系。图3是将bftClk设置为125MHz,将wbClk设置为156.25MHz时所显示的结果,并提供了相关的时序(report_timing –from [get_clocks bftClk] -to [get_clocks wbClk])。请注意,由发起沿、捕获沿和时序要求共同确认TCL脚本的预测结果。
表1是使用图4中的TCL脚本获得的几种时钟速率的发起沿、捕获沿和路径要求。
2014-1-15 15:49:02 上传
下载附件
(21.04 KB)
图3:125MHz发起时钟到156.25MHz捕获时钟的时钟扩展
表1:时钟扩展实例
2014-1-15 15:49:02 上传
下载附件
(42.16 KB)
2014-1-15 15:49:02 上传
下载附件
(61.46 KB)
图4:时钟扩展Tcl 脚本
处理未扩展时钟
人们常常把未扩展时钟视为异步时钟,并通过FIFO、边沿检测器或同步器
电路
等适当的同步技巧来进行处理。如果用户使用此类技巧,应在约束中使用时序例外来处理未扩展时钟(一般使用set_false_path或set_max_delay例外)。
理解和说明未扩展时钟具有重要的意义,因为时钟之间的边沿关系将决定Vivado设计套件中时序引擎所使用的路径要求。赛灵思希望对设计中的所有未扩展时钟进行详查,以确保使用适当的同步技巧安全地穿越未扩展时钟之间的跨时钟域。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议