文档详情

后端流程(初学必看)

n****
实名认证
店铺
DOC
1.82MB
约36页
文档ID:37435624
后端流程(初学必看)_第1页
1/36

基本后端流程(漂流基本后端流程(漂流 input clk,clr; input [7:0] data1,data2; output reg [15:0] dataout;always @(posedge clk) beginif(!clr)begindataoutmux.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-2010.03-SP1 Date : Fri Jul 2 12:29:44 2010 ****************************************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: clkPath Type: maxDes/Clust/Port Wire Load Model Library------------------------------------------------mux tsmc18_wl10 typical (线载模型及库)Point Incr Path--------------------------------------------------------------------------clock clk (rise edge) 0.00 0.00clock network delay (ideal) 0.00 0.00input external delay 0.50 0.50 fdata2[4] (in) 0.01 0.51 fmult_14/b[4] (mux_DW_mult_uns_0) 0.00 0.51 fmult_14/U131/Y (INVX1) 0.54 1.05 rmult_14/U161/Y (NOR2X1) 0.14 1.18 fmult_14/U39/S (CMPR42X1) 0.68 1.87 fmult_14/U12/CO (ADDFX2) 0.32 2.19 fmult_14/U11/CO (ADDFX2) 0.23 2.42 fmult_14/U10/CO (ADDFX2) 0.23 2.65 fmult_14/U9/CO (ADDFX2) 0.23 2.88 fmult_14/U8/CO (ADDFX2) 0.23 3.10 fmult_14/U7/CO (ADDFX2) 0.23 3.33 fmult_14/U6/CO (ADDFX2) 0.23 3.56 fmult_14/U5/CO (ADDFX2) 0.23 3.79 fmult_14/U4/CO (ADDFX2) 0.23 4.02 fmult_14/U3/CO (ADDFX2) 0.23 4.25 fmult_14/U2/CO (ADDFX2) 0.22 4.47 fmult_14/product[15] (mux_DW_mult_uns_0) 0.00 4.47 fdataout_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 rlibrary setup time -0.19 10.01data 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,最后得到数据的要求时间。

Slack 是要求时间减去到达时间的差值,slack 越大越好越大说明留给布局布线的时序越宽松 从报告中我们看出,时序余量为 5.55,说明时序达到了要求,足够满足我们以后布局布线的时序要 求 当然,我们有专门的时序分析工具,primetime,下面会稍微介绍2. 形式验证形式验证1) 怎么保证综合前和综合后的网表逻辑功能是一致的呢,对门级网表进行动态仿真,又太浪费时间,于 是,一款强大的验证工具 formality,给了我们很好的帮助 2) 形式验证数据准备:综合前 RTL 代码,综合后的网表,综合所用到的库 3) 验证过程如下: 1.首先我们打开 formality,命令为 fm_shell(命令行界面) ,formality(图形界面) 初学者一般使用图 形界面,使用图形界面的时候,工具会自动产生一个 log 文件,记录命令,我们可以将这个文件内容 做一个 fms 格式,这样在下次验证的时候可以使用命令界面 2.打开 formality 如下 第一步:首先我们加入原 RTL 代码,reference->read_design file->verilog->mux.v,选择好以后 load file第二步:然后选择库,没加库之前,FM 会自动加载与工艺无关的库,所以我们要自己把自己的目标库加 上去,reference->read DB libarary->DB,选择 typical.db 第三步:设置 top 名 reference->set top design 我们选择 mux 为 top 名 同样的方法对网表进行设置(第二个菜单栏 implementation)然后转到第四栏,点击 run matching最后转到第五栏,verify,如果网表无错,会显示验证通过。

3 静态时序分析静态时序分析静态时序分析主要针对大型 ASIC 设计,4 自动布局布线自动布局布线1)数据准备)数据准备 第一:第一:需要综合后的网表以及时序约束文件 mux.sv,mux.sdc 第二:第二:需要自动布局布线的物理库(lef 文件,这里用到 tsmc18_6lm_cic.lef, tsmc18_6lm_antenna_cic.lef) 为了能够了解 lef 文档的作用,这里对 lef 做简单的介绍,lef 一般分为两种: 一种是技术物理库,主要包含工艺信息,设计规则信息,金属通孔信息等下例是对金属一层的定义, TYPE 指明 METAL1 是可布线层,WIDTH 定义的是 METAL1 的默认布线宽度,SPACING 用于设定 METAL1 布线间距DIRECTION HORIZONTAL 指明 METAL1。

下载提示
相似文档
正为您匹配相似的精品文档