作者:John Bleker
赛灵思公司工具及方法战略应用
工程师
John.Bieker@xilinx.com
随着越来越多的赛灵思用户开始使用 Vivado®设计套件,部分用户对未扩展时钟表示困惑。那么什么是未扩展时钟呢?他们是如何进行关联和计时的?应对未扩展时钟的标准方法又是什么呢?下面让我们来详细探讨一下这个问题,重点是探讨确保设计人员使用正确的同步技术安全地穿越未扩展时钟之间的跨时钟域(clock domain crossing) 的方法。
随着 Vivado 工具的推出,赛灵思现在能够支持采用业界标准 Synopsys 设计约束 (SDC) 格式的时序约束。这是ISE 设计套件工具处理时序方式上的重大转变。Vivado 套件最根本的区别在于所有时钟在默认条件下都彼此关联。这样在 ISE 中处于无约束状态的时序路径在 Vivado 设计套件中则处于受约束状态。如果两个时钟之间不存在周期性关系,这种约束会造成非常严格的时序要求。
未扩展时钟是指在 1,000 个时钟周期内与另一个时钟之间不存在周期性关系的时钟。Vivado BFT 内核范例设计即是体现未扩展时钟工作方式的良好途径。
发起和捕获
时序路径从发起事件开始,由捕获事件终止。发起事件发生在同步单元的时钟从非工作状态转入工作状态的时候。捕获事件发生在下游的或者负责捕获的同步单元的时钟从非工作状态转入工作状态的时候。从发起事件到捕获事件之间所需的时间被称为“路径要求”,它代表自事件发起后到捕获单元引脚处出现有效数据之间所需的时间。
如果发起时钟和捕获时钟同时位于同一物理时钟网中,路径要求仅指时钟周期。以 250MHz 时钟为例,如果发起单元和捕获单元的工作沿相同(上升沿对上升沿或下降沿对下降沿),那么发起事件和捕获事件之间的时间间隔则恰好为 4 纳秒。如果发起单元和捕获单元的工作沿不同,路径就必须按一半的时钟频率进行时间计算。这就是时钟的上升沿对下降沿或下降沿对上升沿转换的情况,对一个250MHz的时钟来说,对应的就是 2纳秒的路径要求。
在时钟源 (source clock) 和时钟目标端 (destination clock) 非同一个时钟的情况下,时序问题就变得更加复杂。具有不同时钟源和时钟目标端的时序路径被称为跨时钟域(CDC) 路径。
如果发起时钟和捕获时钟之间的相位关系未知,就无法计算路径要求。由于不确定相位关系,则无法准确确定路径时序。不安全时钟在 Vivado 设计套件生成的时钟交互报告中会突出显示。在发起时钟和捕获时钟之间的相位关系已知的情况下,只要两个时钟之间存在周期性关系,就可以用数学方法推导出路径要求。用于判断给定发起时钟和捕获时钟之间最低路径要求的方法称为时钟扩展。不过确定两个时钟之间是否存在周期性关系需要用实际限制加以约束,因为一般情况下两个不同时钟之间不存在共同的周期性特征。
Vivado设计套件使用的实际限制条件是1,000个时钟周期,以两个时钟中较小的时钟周期为测量标准。如果在扩展两个时钟到超过 1,000 个时钟周期后没出现周期性关系,那么这两个时钟就被称为“未扩展”时钟。
Vivado 设计套件对两个未扩展时钟之间的路径要求为发起时钟和捕获时钟相邻工作沿之间相隔的最少时间。但需要注意的是对超过 1,000 个时钟周期的情况有更加严格的路径要求,这就是 Vivado 设计套件将这种类型的两个时钟之间的关系称之为未扩展的原因。
本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念
本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“
课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了
@2003-2020 中国电子顶级开发网