ASIC后端设计_第1页
ASIC后端设计_第2页
ASIC后端设计_第3页
ASIC后端设计_第4页
ASIC后端设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ASIC 后端设计后端设计 本芯片采用传统的后端设计流程 从门级网表开始的 根据抗辐射芯片的要求进行扁 平流程设计 扁平流程扁平流程 Flat flow 介绍介绍 Trial 80 模块设计完成 数据库准备 流程确认 流程运行中问题的解决 主要设计数据 芯片大小 总体布局 大体时序 的可行性确认 First Sign Off 100 设计 DFT I O 完成 数据库已确定 时序收敛基本完成 没有大的拥 塞 congestion Final Sign Off 最后细小的功能修改 时序收敛 所有时序和布局布线问题解决 1 质量检查 Quality check 在流程的开始 根据前端设计结束后提供的 门级网表 gate level netlist 时序约束 timing constraint 和时序分析报告 timing analysis report 进行后端设计 其中网表文件要求 确认没有以下情况 文法错误 连接短路 无任何连接的 net 无驱动的输入引脚 pin assign 语句 wire 类型以外的 net 使用了由 开始的特别字符 数据总线的写法 名字 的长度等 不同的厂家和软件对此都会有一些限制 为了后续工作的方便 后端工程师会 提前定义一套比较严格的网表书写规则 然后通过分析时序约束文件 检查时序设定是否完整 合理 最后要流览时序分析报 告 如果有 setup violation 存在的话 一般不允许大于时钟周期的 10 hold violation 暂时 可以不解决 留到布线后再去除 2 I O 单元布置 I O Place 按顺序摆放 I O PAD 并考虑内部各模块的位置 电源 PAD 的个数和种类 不同种类 的信号 PAD 需要不同种类的电源 模拟信号及其电源本身都需要与其它信号隔离 电源 PAD 的个数计算要兼顾芯片封装的最低要求和芯片内部的功耗 在本 ASIC 设计中 预计有 334 个 I O 接口 在后端设计中给相应接口配置电源 地 所 需数量约为 30 50 其中电源 地有 3 3V 和 1 2V 两种 3 3V 的数量约为电源地总数量的 1 3 1 2V 的数量约为电源地总数量的 2 3 在本 ASIC 设计中 APS 的 16 位数据输入信号 clk 输入信号以及控制信号需要进行同 步 保证进入 ASIC 内核模块时的延时相等 后端工程师在布置 I O 单元时会通过 cadence virtuoso 选择等延时布线 即能保证时序上的一致性 3 兆单元布置 Megacell Place ADC DAC PLL memory 这类部件属于兆单元或称宏单元 所有的后端 EDA 布局软件 都有自动放置兆单元的功能 在本 ASIC 设计中这一步由后端设计人员手工劳动 从而保证 抗辐射性能和延时控制 排放前要同前端工程师沟通 了解运算数据的流向 各大模块间 的关系和位置 依此来决定兆单元的大体位置 在逐一放置各个兆单元时 要考虑其引脚的 位置 方向 数量及相互间的对应关系 因为兆单元常常会禁止几层金属布线层的使用 所以要注意给穿过它的信号线留有足够的空间 特别是兆单元之间的距离 如果兆单元本 身没有电源环 则要在它四周留下更大的空间以备加环 环的宽度由厂商提供的公式 依 速度 数据变化率求得 有些软件可以将相邻的几个兆单元合在一起做个环以节省空间 此时公共环的宽度应该是各个单独环宽度中最大者 常见的布局规划方法是兆单元 放在 四周 标准单元 standard cell 放在中间 留给标准单的空间形状以方形为好 应尽量避免 采用预留 L 形 U 形或几个分离的标准单元空间方法 4 行通道生成 Row Generation 行通道是为放标准单元的 其整体形状已经被兆单元的位置大致决定 行通道和兆单 元之间会保留有一定的空间 以利于兆单元的信号连线 在兆单元 之间做少许行通道 以备连线过长 加缓冲器接力 或生成时钟树时使用 5 电源布线 Power Routing 电源布线前需要进行功耗估算 准确的功耗估算可以防止耗过大 芯片封装无法承受 核供电不足而影响速度等问题 后端设计时会在管脚和面积允许的范围之内多留一些富裕 电源布线时依各个模块的功耗不同 布线密度并不相同 布线完了用 IR drop 检验整体的供 电情况 在传统的通过四周管脚供电 标准单元放在中央的设计中 标准单元集中的列的 四周应该考虑加一圈电源环 环的宽度按如下方法计算 环的宽度 所有 row 的电源线宽度 之和 四周直接供电电源条数之和 6 布局 Placement 布局主要指的是如何合理地放置标准单元 在本设计中使用抗辐射单元库 从而保证器 件整体的抗辐射性能 布局可以简单地根据单元的连接进行 也可以根据时序要求来做 还可以以拥塞程度 为主进行 本芯片根据任务书对时序要求的设计按照按时序要求来布局 此时根据前端设计的时序约束进行布局 在布局开始之前 根据 ASIC 内部结构分组或分区 对边界的连接单元需要进行时序约束保证时序收敛 在定义分组或分区时 允许一定百分 比的单元放在分组或分区之外 从而保证芯片内核整体的时序收敛 如果使用有时序要求 的布局 而布局用的时序工具与布线或计算延迟用的工具不一样 后端工程师会注意引擎 之间的计算误差 7 时钟树 Clock Tree 时钟树文件 ctstch 中包含了设计对于时钟的要求 encounter 按照这个文件设定的时钟 特性 自动产生时钟树的布局布线 插入 buffer 提高时钟树的驱动能力 改善时钟信号延 时特性 做时钟树时需考虑以下几项必要的指标 树的根结点 时钟周期 树的最大延迟 树 的最小延迟 扭曲 skew 传递时间和缓冲器的种类 还有一些可选项 特别要作叶子的 结点 leaf pin 特别不要作叶子的结点 excluded pin 和特别需要保留在时钟树里的单元保 护单元等 通过排列各个指标的优先顺序 按其特点设定一组特别的参数 可以检测出软 件的潜在能力 通过 CADENCE 的 CTGen 如果设定树的最小延 迟为 0 0ns 树的最大延迟 为 0 1ns 扭曲 skew 为 0 0ns 或是设定树的最小延迟为 0 0ns 树的最大延迟为 10 0ns 扭曲为 0 0ns 在这两种不近情理的极端情况下 可以得到最小延迟和最小扭曲的时钟树 时钟树对位置十分敏感 后端设计人员通过微调中间单元的位置从而达到最均衡的结果 再复杂一些的问题有 门时钟 生成时钟 多时钟和时钟树与时钟树之间的扭曲 一般软件可 以自动处理 gated clock 但是不一定会处理 generated clock 和 multiple clock 解决方法是 让软件做两次树的生成 第一次生成主要的树 第二次生成另一个 并在已经做好的树的 根结点上加一个特别的延迟 对于时钟树与时钟树之间的扭曲 如果软件不会自行处理 则 要用树的最大最小延迟来控制 做时钟树时也要计算线间延迟 所以同样会有布局中提到 的不同时序工具之间的误差的问题 有些软件会利用时钟扭曲帮助解决 setup 冲突 其结 果是时钟扭曲 clock skew 很大 但是时序很好 8 静态时序分析和优化 STA OPT 经过上面的后端步骤 如果没有拥塞问题 则按预估线长提取延迟数据作静态时序分 析和再优化 分析延迟数据的精度和误差和静态时序分析所用条件的更改 包括把理想时 钟变成传播时钟 输入和输出延迟的更改 再优化时是否提供了详细的布局信息和所用时 序工具之间的误差等 9 布局工程变更 Placement ECO ECO 是指所变更 包括增加和删除 单元 cell 的总数少于 10 的情况 如有太大的变更则 从头进行后端处理 如果不想变更时钟树 则要求 ECO 没有触发器的增减和位置的挪动 但是可以允许变更现有触发器的大小 如果时钟树尚未布线 而一般的逻辑组合单元则可 以作任何的修改 布局变更和静态时序分析和再优化可以多次循环 直到没有大的冲突为 止 10 布线 Routing 布线时首先留出模拟信号用的走线和隔离空间 然后考虑时钟树的布线 此时因为还 没有数字信号走线 所以可以有很大的自由来选择用传输速度较快的金属层作时钟树布线 最后是数字信号布线 其中有一些关键路径 则可以加权给这些 net 让它们优先被布线 布好线的结果中 如果没有大面积或集中在一起的布线问题 可以暂时不去修正自动布线 产生的小问题 而先作 STA 因为很可能会有布线工程变更要作 11 静态时序分析和再优化 STA OPT 布线工作完成之后 此时提取出来的延迟数据比较接近真实值 在此基础上进行再优 化 从而有效地去除任何 setup 和 hold 冲突 其它注意事项与布局后的 STA OPT 相似 如软件优化之后 仍然有少量冲突存在 则需要后端设计人员进行手工修改 12 布线工程变更 Routing ECO 这时 ECO 所受到的限制比布局变更时更多 不能有任何触发器的修改 只能变更逻辑组 合单元 任何与时钟树相连单元的变更都会导致时钟树连线的变化 为了尽可 能地减少对 时序的影响 建议用手工做时钟树的修改 布线变更可以循环多次 直到所有 setup 和 hold violation 去除为止 13 Dummy Metal 的增加 各个代工厂都有对金属密度的规定 使其金属密度不要低于一定的值 以防在芯片制造过 程中的刻蚀阶段对连线的金属层过度刻蚀从而降低电路的性能 主要做法是加入 Dummy Metal 从而增加金属的密度 14 DRC 和 LVS DRC 是对芯片版图中的各层物理图形进行设计规则检查 spacing width 它 也包括天线效应的检查 以确保芯片正常流片 LVS 主要是将版图和电路网表进行比较 来保 证流片出来的版图电路和实际需要的电路一致 DRC 和 LVS 的 EDA 工具通常为 Synopsy hercules mentor calibre CDN Dracula 15 签收交付 Tap Out 以上是对传统的后端 flat 流程的简单介绍 在实际工作中 还会根据产品要求增加附加工 作 例如对有小修改的网表做形式验证 做详细的仿真 以确保电路与原设计功能一致 写一些脚本程序去帮助完成工作 原型验证原型验证 FPGA 原型验证在 SoC 开发设计流程中的位置如下图所示 从图可知 FPGA 原型验证就 是将经过逻辑设计和前仿真及 QTV Quality Testing Verification 分析后的门级网表 通过工艺重新映射转成 FPGA 网表 并把它加到相应的 FPGA 原型验证机中 并通过规定的 接口在该系统硬件环境中进行在系统验证 通过在系统验证可以仿真电路各种情况 便于 发现潜在的问题 在系统验证通过后 就可以进行下一步版图设计 原型验证流程如上图所示 首先输出 ASIC 芯片的 VHDL 或 Verilog 格式的门级网表 并将其转换成所选 FPGA 类型的 EDIF 网表 在 FPGA 设计软件 Altera 公司的 QuartuslI 或 者是 Xilinx 公司的 Foundation 中调入 经过适配 布线 构造出 FPGA 的上电配置数据 然后通过编程器对 EEPROM 进行编程 同时 进行 FPGA 原型验证板的原理设计 可采用 Protel 等软件 完成后进行 FPGA 原型验证板印制板图设计 制作印制电路板 进行 FPGA 原型验证板的焊接电配 形成最终的 FPGA 原型验证板 然后将该板通过接口插入到系统中 就可以进行验证了 FPGA原型验证平台的软件环境设计 上图为 FPGA 原型验证平台的软件环境的设计 不仅包括对特殊的 RTL 代码及相关约束 的修改 如门控时钟的处理 硬 IP 核替换等 还要根据特定的硬件平台 增加 FPGA 相关 的约束 并搭建一个能自动仿真和验证的环境 因为在这一过程中 RTL 代码和约束要经过 多次修改 仅靠手工进行维护非常容易出错 而这些错误是很难检验的 所以必须建立一 个足够完善的软件环境 能够在人的稍微干预下 自动完成以上处理 并易于错误定位 下面分类介绍搭建软件环境的几个主要环节 1 门控时钟的处理 在 SoC 的设计中 经常会用到门控时钟 如下图所示 在图中 当 en 为 l 时 时钟 clk 可传送到 gclk 当 en 为 0 时 gclk 恒为 0 为了防 止实际芯片中 en 和 elk 延迟差异可能造成的毛刺 该电路还需要一个 latch 锁住 en 的状 态 对于 ASIC 的设计 使用者可以根据芯片使用情况把一些不用的模块的时钟关闭 这将 大大降低芯片的功耗 由于 FPGA 芯片特定的结构 其全局时钟线非常有限 并且经过与门输出的信号传输到 全局时钟需要很大的额外延时 这使得图 a 电路很难在 FPGA 中实现 可以采用图 b 所示 的电路来代替门控时钟的功能 把源时钟 clk 和 en 信号分别接到每个触发器端 当 on 信 号为 0 时 elk 信号虽不停止 但触发器并不触发 这使得该电路的功能与图 a 相同 该 方法把芯片内的时钟线数大大缩小 使之可以采用全局时钟线布线 这样就避免了由于时 钟线的延时所产生的时序问题 提高了系统的性能 目前 DC FPGA 综合工具可以支持门控时钟的自动处理 它要求把 RTL 代码中门控时 钟单元改写成特定的风格 并增加几条约束语句 即可实现自动处理 2 硬 IP 核的替换和 RTL 的重新整合 在 ASIC 设计中 经常会使用一些硬 IP 核 如 PLL SRAM ADC USB transceiver 等 这些电路大部分属于模拟电路 无法在 FPGA 中实现 对于 PLL SRAM 等模块 一般采用 FPGA 内部的时钟管理资源和存储资源来实现 只要在 RTL 调用关系上作些调整即可 对于 其它硬 IP 核的调用 需要在开发板上选用同样功能的芯片 与 FPGA 共同实现它们的功能 在 RTL 级中 首先要取消对硬 IP 核的调用 然后在 Quartus II 软件约束中 把原先连接 IP 的信号绑定到 FPGA 的 I O 上 并与功能芯片的特定信号相接 由于用于替换硬 IP 的 资源很难做到在引脚和功能上完全一致 还需要根据具体情况对 RTL 代码稍作修改 对于 多 FPGA 原型验证 需要把 SoC 设计分成几个部分 分别在不同的 FPGA 上实现 这时主要 应考虑 FPGA 资源的合理利用以及功能的完整性 让各个 FPGA 完成相对独立的功能 这将 简化 RTL 代码的分割 3 约束的移植 在 IC 的后端设计中 需要加入很多时序 功能等约束 如最大时钟周期 false path 重命名等 这些约束在 FPGA 实现过程中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论