ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数字IC的设计全流程

2021-10-22 14:03:43  阅读:197  来源: 互联网

标签:数字 验证 芯片 流程 布局 时序 布线 设计 IC


数字IC的设计包括前端设计、验证和后端设计:

 

其中我们在开始前端设计之前要清楚具体的设计指标和技术指标,比如需要:

        1、确定项目需求:指定芯片具体指标(工艺、面积、功耗、速度、接口定义等);

        2、系统级设计:用系统建模语言对各个模块进行描述,可以得到更为具体的参数;

然后我们才可以开始进行前端设计

        RTL设计(register transfer level):利用硬件描述语言(verilog和VHDL等)对电路进行行为级描述;

验证

        利用Verilog、system verilog或UVM对电路功能进行验证,需要满足signoff标准,功能覆盖率100%,代码覆盖率100%;其中代码覆盖率包括:line_coverage,  condition_coverage,  branch_coverage,  toggle_coverage,  FSM_coverage;其中验证包括有IP级验证和系统级验证

        仿真验证的工具有:Cadence:Incisive;Sysnopsys:Vcs;Mentor:QuestaSim;

        逻辑综合:在验证完成之后确定功能没有问题,便进行逻辑综合;将设计实现的RTL代码映射到特定的工艺库上,可以用一张表来表示称为门级网表Netlist,即从代码翻译到实际的元器件;然后对综合成门级的网表进行门级验证(DC = 转化 + 逻辑优化 + 映射);

        逻辑综合需要特定的综合库,不同的库中,门电路基本标准原件(standard cell)的面积,时序参数是不一样的;

        逻辑综合工具有:Cadence:Genus;Synopsys:Design Compiler(DC)

以上就是前端设计之前的准备工作和前端设计的具体内容,下面将要说说验证的分类等情况;

形式验证:

        从功能上(STA是时序上)对综合后的网表进行验证。常用的就是等价性检查(Equivalence Check)方法,以功能验证后的HDL设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先HDL描述的电路功能;

        形式验证的工具:Cadence:Conformal;Synopsys:Formality

静态时序分析:

        静态时序分析也属于验证的范畴,主要是在时序上对电路进行验证,套用特定的时序模型(Timing Model),针对特定电路分析其是否违反设计者给定的时序限制,即检查电路是否存在建立时间(setup time)、保持时间(hold time)和违例(violation)

        若静态时序分析检查通过,最终得到的Netlist做DFT插入扫描链;DFT是为了判断流片回来之后有没有因为工艺的原因出现错误而不是设计原因;

接下来详细介绍后端设计的步骤和流程:

 

        布局规划Floorplan:芯片设计的物理实现步骤通常被简称为布局布线,主要包含三大步:placement-CTS-route。但是在此之前的布图规划floorplan也是至关重要的一步

        首先需要确定芯片面积,在考虑到保证功能的正常实施下尽量节约面积(成本),之后便是对有宏单元的设计,需要按照一定的摆放规则将其摆放好。这样就可以最大化优化后期布线的长度,从而有效提高芯片性能;

        另外,为了保证芯片内部电源分布均匀供电充足,芯片内部供电设计(电源规划)也需要综合考量,同时输入输出单元的静电保护也是十分重要的。

        最后,若floorplan阶段时序不在合理的范围,则需要进一步考虑优化floorplan的设计等;

        标准单元的摆放placement:对于芯片设计的布局方案主要分为展平式(flat)和层次化(hierarchy)设计

        展平式(flat):展平式布局是最常见的实现手段,首先将各模块单元,比如宏单元,IO等手动摆放在芯片内合理的区域,然后再用自动布局的方法将大量的标准单元进行摆放以及不断地优化。但现在数据量和复杂度成几何倍上升,层次化设计越来越热门;

        层次化(hierarchy)设计:层次化设计的布局主要有三个过程:1、先分配子模块,这是展平式布局中所没有的;2、做子模块级的布局,与展平式一样;3、所有子模块完成后在顶层组装名气布局方法也和展平式一样;

        时钟树综合CTS:从某个clock的root点长到哥哥sink点的clock buffer/inverter tree。工具试图将某个clock所属的sinks做到相同长度。通过工具查看做出来的skew和latency是否符合设计要求,是否是最优的。

        布线route:布线是继布局和和时钟树综合之后的重要物理实施任务,其内容是将分布在芯片核内的模块、标准单元和输入输出接口单元(IO pad)按照逻辑关系进行互联。在实施过程中被分为全局布线(global routing)、详细布线(detail routing)和布线修正(search and repair)三个步骤来完成

        全局布线(global routing):全局布线是为详细布线做准备,首先指定全局布线的目标,按照设计特性做出具体的规划;全局布线速度快,时间短,能为用时较长的最终布线做好规划;

        详细布线(detail routing):详细布线也叫最终布线,相对于全局布线,他事实上是一种局部布线;目标是在遵循设计规则要求的距离间隔下,将属于同一个net的所有pin连接上;

        布线修正(search and repair):是最终布线的一个重要功能,给用户提供一个方便的选项,根据情况采用的方式会大大节约布线时间;

        经过dfm生成GDSII文件,对生成的GDSII文件和原文件重新进行形式验证和静态时序分析便可以到最终的设计规则DRC(design rule check)和布局和原理图检查LVS(Layout Versus Schematics);

        设计规则检查DRC:是后端布局布线完成后signoff的一个重要指标,版图完成后需要做物理验证,版图设计规则检查;主要目的是检查layout中所有违反设计规则而引起的潜在断路,短路等规则

        布局和原理图检查LVS:用来检查设计的Layout 和Netlist是否一致,本质是两个Netlist对比。工具将design的layout抽取出其对应的spice netlist和source的netlist对比;

这篇笔记参考网上众多资料实验并整理而成,如果涉及侵权烦请请告知,我将第一时间处理。

标签:数字,验证,芯片,流程,布局,时序,布线,设计,IC
来源: https://blog.csdn.net/qq_40051553/article/details/120881783

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有