LogicLock是
本章主要内容:
. 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)到布局布线过程中,然后再将设计的其余部分集成起来,这样就能继承设计优化的性能。