IC后端流程初学必看样本

相关主题
  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 0

compile

report_timing

report_constraint

change_names -rule verilog –hier

set_fix_multiple_ports_net –all

write -format verilog -hier -output mux.sv //输出网表,自动布局布线需要write -format ddc -hier -output mux.ddc //输出ddc

write_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 group

Design :mux

Version:D-.03-SP1

Date :Fri Jul 2 12:29:44

****************************************

Operating Conditions:typical Library:typical(模型库)

Wire Load Model Mode:enclosed

Startpoint:data2[4] (input port clocked by clk)

Endpoint:dataout_reg_15_

(rising edge-triggered flip-flop clocked by clk)

Path Group:clk

Path Type:max

Des/Clust/Port Wire Load Model Library

------------------------------------------------

相关文档
最新文档