热度 14
2014-2-8 22:06
3208 次阅读|
0 个评论
Altera FPGA 优化技术 - 资源的优化 KevinWan HDL 代码优化 模块时分复用 模块时分复用解决面积的问题,达到节省资源的目的。 比如分时复用乘法器,在一个系统的主时钟下,分很多时隙,每个时隙条用同一个乘法器,这样就可以复用乘法器了。 改变状态机编码方式 不同的编码方式对寄存器和状态机的性能都有影响,改变状态机的编码方式也是代码优化的一个有效的方式。 改变实现形式 相同的功能,不同的代码会利用不同的资源,所以考虑不同的实现方式也是资源优化的一种方式。 比如使用专用的资源实现 DSP 、 RAM 的模块。 逻辑综合优化 放宽时钟约束 时钟过约束会造成资源的大量使用,有时会造成局部设计的性能的下降,影响整个的 Fmax 。 放宽扇出的限制 这样会让综合工具尽量减小逻辑复制。 忽略最大 Fan out 的限制 也可以在 Assignment Editor 里设置最大的 Fan out 的具体的值,可以设置的很大。 采用资源共享 可以采用 DSP 等模块的复用 忽略相关的 LCELL 以及相关的寄存器和 Buffer 状态机的编码方式 较大的状态机采用二进制顺序编码或者格雷码,可以获得最优的面积优化。 在 AnalisisSynthesis Settings 的 More Settings 里: 打平设计的层次结构 使得模块边界充分优化。 QuartusII 中优化选项 n 采用 QuartusII 中的 Optimization Technique 中的 Area 面积优化选项,达到目的优化。 n 采用 QuartusII 中的资源分配选项: Ø Auto DSP Block Replacement : 自动决定是否用 DSP 模块资源替代设计中的同等功能模块 Ø Auto RAM Replacement : 自动决定是否用 RAM 模块资源替代设计中的同等功能模块 Ø Auto ROM Replacement : 自动决定是否用 ROM 模块资源替代设计中的同等功能模块 Ø Auto RAM Block Balancing : 自动决定采用哪一种 RAM 块类型 Ø Auto Shift Register Replacement : 自动决定是否替代逻辑中的移位寄存器 Ø DSP Black Balancing : DSP 功能实现的资源分配方式 n 采用 QuartusII 中的资源优化选项 Ø Auto Resource Sharing :资源共享,节省面积 Ø Remove Duplicate Logic :去除复制的逻辑 Ø Remove Duplicate Registers :去除复制的寄存器 Ø Remove Redundant Logic Cells :去除多余的逻辑单元 网表面积优化 网表主要是提供给第三方去作为设计的输入, QuartusII 工具可以对输入的网表做优化。 在第三方的综合工具输入的网表中,逻辑功能一般以 Altera 的基本原语( Primitives )为单位来描述,这些原语包括 Altera 的基本单元,这些原语成为“所见即所得原语”( WYSIWYG Primitive ),也称为“ ATOMS ”。 Altera 把打包和解包的过程成为“ WYSIWYG 原语再综合”。 寄存器打包 在 QuartusII 工具的布局布线时,工具可以把寄存器和设计中的其他部分进行打包封装,这样可以节省逻辑单元的使用,达到优化面积的效果。 例如:使用 DSP 或者 RAM 块的时候,他们本身输入输出都是有寄存器的,如果外面再加上寄存器作为流水线的话,可以设置寄存器打包,把外面的寄存器和 DSP 块作为一个整体进行打包操作。 在 Fitter Setting/More Setting/Auto Packed Registers 选择不同的类型: 在 Assignment Editor 中可以进行局部的设置: