逻辑综合及可测性设计

Download Report

Transcript 逻辑综合及可测性设计

逻辑综合及可测性设计
2014年12月23日
主要内容

逻辑综合基本概念
逻辑综合工具--Design Compiler
可测性基础

可测性设计工具--DFT Compiler


2015/4/10
共95页
2
IC典型流程
数字VLSI 流程
模拟IC 流程
功能要求
功能要求
Matlab
Modelsim
Questasim
Maxplus II
Design Compiler
Astro
(IC Compiler)
系统建模
半定制?全定制
行为设计
Verilog
/VHDL)
(
不满足
行为仿真
不满足
电路仿真
Spectre
满足
满足
综合、优化
网表
手工设计
版图
不满足
时序仿真
满足
Virtuoso,
不满足
Laker
后仿真
版图自动
布局、布线
满足
不满足
Encounter
Matlab
系统建模
后仿真
满足
Calibre
流片、封装、测试
参数提取
流片、封装、测试
2015/4/10
共95页
3
主要内容

逻辑综合基本概念
逻辑综合工具--Design Compiler
可测性设计基础

可测性设计工具


2015/4/10
共95页
4
逻辑综合基本概念

什么是逻辑综合?

时间路径

时序

常见术语
2015/4/10
共95页
5
什么是逻辑综合?

综合就是把HDL 代码转换为门级电路的过程,
用公式表示:
综合= 翻译 + 优化 + 映射(见下页图)
(Synthesis=Translation + Optimization + Mapping)
2015/4/10
共95页
6
assign mux_out=!mux_control&mux_in1
|mux_control&mux_in2|mux_in1&mux_in2;
RTL源代码
翻译
通用布尔门
(GTECH)
优化+映射
目标工艺库中的门
assign mux_out=mux_control ?mux_in1:mux_in2;
2015/4/10
共95页
7
时间路径

时间路径:信号传播经过的逻辑通道,简称路径。

起点一般为:基本输入端口或寄存器的时钟CK端
口;
终点一般为:基本输出端口或寄存器的数据D端
口。
时间路径通常分为4种:






2015/4/10
基本输入到基本输出:
基本输入到寄存器:
寄存器到基本输出:
寄存器到寄存器:
共95页
8
时间路径
基本输入到基本输出
基本输入到寄存器
2015/4/10
寄存器到寄存器
共95页
寄存器到基本输出
9
时序:clock
2015/4/10
共95页
10
时序:setup/hold



建立(setup)时间是指触发器的时钟信号上
升沿到来以前,数据稳定不变的时间。
保持(hold)时间是指触发器的时钟信号上升
沿到来以后,数据稳定不变的时间。
裕度(slack):是时序要求与实际时序之间
的差值,反映了时序是否满足要求。裕度为正,
满足要求;反之不满足。
裕度=要求的时间-实际的时间
2015/4/10
共95页
11
逻辑综合工具介绍


Design Compiler, Synplify, ISE– XST,
Precision. RTL
Design Compiler( DC)中包含了多种工具,如
DFT Compiler,Power Compiler,HDL
Compiler,Library Compiler等,使得DC具有
强大的功能,成为业界最流行的综合工具。用户
只需输入满足要求的HDL描述和设计约束,就可
能得到较为优化的门级综合网表。
2015/4/10
共95页
12
DC常见术语








库(Library)
设计(Design)
单元(Cell or Instance)
参考(Reference)
端口(Port)
管脚(Pin)
线网(Net)
时钟(Clock)
2015/4/10
共95页
13
DC常见术语—库



库:一组逻辑单元的集合。
库包括库申明、库属性、库应用环境和每个单
存放路径
元的功能描述、时间延时、面积、功耗等。
逻辑综合库包含两种格式:
Astro布局布线库
LVS文件
1.自由文件格式 .lib(任何文本编辑器都可以打开)
文本文件,datasheet, handbook
可测性矢量压缩文件
2. synopsys应用程序可使用的格式.db(不可查看)
标准单元版图
Cadence布局布线库
物理参数库
符号库
逻辑综合库
标准单元verilog模型
标准单元清单
库说明
文件
2015/4/10
共95页
14
DC常见术语
design







module top(A,B,C,D,CLK,OUT1);
clock
input A,B,C,D,CLK;
port
output OUT1;
net
reference
….
INV U2(.A(BUS0),.Z(INV0));
cell
pin
….
endmodule
2015/4/10
共95页
15
主要内容

逻辑综合基本概念
逻辑综合工具--Design Compiler
可测性设计基础

可测性设计工--DFT Compiler


2015/4/10
共95页
16
Design Compiler介绍

Design Compiler有两种界面供用户使用,一种
是命令界面,一种是图形界面。在LINUX命令行
下分别执行以下命令可以分别进入上述两种界面:
dc_shell-t
design_vision


(命令界面)
(图形界面)
Design Compiler支持TCL(Tool Command
Language)语言,它是公开的业界标准界面语
言。DC-TCL在TCL的基础上扩展丰富了TCL,
使用户可以更加灵活方便地运用TCL命令来对电
路进行分析和优化。
初学者通过图形界面,然后熟悉DC的综合命令,
采用批处理的方式提高综合的工作效率。
2015/4/10
共95页
17
DC启动
工作站启动方法:
创建启动软件目录 mkdir syn
进入到启动软件目录 cd syn
source /opt/demo/synopsys.env
design_vision &
2015/4/10
共95页
18
DC图形界面
命令窗口
2015/4/10
共95页
19
逻辑综合流程







2015/4/10
1.HDL准备
2.准备工艺库
3.读入HDL代码
4.添加约束
5.编译
6.查看报告
7.文件导出
共95页
20
1.HDL准备


设计文件
待综合的HDL代码
带IO的顶层文件
2015/4/10
共95页
21
带IO的顶层文件













module top_pad (clk_pad, en_pad, data_in_pad, fsk_out_pad );
input clk_pad,en_pad,data_in_pad;
output fsk_out_pad;
fsk_modulator fsk_modulator(clk_wire,en_wire,data_in_wire,fsk_out_wire);
PULLHS1 pull_high (.Z(high_wire));
查看库的handbook
PULLHS0 pull_low (.Z(low_wire));
//input
PBCD2RN data_in_block
(.PAD(data_in_pad),.IE(high_wire), .OEN(high_wire), .REN(high_wire), .C(data_
in_wire));
PBCD2RN clk_block
(.PAD(clk_pad),.IE(high_wire), .OEN(high_wire), .REN(high_wire), .C(clk_wire));
PBCD2RN en_block
(.PAD(en_pad),.IE(high_wire), .OEN(high_wire), .REN(high_wire), .C(en_wire));
//output
PBCD2RN fsk_out_block
(.PAD(fsk_out_pad),.IE(low_wire), .OEN(low_wire), .REN(high_wire), .I(fsk_out_
wire));
endmodule
2015/4/10
共95页
22
2.准备工艺库1/4


工艺库要到相关Foundry代工厂网站下载,上传至服
务器。
准备软件启动文件.synopsys_dc.setup
.synopsys_dc.setup 定义工艺库的路径和其他用于逻辑综
合的参数。
在启动软件的时候,DC按下列顺序读入启动文件的。
 1) Synopsys安装目录下的启动文件:
$synopsys/admin/setup
 2) 用户根目录下的启动文件;
 3) 软件启动的目录下的启动文件;
2015/4/10
共95页
23
2.准备工艺库2/4--启动文件.synopsys_dc.setup
















set lib_path /home/smic/smic_40/SCC40NLL_HS_RVT_V0p1a
set smic_stdlib_path ${lib_path}/synopsys/1.1v/
set smic_iolib_path
/home/smic/smic_40/SP40NLLD2RN_3P3V_V0p2/syn/3p3v/
set smic_stdsymlib_path ${lib_path}/Symbol/
set search_path "$search_path $smic_stdlib_path $smic_iolib_path \
$smic_stdsymlib_path "
set target_library [list scc40nll_hs_rvt_ff_v1p21_-40c_basic.db \
scc40nll_hs_rvt_ss_v0p99_125c_basic.db \
scc40nll_hs_rvt_tt_v1p1_25c_basic.db]
set link_library [list "*" SP40NLLD2RN_3P3V_V0p1_ff_V1p21_-40C.db \
SP40NLLD2RN_3P3V_V0p1_ss_V0p99_125C.db \
SP40NLLD2RN_3P3V_V0p1_tt_V1p10_25C.db \
scc40nll_hs_rvt_ff_v1p21_-40c_basic.db \
scc40nll_hs_rvt_ss_v0p99_125c_basic.db \
scc40nll_hs_rvt_tt_v1p1_25c_basic.db]
set symbol_library [list SCC40NLL_HS_RVT_V0p1.sdb]
注意:1.\前有空格,\后没有空格
2.该文件放在DC启动目录下
2015/4/10
共95页
24
2.准备工艺库3/4




search_path定义库文件所在的搜索路径
目标库(target_library):是DC在mapping时
将设计映射到特定工艺所使用的库,就是使用目
标库中的元件综合成设计的门级网表
连接库(link_library):是提供门级网表实例化
的基本单元,也就是门级网表实例化的元件或单
元都来自该库。连接库定义为标准单元的db格式
的库文件加上IO pad db格式的库文件,加上
ROM,RAM等宏单元库文件
符号库(symbol_library):是工艺库元件的图形
符号表示,用来图形化显示生成的门级网表。
2015/4/10
共95页
25
2.准备工艺库4/4

软件启动后 要先查看库添加成功与否
2015/4/10
共95页
26
3.读入设计文件1/3

DC提供了下面两种方式读入设计:
1.read命令
2.analyze&elaborate命令(先分析语法等,
再构成具体逻辑)
2015/4/10
共95页
27
3.读入设计文件2/3
read
方式下
如果一
次只读
入一个
文件,
要采取
自下而
上的方
式。
2015/4/10
共95页
28
3.读入设计文件3/3


read -format verilog [list \
/home/qianyj/class/rtl/fsk_modulator.v]
read -format verilog [list \
/home/qianyj/class/rtl/top_pad.v]
2015/4/10
共95页
29
4.添加约束
工作温度条件
2015/4/10
共95页
30
4.添加约束

set_operating_conditions -min_library
scc40nll_hs_rvt_ff_v1p21_-40c_basic -min
ff_v1p21_-40c -max_library
scc40nll_hs_rvt_ss_v0p99_125c_basic max ss_v0p99_125c -analysis_type
bc_wc
2015/4/10
共95页
31
4.设置负载


打开电路图,选中要设置负载的输出管脚。
set_load 5 [all_outputs]
2015/4/10
共95页
32
4.创建时钟
2015/4/10
共95页
33
4.创建时钟






create_clock -name clk -period 15 waveform [list 0 7.5] clk_pad
set_clock_latency 1.0 [all_clocks]
set_clock_uncertainty -setup 1.0 clk
set_clock_uncertainty -hold 0.5 clk
set_clock_transition 1 [get_clocks clk]
set_dont_touch_network [list clk_pad]
2015/4/10
共95页
34
5.编译

compile
2015/4/10
共95页
35
编译前后电路结构比较
编译前
编译后
2015/4/10
共95页
36
6.查看报告



时序报告:
report_timing -delay max
report_timing -delay min
2015/4/10
共95页
37
6.查看报告


面积报告:report_area
功耗报告:report_power
2015/4/10
共95页
38
7.文件导出







top_pad.sv和top_pad.sdc提供给布局布线
工具去做后端。
在启动软件的目录里面创建netlist目录
mkdir netlist(在term里面输入)
write -format verilog -hierarchy output ./netlist/top_pad.sv(在软件的命令
栏输入)
在启动软件的目录里面创建sdc目录
mkdir sdc
write_sdc ./sdc/top_pad.sdc
2015/4/10
共95页
39
导出的网表文件--.sv



















module fsk_modulator ( clk, en, data_in, fsk_out );
input clk, en, data_in;
output fsk_out;
wire N17, N18, N19, n1, n2, n3, n4, n5, n6, n7;
wire [1:0] count;
DQHSV1 \count_reg[0] ( .D(N17), .CK(clk), .Q(count[0]) );
DQHSV1 \count_reg[1] ( .D(N18), .CK(clk), .Q(count[1]) );
DQHSV1 \count_reg[2] ( .D(N19), .CK(clk), .Q(fsk_out) );
XOR2HSV2 U4 ( .A1(n5), .A2(fsk_out), .Z(n4) );
CLKNAND2HSV2 U5 ( .A1(count[0]), .A2(count[1]), .ZN(n5) );
XNOR2HSV2 U7 ( .A1(count[0]), .A2(count[1]), .ZN(n6) );
AOI211HSV2 U8 ( .A1(n7), .A2(fsk_out), .B(n2), .C(count[0]), .ZN(N17) );
NOR2HSV3 U9 ( .A1(data_in), .A2(n1), .ZN(n7) );
CLKNHSV4 U11 ( .I(en), .ZN(n2) );
INOR3HSV1 U12 ( .A1(fsk_out), .B1(n1), .B2(data_in), .ZN(n3) );
NOR3HSV2 U3 ( .A1(n2), .A2(n3), .A3(n4), .ZN(N19) );
NOR3HSV2 U6 ( .A1(n2), .A2(n3), .A3(n6), .ZN(N18) );
INHSV2 U10 ( .I(count[1]), .ZN(n1) );
endmodule
2015/4/10
共95页
40
导出的约束文件--.sdc










set_operating_conditions -analysis_type bc_wc -max
ss_v0p99_125c -max_library \
scc40nll_hs_rvt_ss_v0p99_125c_basic\
-min ff_v1p21_-40c -min_library
scc40nll_hs_rvt_ff_v1p21_-40c_basic
create_clock [get_ports clk_pad] -name clk -period 15 waveform {0 7.5}
set_clock_latency 1 [get_clocks clk]
set_clock_uncertainty -setup 1 [get_clocks clk]
set_clock_uncertainty -hold 0.5 [get_clocks clk]
set_clock_transition -rise 1 [get_clocks clk]
set_clock_transition -fall 1 [get_clocks clk]
2015/4/10
共95页
\
41
主要内容

逻辑综合基本概念
逻辑综合工具--Design Compiler
可测性设计基础

可测性设计工具--DFT Compiler


2015/4/10
共95页
42
可测性基础







什么是可测性设计?
物理瑕疵及故障模型
单一故障模型:SAF Model
检测SAF的算法:D算法
可测性设计常用方法
测试矢量集
故障覆盖率
2015/4/10
共95页
43
什么是可测性设计?


可测性设计, Design For Test,即DFT 。
为了测试所设计的IC有没有被正确的制造出
来(测试半导体生产处理过程中的瑕疵,而不是
测试芯片设计的对错)。
DFT=增加芯片逻辑+生成测试矢量集(供测试
设备用)
2015/4/10
共95页
44
物理瑕疵和故障模型
1.开路和短路
2.金属线之间的电桥
3.漏源穿通
CMOS反相器
中的物理缺陷
2015/4/10
共95页
45
物理瑕疵和故障模型
物理故障
逻辑故障
封装引脚间的漏电或短路
芯片焊接点到管脚连线断裂
表面玷污、含湿气
金属层迁移、应力、脱皮
金属层开路、短路
…
…
2015/4/10
共95页
单一固定故障
延时故障
短路或者开路故障
…
…
46
单一固定故障:Stuck-At Fault
固定1故障:
U0的输入端A固定接在高
电平上,其值一直为“1”
固定0故障:
U1的输出端Y固定接在
低电平上,其值一直为“0”
2015/4/10
共95页
47
故障覆盖率
可以测试到的故障占总故障的比例。
如果电路的每个节点既可以控制(controllable),
又可观测(observable),那么电路的测试覆盖率就
高。
可控,可测
不可控点:冗余电路,门控时钟
2015/4/10
共95页
可控,不可测
48
目前产品测试方法
ATE: Automatic Test Equipment
2015/4/10
共95页
49
ATE
2015/4/10
共95页
50
D算法
D算法是20世纪60年代IBM提出测试SAF(stuck-at
fault model,简称SAF模型)的,D算法在没有故障和
有故障的电路之间产生了逻辑的差异(Discrepancy),
D为Discrepancy缩写,D算法即为差异算法。
 经典的D算法如下:
1、瞄准特定的SAF。
2、驱动故障节点为反向值。
3、把错误传送到输出端口。
4、记录测试向量,减掉已测试过的故障。
2015/4/10
共95页
51
D算法
第一步:是把某个节点作为测试目标,我们把U1的输出
端作为测试的目标,探测它有无SA0的故障。

2015/4/10
共95页
52
D算法

第二步:是通过驱动该节点为相反的值以激活(activate)
目标的故障。我们可以通过ATE在输入端口输入逻辑“0”,
如U1输出没有SA0的故障,其逻辑“1”;如U1输出有
SA0的故障,其逻辑为“0”。我们可以通过测试其逻辑值
来判断值该节点是否有SA0的故障。
2015/4/10
共95页
53
D算法

第三步:是把故障效应传送到输出端口,ATE可以在输出
端口观测到其逻辑值,有故障节点的逻辑值通过组合电路
后可能会反向,但是差异还保留着。
2015/4/10
共95页
54
D算法


第四步:记录向量。成功的测试向量被记录在内存里,已
测试的故障从目标故障的清单里减掉。
这个算法要重复多次,以测试设计中所有的故障。测试程
序包含一系列的测试向量,这些测试向量用来测出芯片中
所有可能的故障。测试程序可以用STIL(Standard Test
Interface Language标准测试接口语言)格式来描述。
2015/4/10
共95页
55
DFT常用方法

功能点测试(Ad Hoc)
需在每个测试点增加可控的输入和输出,I/O增加

扫描测试
结构化的DFT技术,全扫描和部分扫描

内建自测试(BIST)
消除了对ATE的存储能力和频率的限制,更具发
展潜力
2015/4/10
共95页
56
扫描测试
可测试的触发器有两种模式:
正常模式——在这种模式下,所设计芯片以设计的原来
功能工作;
测试模式——在这种模式下,所设计芯片进行生产测试。
进行测试时,触发器像移位寄存器一样被连接在一起,这
种结构称为扫描链。扫描链用来把测试向量串行地移入设
计中不那么容易有输入端口直接控制的部分。通过扫描链
也可以将设计中那些不容易有输出端口直接观测的部分串
行地移出到输出端口,从而判断设计中有无故障。
2015/4/10
共95页
57
扫描测试
D
Q
D
SI
0
D
Q
1
SE
CLK
CLK
CLK
与标准D触发器等
效的扫描触发器
标准D触发器
2015/4/10
共95页
58
扫描测试
使用扫描触发器,会增加设计的面积,增加了路径
的延迟,增大了触发器的输出负载和电路的功耗。
2015/4/10
SMIC0.18µm工艺库
AREA(µm2)
FFDQRHDLX
76.507
FFSDQRHDLX
89.813
增加百分比
17.39%
共95页
59
扫描链插入前后电路对比
I1
I2
F1
F2
Combination
Logic1
D Q
I3
CLK
F3
Combination
Logic2
D Q
R
D Q
O1
R
R
RST
O2
O3
PI1
PI2
F1
SI1
D Q
SE
CLK
F2
b
R
Q
a
F3
SI
Combination
Logic1
d
c
DI
SE
D Q
Q
Combination
Logic2
SO1
D Q
CP
R
R
RST
PO1
PO2
2015/4/10
共95页
60
测试矢量集(Test Pattern)
由一个或多个测试序列组成的测试矢量,测试矢量包含
输入激励和预期的输出响应,以测试一个目标的故障。
2015/4/10
共95页
61
测试矢量集

以二输入与非门为例,假设输
入为A,B,输出为Y,
Y=~(A•B);
A
0
0
1
1

B
0
1
0
1
Y
1
1
1
0
A/1
1
0
1
0
A/0
1
1
1
1
B/1
1
1
0
0
B/0
1
1
1
1
Y/0
0
0
0
0
Y/1
1
1
1
1
测试矢量为:00 1,01 1,10 1,11 0
输入激励 输出响应
2015/4/10
共95页
62
扫描测试流程
Executing a Single Pattern
B C D
A
E
Tester Cycles
Legend:
Five Phases
A . Scan-In
B . Parallel Measure
C . Parallel Capture
D . First Scan-Out
E . Scan-Out
2015/4/10
Parallel
Serial
One Cycle
共95页
63
扫描测试流程
1)扫描输入(Scan-In):此阶段测试数据串行移入扫描链。
2)并行测试(Parallel Measure):初始阶段通过原始输入端加入并行测
试数据,末段检测原始输出端的并行输出数据.过程中时钟信号保持无效。
3)并行取值(Parallel Capture):扫描寄存器捕获组合逻辑部分的输出
信号状态。测试时钟信号有效。
4)第一个扫描位输出(First Scan-Out):此阶段无时钟信号,测试机采
样扫描链输出值,检测第一位Scan-Out 数据。
5)扫描输出(Scan-Out):扫描寄存器捕获到的数据串行移出,测试机
在每一Cycle 检测扫描链输出值。
2015/4/10
共95页
64
扫描测试流程
实际的测试过程中,前一Pattern 的Scan-Out 阶段与后一
Pattern 的Scan-In 阶段是相互交叠的
(n-1)th
Pattern
nth
Pattern
Scan Shift
Tester Cycles
Scan In Pattern n and
Scan Out Pattern (n-1)
2015/4/10
共95页
65
可测性设计的意义

缩短产品进入市场的时间(Time-to-Market)
--ATPG(Automatic Test Pattern Generation)得以进行

降低测试成本
--降低了测试向量的数目

提高产品质量
--提高了故障覆盖率
2015/4/10
共95页
66
主要内容

逻辑综合基本概念
逻辑综合工具--Design Compiler
可测性设计基础

可测性设计工具--DFT Compiler


2015/4/10
共95页
67
DFT Compiler




Synopsys公司的集成于Design Compiler的
先进测试综合工具
独创的“一遍测试综合(one-pass scan
synthesis)”技术(逻辑综合与扫描综合整
合在一起一步完成)
功能强大的扫描式可测性设计分析、综合和验
证技术
支持RTL级、门级的扫描测试设计规则检查,
以及给予约束的扫描链插入和优化
2015/4/10
共95页
68
软件启动
source /opt/demo/synopsys.env
design_vision &
2015/4/10
共95页
69
设计流程
2015/4/10
共95页
70
1.Scan-Ready Synthesis
运行compile -scan命令之
前,也跟做逻辑综合时候一
样,需要定义时钟、设置工
作环境和时序约束等。
与运行compile命令之后的
结果唯一的不同是使用带扫
描端的D触发器代替了传统D
触发器。
design_vision> compile -scan
2015/4/10
共95页
71
2.Set ATE Configuration
2015/4/10
共95页
72
2.Set ATE Configuration



即测试时钟周期为100ns,输入端口的数据输入到达时间
为5ns,双向端口的数据输入到达时间为55ns,输出端口
的数据程序采样(strobe)时间为40ns。
测试时间参数的设置一般放在.synopsys_dc.setup文件
中,也可以包含在DC综合脚本文件里。
测试时钟定义了驱动所有扫描触发器的时钟,测试时钟一
般与电路的工作时钟不同,它是由ATE提供的,只在测试
时使用。DFTC进行设计时,假设ATE对芯片做测试的所
有时钟周期是相同的,等于test_default _period。
2015/4/10
共95页
73
3.Pre-Scan Check




执行create_test_protocol –infer_clock命令,生
成测试协议
执行dft_drc命令,检查设计中有无测试设计规则
的违规。
典型的设计综合规则有:
capacitance, transition, and fanout
典型的测试设计规则主要检查设计中是否有测试违规使得
1. 无法插入扫描链
2. 无法捕获数据
3. 测试覆盖率降低
2015/4/10
共95页
74
How to Fix DFT Violations

在DFTC中,有4种方法用来改正测试的DRC违规:
1.修改HDL代码,然后对设计用DFTC进行重新综合
2.使用AutoFix DFT来插入旁路逻辑或注入逻辑
3.使用ShadowLogic DFT来插入特别的测试点
4.使用create_net和其他命令来逻辑门级网表
2015/4/10
共95页
75
4.Scan Specification
在DFTC中,可以用set_scan_configuration命
令进行扫描路径的管理
set_scan_configuration -chain_count 1
set_scan_configuration -clock_mixing
mix_clocks

2015/4/10
共95页
76
4.Scan Specification
用set_dft_signal定义设计中的扫描链:
set_dft_signal -view spec -type ScanDataIn
-port SI1
set_dft_signal -view spec -type
ScanDataOut -port SO1
set_dft_signal -view spec -type
ScanEnable -port SE –active_state1
set_san_path -view spec C1 -scan_data_in
SI1 –scan_data_out SO1

2015/4/10
共95页
77
4.Scan Specification
在进行DFT设计时,需要一些端口作为专用的扫描输
入/输出端口,如扫描使能(scan enable),测试模
式(test mode)等。设计者可以在编写顶级RTL代
码时定义这些端口,其好处有:
1.避免在插入扫描链以后再编辑修改HDL的测试向量
(testbench)以匹配端口清单。
2. 为了减少端口的数目,可以将现有的功能端口和
扫描输入/输出等共用。确定专用的端口并且使用
set_dft_signal命令重复使用功能端口作为扫描输入/
输出端口。

2015/4/10
共95页
78
Custom Scan Path
2015/4/10
共95页
79
Adaptive Scan

随着IC设计进步到130nm以下工艺且设计规模越来越大,
DFT向量验证时间越来越长,所需ATE内存越来越高,因
而Synopsys公司的Adaptive Scan压缩即自适应扫描压
缩技术应运而生。
2015/4/10
共95页
80
Adaptive Scan
2015/4/10
共95页
81
Adaptive Scan

Adaptive Scan技术具有如下的优势和特点:
1.提供 10-50 倍测试时间和测试容积的缩减;
2.与传统扫描形式相比,具有同样高的测试覆盖率并且易
于使用;
3.对于设计的时序和物理设计的实现没有影响;
4.一遍式的测试压缩综合流程;
5.支持层次化的自适应扫描综合;
6.支持边界扫描综合,兼容于 1149.1 标准;
2015/4/10
共95页
82
Adaptive Scan

相较于传统的DFT流程,Adaptive Scan压缩设计流程可兼容于其
中,在构建扫描链配置之时,增加了以下几条命令:
1.set_dft_configuration –scan_compression enable 定义扫
描压缩使能;
2.set_scan_compression_configuration -minimum_compression
6 设置最小压缩比率;
3.set_dft_signal –view spec –type TestMode –port compress_mode
–active_state 1 增加压缩模式管脚。
2015/4/10
共95页
83
5.Scan Preview
执行preview_dft:
1.检查扫描路径的一致性
2.确定扫描链的数目
3.分派扫描单元和为扫描单元排次序
4.加入连接的硬件
2015/4/10
共95页
84
6.Scan Chain Synthesis
执行insert_dft,
1.读取已预览的扫描结构
2.进行所需要的扫描代替
3.插入测试点
4.保证没有竞争
5.连接扫描路径
6.把违规减少到最少
2015/4/10
共95页
85
Setting the Effort Level
2015/4/10
共95页
86
7.Post-Scan Check

再次执行dft_drc命令,目的:
1.确认没有新的DFT问题
2.验证扫描链综合工作正常
3.创建ATPG需要的数据
2015/4/10
共95页
87

执行report_scan_path命令,报告出扫描路径

下方还会详细列出扫描链所经过的每个CELL
2015/4/10
共95页
88
8.Estimate Test coverage


2015/4/10
执行dft_drc –coverage_estimate:
查看故障覆盖率
共95页
89
File Output
write -format verilog –hierarchy –output ./netlist/top_pad.sv
write_sdc ./sdc/top_pad.sdc
write_test_protocol -format stil -output ./spf/top_pad.spf
.sv文件和.sdc文件供布局布线工具Astro生成芯片版图
.spf文件供测试矢量生成工具Tetramax生成与测试矢量集,待芯片流片
封装好后,测试矢量集供ATE设备来测试芯片。
未完待续~~~
2015/4/10
共95页
90
作业
完成数字FSK电路(功能及代码见附录)逻辑综合
及可测性设计,要求:
1.逻辑综合后,报告出一条最长延迟路径和一条最短延迟路
径;报告出整个设计的面积和功耗;导出.sv文件和sdc文件;
2.考虑DFT设计,插入扫描链并保证97%的故障覆盖率,导
出此时的.sv文件和.spf文件。
2015/4/10
共95页
91
附录1--FSK电路基本功能
输入一个564KHz的键控信号,(这里为了简化描述,
使用564 KHz来描述键控信号的速率,正常情况下是
用kbps。)
当键控信号为1时,模块产生并输出4.5MHz左右的信号(8倍)
当键控信号为0时,模块产生并输出3.9MHz左右的信号(7倍)
2015/4/10
共95页
92
附录2--源代码(供参考)




















module fsk_modulator(clk,en,data_in,fsk_out);
input clk;
//clk 31.6 MHz
input en;
input data_in;// data_in is 564 KHz
output fsk_out;
// if data_in=1 fsk_out is 3.95 MHz 8 divider of clk
// if data_in=0 fsk_out is 4.51 MHz 7 divider of clk
reg [2:0] count;
wire fsk_out=count[2];
always @(posedge clk)
if(!en) begin
count<=0;
end
else begin
count<=count+1;
if (!data_in)
if (count==6)
count<=0;
end
endmodule
2015/4/10
共95页
93
附录3-- Testbench(供参考)

`timescale 1ns/10ps
module fsk_modulator_tb();
reg clk_tb;//clk 31.6 MHz
reg en_tb , data_in_tb;// data_in is 564 KHz

fsk_modulator fsk_modulator (clk_tb, en_tb,data_in_tb, fsk_out_tb);

initial begin
clk_tb=0;
en_tb=0;
data_in_tb=0;
# 1000 en_tb=1;
# 800000 $stop;
end
always #16 clk_tb=~clk_tb;
always #(1792/2) data_in_tb=~data_in_tb;
endmodule












2015/4/10
共95页
94
2015/4/10
共95页
95