赛灵思FPGA设计时序约束指南

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
若需要数据在时钟脉冲边沿前 2 纳 秒到达 FPGA 输出,则使用:
分组与分组名称 时间分组是用来识别对于同步元
件间的路径集或连线集的约束的一种方 式。向时序分组添加组件,应使用 TNM、 TNM_NET 或 TIMEGRP。
通过定义分组并给定分组之间的时 序要求,可对路径进行约束。部分约束 不需要时序分组,如 NET MAXDELAY。 这一最大延迟 (MAXDELAY) 属性定义了 一条连线上允许的最大延迟。
采用 PRIORITY 约束关键词可手动 设置任一时序约束的优先级并使其优先 于默认的或预先设定的优先级。这对同 一路径上的两个或多个时序约束发生冲 突时尤为有用。这里的优先级指的是同 一路径上有两个或多个时序约束时,该应 用哪一个。其余的低优先级约束则被忽 略。优先级可在 -10 ~ +10 的范围内设置。 PRIORITY 值越低,优先级越高。注意该 值不会影响到哪些路径应率先布局和走 线,只有当优先级相同的两个约束出现在
手把手课堂: FPGA 101
赛灵思 FPGA 设计时序 约束指南
时序约束可以成为设计人员最好的 朋友,能帮助您快速完成设计。
120
赛灵思中国通讯 37 期期
手把手课堂: FPGA101
作者:Austin Lesea, 首席工程师
Xilinx Inc. Austin.lesea@xilinx.com
户往往对时序收敛以及如何使用时序约束 来达到时序收敛感到困惑。为帮助 FPGA 设计新手实现时序收敛,让我们来深入了 解时序约束以及如何利用时序约束实现 FPGA 设计的最优结果。
为便于进行约束的优先级排列,可运 行赛灵思时序分析器(ISE® Design Suite 中的静态时序分析工具),并生成时序规 格迭代报告,即常说的 .tsi 报告。该报告 说明了各约束间是如何迭代的,以及该工
强,其优先级越高。举例来说,时钟网络 上的某个一般性 PERIOD 约束将被特定 网络的具有更高优先级的 FROM: TO 约 束所覆盖。
作为赛灵思用户论坛的定期访客(见 http://forums.xilinx.com),我注意到新用
特定 FROM: TO(或 FROM: THRU: TO)约束在时钟域内任意网络中的重要 性均高于一般性约束。
何为时序约束?
具如何为各约束设置默认优先级。
为保证设计的成功,设计人员必须确 保设计能在特定时限内完成指定任务。要 实现这个目的,我们可将时序约束应用于 连线中——从某 FPGA 元件到 FPGA 内 部或 FPGA 所在 PCB 上后续元件输入的 一条或多条路径。
在 FPGA 设计中主要有四种类型 的时序约束:PERIOD、OFFSET IN、 OFFSET OUT 以及 FROM: TO(多周期) 约束。
11
手把手课堂: FPGA101
只使用 FPGA Editor查看底层结构“知其所以然”,了解工具对设计的 所做的处理,以达到让设计恰当地使用FPGA资源来实现的目的。首先
试试重构电路来满足设计的时序要求。
在第二个例子中,我们使用 FROM: TO 约束来定义对两个分组间路径的要 求,即:
是否有路径受多重时钟域的约束。下面 是约束迭代报告的例子:
尚未得到充分满足,数据到达太迟。
时钟路径本身也有延迟或偏移。因 此,要分析时序,工具需计算出数据和时 钟到达所分析触发器的时间。
该命令的作用是告知工具,确保数 据从时序分组“my_from_grp”包含的元 件到“my_to_grp”的元Fra Baidu bibliotek所用时间为 40 纳秒。时序分析器仍将计算从源分组到目 标分组的时钟偏移,不过若时钟关联,则 优先级较低。也可使用如下预定义分组:
该约束告知工具,需确保输入时钟 在 FPGA 输入跳变后 3 纳秒时长后,数 据出现在 FPGA 的输出引脚上。该约 束仅应用于由 clk20 或其衍生(衍生约 束)提供时钟的寄存器驱动的 PAD。 OFFSET 要求在 clk20 上有 PERIOD 约 束,这样才能理解时钟结构。保持时间 不受 OFFSET_OUT 的约束。
若不选定时间单位(纳秒、皮秒等), 则工具将自动默认为纳秒。例如,可这 样写约束:
也可只写 From 或 只写 To ,以使 其更具一般性:
如前所述,工具将自动默认上文 所述所有 FROM: TO 约束的优先级高于 PERIOD 约束,除非另有规定。 详细查看 .tsi 报告
除帮助查看时序约束迭代外,.tsi 报 告还就如何改进通用约束文件 (UCF) 中 的约束提供方法建议。该报告还会告知
触发器等同步元件的时钟周期。可使用 时序分析器来验证同步元件之间的所有 路径是否满足设计的建立和保持时序要 求。PERIOD 约束违例将以负的时序裕 量显示在在时序报告,并说明到底是建 立时间还是保持时间要求出现违例。
所以若报告显示发生了建立时间违 例时该作何处理?应找出两个所分析的 同步元件间一条较快路径,或至少是某 种方法来确保数据在合适时间内到达并 保持足够长的时间,以便时钟脉冲边沿 能够正确采样。若布局布线软件无法找 到更快的路径,则可从 FPGA Editor 工具 中手动进行布线。
在设计合理的同步系统中,亚稳态 不是什么问题。当出现异步情况(如敲击 键盘上的一个键)或当两个同步时钟彼 此异步时,亚稳态就会成为问题。一般而 言,若出现异步情况,则需进行同步处理。
关 于 如 何 处 理 亚 稳 态 的 情 况 ,这 里 有 篇 不 错 的 专 题 文 章 :h t t p : / / w w w . stanford.edu/class/ee183/handouts_ spr2003/synchronization_pres.pdf。(要 深入了解亚稳态,请查看本期第二篇文 章 FPGA101)
该约束告知工具,数据将在 clk20 脉冲上 升沿之前 2 纳秒建立在 PAD 上,并在到 达后 16 纳秒内保持有效。该约束只对那 些进入由 clk20 或其衍生(衍生约束)提 供时钟的寄存器的 PAD 有效。
OFFSET 要求在 clk20 上有一个 PERIOD 约束,这样才能理解时钟结构。 如下这样也可接受:
PERIOD 约束与建组
同一路径上时,它才会影响由哪个约束控
每 个 同 步 设 计 要 有 至 少 一 个 制该路径。
PERIOD 约束(时钟周期规格),这是最基 本的约束类型,指定了时钟周期及其占空 比。若设计中有不止一个时钟,则每个时 钟都有自己的 PERIOD 约束。PERIOD 约束决定了我们如何进行布线,来满足设
不过,数据的有效时间未达到规定 的长度,并不意味着触发器输出为亚稳 态。亚稳态不同于不确定。若不能满足 时序要求,则输出可能为随机的 1 或 0。 亚稳态是指时钟脉冲边沿“几乎”能进行 状态采集,而触发器输出则在时钟脉冲 边沿之后的一段时间内处于某种中间状 态(非 1 非 0)。亚稳态无法避免,因其为 时钟脉冲边沿和数据几乎完全“错过”时 的电路物理状态。
若出现保持时间违例(数据在时钟 脉冲边沿到来之前便已结束),则往往说
12
赛灵思中国通讯 37 期
手把手课堂: FPGA101
明存在设计问题(架构不良)。数值只能 在时钟脉冲边沿发生变化,而不是之前。 若外部信号值在时钟脉冲边沿之前发生 变化,则需使用 DCM 或 PLL 延迟时钟脉 冲边沿,这样数据才能由新的延迟时钟 正确采样。
下面将以 PERIOD 只控制从同步 元件到同步元件之间的网络,如 FFS 到 FFS 为例来进一步介绍(约束以蓝色显示 如下):
计正常工作的时序要求。
为简化时序约束应用过程,常常可将
具有类似属性的连线分组为一组总线或一 组控制线。这样做有助于完成正确为设计 约束定义优先级这一关键步骤。
创建名为 tnm_clk20 的 TIMEGRP (时序分组),包含网络 clk20 驱动的所有 下游同步组件。这些同步元件间的所有路
有一种替代方法,就是在输入 / 输 出模块中使用 IDELAY 元件,将数据移 到时钟有效的位置上。
数据有效窗口与亚稳态 时 钟 脉 冲 边 沿 之 前 的 时 间( 建 立 )
加上时钟脉冲边沿之后的时间(保持)即 为“数据有效窗口”,也就是数据保持稳 定,以进行正常采样的时间。若数据在 此期间没有保持有效,则结果存在不确 定性,或不可知。
不过这是最后的手段。在弄清楚不 用它如何解决问题之前,请尽量不要使 用这种方法。只使用 FPGA Editor 查看 底层结构“知其所以然”,了解工具对设 计的所做的处理,以达到让设计恰当的 使用 FPGA 资源来实现的目的。首先试 试重构电路来满足设计的时序要求。一 个比较简单的方法就是在路径上及早布 置一个触发器。该技术即为流水线,它 会增加信号的延迟,不过也可使信号值 得到正确地采样。
不 过 ,该 约 束 不 会 检 查 保 持 时 间 , 因不清楚数据何时会从 FPGA 的引脚结 束。若数据在时钟脉冲边沿 2 纳秒之后 才建立,则使用如下方案:
OFFSET_IN 适用于进入器件的
时钟与数据之间的关系,另一种常见的 OFFSET_OUT 约束定义时钟在 FPGA 输 入处发生跳变后数据离开器件所需的时 间。以下为常见的 OFFSET_OUT 用法:
设计约束优先次序排列 若设计有多重约束,则需进行优先次
序排列。一般来说,约束的一般性越强, 其优先级越低。相反,约束的针对性越
径均受时序规格“TS_clk20: 20ns”(同步 元件到同步元件 20 纳秒的时间要求)的 约束。“HIGH 50%”指 clk20 的占空比为 50/50。
2010年 秋季刊
时序名称 向用户定义的分组添加组件,可这
样处理:
在此,“TNM”为保留字,用于定义 时序分组的名称。
在这种情况下,object_name 为带 分组元件或信号的名称,predefined_ group 为可选关键词,标示符可以是字 母、数字和下划线的任意组合。
不能使用诸如 FFS、LATCHES 或
2010年 秋季刊
13
手把手课堂: FPGA101
RAMS 这样的保留字。该变量对大小写
赛灵思有大量宝贵的关于时序约束的资
敏感。(TNM=abc 不等于 TNM=ABC)。 可将 TNM 应用于任何连线、元件引脚、 原语或宏。
传输时间与 OFFSET 约束 信号从 A 点到达 B 点所用的时间称
为传输时间。它取决于传输介质中光传 播的速度。例如,PCB 电路板上的走线 以 6~7 皮秒 / 毫米来传输信号。可采用 多种方法来确定这一时间值,例如进行 仿真,或在材料介电常数与走线几何结 构已知的情况下,列方程求解。在芯片 内,信号的行为方式也很类似,不过也会 因通过缓存器、反相器、逻辑和互联等有 源电路而发生延迟。
在本例中,高优先级的 FROM: TO 约束(仅一个)将优先于 PERIOD 约束 应用。
建立和保持 在实际的同步数字系统中,数据必
须先于进行采样的时钟脉冲边沿到达。 达到这一目标所需的最短时间称为“建立 时间”。
除了先于时钟脉冲边沿到达外,数 据必须在时钟脉冲边沿保持一定时间, 这一时间称为“保持时间”。保持时间可 以为负,此时数据在时钟脉冲边沿到达 前便已结束;可以为零,此时数据保持到 时钟脉冲边沿采样;也可为正,此时数据 保持到时钟脉冲边沿采样完毕后一段时 间。
传输时间是可测量的,通常用示波 器来测量。当路径上无有源元件时,传 输时间一般不会有太大变化。若路径在 芯片内,则晶体管的作用会使路径延迟 在最大值与最小值之间变化。设计需同 时满足二者的时序要求。
为告诉工具数据何时到达特定位 置,需使用另一种名为“OFFSET_IN” 的约束。“OFFSET_IN”约束在时钟和 数据进入器件时,对其关系进行了定义。 以如下约束为例:
根据设计,在 FPGA 架构中,对所 有速度等级,保持时间均不为正(或零或 负)。这样可简化布局和布线,因数据只 需先于时钟脉冲边沿到达,并可在时钟 脉冲边沿采样发生后即刻发生变化。
数据超出最小建立时间的值称为时 序裕量。时序裕量应总是为正。若报告 上出现时序裕量负值,则说明建立时序
约束违例的简便补救办法 重申一下:PERIOD 约束定义的是
相关文档
最新文档