资讯动态

Design Compiler:Multibit优化(增强型布局感知的Multibit Banking流程)

发布时间:2026/8/5 14:56:03 来源:尧图企业网站定制
相关阅读Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482写在开始关于Multibit优化的简介和RTL向量自动推断流程、手动创建多比特组件流程已经在之前的文章中讨论本文将不再赘述具体内容可以参考下面的博客建议在阅读本文前先学习该文章。Design CompilerMultibit优化RTL向量自动推断流程和手动创建多比特组件流程https://chenzhang.blog.csdn.net/article/details/155949999关于布局感知的Multibit Banking流程已经在之前的文章中讨论本文将不再赘述具体内容可以参考下面的博客建议在阅读本文前先学习该文章。Design CompilerMultibit优化布局感知的Multibit Banking流程https://blog.csdn.net/weixin_45791458/article/details/156192193?sharetypeblogdetailsharerId156192193sharereferPCsharesourceweixin_45791458spm1011.2480.3001.8118增强型布局感知的Multibit Banking流程拓扑模式的Design Compiler NXT在2021版本推出了增强型布局感知的Multibit Banking流程可以在综合过程中就进行布局感知的Multibit优化在进行增量综合前就获得较好的结果质量(QoR)。该流程分为两种一种是单独的增强型布局感知的Multibit Banking流程一种是集成的增强型布局感知的Multibit Banking流程需要使用compile_ultra -spg命令。多比特单元替换后report_multibit命令可用于报告设计中的多比特组件或为寄存器组的实现情况它们被命名为mbm_seg_*_cluster_*以表明其实际上是由增强型布局感知的Multibit Banking流程得到的。单独的增强型布局感知的Multibit Banking流程图1展示单独的增强型布局感知的Multibit Banking流程。图1 单独的增强型布局感知的Multibit Banking流程用户首先需要将在2021版本引入的enable_enhanced_physical_multibit_banking变量设置为true默认值为false与布局感知的Multibit Banking流程不同的是此时identify_register_banks命令会识别物理位置上彼此接近、且相互兼容的单比特单元并直接将其合并并不会生成包含create_register_bank命令的Tcl脚本也无需指定-output_file选项如果依旧指定则会产生一个包含以下内容的文件。# The netlist transformations were applied by identify_register_banks需要注意的是此时不能使用-input_map_file、-register_group_file选项即该流程不能指定输入映射文件和寄存器分组文件。identify_register_banks命令的其余部分与布局感知的Multibit Banking流程类似在此不再赘述。集成的增强型布局感知的Multibit Banking流程图2展示集成的增强型布局感知的Multibit Banking流程。图2集成的增强型布局感知的Multibit Banking流程用户首先需要将2021版本引入的compile_enable_physical_multibit_banking变量设置为true默认值为false综合工具会在综合过程中需要使用compile_ultra -spg命令先后进行RTL级Multibit优化类似RTL向量自动推断流程和手动创建多比特组件流程和物理级Multibit优化类似布局感知的Multibit流程与单独的identify_register_banks命令相比可能获得更好的结果质量(QoR)。多比特单元命名规则增强型布局感知的Multibit Banking流程中多比特单元的命名规则与RTL向量自动推断流程和手动创建多比特组件流程相同。set_multibit_options命令set_multibit_options命令的BNF范式有关BNF范式可以参考以往文章为set_multibit_options [-default] [-stage rtl | physical | debanking | banking_all | none] [-mode non_timing_driven | timing_driven | timing_friendly | none] [-critical_range range | -slack_threshold percentage] [-path_groups list_of_pathgoups] [-exclude_registers_with_timing_exceptions true|false] [-ignore_timing_exceptions list_of_timing_exceptions_to_not_exclude] [-exclude cells_to_exclude] [-name_prefix prefix_for_created_mb_cells] [-multibit_components_only] //注该命令的选项和参数顺序任意该命令可以控制增强型布局感知的Multibit Banking流程尽管图1中并没有显式标出但该命令可以控制单独的增强型布局感知的Multibit Banking流程。其中-stage选项的参数可以是四种之一rtl其他选项应用于RTL级Multibit优化、physical其他选项应用于物理级Multibit优化、banking_all其他选项同时应用于RTL级Multibit优化和物理级Multibit优化如无特殊需求可指定该参数、debanking其他选项应用于时序感知的Multibit增量综合拆分流程。-mode选项的参数可以是四种之一non_timing_driven默认综合工具会在所有可能的地方使用多比特单元最大化多比特单元替换比例使剩余的单比特单元数量最少允许时序和面积变差、timing_friendly综合工具的多比特推断力度与non_timing_driven类似但在选择目标多比特单元时以时序为优先有助于改善时序但在Multibit优化过程中仍可能导致时序变差、timing_driven综合工具仅在不恶化时序的前提下才将单比特单元替换为多比特单元对时序最保守、none该参数在增强型布局感知的Multibit Banking流程中失效。默认情况下如果某个单比特单元在共享引脚时钟引脚、控制引脚上设置了时序例外如虚假路径、多周期路径则需要同组的其他单比特单元也是如此如果某个单比特单元在非共享引脚上设置了时序例外如虚假路径、多周期路径综合工具可以将时序例外转移到多比特单元上。如果使用了set_multibit_options命令的-exclude_registers_with_timing_exceptions选项则不允许单比特单元设置时序例外-ignore_timing_exceptions选项用于在使用-exclude_registers_with_timing_exceptions选项的基础上允许部分时序例外支持group_path、false_path、multicycle_path、max_delay、min_delay。该命令的-exclude选项、-name_prefix选项、-multibit_components_only选项与identify_register_banks命令的同名选项功能相同。如果在单独的增强型布局感知的Multibit Banking流程中同时使用set_multibit_options命令与identify_register_banks命令的同名选项-exclude选项叠加identify_register_banks命令的-name_prefix选项优先-multibit_components_only选项指定一次即生效。-critical_range选项和-path_groups选项可以开启时序感知的Multibit增量综合拆分流程该功能由2016版本引入图3展示了时序感知的Multibit增量综合拆分流程。图3 时序感知的Multibit增量综合拆分将单比特单元替换为多比特单元有时会影响设计的时序结果质量(QoR)。相反将关键路径上的多比特单元拆分为单比特单元则可以改善时序结果质量(QoR)。综合工具可以在增量综合需要使用compile_ultra -spg -incr命令过程中识别多比特单元中的关键比特并将其拆分成单比特单元并将非关键比特重新合并成更小位宽的多比特单元如图4所示。需要注意的是综合工具仅在这种操作能够改善时序的情况下才会拆分并尽量保持设计中的单元为多比特形式。图4 多比特单元拆分-critical_range选项用于指定关键范围是一个相对关键路径(Worst Negative Slack, WNS)的范围它可以是一个非负数、一个百分数数值后添加%、0表示仅关键路径、default表示综合工具会根据优化时的设计状态为每个时序组确定合适的关键范围、full表示所有裕量为负的路径。-slack_threshold percentage选项相当于百分数形式的-critical_range选项不可一起使用。-path_groups选项用于将关键范围的影响限制在某些时序组中默认情况下关键范围针对整个设计。需要注意的是只有未使用-stage选项或使用-stage debanking选项时时序感知的Multibit增量综合拆分才生效。例如下面的命令设置时序组CLK的关键范围为2.0。dcnxt_shell-topo set_multibit_options -mode timing_driven -critical_range 2.0 -path_groups {CLK}如果该时序组的WNS为-3.0则在增量综合过程中综合工具会尝试拆分裕量位于-3.0到-1.0之间的次关键路径上的多比特单元。被拆分后的单比特单元的命名方式与split_register_bank命令相同。在多比特库单元有限时提升分组比例综合时的Multibit优化分两步完成第一步是将通用时序单元SEQGEN映射为单比特单元默认情况下这一步与Multibit优化无关即不要求库中存在与单比特单元功能等价的多比特单元随后再尝试进行多比特单元替换。当库中的多比特单元种类较少时可能会造成分组比例较低此时将2018版本引入的seqmap_prefer_registers_with_multibit_equivalent变量默认值为false设置为true这样综合工具在映射通用时序单元时会尽可能选择那些有功能等价多比特单元的单比特单元从而提高分组比例。报告Multibit优化结果可以使用report_multibit_banking命令报告设计中的多比特单元数量和比例如下所示。dcnxt_shell-topo report_multibit_banking **************************************** Report : multibit banking Design : mul Version: W-2024.09-SP2 Date : Fri Dec 26 17:15:32 2025 **************************************** Total number of sequential cells: 74 (a) Number of single-bit flip-flops: 13 (b) Number of single-bit latches: 0 (c) Number of multi-bit flip-flops: 61 (d) Number of multi-bit latches: 0 Total number of single-bit equivalent sequential cells: 257 (A) Single-bit flip-flops: 13 (B) Single-bit latches: 0 (C) Multi-bit flip-flops: 244 (D) Multi-bit latches: 0 Sequential cells banking ratio ((C D) / (A B C D)): 94.94% Flip-Flop cells banking ratio ((C) / (A C)): 94.94% Sequential bits per cell ((A B C D) / (a b c d)): 3.47 Flip-Flop bits per cell ((A C) / (a c)): 3.47 Multi-bit Register Decomposition: -------------------------------------------------------------------------------- Bit-Width Reference Number of instances Single-bit Equivalent -------------------------------------------------------------------------------- 4-bits 61 ( 82.43%) 244 ( 94.94%) SAEDHVT14_LSRDPQ4_1 61 --------------------------------------------------------------------------------写在最后Multibit优化会对形式验证产生影响Design Compiler在Multibit优化时会在SVF文件中添加guide_multibit命令用于指导Formality进行验证。参考文档Multibit Register Synthesis and Physical Implementation Application Note 2025.06

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价