资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,*,第6章-基于Quartus-II-的设计优化,*,第,6,章 基于,Quartus II,的设计优化,2024/11/20,1,第6章-基于Quartus-II-的设计优化,主要内容,1.设计分析,2.资源优化,2024/11/20,2,第6章-基于Quartus-II-的设计优化,设计优化是一个很重要的主题,也是可编程逻辑设计的精华所在。如何节省设计所占用的面积,如何提高设计的性能,是可编程逻辑设计的两个核心,这两点往往也成为一个设计甚至项目成败的关键因素。,2024/11/20,3,第6章-基于Quartus-II-的设计优化,本章提出了设计优化的基本流程。根据设计优化的流程介绍各种优化技巧以及所要解决的问题。包括资源利用优化、,I/O,时序优化、内部最高时钟频率优化。针对一些大规模设计编译时间长的问题,还介绍了一些技巧和设置选项,帮助用户如何减少编译时间,加快设计的进度。,2024/11/20,4,第6章-基于Quartus-II-的设计优化,用户的设计千变万化,每个设计都有其独特的地方。有单时钟域设计,有多时钟域设计;有同步的设计,也有异步的设计。同时,每个逻辑芯片外围接口的电路和芯片都不尽相同,可编程逻辑器件需要尽量利用自己的资源来满足外围电路的要求。,在对设计进行优化的时候,需要充分理解设计的特点,作出“合理而且完备”的约束,找出设计真正的瓶颈所在,才能在对设计的优化工作中有的放矢,事半功倍。相反,如果对设计的结构特点不熟悉,约束不合理或不完备,都会使,EDA,工具把器件中宝贵的资源用在不必要的地方,这样既牺牲了设计本身的性能和经济性,同时也会使整个设计周期加长,影响产品开发进度。,6.1 设计分析,2024/11/20,5,第6章-基于Quartus-II-的设计优化,6.1 设计分析,设计人员在设计过程中要对整个工程进行分析,包括:,设计前分析,如时钟资源的分析;,综合、布局布线后分析,如路径的分析;,2024/11/20,6,第6章-基于Quartus-II-的设计优化,6.1.1,时钟资源分析,一般来说,用户必须首先考虑设计中的内部时钟问题。,系统时钟频率是多少,?,独立模块的时钟频率是多少,?,一些外部接口需要跑多快的时钟频率才能满足带宽要求,?,同时用户也需要考虑器件内部的时钟资源,:,这些时钟从哪里来,片内,PLL,是否能满足要求,片内的全局时钟网络是否够用等。,2024/11/20,7,第6章-基于Quartus-II-的设计优化,2024/11/20,8,第6章-基于Quartus-II-的设计优化,在不同的时钟域之间的路径应该重点考虑。这些不同的时钟之间,又分为相关时钟和不相关时钟。相关时钟就是频率和相位有一定的关系的时钟信号,在设计中同样也需要利用这样的关系;无关时钟就是时钟之间的频率和相位完全没有关系,用户需要把时钟之间的路径完全当做异步接口路径处理。,2024/11/20,9,第6章-基于Quartus-II-的设计优化,FPGA资源有限,在设计中引脚在前期也需要进行分析。有些引脚属于专用,在引脚分配时需要考虑。,6.1.2 I/O接口分析,2024/11/20,10,第6章-基于Quartus-II-的设计优化,6.1.2 I/O接口分析,设计中另一个需要重点考虑的是,PLD,器件与外围芯片之间接口的时序要求。,在同步系统的设计中,外围芯片和逻辑器件用同一个相位的时钟来操作。设计中主要关心的是芯片输入管脚的建立保持时间,(tsu,和,th,要求,),,以及输出数据的时钟到输出延时,(tco),。,在一些设计的要求中,有时也有最小时延要求。例如,要求输出数据的最小的,tco,和最小的,tpd,,这些要求同样需要用户根据外围电路实际的情况去考虑。,2024/11/20,11,第6章-基于Quartus-II-的设计优化,6.1.3,平衡资源的使用,在一个设计中,需要用户充分了解其中的各项资源利用情况,包括逻辑单元,(LE),RAM,块、,IIO,单元,(IOE),IaSP,块等,以在各种资源利用之间达到一种平衡,从而最大限度地发挥器件的功用。一般建议用户尽量使用器件中的这些专用硬件模块,不用也是一种浪费。如果某些专用硬件模块,(,如,RAM,DSP),资源不够用,而,LE,资源丰富,同样可以用,LE,去实现这些专用硬件模块,以平衡设计的资源使用。,同时,在专用模块,(RAM,DSP,IOE),中都有专用的触发器资源,建议用户尽量使用这些专用模块中的触发器资源,不仅可以显著提升设计的性能,同时可以减少内部逻辑阵列块,(LAB),中触发器的消耗。,2024/11/20,12,第6章-基于Quartus-II-的设计优化,6.1.4 最差路径分析,FPGA,编译完之后会输出编译报告,通过编译报告可以协助设计人员完成工程的时序等分析。,实例:,2024/11/20,13,第6章-基于Quartus-II-的设计优化,6.2 优化设计基础,6.2.1,设计优化基础流程,设计优化流程与设计流程紧密相关,一般整个设计流程可以按如下图所示顺序进行。,设计定义,设计输入,功能仿真,综合,前仿真,布局布线,后仿真,上板测试,静态时序分析,2024/11/20,14,第6章-基于Quartus-II-的设计优化,优化可以在以下,4,个方面进行:,设计优化。在设计阶段通过规划整个设计的架构,利用,FPGA,的特点尽可能简化设计;,布局布线。布局布线一般是通过厂家的工具来实现,在使用工具过程中,合适的约束设置会大大提高整个工程的布局布线效果;,静态时序分析。静态时序分析在布局布线之后进行,检查整个工程的时序路径,找出最差的路径,并进行一定的调整及修改来优化整个时序;,综合。通常情况下综合是厂家工具实现,也有第三方工具能进行综合,使得设计网表在,FPGA,中的映射得到最大优化。,2024/11/20,15,第6章-基于Quartus-II-的设计优化,首先,用户需要根据自己的资源使用情况,选定目标器件,指定器件型号、速度等级和封装等。,然后,用户需要对设计加约束,编译,分析编译报告,包括资源使用报告和时序报告。,(首次编译可以按照默认约束进行编译,编译后根据结果调整。),如果设计不能实现到指定的器件中,那么需要对设计做资源优化。,如果设计的时序性能没有达到预期目标,就需要对设计进行性能优化。用户需要首先满足设计的,I/O,时序,然后对设计的内部时钟频率进行优化。,通常情况下,建议用户按照下图所示的优化流程来做。,6.2.2 首次编译的约束设置,2024/11/20,16,第6章-基于Quartus-II-的设计优化,设计优化的一般流程,2024/11/20,17,第6章-基于Quartus-II-的设计优化,注意:最基本也是最主要的设计为时钟相关项设置。,全局性时钟:输入预期时钟频率,在布局布线时,软件会优化。可以增加点余量。,个别性时钟:,其他按照默认编译后再进行设置。,2024/11/20,18,第6章-基于Quartus-II-的设计优化,2024/11/20,19,第6章-基于Quartus-II-的设计优化,6.2.2,首次编译的约束与设置,给设计增加适当的时序性能约束和合理的设置,对设计进行首次编译,然后根据编译结果分析设计,找出设计中真正的瓶颈,这一步骤对设计后期的优化过程的成败起着决定性的作用。要给设计附加适当的约束,正如前节所述,用户必须充分“理解”其设计,而且要搞清楚,FPGA,器件所处的外部环境。,2024/11/20,20,第6章-基于Quartus-II-的设计优化,一般来说,需要根据上游和下游的芯片特性以及PCB的走线情况,给出FPGA需要满足的建立时间、保持时间、时钟到输出延时和传送延时。有的设计需要满足输出延时和传送延时的最小延时要求,也要在这里设置。,2024/11/20,21,第6章-基于Quartus-II-的设计优化,2024/11/20,22,第6章-基于Quartus-II-的设计优化,2024/11/20,23,第6章-基于Quartus-II-的设计优化,2024/11/20,24,第6章-基于Quartus-II-的设计优化,6.2.3 查看编译报告,2024/11/20,25,第6章-基于Quartus-II-的设计优化,2024/11/20,26,第6章-基于Quartus-II-的设计优化,2024/11/20,27,第6章-基于Quartus-II-的设计优化,6.3 资源优化,当一个设计在实现时,由于其中一种或多种资源数量上的限制,造成设计不能实现到目标器件中,这时候就需要对资源利用进行优化。,1.,资源优化意义,整个工程占芯片资源,80%,,保证整个工程有一定的余量。,2.,设计代码优化,面积换速度,速度换资源。常用面积优化技术包括(,1,)模块时分复用(,2,)改变状态机编码(,3,)改变实现方法一般状态数比较多的话,采用格雷码和二进制编码方式使用资源最少,采用独热(,one-hot),的编码方式,由于每个状态用一个比特表示,所以性能最高。,2024/11/20,28,第6章-基于Quartus-II-的设计优化,3.,资源重新分配,设计中调用,RAM,或,DSP,如果编译时没有指定,软件不适用专用的,而使用其他逻辑资源进行拼接。,建议:设置软件使用这些专用模块,不仅可以提高性能,而且还可以优化资源。,4.,综合,面积优化,2024/11/20,29,第6章-基于Quartus-II-的设计优化,1,)选择面积优化选项,2,)选择,Auto ROM Replacement,2024/11/20,30,第6章-基于Quartus-II-的设计优化,3)选择More setting选项,可以看到更多的可优化项。,2024/11/20,31,第6章-基于Quartus-II-的设计优化,6.4 时钟频率优化,优化系统最大时钟频率,主要有以下两大方式:,1.,设计阶段优化,设计架构的优化和设计代码的优化;,2.,利用软件达到系统的时序优化,2024/11/20,32,第6章-基于Quartus-II-的设计优化,6.4.1,设计优化,时钟频率优化最有效的方法是对设计的优化,设计的优化从整体的模块设计到代码的实现的技巧都能极有效地提高系统的时钟频率。总的来说是使用面积换速度,在面积和速度中间寻找平衡点。,2024/11/20,33,第6章-基于Quartus-II-的设计优化,1.,使用流水线的方法,将设计中的较大的组合逻辑进行拆分,在这些组合逻辑中间增加触发器,提高系统的处理效率。,2.,平衡组合逻辑,3.,模块复制,4.,状态机优化,2024/11/20,34,第6章-基于Quartus-II-的设计优化,6.4.2 布局布线工具设置,2024/11/20,35,第6章-基于Quartus-II-的设计优化,6.4.3 网表优化和物理综合,当工程经过上述优化后发现改变并不明显,系统速率并没有得到提高时,,Quartus,软件中提供一些网表优化的设置选项。,1.,2024/11/20,36,第6章-基于Quartus-II-的设计优化,2.,2024/11/20,37,第6章-基于Quartus-II-的设计优化,3,2024/11/20,38,第6章-基于Quartus-II-的设计优化,6.4.3 使用LogicLock优化,略,2024/11/20,39,第6章-基于Quartus-II-的设计优化,6.5 提高编译时间的方法,1.增量编译,2024/11/20,40,第6章-基于Quartus-II-的设计优化,2.智能编译,3.并行编译,2024/11/20,41,第6章-基于Quartus-II-的设计优化,9.5 实例:计数器设计,要求:设计一种计数器,计数器按照时钟的模式进行技术,要求达到百分秒时产生进位,达到分钟时产生进位,系统根据输入中断信号可以将
展开阅读全文