找回密码
 立即注册

QQ登录

只需一步,快速开始

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

时序分析—多周期路径(Multicycle Paths)检查 网表文件 Altera器件时序模型

[复制链接]
跳转到指定楼层
楼主
ID:105323 发表于 2016-2-23 01:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 51黑黑黑 于 2016-2-23 01:24 编辑

       对于Altera FPGA芯片,静态时序分析工具为Timequest。
       Timequest静态时序分析的对象包括:
     (1)寄存器和寄存器之间的路径;
     (2)I/O之间;
     (3)I/O和寄存器之间的路径;
     (4)异步复位和寄存器之间的路径。
       Timequest 根据 Data Arrival Time 和 Data Required Time 计算出时序余量(Slack)。当时序余量为负值时,发生时序违规(Timing Violation)。
       由于时序分析是针对时钟驱动的电路进行的,所以分析的对象一定是“寄存器-寄存器对”。在分析涉及到I/O的时序关系对时,看似缺少一个寄存器分析对象,构不成“寄存器-寄存器对”,其实是穿过 FPGA的 I/O引脚,在FPGA外部虚拟了一个寄存器作为分析对象。
       在建立、保持时间检查中,都假设数据从launch edge开始发送,在latch edge被捕获;launch edge和latch edge是相邻最近的一对时钟沿。在多周期路径检查中,仍然采用launch edge和latch edge的概念,但是launch edge和latch edge不再是相邻的一对时钟沿,而是间隔一定时钟周期的一对时钟沿,间隔的时钟周期个数由用户指定。
       在同步逻辑设计中,通常都是按照单周期关系考虑数据路径的。但是往往存在这样的情况:一些数据不需要在下一个时钟周期就稳定下来,可能在数据发送后几个时钟周期之后才起作用;一些数据经过的路径太复杂,延时太大,不可能在下一个时钟周期稳定下来,必须要在数据发送后数个时钟周期之后才能被采用。针对这两种情况,设计者的设计意图都是:数据的有效期在以launch edge为起始到数个时钟周期之后的latch edge。这一设计意图不能够被时序分析工具猜度出来,必须由设计者在时序约束中指定;否则,时序约束工具会按照单周期路径检查的方式执行,往往会误报出时序违规。
       不设置多周期路径约束的后果有两种:一是按照单周期路径检查的结果,虚报时序违规;二是导致布局布线工具按照单周期路径的方式执行,虽然满足了时序规范,但是过分优化了本应该多个周期完成的操作,造成过约束。过约束会侵占本应该让位于其他逻辑的布局布线资源,有可能造成其他关键路径的时序违规或时序余量变小。
       在多周期路径的建立时间(Setup Time)检查中,Timequest会按照用户指定的周期数延长Data Required Time,放松对相应数据路径的时序约束,从而得到正确的时序余量计算结果;在保持时间(Hold Time)检查中,Timequest也会相应地延长Data Required Time,不再按照单周期路径的分析方式执行(不再采用launch edge最近的时钟沿,而是采用latch edge最近的时钟沿),这就需要用户指定保持时间对应的多周期个数。
       Timequest缺省的Hold Time检查公式是需要用户修改的——针对Setup Time多周期路径的设置也会影响到Hold Time的检查。究其原因,多周期路径是为了解决信号传播太慢的问题,慢到一个周期都不够,所以要把Setup Time的检查往后推几个周期——扩大Setup Time检查的时间窗口。而Hold Time检查信号是否传播得太快,如果把检查时刻往后推,就缩小了Hold Time检查的时间窗口。
       “信号跳变抵达窗口”:对latch寄存器来说,从previous时钟对应的Hold Time开始,到current时钟对应的Setup Time结束。
       “信号电平采样窗口”:对latch寄存器来说,从current时钟对应的 Setup Time 开始,到current时钟对应的Hold Time结束。
         launch寄存器必须保证驱动的信号跳变到达latch寄存器的时刻恰好处于 “信号跳变抵达窗口”内,才能保证不破坏latch寄存器的“信号电平采样窗口”。
    时序检查的目的就是确认信号跳变发生在“信号跳变抵达窗口”内,而不会发生在“信号电平采样窗口”内。 多周期路径的设置是通过延后Setup Time检查的时刻,扩大了“信号跳变抵达窗口”,放松了时序约束。因此,延后Hold Time,就会缩小“信号跳变抵达窗口”。


时序分析(2)——Altera器件时序模型           Quartus提供两种PVT条件下的器件时序模型(注:65nm及以下的高级器件还有其他模型):      (1)Slow Corner模型:通过假设最大的环境温度(operating temperature)和VCCmin来模拟一条信号路径可能的最慢的情况。
      (2)Fast Corner模型 :通过假设最小的环境温度(operating temperature)和VCCmin来模拟一条信号路径可能的最快的情况。
        这两个模型的意义在于:通过slow corner模型来保证建立时间的时序,通过fast corner来保证保持时间的时序(对于源同步来说必须使用)。
       一般情况下的设计以建立时间违规为主,所以Timequest默认使用slow corner。





时序分析(3)——网表文件  
     Timequest需要读入布局布线后的网表才能进行时序分析。读入的网表是由以下一系列的基本单元构成的       (1) Cells:Altera器件中的基本结构单元(例如,查找表、寄存器、IO单元、PLL、存储器块等)。LE可以看作是Cell。       (2) Pins:Cell的输入输出端口。可以认为是LE的输入输出端口。注意:这里的Pins不包括器件的输入输出引脚,代之以输入引脚对应LE的输出端口和输出引脚对应LE的输入端口。
       (3) Nets:同一个Cell中,从输入pin到输出pin经过的逻辑。注意,网表中连接两个相邻Cell的连线不被看作Net,而被看作同一个点,等价于Cell的pin。虽然连接两个相邻Cell的连线不被看作Net,但这个连线还是有其物理意义的,即等价于Altera器件中的一段布线逻辑,会引入一定的延迟。
       (4) Ports:顶层逻辑的输入输出端口。对应已经分配的器件引脚。
       (5) Clocks:约束文件中指定的时钟类型的pin。不仅指时钟输入引脚。
       (6) Keepers:泛指Port和寄存器类型的Cell。
       (7) Nodes:基本时序网表单元,例如端口、引脚、寄存器和keepers。 Nodes & Keepers是Timequest特有的扩展。
   
        这是一个时序网表的实例,摘自Quartus II的使用手册。

        Timequest进行时序分析的对象paths的描述。
        Edge paths:the connections from ports-to-pins, from pins-to-pins, and from pins-to-ports。其中,pins-to-pins连接关系既包括Cell内部的连接(Net),也包括相邻Cell外部的pins-to-pins连接。
        Path通常分为三类:
        (1) Clock paths:从Clock Port或内部生成的clock pin到寄存器Cell的时钟输入Pin。
        (2) Data paths:从输入Port到寄存器Cell的数据输入pin,或从寄存器Cell的数据输出pin到另一个寄存器Cell的数据输入pin。
        (3) Asynchronous paths:从输入Port到寄存器Cell的异步输入pin,或从寄存器Cell的数据输出pin到另一个寄存器Cell的异步输入pin。 三种path如下图所示。











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

使用道具 举报

沙发
ID:105323 发表于 2016-2-23 01:23 | 只看该作者
时序分析(4)——关键路径的时序优化          关键路径通常是指同步逻辑电路中组合逻辑时延最大的路径,也就是说关键路径是对设计性能起决定性影响的时序路径。         静态时序分析能够找出逻辑电路的关键路径。通过查看静态时序分析报告,可以确定关键路径。 对关键路径进行时序优化,可以直接提高设计性能。
       对同步逻辑来说,常用的时序优化方法包括pipeline(增加寄存器)、retiming(移动逻辑)两种。



回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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