时序设计规范 逻辑平台组 Q/ZH.TE/XXXX.XX
2.5、跨时钟域设计
异步时钟之间没有明确的相位关系,采样就可能不满足建立保持时间,从而导致亚稳态的产生,这是设计中必须避免的。跨时钟域设计主要针对2种情况,一是异步时钟域的实时信号需要被及时准确获取;二是来自异步时钟域的数据需要被无损引用。针对2种应用,我们推荐如下处理方法。
1、对异步实时信号,首先进行至少2拍的同步处理,再采样识别,供下级电路使用。 触发器如果采到亚稳态,输出端会在一段时间后才能从亚稳态恢复到一个确定态,如下图所示:
图2.4 亚稳态恢复
恢复时间与生产工艺、厂商、温度、电压等因素有关系,一般是1-2ns,如果系统的工作频率很高,比如500MHZ,上级触发器输出端的亚稳态会被下级采样到,并在整个系统中传递,但一般我们的系统工作频率不会这么高,那是不是高枕无忧呢?还有一种情况需要注意,触发器与触发器之间如果有组合逻辑电路,这相当于增加2级触发器之间的路径延迟,当:
路径延迟+亚稳态恢复时间(Tmet)-建立时间<时钟周期
亚稳态将向下传播,导致异常出现。将异步信号同步至少2拍,即确保了路径延迟最小化,避免了亚稳态的传播。
2、使用异步FIFO/RAM对来自异步时钟域的数据进行过度。
异步FIFO生成时根据2个时钟域的频率差设定将空将满的水位线,一般同步FIFO使用+-4做水位线,异步FIFO统一成+-6,频率相差特别大时,可设为+-8;
2.6、充分利用IO单元内资源
综合ALTERA/XILINX器件特性,IO单元主要包含有下面几种资源: 单沿采样寄存器(SDR) 双沿采样寄存器(DDR) 延迟线资源 串并转换器 ALTERA 有 有 有,软件自动配置或chip_planner手动设置 无(此处非指GXP资源) XILINX 有 有 有,可例化,参数配置延迟 有 根据IO块内的资源,我们提出如下推荐设计: 1、外部输入信号一般情况下都应该做时序约束,除非输入信号的频率低于25MHZ,且
31 / 50
时序设计规范 逻辑平台组 Q/ZH.TE/XXXX.XX
工程资源利用率低于80%;
2、外部输入信号应先进行寄存(单沿采样),再做逻辑操作,软件会自动调用IO块里的寄存器资源进行映射,这样会减少路径延迟,利于时序收敛;
3、双沿采样一律调用IOE中的DDR资源,采样时钟如果可以选择区域时钟资源的,优先考虑区域时钟资源,因为其延时相对于全局时钟资源要短;XILINX的6系列区域时钟资源应例化BUFIO2,7系列例化BUFR;ALTERA?
4、串并转换器调用,ALTERA仅在高速接口如GXP硬核内支持,XILINX的每个IOE都含有此资源,一般情况下用得较少;
2.7、流水线设计
组合逻辑的延迟过大,超过所在时钟域的时钟周期,静态时序分析工具就会报红,指示该路径不满足建立保持时间,此时可采用流水线的思路进行时序优化。
流水线设计是将复杂的组合逻辑进行合理的拆分,使其分为多个简单的处理单元,并按照一定的先后顺序用寄存器隔开,数据则如同生产线上的产品流经各个处理单元。
图2.5 流水前使用低速时钟
图2.6 使用高速时钟进行流水
2.8、FIFO/RAM时序优化
FIFO/RAM是常用的功能单元,在很多设计中,时序报红一般都出现在与FIFO/RAM相关的路径上,原因是这些单元作为芯片内的专用资源(BLOCK RAM),布局是确定的,当设计消耗资源过大或者设计的路径本身延时过长,都会导致时序报红,我们推荐如下几种优化:
1、XILINX器件,符合使用分布式资源情形的尽量使用分布式资源(符合标准见第一章),支持built_in模式的一律使用built_in模式;ALTERA器件,M9K/M18K等块RAM资源足够的情况下使用块RAM资源,资源不足必须使用时才使用,且仍需符合使用规范(见第一章);
2、DATA输出路径如报红,考虑在数据输出侧添加寄存器进行流水,RAM生成时有输出寄存的选项可勾取,ALTERA生成FIFO时有选项,XILINX的FIFO生成向导没有直接的输出寄存的选项,需额外手动添加;
3、RAM输入信号如数据,地址等,应进行寄存,增加时序冗余,一般块RAM都是默认带寄存的,但分布式ram可能需要指定,尤其是XILINX产品,选择这些功能时请观察仿真时序,进行相应的逻辑设计;
32 / 50
时序设计规范 逻辑平台组 Q/ZH.TE/XXXX.XX
第三章:静态时序分析
本章从ALTERA静态时序分析工具的角度进行介绍,基本的概念与XILINX都是相通的,故不再对XILINX进行额外阐述。
3.1、时序分析基本概念
静态时序分析是基于同步逻辑设计的,通过路径计算延迟的总和,并比较相对于预定义时钟的延迟,以此来描述电路的运行。静态时序分析仅关注时序间的相对关系而不是评估逻辑功能。设计人员可以根据时序分析的结果,通过时序约束来告诉工具设计希望的运行结果。时序约束只是一个辅助设计手段,一个好的时序只基于设计本身,而与时序约束关系不大。
一般的静态时序分析包括寄存器和寄存器之间路径分析、I/O之间的路径分析和异步复位和寄存器之间的路径的分析。由于时序分析是针对时钟驱动的电路进行的,所以分析的对象一定是“寄存器-寄存器对”。在分析涉及到I/O的时序关系对时,看似缺少一个寄存器分析对象,构不成“寄存器-寄存器对”,其实是穿过FPGA的I/O引脚,在FPGA外部虚拟了一个寄存器作为分析对象。时序分析工具通过分析时序路径之间的关系来判断设计是否能正确实现功能,根据Data Arrival Time和Data Required Time计算出时序余量(Slack)。当时序余量为负值时,发生时序违规(Timing Violation)。本章的主要目的就是介绍TimeQuest Analyzer工具中进行时序分析所用到的一些基本概念,帮助设计人员更好进行时序分析及约束。
Altera采用TimeQuest Analyzer工具实现静态时序分析,在读取时序报告的时候,网表中具有一些专业术语,比如nodes、cells、pins、nets、ports等。
表3.1 TimeQuest Analyzer的专业术语及介绍 约束术语 nodes cells pins nets 概念 基本时序网表单元,一般是指端口(ports)、寄存器、引脚(pins) Altera器件中的基本结构单元(例如,查找表、寄存器、IO单元、 DSP、存储器块等)。LE可以看作是Cell。 Cell的输入输出端口。可以认为是LE的输入输出端口。注意:这里 的Pins不包括器件的输入输出引脚 一个cell中,从输入pin到输出pin经过的逻辑,注意,网表中连 接两个相邻Cell的连线不被看作Net,而被看作同一个点,等价于Cell的pin。 顶层逻辑的输入输出端口。比如定义的器件的引脚 约束文件中指定为时钟类型的pin,包括输入引脚和输出的时钟引脚 ports clocks 33 / 50
时序设计规范 逻辑平台组 Q/ZH.TE/XXXX.XX
图3.1 网表结构图的实例说明
1、时序分析的对象——路径
Timequest时序分析工具以 paths为分析对象,主要指寄存器-寄存器之间,包括:ports-to-pins, pins-to-pins, 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如图2所示。
图3.2 时序分析工具中的路径分类
2、Launch and Latch Edges
所有的时序分析都是基于时钟的,为了分析各种路径的延迟,TimeQuest采用 Launch and Latch Edges来决定所有寄存器与寄存器之间传输路径的关系。
(1)Launch Edge:前级寄存器发送数据对应的时钟沿,是时序分析的起点。 (2)Latch Edge:后级寄存器捕获数据对应的时钟沿,是时序分析的终点。相对于launch edge默认情况下为一个时钟周期,但在多周期约束的情况下则由约束的多周期数目决定。
如图3所示,launch edge在0ns时把寄存器reg1的数据的输出传输给reg2,latch edge为10ns时刻,reg2寄存器在10ns采样该数据。数据必须在latch edge之前到来并保持稳定。
34 / 50
时序设计规范 逻辑平台组 Q/ZH.TE/XXXX.XX
图3.3 Launch and Latch Edges的关系示意图
如图3.4所示,在时序分析过程中,无论是在同一时钟域还是在不同的时钟域中,时钟之间的最主要的关系就是setup relationship和hold relationship(建立时间关系、保持时间关系,后面会介绍),不同的时钟域之间无非就是Launch Clock和Latch Clock分别为不同的时钟而已。所以在时序分析工具中,如果没有对时钟进行约束,Quartusii软件是按照1GHz的最大时钟频率进行布局布线和综合的指导, 所以在设计的过程中必须对所有的时钟进行与实际情况相符的约束。
图3.4 Setup & Hold relationship与Lanuch Clock、Latch Clock关系
3、 Data Arrival and Data Required Times
时序分析工具确定好了路径之后,通过Lanuch Clock和Latch Clock就可以估算出数据和时钟达到寄存器的管脚(pins)的延迟,也就是Data and Clock Arrival Times.
时序分析工具估算Data Arrival Times是以launch clock edge为时序分析的起点,包括源寄存器(发送数据的寄存器)的时钟相对于源时钟的延迟时间、源寄存器的clock-to-output delay ( μtCO)、数据从源寄存器的Q端到目的寄存器的输入端。
Data Required Times是对时钟路径的分析,是以Latch Clock为计算起点,对于建立时间违例分析来说,包括目的寄存器时钟的延迟时间,减去目的寄存器固有的建立时间;对于保持时间违例来说,包括目的寄存器时钟的延迟时间,加上目的寄存器固有的保持时间。可以理解为为了目的寄存器采到正确的值,数据延迟要求的时间,它与Data Arrival Times配合使用能够分析出时序是否违例。
35 / 50
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库时序设计规范1V0(7)在线全文阅读。
相关推荐: