ch09_时序分析与逻辑优化概要

上传人:今*** 文档编号:107485750 上传时间:2019-10-19 格式:PPT 页数:90 大小:4.36MB
返回 下载 相关 举报
ch09_时序分析与逻辑优化概要_第1页
第1页 / 共90页
ch09_时序分析与逻辑优化概要_第2页
第2页 / 共90页
ch09_时序分析与逻辑优化概要_第3页
第3页 / 共90页
ch09_时序分析与逻辑优化概要_第4页
第4页 / 共90页
ch09_时序分析与逻辑优化概要_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《ch09_时序分析与逻辑优化概要》由会员分享,可在线阅读,更多相关《ch09_时序分析与逻辑优化概要(90页珍藏版)》请在金锄头文库上搜索。

1、工程学院 信息技术教研室,Verilog HDL与FPGA 数字系统设计,内 容,时序分析基础 TimeQuest时序分析器 FPGA资源优化 FPGA时序优化,FPGA和SOPC应用 时序分析与逻辑优化,时序分析:时序分析是做什么的?,帮助分析和验证一个设计中的时序是否符合要求 所有的数据路径都会按照对应的约束被分析 整个设计必须符合时序要求或符合给出的例外情况 指导fitter(布局布线器)布局布线出符合要求的结果,时序分析:一些基本概念,启动和锁存沿(launch & latch edge) 建立和保持时间(setup & hold times) 数据和时钟到达时间(data &cloc

2、k arrival time) 数据需求时间(data required time) 建立和保持时间裕量(setup & hold slack) 恢复和移除时间(recovery & removal time),时序分析:路径和分析,三种路径: 时钟路径(Clock Paths) 数据路径(Data Paths) 异步路径(Asynchronous Paths) 两类分析: 同步分析(Synchronous):分析时钟与数据路径 异步分析(Asynchronous):分析时钟与异步路径,时序分析:启动沿和锁存沿,启动沿:使数据从源寄存器“发射”出去的时钟沿 锁存沿:使数据被目的寄存器锁存的时钟

3、沿(一般来说,锁存沿在启动沿的后一个周期),启动沿,锁存沿,时序分析:建立和保持时间,建立时间(TSU):在时钟有效沿之前数据必须保持稳定的最小时间 保持时间(TH):在时钟有效沿之后数据必须保持稳定的最小时间,建立时间和保持时间形成一个时间窗,在此窗之内,数据必须保持稳定。,时序分析:数据到达时间,数据到达目的寄存器数据输入端的时间,数据到达时间(DAT)= 启动沿 + Tclk1 + Tco + Tdata,时序分析:时钟到达时间,时钟到达目的寄存器时钟输入端的时间,时钟到达时间(CAT)= 锁存沿 + Tclk2,时序分析:数据建立时间要求,数据到达目的寄存器输入端的最迟时间,数据建立时

4、间要求(DRTSU)= CAT - TSU,时序分析:数据保持时间要求,数据在目的寄存器输入端消失的最早时间,数据保持时间要求(DRTH)= CAT + TH,时序分析:建立时间裕量,数据到达时间与数据建立时间要求之间的裕量,数据建立时间裕量(Setup Slack)= DRTSU - DAT,时序分析:保持时间裕量,数据保持时间要求与数据保持时间之间的裕量,数据保持时间裕量(Hold Slack)= DAT - DRTH,时序分析:I/O分析,I/O分析采用与前面同步分析中同样的方法 必须指定外部器件和PCB上的时序信息,时序分析:恢复和移除时间,恢复时间:在时钟有效沿之前异步信号必须保持稳

5、定的最小时间 移除时间:在时钟有效验之后异步信号必须保持稳定的最小时间,异步=同步? 异步信号的确不需要时钟,但不是完全与时钟无关 不能在时钟的有效沿附近跳变,因为会引起寄存器内部出现亚稳态。,时序分析:Quartus II 中的时序模型,Quartus II 中为每个器件建立了两个模型: Slow Corner 模型(慢速模型) 为每条路径上可能出现的最慢性能的情况建模 在高温低电压下出现最慢性能 Fast Corner 模型(快速模型) 为每条路径上可能出现的最快性能的情况建模 在低温高电压下出现最快性能 为什么两个模型: 慢速模型是满足建立时间的最坏情况 快速模型是满足保持时间的最坏情况

6、 对于65nm器件,由于低温情况下的“逆温效应”,Quartus II 中还有低温慢速模型。,TimeQuest TA,与传统时序分析器(Classic Time Analyzer)相比,TimeQuest Time Analyzer : 采用工业标准的约束方法(Synopsis Design Constraints File) 采用工业标准的报告方法 可采用GUI或命令行设置约束、运行分析和查看报告 可报告任意路径的逐节点的时序信息,并图形化的表示 更好地支持65nm及以下制程的FPGA 从Quartus II 10 开始Altera将不再支持Classic Time Analyzer,Ti

7、meQuest TA:TimeQuest GUI,TimeQuest TA:SDC文件编辑器,可使用GUI中的对话框添加约束语句(Edit Insert Constraint) 语法高亮 语法提示,TimeQuest TA:图形化的SDC编辑,TimeQuest TA:使用TQ的基本步骤,生成时序网表 输入SDC约束 创建SDC文件并读入 或 读入已有的SDC文件 直接在控制台窗口输入约束 更新时序网表 生成时序报告 保存约束,TimeQuest TA:使用TQ的流程,综合(Synthesize),在TimeQuest TA里 添加时序要求(约束),在工程中 使能TimeQuest TA,布局

8、布线(Fitter),采用TimeQuest TA 察看报告、验证时序,TimeQuest TA:约束的重要性,时序分析告诉我们电路的实际表现会是怎样 提供约束告诉分析工具我们希望电路的表现应该是怎样 约束描述了一个电路的时序应该是怎样 约束告诉布局布线器(Fitter)布线的目标 约束提供了与时序分析结果对比的参照 在没有提供约束的时候,TimeQuest TA只能提供有限的分析,TimeQuest TA:如何输入约束,所有下面将提到的约束都可以通过GUI输入 TimeQuest的Constraints菜单 SDC文件编辑器的Edit Insert Constraint 菜单,TimeQue

9、st TA:SDC中的一些术语,TimeQuest TA:SDC中的集合,在工程网表中满足查找条件的一系列名字(Net、Port等) 在SDC中用于对多个类似路径或网络做约束 可用的查找语句: get_ports get_pins get_clocks all_clocks all_registers all_inputs all_outpus 等等,具体语法参考Quartus II 手册第三卷,TimeQuest TA:Clock,加在电路中任何节点的周期性重复电平信号都可以称为时钟 内部时钟:加在电路中的作为Cell时钟输入的信号 “虚拟”时钟:并没有实际输入,或并不与电路直接有关的时钟信

10、号。比如由FPGA输出给外部电路的时钟 采用节点名字或一些有实际意义的名字命名时钟 两种时钟: 基本时钟 绝对的或基础的时钟,一般是外部输入 衍生时钟 由某个源时钟衍生出来的时钟,必须指定与源时钟的关系 由某些功能模块输出的时钟,如锁相环输出 所有时钟都是由联系的,TimeQuest TA:Clock约束,Create clock Create generated clock PLL clocks Automatic clock detection & creation Default constraints Clock latency Clock uncertainty Automatica

11、lly Derive Uncertainty Common Clock Path Pessimism Removal,TimeQuest TA:Create Clock,create_clock -name period -waveform -add,create_clock period 20.0 name clk_50 get_ports clk_in,create_clock period 10.0 waveform 2.0 8.0 get_ports sysclk,TimeQuest TA:采用GUI创建时钟,TimeQuest TA:Name Finder,TimeQuest TA:

12、Generated Clock,create_generated_clock -name -source -master_clock -divide_by -multiply_by -duty_cycle -invert -phase -edges -edge_shift -add,TimeQuest TA:用GUI创建衍生时钟,TimeQuest TA:衍生时钟例1,create_clock period 10 get_ports clk_in create_generated_clock name clk_div source get_pins inst|clk -divide_by 2

13、get_pins inst|regout,TimeQuest TA:衍生时钟例2,create_clock period 10 get_ports clk_in create_generated_clock name pulse_clk_out source clk_in edges 1 4 5 get_pins pulse_logic|out,TimeQuest TA:衍生时钟例3,create_clock period 10 get_ports clk_in create_generated_clock name pulse_clk_out -source clk_in edges 1 4

14、 5 -edge_shift 2.5 2.5 0 get_pins pulse_logic|out,TimeQuest TA:Derive PLL Clocks,derive_pll_clocks -use_tan_name -create_base_clocks,用于自动地根据PLL的设置产生由PLL输出的衍生时钟 必须已经定义了PLL的输入时钟(除非指定了create_base_clocks 选项) 在PLL的输出设置改变时,会自动更新衍生时钟 可以采用write_sdc expand命令将其扩展为标准的create_clock和create_generated_clock语句 必须在SD

15、C文件或控制台窗口中键入(GUI中没有),TimeQuest TA:Derive PLL Clocks例子,create_clock period 10.0 get_ports in_clk create_generated_clock name c100 source get_pins inst|altpll_component|pll|inclk0 -divide_by 1 get_pins inst|altpll_component|pll|clk0 create_generated_clock name c200 source get_pins inst|altpll_componen

16、t|pll|inclk0 -multiply_by 2 get_pins inst|altpll_component|pll|clk1 create_generated_clock name c200_shift -source get_pins inst|altpll_component|pll|inclk0 -multiply_by 2 -phase 90 get_pins inst|altpll_component|pll|clk2,create_clock period 10.0 get_ports in_clk derive_pll_clocks # or simply: derive_pll_clocks create_bas

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号