tag 标签: 优化技术

相关博文
  • 热度 15
    2014-2-8 22:08
    1591 次阅读|
    0 个评论
      Altera FPGA 优化技术 - 编译时间的优化 KevinWan   Parallel compilation 利用多个处理器同时处理 QuartusII 的编译 设置如下:   Smart compilation 由编译器指定必要的编译过程,避免不必要的进程占用 CPU 资源,使得 CPU 资源得到最大的利用。   Incremental Compilation 只编译更改的部分,其他的部分保持原先的编译结果。 增量编译的特点: 保持原有的性能 减小编译时间 用户更容易达到时序逼近   Rapid recompile: 对于必须重新编译部分,此设置指定 Fitter 是否应试图保持兼容的布局和布线结果,此功能有助于加快编译。       Logic Lock 我们可以通过 logiclock 来手动约束模块的的物理位置,从而达到优化时序的目的: A.         在 Chip planer 里划定一个区域 B.         在 QuartusII 中选定要约束的模块 C.         然后重新编译    
  • 热度 16
    2014-2-8 22:07
    1117 次阅读|
    0 个评论
    Altera FPGA 优化技术 - 功耗的优化 KevinWan   时钟管理 使用时钟控制模块 使用 ALTCLKCTRL 模块,管理时钟输出,有效的控制功耗。 代码中设置使能 代码中设置使能信号,控制 reg 的翻转。   Memory 功耗优化 Ram 的功耗主要消耗在动态时钟上,减小动态的时钟的使用是有效的减小 Memory 的功耗。 地址或者数据的翻转对 memory 功耗影响不大。 使用 memory 的 clock enable control 选项。 I/O 功耗优化 降低输出电流,降低输出翻转率。   QuartusII 设置 Area optimization 减小逻辑资源就等效于更少的逻辑翻转,可以减小功耗。 Power-driven synthesis Power-driven fitting   电源优化顾问 使用电源优化顾问来优化。      
  • 热度 18
    2014-2-8 22:06
    1750 次阅读|
    0 个评论
    Altera FPGA 优化技术 - 时序的优化 KevinWan   时序驱动编译 在 Fitter Settings/Timing-drive complation 中优化保持时间,可以选择 All path 和 I/O Paths and Minimum TPD Paths.        Altera 推荐采用时序驱动编译,工具会在多个关键路径中做折中,使得系统的性能最优。   使用 IOE 的寄存器        IOE 块一般都有自己的寄存器,他是最靠近 IO 的,所以使用它可以获得最小的 Tco ,我们可以再 Assignment Editor 中选择快速输入寄存器( Fast Input Register )和快速输出寄存器( Fast Output Register )。   使用 PLL 对时钟移相 对于多时钟系统或者时钟路径较长,无法满足 Tsu 或者 Th 的时候,可以采用 PLL 对时钟进行移相,来满足 Tsu 和 Th 的要求。   调整管脚驱动电流 管脚的驱动电流越大,意味着输出驱动器的输出阻抗越小,输出管脚对负载电容的充电时间越短,信号输出延时越小,但是,电流越大,对系统带来较大的噪声。   调整 I/O 翻转斜率 I/O 翻转的斜率越大,速度越快,但是上冲和下冲也就越大。      
  • 热度 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 中可以进行局部的设置:
  • 热度 19
    2014-2-8 22:05
    1910 次阅读|
    0 个评论
    Altera FPGA 优化技术 -Fmax 的优化   KevinWan   代码优化 增加流水线 在设计中,把较大的组合逻辑分成小块,中间加上寄存器做流水,这样可以显著提高系统的 Fmax 。 组合逻辑平衡 这条类似与增加流水线,使得较大的组合逻辑分一部分到较小的逻辑中,这样可以达到平衡。 复制高扇出节点 复制节点的好处是提高设计的性能和可布线性,但是会造成资源的增加 模块端口采用输入输出寄存器 对于模块的设计, Altera 推荐输入的信号用寄存器打一拍,输出的信号也用寄存器打一拍再输出。   逻辑综合速度优化 速度优化设置 在 Analysis Synthesis Settings 中的 Optimization Technique 选择 Speed ,工具会在综合的时候对设计进行速度优化。   全局信号设置 在 Fitter 中的 More Setting 中的 Auto Global Clock 选项打开的话,工具会在布局布线的时候自动的把一些高扇出的信号布在全局时钟网络上; Auto Global Register Control Singals 打开的话,会把一些高扇出的寄存器控制信号布在全局网络上,包括清零、置位和时钟使能等。     扇出控制 扇出控制可以控制信号的延时,扇出越小,走线延时就越小,可以再 Assignment Editor 中设置扇出。   打平设计的层次结构 用户可以再 QuartusII 中设置,使得工具打平设计中的层次结构,使得模块的边界充分优化。   布局布线的设置 采用时序驱动编译。   区域约束优化 Fmax          采用区域的 Logic Lock 的方法去锁定相关的或者是关键的资源部分,达到优化走线,提高系统的 Fmax 。 物理综合优化
相关资源