0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

芯片的具体设计流程

iIeQ_mwrfnet 来源:芯路芯语 作者:芯路芯语 2020-10-19 09:29 次阅读

芯片是什么?芯片的具体设计流程又是什么?本文探讨的就是芯片在字面以外的意义,以及芯片是怎么被设计成的。

芯片

芯片,又称微电路(microcircuit)、微芯片(microchip)、集成电路(英语:integrated circuit, IC)。是指内含集成电路的硅片,体积很小,常常是计算机或其他电子设备的一部分。

芯片,英文为Chip;芯片组为Chipset。芯片一般是指集成电路的载体,也是集成电路经过设计、制造、封装、测试后的结果,通常是一个可以立即使用的独立的整体。“芯片”和“集成电路”这两个词经常混着使用,比如在大家平常讨论话题中,集成电路设计和芯片设计说的是一个意思,芯片行业、集成电路行业、IC行业往往也是一个意思。实际上,这两个词有联系,也有区别。集成电路实体往往要以芯片的形式存在,因为狭义的集成电路,是强调电路本身,比如简单到只有五个元件连接在一起形成的相移振荡器,当它还在图纸上呈现的时候,我们也可以叫它集成电路,当我们要拿这个小集成电路来应用的时候,那它必须以独立的一块实物,或者嵌入到更大的集成电路中,依托芯片来发挥他的作用;集成电路更着重电路的设计和布局布线,芯片更强调电路的集成、生产和封装。而广义的集成电路,当涉及到行业(区别于其他行业)时,也可以包含芯片相关的各种含义。

芯片也有它独特的地方,广义上,只要是使用微细加工手段制造出来的半导体片子,都可以叫做芯片,里面并不一定有电路。比如半导体光源芯片;比如机械芯片,如MEMS陀螺仪;或者生物芯片如DNA芯片。在通讯与信息技术中,当把范围局限到硅集成电路时,芯片和集成电路的交集就是在“硅晶片上的电路”上。芯片组,则是一系列相互关联的芯片组合,它们相互依赖,组合在一起能发挥更大的作用,比如计算机里面的处理器和南北桥芯片组,手机里面的射频、基带和电源管理芯片组。

芯片设计流程

芯片设计分为前端设计和后端设计,前端设计(也称逻辑设计)和后端设计(也称物理设计)并没有统一严格的界限,涉及到与工艺有关的设计就是后端设计。

▲芯片的设计原理图

芯片设计之前端设计

1. 规格制定
芯片规格,也就像功能列表一样,是客户向芯片设计公司(称为Fabless,无晶圆设计公司)提出的设计要求,包括芯片需要达到的具体功能和性能方面的要求。

2. 详细设计

Fabless根据客户提出的规格要求,拿出设计解决方案和具体实现架构,划分模块功能。

3. HDL编码

使用硬件描述语言(VHDL,VerilogHDL,业界公司一般都是使用后者)将模块功能以代码来描述实现,也就是将实际的硬件电路功能通过HDL语言描述出来,形成RTL(寄存器传输级)代码。

4. 仿真验证

仿真验证就是检验编码设计的正确性,检验的标准就是第一步制定的规格。看设计是否精确地满足了规格中的所有要求。规格是设计正确与否的黄金标准,一切违反,不符合规格要求的,就需要重新修改设计和编码。设计和仿真验证是反复迭代的过程,直到验证结果显示完全符合规格标准。


仿真验证工具Synopsys的VCS,还有Cadence的NC-Verilog。

5. 逻辑综合――Design Compiler

仿真验证通过,进行逻辑综合。逻辑综合的结果就是把设计实现的HDL代码翻译成门级网表netlist。综合需要设定约束条件,就是你希望综合出来的电路在面积,时序等目标参数上达到的标准。逻辑综合需要基于特定的综合库,不同的库中,门电路基本标准单元(standard cell)的面积,时序参数是不一样的。所以,选用的综合库不一样,综合出来的电路在时序,面积上是有差异的。一般来说,综合完成后需要再次做仿真验证(这个也称为后仿真,之前的称为前仿真)。


逻辑综合工具Synopsys的Design Compiler。

6. STA

Static Timing Analysis(STA),静态时序分析,这也属于验证范畴,它主要是在时序上对电路进行验证,检查电路是否存在建立时间(setup time)和保持时间(hold time)的违例(violation)。这个是数字电路基础知识,一个寄存器出现这两个时序违例时,是没有办法正确采样数据和输出数据的,所以以寄存器为基础的数字芯片功能肯定会出现问题。


STA工具有Synopsys的Prime Time。

7. 形式验证

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

形式验证工具有Synopsys的Formality。

前端设计的流程暂时写到这里。从设计程度上来讲,前端设计的结果就是得到了芯片的门级网表电路。

芯片设计之后端设计

1. DFT
Design For Test,可测性设计。芯片内部往往都自带测试电路,DFT的目的就是在设计的时候就考虑将来的测试。DFT的常见方法就是,在设计中插入扫描链,将非扫描单元(如寄存器)变为扫描单元。关于DFT,有些书上有详细介绍,对照图片就好理解一点。


DFT工具Synopsys的DFT Compiler

2. 布局规划(FloorPlan)

布局规划就是放置芯片的宏单元模块,在总体上确定各种功能电路的摆放位置,如IP模块,RAM,I/O引脚等等。布局规划能直接影响芯片最终的面积。

工具为Synopsys的Astro

3. CTS

Clock Tree Synthesis,时钟树综合,简单点说就是时钟的布线。由于时钟信号在数字芯片的全局指挥作用,它的分布应该是对称式的连到各个寄存器单元,从而使时钟从同一个时钟源到达各个寄存器时,时钟延迟差异最小。这也是为什么时钟信号需要单独布线的原因。

CTS工具,Synopsys的Physical Compiler

4. 布线(Place & Route)

这里的布线就是普通信号布线了,包括各种标准单元(基本逻辑门电路)之间的走线。比如我们平常听到的0.13um工艺,或者说90nm工艺,实际上就是这里金属布线可以达到的最小宽度,从微观上看就是MOS管的沟道长度。

工具Synopsys的Astro

5. 寄生参数提取

由于导线本身存在的电阻,相邻导线之间的互感,耦合电容在芯片内部会产生信号噪声,串扰和反射。这些效应会产生信号完整性问题,导致信号电压波动和变化,如果严重就会导致信号失真错误。提取寄生参数进行再次的分析验证,分析信号完整性问题是非常重要的。

工具Synopsys的Star-RCXT

6. 版图物理验证

对完成布线的物理版图进行功能和时序上的验证,验证项目很多,如LVS(Layout Vs Schematic)验证,简单说,就是版图与逻辑综合后的门级电路图的对比验证;DRC(Design Rule Checking):设计规则检查,检查连线间距,连线宽度等是否满足工艺要求, ERC(Electrical Rule Checking):电气规则检查,检查短路和开路等电气 规则违例;等等。

工具为Synopsys的Hercules

实际的后端流程还包括电路功耗分析,以及随着制造工艺不断进步产生的DFM可制造性设计)问题,在此不说了。

物理版图验证完成也就是整个芯片设计阶段完成,下面的就是芯片制造了。物理版图以GDS II的文件格式交给芯片代工厂(称为Foundry)在晶圆硅片上做出实际的电路,再进行封装和测试,就得到了我们实际看见的芯片。

芯片设计之工艺文件

在芯片的设计重要设计环节,像综合与时序分析,版图绘制等都需要用到工艺库文件,而大家往往又对工艺文件缺乏认识,所以导致想自学一些芯片设计的东西就显得很困难。例如,没有工艺版图库文件,学习版图设计就是纸上谈兵。这篇文章主要介绍一下工艺库相关的知识。

工艺文件由芯片制造厂提供,所以概括性的了解国内和国际上有哪些芯片制造厂是很有必要的。国际上,主要有台积电,英特尔三星等主要半导体制造商。国内,主要有中芯国际,华润上华,深圳方正等公司。这些公司都提供相关的工艺库文件,但前提是要与这些公司进行合作才能获取,这些工艺文件都属于机密性文件。

完整工艺库文件主要组成为:

1,模拟仿真工艺库,主要以支持spectre和hspice这两个软件为主,后缀名为scs——spectre使用,lib——hspice使用。

2,模拟版图库文件,主要是给cadence版图绘制软件用,后缀名为tf,drf。

3,数字综合库,主要包含时序库,基础网表组件等相关综合及时序分析所需要用到的库文件。主要是用于DC软件综合,PT软件时序分析用。

4,数字版图库,主要是给cadence encounter软件用于自动布局布线,当然自动布局布线工具也会用到时序库,综合约束文件等。

5,版图验证库,主要有DRC,LVS检查。有的是专门支持calibre,有的专门支持dracula,diva等版图检查工具用。每一种库文件都有相应的pdf说明文档。

反向设计会用到1,2,5等工艺库文件,3和4是不会用到了。正向设计(从代码开始设计的正向设计)则所有的文件都需要用到。由于工艺文件在芯片设计中占有极重要的位置,在每一个关键设计环节都要用到,再加上它的机密属性,所以网络上很难找到完整的工艺文件对于个人学习用,EETOP上有一份cadence公开的用于个人学习的工艺库文件可以方便大家学习,但似乎也是不完整的。

芯片设计之综合

什么是综合?综合就是将RTL级verilog代码用Design Compiler 工具 转换/映射成用基础门级单元表示的电路的过程。基础门级单元也就是平时我们学的与非门,或非门,寄存器之类的,只不过,这些门级单元已经做成了标准的单元库,我们可以直接使用软件来调用,而不需要自己调用门级单元来搭建电路。简单的来说,Design Compiler软件就是做翻译的工作——将代码翻译成实际电路,但又不仅仅是翻译这么简单,它涉及到电路的优化与时序约束,使之符合我们做制定的性能要求。 前文提到该软件是约束驱动型软件,那么约束从何而来?答案是,设计规格书。每一个芯片设计项目都会有一个项目规格说明书,这是在芯片设计之初,整体规划(见前文)的步骤中要制定好的。具体详细的约束要求需要在综合过程中仔细的斟酌决定。

综合的一般流程:

1,预综合过程;

2,施加设计约束过程;

3,设计综合过程;

4,后综合过程。

PS,使用Design Compiler软件一个必备的条件是要学会使用DC TCL脚本。

预综合过程。这部分主要是准备好综合过程所使用的库文件(包括工艺库、链接库、符号库、综合库)、设计输入文件,设置好环境参数。

施加设计约束过程。这部分主要是用DC TCL脚本编写约束文件。具体的约束项目可以分为三大类:

a,面积约束,定义时钟,约束输入/输出路径;

b(环境属性),约束输入驱动,约束输出负载,设置工作条件(最好、典型、最差情况),设置连线负载模型;

c(高级时钟约束),对时钟的抖动、偏移、时钟源延迟,同步多时钟,异步时钟,多周期路径,这几类进行细致的约束。

约束的内容具体就是这么多。一个详细的TCL脚本约束文件基本包含上述所有的约束。后面有一个约束范文。

设计综合过程。主要是介绍电路模块设计规划(以利于更好的进行约束),Design Compiler综合优化的过程(三大优化阶段,结构级,逻辑级,门级),时序分析的具体过程等综合过程中的一些详细信息。

后综合过程。综合完毕该怎么看结果,时序违反该如何解决?这就是后综合过程所要解决的问题。在综合之后,通过分析综合报告,可以得知此次的电路综合结果如何,根据不符合的要求,进行重新约束,甚至重新设计电路。在这个阶段特别值得一提的是综合预估,因为在写综合约束脚本的时候,需要确定约束条件,规格书一般不能够涉及到如此细节的部分,所以需要根据实际电路进行综合预估,这个步骤是在代码编写完之后,与验证同时进行的,目的在于大致估计电路是否符合要求,此时的预综合过程与正式的综合过成是一样的,但,要求会宽松许多,时序违反的要求大概为 10%-15%,也就是说电路即使有10%-15%的电路不满足时序也没有关系。

综合约束过程是一个反复迭代的过程,需要多次设计预估,这样才能不断修正时序违反。范文:

# Set the current_design #

read_verilog {counter_pad.v counter.v} //读取设计文件

current_design Cnt10_PAD

link

set_operating_conditions -max slow -max_library slow -min fast -min_library fast //设置工作条件

set_wire_load_mode enclosed //设置连线负载模型

set_wire_load_model -name tsmc18_wl10 -library slow //设置连线负载模型

set_local_link_library {slow.db fast.db}//设置链接库

set_max_area 0 //设置面积

set_max_fanout 5 [get_ports reset_n]//设置最大扇出

set_max_fanout 4 [get_ports clk] //设置最大扇出

set_max_fanout 4 [get_ports in_ena]//设置最大扇出

set_max_transition 0.3 [get_ports reset_n]//设置信号翻转时间

set_max_transition 0.3 [get_ports clk]//设置信号翻转时间

set_max_transition 0.5 [get_ports in_ena]//设置信号翻转时间

create_clock [get_ports clk]-period 10 -waveform. {0 5}//创建时钟

set_clock_latency 1[get_clocks clk]//设置时钟源延时

set_clock_latency -source 1[get_clocks clk]

set_clock_uncertainty -setup 0.5[get_clocks clk]//设置时钟不确定度

set_clock_uncertainty -hold 0.4[get_clocks clk]

set_dont_touch_network [get_clocks clk]//设置伪路径,不要约束

set_clock_transition -fall 0.3 [get_clocks clk]////设置下降沿信号翻转时间

set_clock_transition -rise 0.3 [get_clocks clk]///设置上升沿沿信号翻转时间

set_input_delay -clock clk-max 3[get_ports in_ena]//设置输入延时

set_output_delay -clock clk -max 4 [get_ports cnt]//设置输出延时

set_output_delay -clock clk -min 0.5 [get_ports cnt]

set_output_delay -clock clk-max 4[get_ports carry_ena]

set_output_delay -clock clk-min 0.5[get_ports carry_ena]

compile//编译

report_timing -delay max > ./reports/pad_setup_rt.rpt//报告最大时序延时

report_timing -delay min > ./reports/pad_hold_rt.rpt//报告最小时序延时

report_constraint -verbose > ./reports/pad_rc.rpt

report_qor > ./reports/pad_rq.rpt

remove_unconnected_ports -blast_buses [get_cells -hierarchical *]

set bus_inference_style. {%s[%d]}

set bus_naming_style. {%s[%d]}

set hdlout_internal_busses true

change_names -hierarchy -rule verilog

define_name_rules name_rule -allowed {a-z A-Z 0-9 _} -max_length 255 -type cell

define_name_rules name_rule -allowed {a-z A-Z 0-9 _[]} -max_length 255 -type net

define_name_rules name_rule -map {{"*cell*" "cell"}}

define_name_rules name_rule -case_insensitive

change_names -hierarchy -rules name_rule

write -format verilog -hier -o ./outputs/pad_counter.sv

write -format ddc -hier -o ./outputs/pad_counter.ddc

write_sdc ./outputs/pad_counter.sdc

write_sdf ./outputs/pad_counter.sdf

总结

芯片设计的过程中是十分复杂,本文也是简单的将芯片设计流程梳理一遍,复杂的就不再赘述了。

以上来源芯路芯语

原文标题:芯片设计流程,芯片的设计原理图

文章出处:【微信公众号:微波射频网】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    455

    文章

    50812

    浏览量

    423595
  • 集成电路
    +关注

    关注

    5388

    文章

    11547

    浏览量

    361812
  • 电路
    +关注

    关注

    172

    文章

    5910

    浏览量

    172241

原文标题:芯片设计流程,芯片的设计原理图

文章出处:【微信号:mwrfnet,微信公众号:微波射频网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    GDS文件在芯片制造流程中的应用

    本文详细介绍了集成电路设计和制造中所使用的GDS文件的定义、功能和组成部分,并介绍了GDS文件的创建流程、优缺点以及应用前景。 GDS文件在集成电路设计和制造中扮演着至关重要的角色,它连接了设计与制造,将设计师的构想精确地转化为实际的芯片结构。
    的头像 发表于 11-24 09:59 382次阅读

    MOSFET晶体管的工艺制造流程

    本文通过图文并茂的方式生动展示了MOSFET晶体管的工艺制造流程,并阐述了芯片的制造原理。   MOSFET的工艺流程 芯片制造工艺流程包括
    的头像 发表于 11-24 09:13 1054次阅读
    MOSFET晶体管的工艺制造<b class='flag-5'>流程</b>

    数字设计ic芯片流程

    主要介绍芯片的设计流程                                                                    &
    发表于 11-20 15:57 0次下载

    ASIC集成电路设计流程

    分为前端设计和后端设计两大部分,以下是的流程介绍: 一、前端设计 准备需求规范 确定芯片具体指标,包括物理实现(制作工艺、裸片面积、封装)和性能指标(速度、功耗)以及功能指标(功能描述、接口定义)。 系统级设计 使用系统建模语
    的头像 发表于 11-20 14:59 442次阅读

    PCBA贴片代工全解析:一站式服务流程大揭秘

    一站式PCBA智造厂家今天为大家讲讲贴片工厂的PCBA加工流程是怎么样的?PCBA贴片代工的具体流程。在电子设备制造业中,PCBA贴片代工环节是生产过程中的重要一环。对于采购人员而言,深入
    的头像 发表于 11-07 09:32 177次阅读

    浅谈芯片制造的完整流程

    在科技日新月异的今天,芯片作为信息技术的核心部件,其制作工艺的复杂性和精密性令人叹为观止。从一粒普通的沙子到一颗蕴含无数晶体管的高科技芯片,这一过程不仅凝聚了人类智慧的结晶,也展现了现代半导体工业的极致工艺。本文将讲述芯片制造的
    的头像 发表于 10-28 14:30 567次阅读
    浅谈<b class='flag-5'>芯片</b>制造的完整<b class='flag-5'>流程</b>

    集成电路设计流程主要有哪些步骤

    的设计工作提供方向。 产品规格定义 :基于需求分析,确定设计的整体方向和具体规格,如功能、操作速度、接口规格、环境温度及消耗功率等。 二、系统级设计 架构设计 :基于规格定义,明确芯片的架构、业务模块、供电等系统级设计
    的头像 发表于 09-04 18:20 1112次阅读

    芯片底部填充工艺流程有哪些?

    芯片底部填充工艺流程有哪些?底部填充工艺(Underfill)是一种在电子封装过程中广泛使用的技术,主要用于增强倒装芯片(FlipChip)、球栅阵列(BGA)、芯片级封装(CSP)等
    的头像 发表于 08-09 08:36 1728次阅读
    <b class='flag-5'>芯片</b>底部填充工艺<b class='flag-5'>流程</b>有哪些?

    PCBA加工打样流程详解,看这一篇就够了

    一站式PCBA智造厂家今天为大家讲讲PCBA打样的具体流程是怎样的呢?PCBA打样流程解析。在当今电子产业中,越来越多的企业选择将产品交由专业的PCBA加工厂生产,而在批量生产之前,通常会进行
    的头像 发表于 07-25 09:23 402次阅读

    安卓手机OpenVPN连接ics.inhandiot.com具体流程

    安卓手机OpenVPN连接ics.inhandiot.com具体流程流程文档和手机APP查看附件。一.在ics.inhandiot.com下载配置文件,并传输至手机 二.安装OpenVPN手机
    发表于 07-25 06:21

    芯片测试的基本流程是什么

    在开始量产之前,芯片设计师会进行设计验证,以确保芯片的设计满足规格要求。这包括功能验证、时序验证和电气验证等,确保芯片在理论设计上没有问题。
    的头像 发表于 05-08 16:52 2149次阅读

    专用集成电路设计流程包括 专用集成电路的特点包括

    专用集成电路(ASIC)设计流程是指将特定应用需求转化为硅芯片的过程。下面将详细介绍ASIC设计流程,并进一步探讨ASIC的特点。 一、ASIC设计流程: 需求分析:确定设计要求和功能
    的头像 发表于 05-04 15:00 635次阅读

    芯片封装测试流程详解,具体到每一个步骤

    经过从设计到制造漫长的流程,然而一颗芯片相当小且薄,如果不在外施加保护,会被轻易的刮伤损坏。封测有着安放、固定、密封、保护芯片和增强电热性能的作用,而且还是沟通芯
    的头像 发表于 04-29 08:11 2878次阅读
    <b class='flag-5'>芯片</b>封装测试<b class='flag-5'>流程</b>详解,<b class='flag-5'>具体</b>到每一个步骤

    一颗芯片的典型设计流程

    芯片设计流程的第一步是定义芯片的要求和规格。这包括定义您的产品将做什么、如何使用以及您需要满足哪些性能指标。一旦定义了这些要求,就可以将它们用作设计架构和布局的输入。
    的头像 发表于 04-09 11:24 982次阅读

    芯片制造流程及产生的相关缺陷和芯片缺陷检测任务分析

    芯片生产制造过程中,各工艺流程环环相扣,技术复杂,材料、环境、工艺参数等因素的微变常导致芯片产生缺陷,影响产品良率。
    的头像 发表于 02-23 10:38 2052次阅读
    <b class='flag-5'>芯片</b>制造<b class='flag-5'>流程</b>及产生的相关缺陷和<b class='flag-5'>芯片</b>缺陷检测任务分析