通向FPGA之路---七天玩转Altera
时序篇V1.0
目录:
1. 时序分析基本概念 (5)
1.1 同步逻辑时延模型 (5)
1.1.1 时钟抖动与偏斜 (5)
1.1.2 建立时间/保持时间 (6)
1.1.3 恢复时间/移除时间 (6)
1.1.4 Launch Edge & Latch Edge (8)
1.1.5 Data & Clock Time (8)
1.2 时序分析基本公式 (11)
1.2.1 建立时间(Setup Time)检查 (11)
1.2.2 保持时间(Hold Time)检查 (13)
1.2.3 恢复时间(Recovery Time)检查 (15)
1.2.4 移除时间(Removal Time)检查 (16)
1.2.5 多周期路径(Multicycle Paths)检查 (18)
1.3 Altera器件时序模型 (18)
1.4 基本单元与paths (20)
1.5 关键路径与时序优化方法 (21)
1.6 FPGA时序约束的几种方法 (22)
1.7 对Tsu和Tco的简单约束 (23)
2. 使用Timequest时序分析器约束分析设计 (26)
2.1 Timequest基础 (26)
2.1.1 时序约束和分析流程 (26)
2.1.2 Timequest GUI (27)
2.1.3 看懂时序波形图 (28)
2.1.4 图解时序余量计算 (29)
2.1.4.1 图解Setup Time时序余量 (29)
2.1.4.2 图解Multicycle Path时序余量计算 (33)
2.2 时序约束 (35)
2.2.1 Clocks (36)
2.1.1.1 Create clock (37)
2.2.1.2 Create generated clock (39)
2.2.1.3 PLL clocks (42)
2.2.1.4 Automatic clock detection & creation (43)
2.2.1.5 Default constraints (43)
2.2.1.6 Clock latency (43)
2.2.1.7 Clock uncertainty (45)
2.2.1.8 Common clock path pessimism removal (47)
2.2.1.9 检查 (48)
2.2.2 I/O (48)
2.2.2.1 Combinatorial I/O interface (48)
2.2.2.2 Synchronous I/O interface (51)
2.2.2.3 Source synchronous interface (54)
2.2.2.4 检查 (58)
2.2.3 False paths (58)
2.2.3.1 set_false_path (59)
2.2.3.2 set_clock_groups (60)
2.2.4 Multicycle paths (62)
2.2.4.1 单时钟域的多时钟周期 (65)
2.2.4.2 多时钟域的多时钟周期 (68)
2.3 使用Timequest约束和分析源同步电路 (75)
2.3.1 读写结构介绍 (75)
2.3.2 源同步介绍 (76)
2.3.3 写约束 (77)
2.3.4 读约束 (80)
2.3.5 例子:DDR输入 (82)
2.3.6 其他约束 (83)
2.4 Exercise (86)
2.4.1 创建网表 (87)
2.4.2 约束PLLs (87)
2.4.3 约束同步IO路径 (88)
2.4.4 Timing Exceptions & Analysis (91)
2.4.4.1 Constrain asynchronous path & clock output port
(91)
2.4.4.2 全编译 & 分析 (92)
2.4.4.3 分析异步时序 (95)
pdf转html
前言:
网上关于Altera的教程很多,可谓浩如烟海。大体来说有两类:一是,step by step的指导如何操作Quartus软件,这类方法的优点是上手快,但却有知其然不知其所以然之惑;二是,从一个很高的起点分析一些具体问题,优点是有深度,但也把大部分初学者拒之门外,不知路在何方。
本系列教程的宗旨是在力求全面介绍Altera及其QuartusII软件原理的基础上,对何如使用Altera FPGA进行基础设计、时序分析、验证、优化四大方面进行讲解。
本篇为时序篇,推荐用两天时间掌握。其余的,基础篇需一天,验证、优化各需两天,一共七天。
本教程大部分内容参考翻译altera官方handbook和对应的paper等资料,1.2、1.4、1.6、2.1系热心网友riple所创,笔者基本原文引用,只为阅读流畅性和更易理解做了少许改动,如造成原作者的不适,可联系笔者删除之。
后续教程视读者反映情况进行适当调整和发布。
2011.3.20 上海foreveryoung
交流QQ:123035845/91968656
笔者QQ:298467204
1. 时序分析基本概念
静态时序分析(Static Timing Analysis---STA)的前提是同步逻辑设计:通过路径计算延迟的总和,并比较相对于预定义时钟的延迟。静态时序分析仅关注时序间的相对关系而不是评估逻辑功能。
1.1 同步逻辑时延模型
如上图所示,T = tCO+tDELAY+tSU。时钟周期大于T,触发器正常工作;时钟周期小于T,不满足建立
时间,触发器可能经历亚稳态。即最高时钟频率f = 1/T。
时序分析的对象都是以上图所示的“寄存器对”,即register-to-register为分析目标。下文有详细说明。
以下就模型所涉及到的各个概念进行具体讲解。
1.1.1 时钟抖动与偏斜
(1)时钟抖动
时钟信号边沿变化的不确定时间称之为时钟抖动。严格说,建立时间应该是Tsu + T1,而保持时间应该是Th + T2。
(2)时钟偏斜
时序分析的起点是源寄存器(reg1),终点是目标寄存器(reg2)。时钟和其它信号的传输一样会有延时的。下图中,时钟信号从时钟源传输到源寄存器的
延时定义为,传输到目标寄存器的延时定义为。