IC后端流程初学必看样本

合集下载

IC设计流程讲义

IC设计流程讲义

IC设计流程讲义一、需求分析阶段1.1确定设计目标:分析市场需求、产品定位和竞争对手,制定设计目标和产品规格。

1.2系统设计:进行整体框架设计,确定电路模块、功能和性能要求。

二、电路设计阶段2.1构建电路原理图:根据系统设计要求,进行电路原理图的构建。

2.2元器件选型与电路仿真:选择合适的元器件,使用仿真软件进行设计验证,确保电路的性能和可靠性。

2.3PCB设计:将原理图转化为PCB布局,进行连线、布局和分层,以满足电磁兼容和信号完整性要求。

三、FPGA/PLD编程3.1确定FPGA/PLD器件:根据电路设计需求,选择合适的FPGA/PLD器件。

3.2编写逻辑代码:使用HDL语言编写逻辑代码,根据设计要求进行验证和仿真。

3.3生成配置文件:将逻辑代码转化为配置文件,用于配置FPGA/PLD器件。

四、芯片设计阶段4.1 RTL设计:根据需求进行芯片的Register Transfer Level(RTL)设计,使用HDL语言编写RTL描述文件。

4.2验证与仿真:使用仿真软件验证RTL设计的正确性和性能。

4.3综合:将RTL设计综合为门级电路网表,实现逻辑综合。

4.4时序约束:根据设计要求,给出时序约束条件,确保电路的稳定性和性能。

4.5物理设计:进行逻辑综合优化、块布局、逻辑隔离、稳定布局、布线等物理布局设计。

4.6特殊电路设计:对于特殊电路,如有模电路、高速接口等,进行特殊电路设计和模拟仿真。

4.7时序收敛:进行时序收敛和时序优化,使电路满足时序约束条件。

4.8静态时序分析:针对电路的时序性能进行静态时序分析和优化。

4.9DRC验证:通过设计规则检查(DRC)确保电路满足制造工艺的要求。

4.10LVS验证:使用版图与电路图进行电路验证(LVS)。

4.11产生GDSII文件:生成GDSII文件,用于芯片制造。

五、片上系统设计与集成5.1IP选择与集成:根据需求,选择合适的IP核进行集成和验证。

5.2进行系统级仿真:对整个芯片系统进行仿真验证,包括功能验证、性能验证、稳定性验证等。

数字后端流程(初学必看)

数字后端流程(初学必看)

基本后端流程(漂流&雪拧)----- 2010/7/3---2010/7/8本教程将通过一个8*8的乘法器来进行一个从verilog代码到版图的整个流程(当然只是基本流程,因为真正一个大型的设计不是那么简单就完成的),此教程的目的就是为了让大家尽快了解数字IC设计的大概流程,为以后学习建立一个基础。

此教程只是本人探索实验的结果,并不代表内容都是正确的,只是为了说明大概的流程,里面一定还有很多未完善并且有错误的地方,我在今后的学习当中会对其逐一完善和修正。

此后端流程大致包括一下内容:1.逻辑综合(逻辑综合是干吗的就不用解释了把?)2.设计的形式验证(工具formality)形式验证就是功能验证,主要验证流程中的各个阶段的代码功能是否一致,包括综合前RTL 代码和综合后网表的验证,因为如今IC设计的规模越来越大,如果对门级网表进行动态仿真的话,会花费较长的时间(规模大的话甚至要数星期),这对于一个对时间要求严格(设计周期短)的asic设计来说是不可容忍的,而形式验证只用几小时即可完成一个大型的验证。

另外,因为版图后做了时钟树综合,时钟树的插入意味着进入布图工具的原来的网表已经被修改了,所以有必要验证与原来的网表是逻辑等价的。

3.静态时序分析(STA),某种程度上来说,STA是ASIC设计中最重要的步骤,使用primetime对整个设计布图前的静态时序分析,没有时序违规,则进入下一步,否则重新进行综合。

(PR后也需作signoff的时序分析)4.使用cadence公司的SOCencounter对综合后的网表进行自动布局布线(APR)5.自动布局以后得到具体的延时信息(sdf文件,由寄生RC和互联RC所组成)反标注到网表,再做静态时序分析,与综合类似,静态时序分析是一个迭代的过程,它与芯片布局布线的联系非常紧密,这个操作通常是需要执行许多次才能满足时序需求,如果没违规,则进入下一步。

6.APR后的门级功能仿真(如果需要)7.进行DRC和LVS,如果通过,则进入下一步。

IC设计的前端和后端(转)

IC设计的前端和后端(转)

IC设计的前端和后端(转)问题:我是刚刚接触这⽅⾯不久,所以迫切想了解⼀下: 1.什么是⼤家常说的IC前端设计和后端设计?他们之间的区别是什么? 2.做前端设计和后端设计需要掌握哪些最基本的⼯具和知识呢?⽐如多⼿机或者其他娱乐型电⼦产品上的IC设计. 3.对于不太精通编程,但对数字和模拟电路有⼀定基础的⼈是适合做前端,还是后端呢?整理的回帖如下:⾸先,我不算是⾼⼈,不过前,后端都有接触,我就⼤概回答⼀下吧,有说的不对的地⽅,请⾼⼈指正。

1,前端主要负责逻辑实现,通常是使⽤verilog/VHDL之类语⾔,进⾏⾏为级的描述。

⽽后端,主要负责将前端的设计变成真正的schematic&layout,流⽚,量产。

打个⽐喻来说,前端就像是做蓝图的,可以功能性,结构性的东西。

⽽后端则是将蓝图变成真正的⾼楼。

2,前端设计主要是进⾏功能设计,代码的编写,要会使⽤硬件描述语⾔,也就是上⾯有提到的verilog/VHDL等,当然,也会要使⽤⼀些仿真软件。

后端设计需要的则会更加多⼀些了,包括综合,到P&R,以及最后的STA,这些⼯具⾥candence和synopsys都有⼀整套系统的。

有关⼼的可以去他们的⽹站看看。

3,其实前端和后端对于编程没有特别的要求。

前端的设计会需要使⽤硬件描述语⾔来写代码,但是,需要注意的是,这⾥指的是"描述",⽽不像是C或者java之类的强调编程技巧啊什么的。

所以,这个选择就看你⾃⼰了,⽽与编程没有什么特别的关系了。

glclub 后端設計主要要求哪些技能呢?譬如在ic layout過程中要求那些軟件呢?:包括综合,到P&R,以及最后的STA ,这些是我上⾯的提到的,各个公司根据需要,还会有不同的其它的要求。

另外,我不是特别清楚你指的"ic layout"是什么概念,P&R的话有candence soc-encounter /synopsys Astro,⼿⼯的话,有candence virtuoso。

IC设计后端流程

IC设计后端流程

IC设计后端流程1. 物理设计(Physical Design):物理设计是将逻辑实现转化为布局和电路图的过程。

这个过程包括几个重要的步骤:-针对不同目标和约束进行电气特性分析和规划。

-进行物理分区和布局设计,在芯片上规划各个模块的位置和大小,并控制电路的连线密度和线长。

-进行电源网络设计,确保芯片内部各个模块的电源供应稳定。

-进行时序和容忍度等电性约束的分析和完成。

- 进行时序收敛(Timing Closure),优化电路以达到时序要求。

-进行时钟树设计和布线,确保时钟信号的传输稳定性和可靠性。

-进行信号连线布线,满足电性约束并最小化线长,以减小功耗、提高性能和降低突发噪声。

- 进行DRC(Design Rule Check)和LVS(Layout vs Schematic)等验证。

2. 标准细胞库设计(Standard Cell Library Design):标准细胞库是一组预先设计好的、可重复使用的、具有标准接口的逻辑门和存储器单元的集合。

在这个过程中,需要:-设计标准细胞的逻辑和物理结构,以及相应的特性和工艺库。

-进行标准细胞的电源和地设计,以提供正确的电源和地连接接口。

-进行标准细胞的物理特性模拟和验证,以确保其满足设计要求。

3. 物理验证(Physical Verification):物理验证是对物理设计结果进行各种检查的过程,以确保设计的正确性、规范性和可制造性。

主要包括以下环节:-设计规则检查(DRC):检查设计是否符合制造厂商的设计规则,包括线宽、线距、开孔等。

-电路规则检查(ERC):检查设计是否符合电路连接和功能规则,包括电压等级、电压偏置等。

-布局与原理图一致性检查(LVS):检查布局和电路图是否一致。

-容忍度分析和优化:分析设计中的容忍度并进行优化,以提高电路的可靠性和稳定性。

-功耗分析和优化:分析设计中的功耗并进行优化,以减小芯片的功耗。

-可制造性分析:分析设计是否可制造,并针对可制造性问题进行修复。

数字IC后端流程

数字IC后端流程

2020/10/16
7
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
逻辑单元库:一个完整的单元库由不同的功能电路所组 成,种类和数量很多,根据其应用可分为三类:
标准单元(standard cells)
组合逻辑
时序逻辑
模块宏单元(macro block)
ROM
RAM
专用模块(如ASSP、DSP等)
Black box商业IP(如ARM、标准单元等)
模拟模块(如PLL、振荡器等)
输入输出单元(I/O pad cell)
输入
输出
三态
考虑ESD
双向
2020/10/16
8
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
Physical Reference Libraries
2020/10/16
2020/10/16
5
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
后端设计数据准备
设计网表
gate-level netlist
设计约束文件 SDC file
物理库文件 sc.lef/io.lef/macro.lef
时序库文件 sc.lib/io.lib/macrand name designations for each layer/via Physical and electrical characteristics of each layer/via Design rules for each layer/Via (Minimum wire widths and wire-to-wire spacing, etc.) Units and precision for electrical units Colors and patterns of layers for display …

IC后端流程

IC后端流程

IC后端流程物理设计是指将逻辑设计的电路转化为实际的二维或三维布局,并进行时序分析和电源规划等工作。

物理设计流程主要包括:1. 高层综合(High-Level Synthesis):将逻辑设计中的高级语言描述(比如Verilog或VHDL)转化为RTL级(Register Transfer Level)的电路描述。

2. 逻辑综合(Logic Synthesis):将RTL级电路描述转换为门级(Gate-Level)的逻辑网表,实现逻辑优化以精简电路规模和提高性能。

3.时序约束:在逻辑综合的基础上,制定时序约束,包括时钟频率、输入输出时序、时钟分频等,以保证电路的正确功能和时序性能。

4. 布局设计(Layout Design):将门级逻辑网表进行物理布局,确定电路中各个元件(比如门、寄存器)的相对位置和连线的走向,以满足电路的性能、功耗和几何约束。

5. 连线设计(Routing Design):根据布局设计结果,进行连线布线,包括选择连线层次、路由器设置、连线规则等,以确保电路的连接和稳定性。

6. 特殊器件布局(Placement of Special Devices):针对一些特殊性能要求的电路元件,进行专门的布局设计和优化,以实现电路性能的最佳化。

验证是指对设计的逻辑正确性、时序性能和功能进行验证和检查。

验证流程主要包括:1. 仿真测试(Simulation Testing):通过对设计的逻辑电路进行仿真验证,对设计进行功能和性能的测试,以保证电路的正确性和稳定性。

2. 时序分析和优化(Timing Analysis and Optimization):对电路设计进行时序分析,确定时钟频率、数据传输速率、时钟延迟等,以优化电路的时序性能。

3. 功耗分析和优化(Power Analysis and Optimization):对电路设计进行功耗分析,确定功耗峰值、功耗分布、功耗控制等,以优化电路的功耗性能。

芯片后端开发基础知识

芯片后端开发基础知识

芯片后端开发基础知识
芯片后端开发基础知识包括以下内容:
1.芯片设计流程:芯片后端开发是芯片设计流程中的最后一步,主要包括物理设计、逻辑合成、时序收敛和功耗优化四个阶段。

2.物理设计:物理设计是指根据芯片的逻辑设计,将电路图形
状信息转换为与制造工艺相适应的具体布局和元件尺寸。

物理设计包括芯片的布局与布线、时钟树设计、功耗分析等。

3.逻辑合成:逻辑合成是将芯片的高层抽象电路设计转换为门
级电路网表的过程。

通过逻辑合成,可以将设计语言描述的电路逻辑转换成标准的门级电路网表,为后续物理设计提供输入。

4.时序收敛:时序收敛是指保证芯片内各个时序约束得以满足
的过程。

通过时序收敛,可以保证芯片在各种工作条件下均能正常工作。

5.功耗优化:芯片功耗优化是指通过各种手段降低芯片的功耗,包括电源管理、电路设计、时钟树设计等。

功耗优化旨在提高芯片的功耗效率和续航时间。

6.物理验证:物理验证是对芯片物理设计的可靠性和正确性进
行验证的过程。

物理验证主要包括电路规则检查、布局vs原
理图符合性检查、电气规则检查等。

7.设计规则:芯片后端开发涉及到各种设计规则,包括电路规
则、布局规则、布线规则、时序约束等。

设计规则旨在保证芯片的可靠性和一致性。

8.EDA工具:芯片后端开发通常使用多种EDA(Electronic Design Automation)工具,包括逻辑合成工具、物理设计工具、时序分析工具、布局工具等。

这些工具可以实现芯片后端开发的各个环节。

以上是芯片后端开发的基础知识,对于从事芯片设计和开发的人员来说,掌握这些知识是非常重要的。

数字IC前端后端流程及工具

数字IC前端后端流程及工具

数字后端设计流程-8 布线
Layer Layer Layer Layer Layer Layer Layer Layer
"METAL1" "METAL2" "METAL3" "METAL4" "METAL5" "METAL5" "METAL7" "METAL8"
pitch pitch pitch pitch pitch pitch pitch pitch
TAPE-OUT
布局布线工具根据基本单元库的时序-几何模型, 将电路单元布局布线成为实际电路版图
Contents
1 2 3 基于标准单元的ASIC设计流程
数字前端设计(front-end)
数字后端设计(back-end)
4
3
教研室ASIC后端文件归档
Q&A
数字前端设计流程-1
RTL file
综合
什么时候需要做形式验证? Verify RTL designs vs. RTL designs
-- the rtl revision is made frequently
Verify RTL designs vs. Gate level netlists -- verify synthesis results -- verify manually coded netlists,such as Design Ware
数字前端设计流程-13 形式验证
静态时序分析检查了电路时序是否满足要求,而 形式验证检查了电路功能的正确性。
形式验证工具本质是一个比较器!其功能就是比 较两电路功能是否完全一致。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

校外IC后端实践报告本教程通过对synopsys公司给lab进行培训,从verilog代码到版图整个流程(固然只是基本流程,由于真正一种大型设计不是那么简朴就完毕),此教程目就是为了让人们尽快理解数字IC设计大概流程,为后来学习建立一种基本。

此教程只是本人摸索实验成果,并不代表内容都是对的,只是为了阐明大概流程,里面一定尚有诸多未完善并且有错误地方,我在此后学习当中会对其逐个完善和修正。

此后端流程大体涉及一下内容:1.逻辑综合(工具DC 逻辑综合是干吗就不用解释了把?)2.设计形式验证(工具formality)形式验证就是功能验证,重要验证流程中各个阶段代码功能与否一致,涉及综合前RTL代码和综合后网表验证,由于如今IC设计规模越来越大,如果对门级网表进行动态仿真话,会耗费较长时间(规模大话甚至要数星期),这对于一种对时间规定严格(设计周期短)asic 设计来说是不可容忍,而形式验证只用几小时即可完毕一种大型验证。

此外,由于版图后做了时钟树综合,时钟树插入意味着进入布图工具本来网表已经被修改了,因此有必要验证与本来网表是逻辑等价。

3.静态时序分析(STA),某种限度上来说,STA是ASIC设计中最重要环节,使用primetime对整个设计布图前静态时序分析,没有时序违规,则进入下一步,否则重新进行综合。

(PR后也需作signoff时序分析)4.使用cadence公司SOCencounter对综合后网表进行自动布局布线(APR)5.自动布局后来得到详细延时信息(sdf文献,由寄生RC和互联RC所构成)反标注到网表,再做静态时序分析,与综合类似,静态时序分析是一种迭代过程,它与芯片布局布线联系非常紧密,这个操作普通是需要执行许多次才干满足时序需求,如果没违规,则进入下一步。

6.APR后门级功能仿真(如果需要)7.进行DRC和LVS,如果通过,则进入下一步。

8.用abstract对此lab实验进行抽取,产生一种lef文献,相称于一种hard macro。

9.将此macro作为一种模块在此外一种top设计中进行调用。

10.设计一种新ASIC,第二次设计,咱们需要添加PAD,由于没有PAD,就不是一种完整芯片,详细操作下面会说。

11.重复第4到7步1.逻辑综合1)设计verilog代码2)综合之前,咱们要选用库,写好约束条件,修改dc启动文献synopsys_dc.setup,目的库选取TSMC(此设计都是用TSMC18库)typical.db。

(选取max库会比较好)Dc命令众多,但是最基本命令差不多,此设计约束文献命令如下:create_clock -period 10 [get_ports clk] //用于时钟创立set_clock_latency -source -max 0.2 [get_ports clk] //外部时钟到coreclk连线延时set_clock_latency -max 0.1 [get_ports clk] //coreclk到寄存器clk端net连线延时set_clock_uncertainty -setup 2 [get_ports clk] //时钟延时不拟定性,求setup违规时会被计算进去set_clock_uncertainty –hold 1 【all_clocks】set_input_delay -max 0.5 -clock clk [get_ports [list [remove_from_coll [all_inputs] clk] ] //输入延时,外部信号到input端连线延时set_output_delay -max 0.5 -clock clk [all_outputs] //输出延时set_driving_cell -lib_cell INVX4 [all_inputs] //输入端驱动强度set_load -pin_load 0.0659726 [all_outputs] //输出端驱动力set_wire_load_model -name tsmc18_wl10 -library typical //内部net连线模型set_wire_load_mode enclosed //定义建模连线负载有关模式set_max_area 0compilereport_timingreport_constraintchange_names -rule verilog –hierset_fix_multiple_ports_net –allwrite -format verilog -hier -output mux.sv //输出网表,自动布局布线需要write -format ddc -hier -output mux.ddc //输出ddcwrite_sdf mux.sdf //输出延时文献,静态时序分析时需要write_sdc mux.sdc //输出约束信息,自动布局布线需要3)逻辑综合启动design_vision。

Read->mux.v输入约束文献。

File->excute script->verti.con之后会产生mux.sv,mux.sdc,mux.sdf,mux.ddc等文献4)时序分析综合后来咱们需要分析一下时序,看时序与否符合咱们规定,综合事实上是一种setup时间满足过程,但是咱们综合时候,连线负载只是库提供(即上面wire_load),并不是实际延时,因此普通做完综合后来,时间余量(slack)应当为时钟30%(经验值),以便为背面实际布局布线留下充分延时空间。

由于如果slack太小,甚至接近于0,虽然咱们看起来是没有时序违规,但是实际布局后来,时序必定无法满足。

使用report_timing命令,可以查看时序分析报告:****************************************Report :timing-path full-delay max-max_paths 1-sort_by groupDesign :muxVersion:D-.03-SP1Date :Fri Jul 2 12:29:44****************************************Operating Conditions:typical Library:typical(模型库)Wire Load Model Mode:enclosedStartpoint:data2[4] (input port clocked by clk)Endpoint:dataout_reg_15_(rising edge-triggered flip-flop clocked by clk)Path Group:clkPath Type:maxDes/Clust/Port Wire Load Model Library------------------------------------------------mux tsmc18_wl10 typical (线载模型及库)Point Incr Path-------------------------------------------------------------------------- clock clk (rise edge) 0.00 0.00 clock network delay (ideal) 0.00 0.00 input external delay 0.50 0.50 f data2[4] (in) 0.01 0.51 f mult_14/b[4] (mux_DW_mult_uns_0) 0.00 0.51 f mult_14/U131/Y (INVX1) 0.54 1.05 r mult_14/U161/Y (NOR2X1) 0.14 1.18 f mult_14/U39/S (CMPR42X1) 0.68 1.87 f mult_14/U12/CO (ADDFX2) 0.32 2.19 f mult_14/U11/CO (ADDFX2) 0.23 2.42 f mult_14/U10/CO (ADDFX2) 0.23 2.65 f mult_14/U9/CO (ADDFX2) 0.23 2.88 f mult_14/U8/CO (ADDFX2) 0.23 3.10 f mult_14/U7/CO (ADDFX2) 0.23 3.33 f mult_14/U6/CO (ADDFX2) 0.23 3.56 f mult_14/U5/CO (ADDFX2) 0.23 3.79 f mult_14/U4/CO (ADDFX2) 0.23 4.02 f mult_14/U3/CO (ADDFX2) 0.23 4.25 f mult_14/U2/CO (ADDFX2) 0.22 4.47 f mult_14/product[15] (mux_DW_mult_uns_0) 0.00 4.47 f dataout_reg_15_/RN (DFFTRXL) 0.00 4.47 fdata arrival time 4.47clock clk (rise edge) 10.00 10.00clock network delay (ideal) 0.30 10.30clock uncertainty -0.10 10.20dataout_reg_15_/CK (DFFTRXL) 0.00 10.20 r library setup time -0.19 10.01 data required time 10.01-------------------------------------------------------------------------- data required time 10.01data arrival time -4.47-------------------------------------------------------------------------- slack (MET) 5.55 咱们来看以上报告,dc报告时候会显示出核心途径,即延时最大途径,时序分析涉及两段,前面一段是信号延迟时间,即data arrival time 为4.47,下面是计算规定期间,也即相对于时钟,设计所能忍受最大延时,由于到达寄存器clk端延时,即clock network delay,因此设计增长了0.30余量,同样由于时钟不拟定度(也许提前也也许延后0.1),咱们取最坏状况,就是时钟超前0.1,则时间余量减去0.1,最后一种是门建立时间规定,是0.19,最后得到数据规定期间。

相关文档
最新文档