当前位置:文档之家› IC后端流程初学必看样本

IC后端流程初学必看样本

校外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,最后得到数据规定期间。

相关主题