MARKcz的个人空间 https://blog.eetop.cn/1763388 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

数字IC的设计全流程

已有 113 次阅读| 2025-1-8 14:04 |个人分类:数字IC|系统分类:芯片设计

本文详细阐述了数字集成电路设计的过程,包括前端设计的RTL描述、验证,以及后端的布局规划、时钟树综合和布线等步骤。前端设计涉及系统级设计、verilog/Vhdl描述及功能验证,确保100%的功能和代码覆盖率。后端设计则涵盖布局规划、标准单元摆放、时钟树综合和布线,强调了物理实现的重要性,如DRC和LVS检查,以确保设计的准确性和合规性。

  

数字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是为了判断流片回来之后有没有因为工艺的原因出现错误而不是设计原因;


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


                                     d0b088216608e66287dd0048cd60d6f0_57c12882574ba3e4f0ca65482286050e.png


        布局规划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对比;

    摘抄过来备份学习,如有侵权联系删除。




点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 3

    关注
  • 0

    粉丝
  • 2

    好友
  • 0

    获赞
  • 0

    评论
  • 46

    访问数
关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-10 01:51 , Processed in 0.013581 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部