资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
绝密 -1-1.1 使用典型时序分析器设置时序约束时序约束包括全局时序约束和个别时序约束。全局时序约束即指定工程范围内通用的全局性时序约束。个别时序约束即对特殊的结点、路径、分组、模块指定个别性的时序约束。个别时序约束的优先级高于全局时序约束。QuartusII 中常用的设置时序约束的途径:【Assigments】/【Timing Settings】【Assigments】/【Wizards】/【Timing Wizard 】【Assigments】/【Assigment Editor】全局时序约束具体设置包括: 时序驱动的编译 全局时钟设置 全局的 I/O 时序设置 时序分析和报告选项 时序向导指定个别时序约束: 输入最大最小延时 输出最大最小延时 反相时钟 非时钟 要求(最大、最小) 、 要求、 要求、 要求cot suthtpdt 剪除时序路径个别时序约束的对象 单点 点到点 通配符 时序组1.2 使用 TimeQuest 进行时序约束和分析1.2.1 使用 TimeQuest 的基本流程(1)产生 Timing Netlist(2)输入 SDC 约束新建或者读入已有的 SDC 文件或者在控制台上直接添加约束(3)更新 timing netlist(4)生成时序分析报告 Generate timing reports绝密 -2-(5)保存时序约束(可选步骤)TimeQuest 的 GUI 界面图 Error! No text of specified style in document.-1 TimeQuest 界面使用 TimeQuest 的核心环节便是输入 SDC 约束,有下面两种方式打开TimeQuest File menu =New/Open SDC FileQuartusII File menu = New =Other Files tab图 三-2 为项目中的部分 SDC 时序约束:绝密 -3-图 Error! No text of specified style in document.-2 SDC 编辑界面1.2.2 SDC 时序约束SDC 约束主要包括如下约束: 时钟 异步路径约束 False paths Multicycle paths Absolute delays Time Groups(1) 设置时钟约束:用 GUI 来建立一个时钟约束:绝密 -4-Edit any field(change values; use wildcards in targets or command)TimeQuest main: Constraints Create ClockSDC Editor: Edit Insert Constraint Create ClockName Finder (next slide)Select collection to searchEdit command here or final command to use wildcardsOptions available depend on selected collection图 Error! No text of specified style in document.-3 用 GUI 建立时钟约束(2)异步路径约束异步路径是指驱动异步输入的,来自外部寄存器的信号,用来初始化和输出控制结绝密 -5-构,必须对它进行约束。TimeQuest 分析异步信号输入是分内部寄存器和外部寄存器两种,TimeQuest 对异步信号进行 recovery(setup)和 removal(hold)分析。ASYNCD QCLRSET CLKTremValidASYNCTrecCLK图 Error! No text of specified style in document.-4 异步信号T rec 和T remRecovery:在时钟沿到达之前,异步信号必须保持稳定的最小时间Removal:在时钟沿到达之后,异步信号必须保持稳定的最小时间(3)False PathsFalse Paths 是 Timing 异常情况,一般有两类: 基于逻辑 Logic-based,某些路径跟正常电路不相关,例如测试逻辑 , 静态寄存器 基于时序 Timing-based 我们不需要分析这些路径,例如异步路径已经通过同步时钟来同步。我们使用 set_false_path 命令来告诉 TimeQuest 忽略这些路径。设置举例如FPGA/CPLDdataclk1Reg1 Reg2 Reg3clk2PRED QCLRPRED QCLRPRED QCLR图 三-5:FPGA/CPLDdataclk1Reg1 Reg2 Reg3clk2PRED QCLRPRED QCLRPRED QCLR图 Error! No text of specified style in document.-5 设置 false path 的 example绝密 -6-set_false_path from get_pins reg1|regout to get_pins reg2|datain(4)Multicycle PathsMulticycle Paths 一般是 Timing 有异常情况,路径需要超过一个时钟周期来传递,我们可以任意指定 edge 的迁移个数。图 Error! No text of specified style in document.-6 Multicycle Pathsset_multicycle_path from get_pins reg1|regout to get_pins reg2|datain setup 2set_multicycle_path from get_pins reg1|regout to get_pins reg2|datain hold 1(5) Absolute Delays 绝对延迟Absolute Delays 是应用在在特殊路径上的约束 ,会忽略现有的 setup/hold 以及IO 约束,我们使用 set_max_delay & set_min_delay 来约束路径,指定一个输入引脚到寄存器输入的延迟,或者寄存器到输出口的延迟。(6)Time Group定义一个组节点来设置相同的约束,组成员可以包括包含不规则的名称,或者是通配符,可以用 Tcl “set” 命令。如有需要,我们可以使用 Quartus II 软件来建立 Time Groups如 图 三- 7。绝密 -7-MembersExcluded MembersCreate & Name Group图 Error! No text of specified style in document.-7 Quartus 设置界面用 tcl 脚本的话,命令如下: timegroup -add_member TimeQuest 时序分析报告:绝密 -8-图 Error! No text of specified style in document.-8TimeQuest 时序分析报告2 FPGA 综合的一些原则对项目工程进行综合前,需要在使用工具前尽量熟悉其功能,才能取得较好的综合结果。当出现综合结果不能满足约束条件时,不要急于修改设计源文件,应当通过综合器提供的时序和面积分析命令找出关键所在,然后更改综合控制或修改代码。2.1 大规模设计的综合(1)分块综合当设计规模很大时,综合会耗费很多时间。如果设计只更改某个模块时,可以分块综合。如有设计 top.v 包含 a.v 和 b.v 两个模块,当只修改 a.v 的话,可以先单独综合b.v,输出其网表 b.edf,编写一个 b 模块的黑盒子接口 b_syn.v,每次修改 a.v 后只综合top.v、a.v、b_syn.v,将综合后的网表和 b.edf 送去布线,可以节约综合 b 模块的时间。(2)采用脚本命令当设计规模比较大时,综合控制也许会比较复杂,可以考虑采用脚本控制文件的方式进行综合控制,modelsim 和 Quartus 都支持 TCL(Tool Command Language)语言,采绝密 -9-用脚本控制可以提供比图形界面更灵活和更方便的控制手段,在目前的项目中也有部分用到 tcl 脚本。2.2 必须重视工具产生的警告信息综合工具对设计进行处理可能会产生各种警告信息,有些是可以忽略的,但设计者应该尽量去除,不去除必须确认每条警告的含义,避免因此使设计的实现产生隐患。这个原则对仿真和布局布线同样适用。3 分块综合简介QuartusII 提供一种分块综合的技术即 LogicLock 技术。LogicLock 是 FPGA 器件内部的布局约束,能将设计好的电路系统或某一底层模块约束到 FPGA 中某个指定的区域上,并固定原来的布线/布局方案。难点在于成功的 LogicLock 需要对可能的时序收敛目标作出预计,考虑特定逻辑资源(引脚、存储器、DSP)与 LogicLock Region 的位置关系对时序的影响,并可以参考上一次时序成功收敛的结果。设计设计 、 优化和仿真测试仿真测试优化模块集成仿真测试模块集成L o g i c L o c k 设计流程F P G A 传统设计流程图 Error! No text of specified style in document.-9 分块综合与传统综合比较从 图 Error! No text of specified style in document.-9 可见,传统的 FPGA 设计流程和使用 LogicLock 的设计流程的不同在于:前者将系统中的各个模块分别设计,并集成为系统,然后对整个系统进行优化和测试;而后者则将系统中的各模块分别设计和优化,并保持优化结果,最后进行模块集成和系统测试。如上所述,传统的设计中,对于每个模块来说,它们都能满足设计要求,但当它们合成系统后,却不能达到原来的要求了。即使有时有的模块的功能满足要求,但当修改其他模块后,整个编译后会导致其它模块性能
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号