你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

MicroZed开发板笔记,第72部分:多周期约束

发布者:jackzhang 时间:2015-04-22 16:15:00

By Adam Taylor

在最近的几篇博客中,我们研究了基本的时序约束。那么在设计中我们现在应该能定义时钟了,并且可以创建和声明它们的关系,还应该能在时钟和系统中声 明任何缺陷。作为系统设计工程师,我们也必须将注意力集中于,当异常发生的时候,定义了的时钟组会有怎样的变化。在我们声明这些异常之前,首先我们必须理 解什么是异常。在赛灵思用户指南 903, “Vivado 设计套件用户指南:使用约束 ”中,时序异常的定义如下:

“当逻辑没有按照正确的时序进行时,默认会出现一个时序异常。”

仅隔一个时钟周期所捕获的的结果是常见时序异常的例子。再举个例子,将慢时钟逻辑块的数据传送到快时钟逻辑块去,(反之亦然),这里的两个时钟都是同步的,此时也会有时序异常的出现。事实上,这两个例子都是通常被称之为“多周期路径”的时序异常。

Multi-cycle paths发生在从输入到输出的路径所耗费的时间超过一个时钟周期时,因而得名“多周期路径”。声明了一个多周期路径会带来更合适和限制更少的时序分析,从而允许时序引擎专注于产生更严格的路径,继而提高结果质量。

在XDC文件中,我们可以使用这样的XDC命令来声明一个多周期路径:

set_multicycle_path path_multiplier [-setup"-hold] [-start|-end] [-from ] [-to ] [-through
]

当声明了一个多周期路径时,事实上我们正通过path_mutiplier这个因数来倍乘建立和保持(或者同时两者)分析所需要的条件,比如,在上面我们列出的第一个例子中,输出每隔两个时钟周期出现,此时建立时间的path_multiplier将会是2。

多周期路径既可以应用在建立时间上,又可以应用在保持时间上,因此你可以选择在什么地方运用多周期路径。

当我们把path_multiplier用在建立时间上的时候,目的时钟被用作时序分析。同理,当我们把path_multiplier用在保持时 间上时,源时钟被用作时序分析。如果想分别把源时钟和目的时钟用在时序分析上,你可以利用-start和-end这两个参数。它们不可以,尽管你可能会觉 得,定义多周期路径的开始和结束。想达到上述的效果,你可以用到-from和-to这两个参数。同时,你可以使用-through这个参数去描述多周期路 径所进行的路径。当我们同时给源和目的使用相同的时钟时,-end和-start这两个参数的设置将不会起到作用。

当我们声明了一个建立乘数时,通常最好用下面的等式同时去声明一个保持时间乘数:

Hold cycles = set-up multiplier – 1 – Hold Multiplier

下面等式所定义的保持乘数是我们可以看到上述等式含义的最简单例子,其实我们一直在遵循这个等式:

保持乘数= 建立乘数 – 1 此时使用的是普通时钟

为了展示多周期路径的重要性,我已经写了一个小例程,点击这里下载。

想要更多的了解多周期路径,请参阅UG903.

原文链接:
http://forums.xilinx.com/t5/Xcell-Daily-Blog/Adam-Taylor-s-MicroZed-Chro...

© Copyright 2014 Xilinx Inc
如需转载,请注明出处

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了