A7项目(1)---项目框架与工具使用详解

1、项目开展需要准备的文件夹

  • input (源数据/弹药库)
    专业解析:这里必须存放整个后端流程的“三大基石”:门级网表 (Gate-Level Netlist)、时序约束 (SDC - Synopsys Design Constraints),以及代工厂提供的 物理和时序工艺库 (PDK / Standard Cell Libraries)。
    通俗解释:门级网表 (Gate-Level Netlist)——就像是用代码写成的乐高拼装说明书,告诉你需要哪些基础块;工艺库——就是乐高积木本身,有长条的有方块的。这文件夹就是你的弹药库,打仗前必须检查这里缺不缺东西。

  • innovus (物理实现/建楼施工)
    专业解析:Cadence Innovus 是数字后端的绝对核心平台,负责完成 布图规划 (Floorplanning)、电源网络综合 (Power Network Synthesis)、布局 (Placement)、时钟树综合 (Clock Tree Synthesis, CTS) 以及 布线 (Routing)。
    通俗解释:时钟树综合 (CTS)——就像是给整个大楼铺设广播系统,确保每一层楼(寄存器)同时听到老板(时钟源)的指令。这个文件夹里装的就是这栋大楼一层层建起来的施工图纸和中间数据。

  • starrc (寄生提取/计算阻力)
    专业解析:这是 Synopsys StarRC 工具的工作区。它的任务是进行 寄生参数提取 (Parasitic Extraction),将版图中的几何图形转化为带阻容参数的 .spef (Standard Parasitic Exchange Format) 文件。
    通俗解释:寄生参数 (Parasitics)——理论上电线是瞬间传导的,但现实中,靠得太近的金属线会产生电容,细长的金属线会有电阻。这就好比水管越细水流越慢。starrc 的工作就是精准算出这些“物理摩擦力”到底有多大。

  • pt (时序签核/秒表掐表)
    专业解析:这是 PrimeTime (Synopsys) 的地盘。它负责 静态时序分析 (Static Timing Analysis, STA) 以及 功耗分析 (Power Analysis)。它会吃进 innovus 吐出的网表和 starrc 提取的寄生参数,进行最终的时序签核。
    通俗解释:建立时间和保持时间 (Setup and Hold Time)——就像接力赛跑,接力棒(数据)必须在规定的区间内稳稳交接,早了晚了都会掉棒(芯片跑飞)。pt 就像是一个苛刻的裁判,拿着秒表计算整个电路几千万条路径有没有违规。

  • calibre (物理签核/竣工验收)
    专业解析:这是 Siemens EDA 的 Calibre 工具。它执行最终的 物理签核 (Physical Sign-off),核心是 设计规则检查 (Design Rule Check, DRC) 和 版图与原理图一致性检查 (Layout Versus Schematic, LVS)。
    通俗解释:设计规则检查 (DRC)——代工厂(比如台积电)会告诉你“两根线至少隔开2纳米,否则会短路”。calibre 就是那个拿着尺子一点点量间距的质检员,不合格人家是不给你流片的。

2、Input文件夹下是什么内容

  • cortexa7core.synthesis.v (核心代码的“尸体”)
    专业术语:这是综合工具输出的 门级网表 (Gate-Level Netlist)。

通俗解释:这就好比一份用代码写成的“乐高拼装终极说明书”。前端工程师本来写的是行为级的 Verilog 代码(比如“如果A大于B,就执行C”),经过综合工具(Synthesis)的残酷翻译后,所有的逻辑都被打碎成了最底层的与非门、或非门、触发器等标准单元。你用文本打开它,会看到密密麻麻的连线关系。innovus 后端工具就是看着这个文件,知道要从库里拿多少个零件来拼。

  • cortexa7core.sdc (项目的“生死状”)
    专业术语:这是 时序约束文件 (SDC - Synopsys Design Constraints)。

通俗解释:这就是我之前跟你提过的“甲方死命令合同”!里面定义了这颗 A7 芯片的时钟频率(比如它要跑在 800MHz 还是 1.2GHz)、输入输出信号的延迟时间。后端布局布线时,所有的优化拼命都是为了满足这个文件里的“交通规则”。如果最后满足不了,就会报时序违例(Timing Violation),芯片就废了。

3、innovus文件夹下内容

一开始是只有scripts跟work文件夹哈

4、scripts文件夹下的内容

目前是一共有11个脚本,对应这整个工程中的不同步骤过程

5、starrc文件夹

cbest注重的是hold time,cworst注重的是setup time

  • cworst_T_125 (炼狱模式:高温 + 高阻力)
    专业术语:最差电容/最慢工艺角 (Capacitance Worst Corner) @ 125°C。
    通俗解释:
    cworst 代表寄生电容最大的极端情况。
    T_125 代表温度高达 125 摄氏度。
    生活类比:这就像是大夏天你在沙漠里开车,不仅天气热得发动机拉胯(晶体管变慢),而且路面上全是泥泞(电容最大,信号阻力极大)。
    战略意义:在这个文件夹底下提取出来的数据,是为了扔给后面的 pt 去检查 建立时间 (Setup Time) 的。也就是看在最恶劣、信号跑得最慢的情况下,数据能不能在规定时间到达。

  • cbest_T_m40 (极寒模式:低温 + 零阻力)
    专业术语:最佳电容/最快工艺角 (Capacitance Best Corner) @ 零下 40°C (-40°C)。
    通俗解释:
    cbest 代表寄生电容最小的极端情况。
    m40 (minus 40) 代表零下 40 摄氏度。
    生活类比:这就像是哈尔滨的严冬,路面上结了冰(完全没有摩擦力/电容极小),你的车(信号)不仅跑得飞快,甚至刹不住车。
    战略意义:跑得快难道不好吗?在数字电路里,跑太快也是灾难!如果信号提前到达,会把前一个还没处理完的数据给覆盖掉。这个文件夹的数据是为了检查 保持时间 (Hold Time) 违例的。

  • spef (寄生参数的“总账本”)
    专业术语:存放 标准寄生交换格式 (Standard Parasitic Exchange Format, SPEF) 文件的目录。
    通俗解释:当你分别在 125°C 和 -40°C 跑完提取后,StarRC 会生成 .spef 文件存放在这里。这就好比是一本厚厚的“账本”,里面密密麻麻地记录了这颗芯片上几千万根连线,每一根线在不同温度下的电阻值 (R) 和电容值 (C) 到底是多少。后面的 PrimeTime (PT) 掐表测速,就指望看这本账本了。

  • Makefile (一键启动的“自动挡”)
    专业术语:自动化编译脚本 (Make Script)。
    通俗解释:你不需要手动敲几十行命令去分别跑高温和低温。写这个实验的大佬已经把所有繁琐的启动命令打包进这个文件里了。你只需要在终端敲一个 make,工具就会自动挂上两档温度,去帮你提取账本。

6、PT文件夹

针对C_best(Hold时序)和C_worst(Setup时序)两个PVT条件

7、calibre文件夹

  • merge (版图合并:拼图的最后一步)
    专业解析:执行 GDS 合并 (GDS Merge) 操作的工作区。
    通俗解释:你在 innovus 里连完线导出的版图(通常是 GDSII 格式),其实是个“空壳”。它只有你走的线和各个元器件的“占位符”,没有元器件内部的真实晶体管长相。merge 的任务,就是把你导出的空壳,和代工厂给你的“标准单元真实物理内部图纸”完美拼合在一起,形成一张能直接送去印芯片的终极照片。

  • v2lvs (翻译官:网表格式转换)
    专业解析:执行 Verilog 转 LVS 网表 (Verilog to SPICE/LVS Netlist)。
    通俗解释:为了检查电路对不对,你需要拿着最初的代码和最终的版图去对账。但是,前端给你的代码是 Verilog 格式(类似于高级编程语言),而 Calibre 工具对账时只认识最底层的 SPICE 网表格式。这个文件夹里的脚本,就是充当翻译官,把高级语言翻译成底层语言。

  • drc (安检局:设计规则检查)
    专业解析:执行 设计规则检查 (Design Rule Check, DRC)。
    通俗解释:这就是代工厂的物理安检局。它拿着尺子去量你版图上的每一根线。代工厂会规定:“在 28nm 工艺下,两根金属线之间的距离必须大于 0.05 微米,否则光刻机打光的时候会糊在一起发生短路”。哪怕有一处违例,不好意思,打回重做!

  • lvs (户籍科:版图与原理图一致性)
    专业解析:执行 版图与原理图一致性检查 (Layout Versus Schematic, LVS)。
    通俗解释:DRC 只管你的线有没有短路,但不管你连得对不对。LVS 就像是对账单。它左手拿着 v2lvs 翻译出来的“原版设计图纸”,右手拿着你画好的“版图提取结果”,一个晶体管一个晶体管去对比。多连了一根线?错!漏连了一个门?错!把电源地接反了?大错特错!

ESC 关闭 | 导航 | Enter 打开
输入关键词开始搜索