三国志11张角攻略 铁丝:高级篇:第3章 LogicLock 设计方法

来源:百度文库 编辑:偶看新闻 时间:2024/05/05 23:48:48
高级篇:第3章 LogicLock 设计方法发布时间:2010-07-02 15:45:45  

LogicLock是Quartus II内嵌的高级工具之一,通过FPGA物理位置的区域性约束完成提高设计性能、继承以往设计成果、增量编译和团队化设计等功能。


本章主要内容:


. LogicLock设计方法简介;


. LogicLock区域;


. LogicLock的约束注意事项;


. 反标注布线信息;


. LogicLock设计方法支持的Tcl Scripts;


. QuartusII 基于模块化的设计流程。


LogicLock设计方法简介


       LogicLock即逻辑锁定,是Quartus II内嵌的高级工具之一,其模块化设计流程支持对复杂设计的某个模块独立地进行设计、实现与优化,并将该模块的实现结果约束在规划好的FPGA区域内,这样在进行设计整合时,能够更好地集成每个模块的实现结果。LogicLock设计工具支持传统结构化设计方法与大型设计推荐的团队化设计方法,还能提高模块复用效率,从而有效缩短设计周期。


LogicLock设计目标


. 提高设计性能。合理规划逻辑锁定区域,将物理关系密切的部分锁定在相邻的FPGA资源上,往往可以节约面积,确保时序关键路径,提高区域时序性能。另外,合理地对时序关键路径(critical path)进行逻辑锁定,是编译器自动时序优化的有益补充


. 继承设计实现结果。LogicLock可以对已经成功满足设计性能指标(面积与速度)的实现结果作为下次编译的指导性文件,将成功的实现结果反标注到下次编译与优化中,从而继承上次实现的成果,如反标注某个IP core。


. 支持增量式编译。LogicLock支持增量式编译,指导编译工具增量实现整个设计,将未改变的区域反标注到下次编译中,而仅仅对改变了部分进行新的优化与编译,从而节约编译时间。


. 支持团队化设计方法(team-based design flow)。每个工程师在FPGA内部预先规划好的区域内完成设计的编译、优化和调试,然后将大家的编译结果整合起来,这样可以最充分地实现团队协作与并行分工,提高设计效率,缩短设计周期。


LogicLock设计流程


         大型、复杂或高性能要求的设计需要反复的设计编译、时序分析、优化才能达到时序收敛(timing closure)满足设计的时序需求,负担较大。而LogicLock设计流程的输入模块是已经优化并达到时序收敛的子模块,通过LogicLock设计方法继承以往编译与实现的结果,在保证每个子模块时序收敛的基础上,达到顶层时序收敛,则整个设计时序收敛,故LogicLock设计流程能有效避免繁琐的设计编译、时序分析、优化循环工作,提高设计效率。


LogicLock支持的器件族


. stratix & stratix II


. stratix GX


. cyclone & cyclone II


. MAX II


. excalibur


. mercury(不支持浮动区域floating regions)


. APEX & APEX II


LogicLock 区域


区域region:指在FPGA物理平面图Floorplan上规划好的用于适配特定逻辑功能的矩形区域。大小和位置是区域的两个基本特征,stratix、cyclone和MAX II器件族用x、y坐标表示区域的位置和大小,其他器件族用LAB/ESB或magelabs的标号表示区域大小和位置,用户可以通过软件或手动约束设置区域大小和位置。


LogicLock设计方法的核心是合理的规划region。在altera支持的LogicLock的器件上创建合适的region,将设计使用到的资源规划在矩形区域内,然后将经过优化的逻辑适配到事先规划的region内,并将该区域反标注(back-annotate)到布局布线过程中,然后再将设计的其余部分集成起来,这样就能继承设计优化的性能。


Region 的类型与常用属性值


logiclock支持的区域类型



LogicLock区域的常用属性值及其含义



在floorplan图中可以看到区域的类型和位置标注(origin),stratix、cyclone和MAX II器件族的类型标注在区域的左下角。


region的创建方法


有4种:


1. 在LogicLock regions 窗口中创建区域;


2. 在时序收敛平面图(timing closure floorplan)中单击“create new region”按钮,然后用鼠标在floorplan中规划出一个矩形区域;


3. 在编译结构窗口(compilation hierarchy)中创建区域;


4. 使用Tcl 脚本创建区域。


LogicLock regions窗口


在Quartus II主菜单中选择【assignment】/【LogicLock regions】/【LogicLock regions window】命令,打开逻辑锁定区域窗口。该窗口由逻辑锁定区域和区域属性两部分组成,使用这个窗口可以完成创建区域并将节点node或实体entity适配到区域中的功能,在区域属性栏显示了设计中所有区域的所有属性,用户可以直接修改区域的大小、状态、宽度、高度、是否为soft区域、是否保留区域reserved等属性。打开LogicLock regions窗口的快捷键是ALT + L


基于LogicLock的模块化设计流程如下:


1.合理规划设计层次并划分模块;


2.使用Quartus II软件自带的综合软件或其他第三方综合软件,对设计的每个模块进行综合;


3.对每个子模块建立Quartus II软件工程,在每个独立的工程中分别对每个子模块进行设计优化,以满足每个子模块的时序性能和面积目标,创建LogicLock区域;


4.当所有子模块都满足要求后,导出所有模块和LogicLock区域的反标信息,作为后续设计的约束;5.建立顶层工程,根据设计要求选择节点反标或布线反标,将每个子模块的LogicLock区域反标信息导入顶层设计中;


6.编译顶层设计,并观察顶层设计是否满足设计需要。


反标注布线信息


反标注(back-annotation)是LogicLock 设计流程中的重要环节,通过反标注,用户可以继承以往经过优化的布局布线结果。LogicLock 的反标注分为两个层次,第一种是节点反标注(node back-annotated ),第二种是布线反标注(routing back-annotated),前者反标注的对象是是LogicLock 区域需要继承的逻辑节点的布局信息,而LogicLock 区域内部的布线路径仍然可以由Quartus II软件根据一定策略自动进行优化;后者标注的对象是需要继承的逻辑的布线信息,LogicLock 区域内部的布局布线信息都将被保留,两者比较起来前者比较灵活,后者更忠于以往编译成果。


反标注布线信息这一方法必须要慎重使用,因为该操作会禁用Quartus II软件对反标注部分进行布线优化,不当使用有可能会造成时序性能恶化。