找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3805|回复: 0
打印 上一主题 下一主题
收起左侧

时序约束几个概念

[复制链接]
跳转到指定楼层
楼主
ID:105323 发表于 2016-2-23 03:22 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Clock setup:时钟建立关系
  tsu:输入建立时间
  th:输入保持时间
  tco:时钟到输出延时,Tco = Clock Delay + Micro Tco + Data Delay
  tpd:管脚到管脚的延时
  Trd:寄存器到寄存器之间的延时
  Minimum tpd & tco:最小tpd和tco
  Clock Skew:时钟偏斜,时钟到达两个D触发器的时间差,当分频由内部电路产生,无法保证小的Clock skew
  fmax:最高频率,Clock period = Data Delay – Clock skew +Tco +Tsu,Internal Fmax =1/Clock period
  

    system Fmax = 1/[MAX(Input Clock period,   Internal Clock period ,   Output Clock period)]

  

    影响Fmax主要由于Trd引起的,fmax = 1/(Trd +Clock skew+MICRO Tco+MICRO Tsu)

  

    MICRO Tco  MICRO Tsu 器件固定参数,<0.1ns

  

    全局时钟 Clock skew可以忽略,所以 Fmax ~= 1/Trd

  

    提高Fmax方法:

  

    1、  减少走线时延。通过chip Editer修改走线

  

    2、  减少组合逻辑的时延。加入流水(在REG和REG之间加了D触发器)

  Setup Time:建立时间
  Hold Time:保持时间
  Latency:延迟
  Slack:时间裕量
  Multicycle path:多周期路径,两个寄存器之间数据要经过多个时钟才能稳定的路径,一般出现于组合逻辑较大的那些路径。
  
  亚稳态:建立和保持时间如果数据发生变化,就可能发生亚稳态现象。
  一般来说,在单一时钟域的设计中只要系统电路的fmax能够保证,就可以避免亚稳态的发生;但是在跨时钟域的时钟的相位是异步的,亚稳态将无法避免。此时,在跨时钟设计时的解决亚稳态的思想是:虽然亚稳态无法避免,但却可以采用一定措施保证系统的可靠性,使得在发生亚稳态后系统仍然可以稳定地工作。
  

多时钟域下亚稳态的处理:

  

亚稳态无法避免,但要将其影响降到最低。

  

单根信号下,对第2个时钟用D触发器打2拍就可以将亚稳态的影响减少到可以忽略的地步。

  

多根信号下,不能用上面方法.

  

1、握手。速度太慢

  

2、异步FIFO

  

3、多相位/高频时钟多次采样数据

  
         同步设计准则:
        1、  尽可能使用同一时钟,时钟走全局时钟网络。多时钟域采用“局部同步”。
        2、  避免使用缓和时钟采样数据。采用混合时钟采用将导致Fmax小一倍。
        3、  避免在模块内部使用计数器分频所产生的时钟。
        4、  避免使用门控时钟。组合电路会产生大量毛刺,所以会在clk上产生毛刺导致FF误翻转。可以用时钟始能代替门控时钟。
  
  

Synplify某些选项解释:

  

FSM compile:选中后根据状态机数目多少,自动选择采用one-hot还是binary编码。

  

FSM explorer:在FSM compile基础上对状态机尝试各种编码,根据约束设置选择一种最优的编码方式。

  

Resource sharing:资源共享,让综合工具对代码进行资源优化。

  

Pipelining:通过更改D触发器的位置而不改变逻辑功能来平衡D触发器到D触发器的时延,以提高Fmax 。

  

Retiming:可以对时序和资源进行优化。

  

  

SCOPE窗口下代码:

  

Clock:时钟约束

  

Clock to Clock:时钟到时钟约束

  

Input/Output:输入输出约束

  

Registers:寄存器约束

  

Multi-cycle Paths:多周期约束

  

Flase Paths:Flase路径约束

  

MAX Delay Paths:最大延迟路径

  

Attributes:属性

  

I/O standard:I/O标准

  

Compile Piont:多点编译

  

  

Quartus II中时序优化:

  

Assignment stting----Timming Requriments& Optionss ---- clock --- 设置Fmax

  

speed or Area or balanced

  

WYSIWYG和Retimming

  

standard fit  auto fit   fast fit

  

Physical Synthesis Optiimation ---- 复制 和 Retimming

  

管脚约束 Assignment Editer 对Tsu Tco约束:if  Tsu +Tco> 1/Fmax ,则出错。

  

应该对于输入管脚添加Tsu约束, 对于输出管脚添加 Tco约束

  

对于双向口,添加Tsu Tco约束

  

最后在Time Quest中分析报告,查看出错原因


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表