自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(350)
  • 收藏
  • 关注

原创 自底向上(Bottom-Up)层次化综合脚本

的典型流程,核心逻辑是:先独立优化所有子模块,再通过顶层设计的约束反馈(表征)对子模块进行二次优化,最终确保子模块与顶层整合时满足全局时序和接口需求。,避免子模块 “各自为政” 导致的顶层时序违例。Example 73 通过 “子模块首次编译→顶层整合→表征反馈→子模块二次编译” 的流程,实现这一目标。这种流程兼顾了子模块的独立开发效率和顶层设计的全局一致性,是大型层次化芯片设计的常用方法。定义需要处理的子模块列表(E、D、C、B、A),后续流程将按此列表迭代处理每个子模块。Example 73 通过 “

2025-08-07 10:54:13 349

原创 Generating the ALIB File。alib用和不用有什么区别

ALIB 的核心价值是通过扩展逻辑映射的解空间,增强工具对目标逻辑库的深度利用,从而在复杂设计中实现更优的 PPA。对于追求高质量综合结果的场景(尤其是大规模、高约束设计),使用 ALIB 是必要的;而简单设计或快速验证场景中,不使用 ALIB 可节省前期库特征化的时间(ALIB 生成需耗时分析目标库)。关键提示:ALIB 的优势仅在命令下生效,且需提前对目标库进行特征化生成 ALIB 文件。

2025-08-06 22:12:41 600

原创 General Flow

步骤 10-11 是分层设计流程的 “冻结” 环节,通过提交和保存分区信息实现并行开发;步骤 12-16 则是针对网表变更的 ECO 流程,核心是在保留成熟设计的基础上,高效更新引脚分配,确保设计迭代的灵活性和稳定性。这一流程适用于大规模集成电路的协同开发和后期优化。

2025-08-05 23:34:52 820

原创 核心问题:define 是 全局生效 的(从定义处到文件结束),若在模块内部定义,可能与全局宏重名但值不同,导致混淆。若在模块内部定义,且与全局宏重名但值不同,会怎么样

模块内部定义与全局宏重名的define会导致宏被覆盖,引发逻辑错误和维护问题。应严格遵循规范:用define仅定义全局常量,且放在单独文件中;模块内的局部常量用parameter定义。

2025-08-04 19:10:09 215

原创 Chip Planning(芯片规划)

通过这 15 个步骤,芯片规划将超大规模设计从 “不可管理的整体” 转化为 “可并行开发的分区”,明确了各分区的物理边界、引脚接口、时序目标和电源需求,为后续的 “模块实现(Implementation)” 和 “芯片集成(Chip Assembly)” 提供了清晰的蓝图,最终缩短超大规模芯片的开发周期。Chip Planning(芯片规划)是层次化设计流程的第一个核心阶段,其核心目标是将超大规模芯片设计拆分为可独立开发的模块(block),并完成前期物理规划,为后续并行实现和集成奠定基础。

2025-07-24 19:23:11 897

原创 插入穿通结构(Inserting Feedthroughs)

通过选择合适的穿通类型,可在分层设计中平衡信号传输的性能、面积和复杂度,确保分区之间的信号连通性与可靠性。

2025-07-24 19:18:22 306

原创 为什么为处理多周期路径的 clk ,需要创建了虚拟时钟

在时序预算中,为处理多周期路径的clk创建虚拟时钟clk_v0。

2025-07-16 13:25:31 334

原创 启用或禁用主克隆预算模式

纯穿通路径指信号从模块的输入引脚直接传输到输出引脚,

2025-07-16 11:37:32 808

原创 设计早期阶段的初步时序预算推导(Deriving Preliminary Budgets in Early Design Phase)——假设块级网络延迟为 0的合理性

假设块级网络延迟为 0” 是设计早期的阶段性简化策略早期缺乏块级网络的详细数据,无法精确计算;聚焦顶层网络这一核心矛盾,满足快速评估需求;假设仅用于初步筛选,后期会被精确数据替代。这种简化既保证了早期预算的可行性,又避免了过度复杂的计算,是平衡效率与精度的合理选择。

2025-07-15 10:22:24 659

原创 约束调整(Constraints Adjustment)

约束调整通过校准.lib 与 SDC 文件中电容、过渡时间、负载的关键参数,确保顶层与分区设计在时序假设上保持一致,是避免芯片组装时出现时序冲突的核心机制。具体针对电容、过渡时间、负载这三类关键约束进行调整,确保顶层与分区设计的假设匹配。确保.lib 中的 max_capacitance 与 SDC 中的。,使分区实现的过渡时间不超出顶层时序模型的预期。在时序预算流程中,约束调整的核心目标是确保。,保证顶层与分区对引脚驱动能力的假设一致。,保证顶层与分区对电容的假设一致。若.lib 中过渡时间的最大值。

2025-07-12 18:27:28 379

原创 主克隆时序预算(Master Clone Budgeting)

在层次化设计中,当模块(Master)被多次复制(Clones)时,主克隆预算(Master Clone Budgeting)通过合并主模块与所有克隆模块的时序约束,生成统一的预算文件和时序模型(.lib),平衡设计效率与时序优化需求。:主模块引脚 A 的驱动电阻为 20Ω,克隆模块 C1 的引脚 A 为 25Ω、C2 为 30Ω,则合并后引脚 A 的驱动电阻为 30Ω。:主模块输入引脚 IN1 的 SID 为 2.0ns,克隆模块 C1 为 3.0ns、C2 为 4.0ns,则合并后。

2025-07-12 18:24:43 232

原创 时序预算计算(Calculating Timing Budgets)

Innovus 依据路径段的长度比例为分区分配时序预算,对于时序裕量为正(positive slack)和负(negative slack)的路径,计算方式略有不同。时序预算计算通过比例分配机制,确保负裕量路径优先满足关键时序要求,正裕量路径合理分配冗余以平衡设计。这种方式既保证了时序收敛的可行性,又为后续优化预留了空间。当路径时序有冗余(实际延迟 < 可用时间)时,预算会分配部分裕量以平衡各路径段。当路径时序违规(实际延迟 > 可用时间)时,预算按比例分配以优先满足关键路径。

2025-07-12 18:17:25 301

原创 详细介绍一下在设计早期阶段推导初步时序预算的流程

在设计早期阶段推导初步时序预算(Deriving Preliminary Budgets in Early Design Phase)是一种简化的时序约束分配方法,适用于布局和布线信息尚不完整的阶段,用于快速估算各分区的时序目标。其核心是基于用户预设的延迟和负载参数,跳过复杂的虚拟优化,快速生成预算参考。早期初步时序预算流程通过简化延迟和负载模型,快速为分区分配时序目标,帮助设计团队在布局早期验证分区方案的时序可行性。其结果虽不精确,但能提前识别潜在风险(如分区间路径延迟过大),为后续详细设计提供指导。

2025-07-12 18:11:13 392

原创 基于 GUI 的时序预算生成流程——基于文本命令的时序预算生成流程

在设计导入阶段,读取已完成引脚分配的数据,确保时序约束文件(如 SDC)已加载。此时设计需包含引脚位置信息和完整的时序约束(如时钟定义、输入 / 输出延迟等)。命令加载已完成引脚分配的设计数据库,确保时序数据(如延迟模型、约束)已包含在内。最终输出带有时序预算的约束文件和分区数据,为后续层次化实现提供基础。,根据预设的分区规划(如边界、引脚位置)对设计进行分区划分。,将生成的预算数据保存为文件,便于后续复用或验证。该命令将顶层时序约束分解为各分区的约束文件。

2025-07-12 16:34:01 316

原创 Deriving Timing Budgets(生成时序预算)

是指将芯片级时序约束分解为各顶层分区(partition)的模块级时序约束,确保每个分区在独立实现时能满足全局时序目标。总之,Deriving Timing Budgets 是层次化设计中连接顶层与子模块的关键环节,通过精准的约束分解,确保全局时序目标在各层级设计中逐步落地。,为每个分区定义明确的时序约束(如最大延迟、过渡时间)。这样,子模块团队可基于分配的预算独立优化时序,最终确保顶层集成时全局时序收敛。时序预算的核心是将顶层设计的时序要求(如时钟周期、输入 / 输出延迟)在层次化设计流程中,

2025-07-12 16:32:26 441

原创 hierarchical 之前要验证close timing on the flat design first意味着在做hierarchical 之前要用flat design的方法进行芯片设计一遍吗

层次化设计前的平坦化验证是一种 “轻量化时序可行性检查”,而非重复完整设计流程。它通过平坦化视角暴露设计的时序潜力与风险,确保层次化流程在一个 “可收敛的基础” 上启动,减少后期因设计本身缺陷导致的迭代成本。,而是通过平坦化视角下的关键验证步骤,确认设计的时序可行性,为后续层次化流程奠定基础。具体来说,这一过程更偏向于 “验证” 而非 “完整设计”,核心目标是排查潜在的时序瓶颈,而非生成最终的平坦化布局。在进行层次化(hierarchical)设计之前验证平坦化(flat)设计的时序收敛,

2025-07-12 16:30:56 330

原创 在层次化设计中,若基于分区边界、引脚布局等的全平坦化布局在分区提交前无法满足时序要求,那么在分区提交并生成预算后,时序也很难收敛。如何在平坦化状态下证明时序可行性?

在平坦化状态下证明时序可行性,是层次化设计流程中进行时序预算前的关键步骤,核心目标是验证设计在无分区隔离的平坦布局中能否满足时序约束。若存在严重拥堵(如溢出率 > 5%),需调整布局或增加布线资源,避免时序因绕线延迟恶化。物理违规(如单元重叠、布线短路)可能导致时序分析失真,需优先修复。

2025-07-12 16:30:40 341

原创 Pin Group——Net Group——Pin Guides——Pin Size (Width and Height)——Pin Spacing

引脚指南是控制引脚物理位置的核心约束,通过与网组、引脚组配合,可实现对引脚布局的精细化管理,尤其适用于总线、时序敏感信号等需要集中放置。

2025-07-12 16:08:33 660

原创 引脚分配的步骤是什么?

引脚分配的核心流程是 “自动分配为主、手动调整为辅”,结合设计的层级结构(单级 / 嵌套)、物理特征(矩形 / 黑盒)及约束规则(时序、布线),通过工具命令与可视化界面结合的方式实现高效分配。完成后需通过布线前验证确保引脚位置的合理性,为后续布局布线奠定基础。

2025-07-11 17:36:34 409

原创 Defining Blackboxes——Blackbox Flow

基于预估面积(如实际面积值或门数对应的面积);基于固定的宽和高(直接定义矩形边界)。在导入设计前,使用命令,保留网表中的空模块,这些空模块会被自动视为黑盒。为黑盒创建 LEF 抽象文件,并在其中指定以标识其为黑盒。例如tcl# 标识为黑盒ORIGIN 0 0;# 黑盒尺寸随后在 “Design Import” 表单的 “LEF Files” 字段中指定该黑盒库,工具会识别并加载黑盒信息。黑盒是分区设计中一种灵活的物理单元,既可以是内部功能未明的模块,也可以是功能明确但需简化处理的模块。

2025-07-10 10:49:23 648

原创 specify a module as a partition划分 partition

若分区的行高(row height)与《Design Import》表单中 “Core Spec” 页指定的默认行高不同,需单独设置分区的行高(单位:微米),以匹配模块内部标准单元的布局需求。定义模块边界与分区核心设计区域之间的间距(单位:微米),该间距用于预留布线通道、放置缓冲器或满足物理设计规则(如避免拥挤)。为创建的分区定义唯一名称,用于标识该分区在顶层设计中的身份,便于后续管理和引用(如在脚本或 GUI 中操作该分区)。

2025-07-10 10:27:51 530

原创 Hierarchical Flow Capabilities——Bottom-up Methodology

自底向上方法是一种层次化设计流程,主要包含实现阶段(implementation)和集成阶段(assembly)。在该方法中,模块级设计的尺寸、形状和引脚位置将决定顶层设计的布局规划(floorplanning)。这一方法适用于模块设计相对独立、可并行开发的场景,模块的物理特性直接决定顶层布局,从而影响整个芯片的最终实现。

2025-07-09 22:16:58 553

原创 Hierarchical Flow Capabilities——Implementation-Chip Assembly

芯片集成是自上而下设计流程的最后阶段,旨在整合顶层设计和所有模块的详细信息,以进行全芯片的提取、功耗、时序和串扰分析。这一阶段通过命令实现,最终将分散的模块级设计整合为完整的芯片设计。

2025-07-09 22:00:25 584

原创 Hierarchical Flow Capabilities——Chip Planning

该命令为每个分区模块创建独立目录,保存其网表、布局规划和已分配的时序约束;通过该命令将顶层时序约束分配到各个分区模块,明确每个模块的时序目标(如输入 / 输出延迟、内部延迟等),确保模块级设计满足整体时序要求,是连接顶层设计与分区实现的关键步骤。命令),将标准单元和已预放置的模块(分区、黑盒)合理布置在芯片区域内,确保布局满足面积、时序和拥塞等初步约束,为后续布线和分区细化奠定物理基础。命令为分区和黑盒分配引脚,明确信号进出分区的物理连接点,确保分区间接口的正确性,是实现层次化设计中模块间通信的关键步骤。

2025-07-09 19:05:51 631

原创 核心框架:Hierarchical Flow Capabilities(层次化流程能力)

从 “设计分区” 分解复杂度,到 “时序预算” 分配目标,再通过 “ART” 优化子模块时序,随后通过 “提取时序模型” 支撑顶层分析,最终依靠 “顶层时序收敛方法” 验证整体设计 —— 各章节形成 “分解→分配→优化→验证” 的完整逻辑闭环,共同服务于层次化设计流程的高效性与准确性,体现了 “分而治之,协同收敛” 的核心思想。

2025-07-09 14:48:10 273

原创 芯片设计的原型(Prototyping)流程,引脚分配(Pin Assignment)

在芯片设计的原型(Prototyping)流程中,是指在完成早期全局路由(earlyGlobalRoute)后,对跨分区(Partition)信号的引脚进行精确定位、检查和调整的过程,目的是确保分区边界处的信号连接物理可行,避免后续布线冲突。

2025-07-03 11:10:58 884

原创 时序驱动早期全局布线(Early Global Route)迭代优化延迟计算

这是关于。

2025-07-03 10:42:33 407

原创 布局规划分析(Analyzing the Floorplan)详解:命令功能与技术逻辑

等命令可快速定位时序与拥塞问题。布局规划分析是芯片设计流程中验证物理实现可行性的关键环节,通过。

2025-07-03 09:47:09 284

原创 为什么标准单元过于靠近宏单元会导致布线拥塞

布局阶段的规则设置:在 Floorplan 阶段,为宏单元设置合理的 Block Halo 和 Row Blockage,明确标准单元的禁止放置区域。使用工具辅助分析:通过布局工具的拥塞预测功能(如 Calibre、Innovus 等工具的 Congestion Map),提前识别宏单元周边的高风险区域,并调整标准单元布局。分阶段优化流程:在 Partition 和 Floorplan 阶段,先完成宏单元的布局和阻塞区设置,再进行标准单元的放置,确保布线通道的完整性。

2025-07-03 09:46:56 485

原创 createLogicHierarchy命令的核心作用解析

管理复杂度降低:用 10 个逻辑模块替代 50 个零散 FlexModel,认知负担减少 80%;验证效率提升:分层分析使时序调试速度提升 30%-50%;团队协作优化:明确功能边界,支持 10 人以上团队并行开发;设计复用增强:逻辑模块可直接移植到新项目,缩短开发周期 20%。这一步骤是从原型设计过渡到详细物理实现的关键桥梁,尤其适用于包含数十个 IP 的大型异构芯片设计。

2025-07-03 09:46:46 557

原创 创建逻辑层级与分区定义的关键步骤解析

通过为实例组创建逻辑层级,是从 “物理模块集合” 到 “功能化设计单元” 的关键抽象过程。这一步骤不仅提升了设计管理效率,还为多团队并行开发、跨项目复用奠定了基础。最终定义的逻辑分区可直接对接后续的物理实现流程,确保架构意图在全流程中的一致性传递。

2025-07-03 09:46:35 475

原创 解析 Running timeDesign 命令(原型设计时序分析)及Running proto_design(原型设计布局)

是原型设计中 “快速时序验证” 的核心工具,通过简化假设和 psPM 模型实现高效分析。其输出可直接指导 SAI 约束调整与 FlexModel 参数优化,确保设计在进入详细布局前规避重大时序风险,是复杂 SoC 设计中 “提前止损” 的关键环节。通过和参数,在设计早期快速生成符合约束的原型布局,是连接 FlexModel 建模与详细物理设计的桥梁。其核心价值在于以低计算成本验证架构级布局可行性,提前暴露模块重叠、围栏溢出等问题,为复杂 SoC 的高效迭代提供保障。

2025-07-03 09:46:24 1045

原创 Innovus 原型设计

手动 / 自动标记模块→ 2.配置计算资源→ 3.生成并保存模型分区(Partition)规划目的:将复杂系统拆分为可独立验证的子模块(如 CPU 子系统、存储子系统),支持并行设计。定义方式tcl# 定义CPU子系统分区,包含CPU与缓存FlexModel围栏(Fence)绘制与约束作用:为已放置的 FlexModel 划定物理边界,防止后续布局调整时模块移出指定区域。实现命令tcl# 为CPU子系统绘制矩形围栏,坐标单位为μm# 强制模块保留在围栏内。

2025-07-03 09:46:11 1045

原创 Sample SAI 2.0 File

声明 SAI 版本为 2.0,明确遵循的规范版本:定义参考触发器(Flop)为DFFSRX4,是时序逻辑基本单元:定义参考门单元(Gate)为CLKBUFX8,作为逻辑规模量化基准:定义参考存储器mem1,容量 1024 位,每位面积 1.1 单位,宽高比 0.75:定义模拟宏单元,尺寸 25×60,X 轴对称,类型为 pad(引脚相关)循环连接iport$i与xsw模块:定义双向总线连接,位宽 256,iport$i到xsw含 2 级流水线,时钟均为clk。

2025-07-03 09:45:57 311

原创 创建包含布局规划约束的 SAI 文件详解

创建包含布局规划约束的 SAI 文件是早期原型设计的核心环节,通过定义模块摆放规则与关键连接权重,可在无完整网表时提前引导物理设计方向。这些约束不仅能避免后期布局拥塞、时序违规等问题,还能通过量化的质量指标实现设计迭代的高效收敛,尤其适用于复杂 SoC 的多团队协同开发与架构优化。

2025-07-02 13:03:27 827

原创 SAI 方法论(Soc Architecture Information Methodology)详解

SAI(System-on-Chip Architecture Information)方法论是一种自包含的设计规划工具,旨在为前端和后端设计团队提供理想的设计 / 布局规划交接机制。无需完整网表即可启动规划:设计师可基于高层级模块图、部分网表或 SAI 文件,快速生成适用于布局规划(Floorplanning)和时序分析的网表与时序约束文件(.sdc),大幅提前设计规划阶段。全流程约束与质量优化。

2025-07-02 12:53:20 523

原创 利用 SAI 2.0 方法论进行早期原型设计与规划

SAI 2.0 方法论通过强化布局规划约束能力与量化评估体系,实现了从高层级架构到物理设计的无缝衔接。在芯片设计早期,设计者可利用其将架构框图转换为可执行的网表及时序约束,提前暴露布局拥塞、时序冲突等问题,从而在前端阶段完成架构优化,显著降低后端迭代成本。该方法论尤其适用于复杂 SoC 的多团队协同开发,通过标准化的设计交接机制,提升整体设计效率与成功率。

2025-07-02 06:57:35 484

原创 Sample SAI File 详细解析

tcl循环创建 6 个输入端口模块(iport0~iport5)关键参数:每个模块等效 5000 个门单元;:包含 8192 位存储器(约 1KB);util 0.4:布局利用率 40%;:模块宽高比允许范围为 0.5~2.0;:包含 450 个触发器,参考时钟为clk。tcl双向连接配置每个输入端口iport$i的输出连接到交换模块xsw的输入,总线位宽 256,插入 2 级流水线;xsw的输出反向连接到iport$i的输入,形成双向通信路径;所有连接使用clk时钟同步。tcl。

2025-07-02 06:57:27 358

原创 Partial Netlist Support(部分网表支持)解析

Partial Netlist Support 通过 SAI 的增量建模能力,打破了 “全量网表就绪才能启动物理设计” 的传统模式。该技术允许设计者基于部分已完成的网表,通过伪逻辑填充与动态连接定义,快速构建完整的顶层设计模型,从而提前启动物理规划与验证。这一方法尤其适用于复杂 SoC 的多团队协同开发,通过渐进式模型完善,显著缩短整体设计周期,同时降低因设计迭代导致的返工成本。

2025-07-02 06:57:19 553

原创 利用 SoC 架构信息 (SAI) 创建自动网表的解析

利用 SAI 创建自动网表是芯片设计早期阶段的关键使能技术,通过抽象模型具体化与虚拟单元模拟,在无完整网表时实现布局规划与时序分析。该技术尤其适用于复杂 SoC 的架构探索与多方案评估,通过 “SAI 定义→自动网表生成→物理设计验证” 的流程,将物理实现风险提前暴露,为设计的高效收敛提供支撑。

2025-07-02 06:57:07 989

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除