DFT compiler极简示例2

  • 电路结构
  • RTL
  • 脚本
  • 结果

电路结构


电路对于SCAN不友好的地方在于 resetn不可控,两种解决手段
(1) 改代码:或者RTL设计人员修改,或者DFT工具 autofix (本文使用autofix)
(2) 改pattern:利用初始化序列控制住resetn不复位。

RTL

module ssug (in1, in2, clk, cdn, out1, out2);
input in1, in2, clk, cdn;
output out1, out2;
reg ff_a, ff_b, ff_c, ff_d;
wire resetn;
always @(posedge clk) begin
ff_b <= ff_a;
ff_a <= cdn;
end
assign resetn = cdn & ff_b;
always @(posedge clk or negedge resetn) begin
if (!resetn) begin
ff_c <= 1’b0;
ff_d <= 1’b0;
end
else begin
ff_c <= in1;
ff_d <= in2;
end
end
assign out1 = ff_c;
assign out2 = ff_d;
endmodule

脚本

set_app_var search_path “…/ref …/ref/db ./rtl ./”
set_app_var target_library “sc_max.db”
set_app_var link_library “* sc_max.db dw_foundation.sldb”
set synthetic_library {dw_foundation.sldb}
set hdlin_enable_rtldrc_info true;
read_verilog rtl/ssug.v
current_design ssug
link
create_clock -name clk [get_ports clk] -period 100
compile -scan

write -format ddc -hierarchy -output results/ssug.scan.ddc
write -format verilog -hierarchy -output results/ssug.scan.no_protocol.vg

set_dft_signal -view existing_dft -type ScanClock -timing [list 45 55 ] -port clk
set_dft_signal -view existing_dft -type Constant -active_state 1 -port cdn
create_test_protocol
write_test_protocol -output first.spf
write -format verilog -hierarchy -output results/ssug.scan.protocol.vg

结果

(1)如果没有处理resetn
dft_drc

Begin Pre-DFT violations...
Warning: Reset input CDN of DFF ff_c_reg was not controlled. (D3-1)
Information: There is 1 other cell with the same violation. (TEST-173)
Pre-DFT violations completed...SEQUENTIAL CELLS WITH VIOLATIONS*   2 cells have test design rule violations
SEQUENTIAL CELLS WITHOUT VIOLATIONS*   2 cells are valid scan cells

(2)没有test协议之前,
scan netlist

module ssug ( in1, in2, clk, cdn, out1, out2 );input in1, in2, clk, cdn;output out1, out2;wire   ff_b, ff_a, n7;sdnrq1 ff_a_reg ( .D(cdn), .SD(1'b0), .SC(1'b0), .CP(clk), .Q(ff_a) );sdnrq1 ff_b_reg ( .D(ff_a), .SD(1'b0), .SC(1'b0), .CP(clk), .Q(ff_b) );sdcrq1 ff_c_reg ( .D(in1), .SD(1'b0), .SC(1'b0), .CP(clk), .CDN(n7), .Q(out1) );sdcrq1 ff_d_reg ( .D(in2), .SD(1'b0), .SC(1'b0), .CP(clk), .CDN(n7), .Q(out2) );an02d1 U9 ( .A1(ff_b), .A2(cdn), .Z(n7) );
endmodule

(3)建立test协议之后
scan netlist

module ssug ( in1, in2, clk, cdn, out1, out2, test_si, test_so, test_se );input in1, in2, clk, cdn, test_si, test_se;output out1, out2, test_so;wire   ff_b, ff_a, n7;assign test_so = ff_b;sdnrq1 ff_a_reg ( .D(cdn), .SD(test_si), .SC(test_se), .CP(clk), .Q(ff_a) );sdnrq1 ff_b_reg ( .D(ff_a), .SD(ff_a), .SC(test_se), .CP(clk), .Q(ff_b) );sdcrq1 ff_c_reg ( .D(in1), .SD(1'b0), .SC(1'b0), .CP(clk), .CDN(n7), .Q(out1) );sdcrq1 ff_d_reg ( .D(in2), .SD(1'b0), .SC(1'b0), .CP(clk), .CDN(n7), .Q(out2) );an02d1 U9 ( .A1(ff_b), .A2(cdn), .Z(n7) );
endmodule

如果没有修正,虽然可以插入scan,但是DRC问题依然。

(4)set_dft_configuration -fix_reset enable之后
preview_dft

************ Test Point Plan Report ************
Total number of test points  : 1
Number of Autofix test points: 1
Number of Wrapper test points: 0
Number of test modes         : 1
Number of test point enables : 0
Number of data sources       : 1
Number of data sinks         : 0
**************************************************

insert_dft

module ssug ( in1, in2, clk, cdn, out1, out2, test_si, test_so, test_se, data_source, test_mode );input in1, in2, clk, cdn, test_si, test_se, data_source, test_mode;output out1, out2, test_so;wire   ff_b, ff_a, n15, n16;sdnrq1 ff_a_reg ( .D(cdn), .SD(test_si), .SC(test_se), .CP(clk), .Q(ff_a) );sdnrq1 ff_b_reg ( .D(ff_a), .SD(ff_a), .SC(test_se), .CP(clk), .Q(ff_b) );sdcrq1 ff_c_reg ( .D(in1), .SD(ff_b), .SC(test_se), .CP(clk), .CDN(n15), .Q(out1) );sdcrq1 ff_d_reg ( .D(in2), .SD(out1), .SC(test_se), .CP(clk), .CDN(n15), .Q(out2) );an02d1 U9 ( .A1(ff_b), .A2(cdn), .Z(n16) );mx02d0 U10 ( .I0(ff_b), .I1(out2), .S(test_se), .Z(test_so) );mx02d1 U11 ( .I0(n16), .I1(data_source), .S(test_mode), .Z(n15) );
endmodule

全部上链。

DFT compiler极简示例2(使用autofix)相关推荐

  1. DFT Compiler极简示例1

    DFT Compiler极简示例1 Test Protocol Example 1 电路结构 RTL 脚本 结果 (1)如果不定义in3为常量 (2)没有建立test协议之前,SI/SE是不知道如何连 ...

  2. python实现杨辉三角思路_Python极简代码实现杨辉三角示例代码

    Python极简代码实现杨辉三角示例代码 杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列. 把每一行看做一个list,写一个generator,不断输出下一行的list ...

  3. 第3章 Kotlin语言基础 《Kotlin 极简教程》

    2019独角兽企业重金招聘Python工程师标准>>> 第3章 Kotlin语言基础 掌握基础,持续练习 学习任何东西,都是一个由表及里的过程.学习一门编程语言也一样.对于一门编程语 ...

  4. 《Kotlin极简教程》第1章 Kotlin简介

    第1章 Kotlin简介 最新上架!!!< Kotlin极简教程> 陈光剑 (机械工业出版社) 可直接打开京东,淘宝,当当===> 搜索: Kotlin 极简教程 http://ww ...

  5. RepVGG:极简架构,SOTA性能,论文解读

    ** RepVGG:极简架构,SOTA性能,论文解读 ** 更新:RepVGG的更深版本达到了83.55%正确率!PyTorch代码和模型已经在GitHub上放出.DingXiaoH/RepVGG 2 ...

  6. 高效sql性能优化极简教程

    一,sql性能优化基础方法论 对于功能,我们可能知道必须改进什么:但对于性能问题,有时我们可能无从下手.其实,任何计算机应用系统最终队可以归结为: cpu消耗 内存使用 对磁盘,网络或其他I/O设备的 ...

  7. csvtk:高效命令行版极简dplyr

    写在前面 什么时候写 csvtk 呀,csvtk 也借鉴了些 datamash 的东西. 之前写 datamash 的使用教程 linux 极简统计分析工具 datamash 必看教程,收到了一位读者 ...

  8. RepVGG:极简架构,SOTA性能,让VGG式模型再次伟大 | CVPR-2021

    作者 | 丁霄汉 编辑 | 李梦佳 2020年B站年度弹幕是"爷青回".一定有很多瞬间,让你感觉"爷的青春回来了".在这个卷积网络各种超参精确到小数点后三位的时 ...

  9. AI Studio : 利用Paddle框架中的极简框架识别MNIST

    简 介: ※通过测试网络上的这个极简的Paddle识别MNIST程序,也就是使用了一个非常简单的线性回归网络,初步熟悉了Paddle下的网络架构方式.对于如果从numpy到Paddle的tensor转 ...

  10. Kotlin极简教程:第4章 基本数据类型与类型系统

    原文链接:https://github.com/EasyKotlin 到目前为止,我们已经了解了Kotlin的基本符号以及基础语法.我们可以看出,使用Kotlin写的代码更简洁.可读性更好.更富有生产 ...

最新文章

  1. MindSpore技术理解(下)
  2. sony硬盘摄象机误格式化(fat32)的数据恢复
  3. 在Spring Boot项目中使用Spock框架
  4. 通用算法-sql相似度模糊匹配
  5. Android涂鸦技术及刮刮乐示例分析
  6. poj -- 2288 Islands and Bridges
  7. Swoole报错Failed to execute ‘send’ on ‘WebSocket’: Still in CONNECTING state. a
  8. SAP Leonardo图片处理相关的机器学习服务在SAP智能服务场景中的应用
  9. python基础--格式化输出
  10. @interface使用详解
  11. Java 线程池的实现原理,你真的理解吗?
  12. 20 位行业专家共话选型经验,CSDN「选型智囊团高端研讨会」圆满落幕!
  13. 安卓电子书格式_求把 EPUB 转换成 MOBI 的电子书格式转换工具
  14. 海康威视摄像头 rtsp 地址格式
  15. MATLAB中常用到的绘图函数
  16. Excel 日期相减 DATEDIF 函数用法实例
  17. javascript-轮播图
  18. C专家编程 第6章 运动的诗章:运行时数据结构 6.1 a.out及其传说
  19. CUDA out of memory解决办法
  20. 使用Rufus安装Windows系统

热门文章

  1. python catia二次开发_CATIA VBA二次开发教程|使用零件的Body生成Product
  2. 自然语言处理Java开源包FNLP(FudanNLP)的使用
  3. 问卷模板 | 新品的前期用户调研:题目设计与使用反馈
  4. 韩语在线翻译图片识别_Text Scanner for Mac(ocr文字识别工具)
  5. 机器视觉编码技术与标准进展
  6. js实现椭圆轨迹_用js实现一组图片同心椭圆周运动 图片有从小到大渐近效果
  7. android eclipse三合一,创新巅峰之作全能型Orbitrap Eclipse三合一质谱仪
  8. 频率相噪中相关公式、名词注释详解
  9. C语言:表白(多彩小心心)
  10. Java NIO、BIO介绍