DFT Compiler极简示例1

  • Test Protocol Example 1
    • 电路结构
    • RTL
    • 脚本
    • 结果
      • (1)如果不定义in3为常量
      • (2)没有建立test协议之前,SI/SE是不知道如何连接的。
      • (3)建立test协议之后,对SI/SE进行插入并连接
      • (4)report_scan_path -view existing_dft
      • (5)report_scan_configuration
      • (6)report_dft_configuration

Test Protocol Example 1

电路结构

RTL

module tcrm (in1, in2, in3, clk, cdn, out1, out2);
input in1, in2, in3, clk, cdn;
output out1, out2;
reg U1, U2;
wire gated_clk;
always @(posedge clk or negedge cdn) begin
if (!cdn) U1 <= 1’b0;
else U1 <= in1;
end
assign gated_clk = clk & in3;
always @(posedge gated_clk or negedge cdn) begin
if (!cdn) U2 <= 1’b0;
else U2 <= in2;
end
assign out1 = U1;
assign out2 = U2;
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/tcrm.v
current_design tcrm
link
create_clock -name clk [get_ports clk] -period 100
compile -scan
write -format ddc -hierarchy -output results/tcrm.scan.ddc
write -format verilog -hierarchy -output results/tcrm.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 Reset -active_state 0 -port cdn
set_dft_signal -view existing_dft -type Constant -active_state 1 -port in3
create_test_protocol
write_test_protocol -output first.spf
write -format verilog -hierarchy -output results/tcrm.scan.protocol.vg

结果

(1)如果不定义in3为常量

dft_drc报告

Begin Pre-DFT violations...Warning: Clock input CP of DFF U2_reg not active when clocks are set on. (D9-1)
Pre-DFT violations completed...

(2)没有建立test协议之前,SI/SE是不知道如何连接的。

module tcrm ( in1, in2, in3, clk, cdn, out1, out2 );input in1, in2, in3, clk, cdn;output out1, out2;wire   gated_clk;sdcrq1 U1_reg ( .D(in1), .SD(1'b0), .SC(1'b0), .CP(clk), .CDN(cdn), .Q(out1)         );sdcrq1 U2_reg ( .D(in2), .SD(1'b0), .SC(1'b0), .CP(gated_clk), .CDN(cdn),         .Q(out2) );an02d1 U5 ( .A1(in3), .A2(clk), .Z(gated_clk) );
endmodule

(3)建立test协议之后,对SI/SE进行插入并连接

insert_dft

module tcrm ( in1, in2, in3, clk, cdn, out1, out2, test_si, test_se );input in1, in2, in3, clk, cdn, test_si, test_se;output out1, out2;wire   gated_clk;sdcrq1 U1_reg ( .D(in1), .SD(test_si), .SC(test_se), .CP(clk), .CDN(cdn), .Q(out1) );sdcrq1 U2_reg ( .D(in2), .SD(out1), .SC(test_se), .CP(gated_clk), .CDN(cdn), .Q(out2) );an02d1 U5 ( .A1(in3), .A2(clk), .Z(gated_clk) );
endmodule

(4)report_scan_path -view existing_dft

AS BUILT BY insert_dft
========================================
Scan_path    Len   ScanDataIn  ScanDataOut ScanEnable  MasterClock SlaveClock
-----------  ----- ----------- ----------- ----------- ----------- -----------
I 1          2     test_si     out2        test_se     clk         -

(5)report_scan_configuration

dc_shell> report_scan_configuration ****************************************
Report : Scan configuration
Design : tcrm
Version: O-2018.06-SP1
Date   : Mon Sep 12 10:56:52 2022
****************************************========================================
TEST MODE: all_dft
VIEW     : Specification
========================================
Chain count:                           Undefined
Scan Style:                            Multiplexed flip-flop
Maximum scan chain length:             Undefined
Exact scan chain length:               Undefined
Physical Partitioning:                 Horizontal
Replace:                               True
Preserve multibit segments:            False
Clock mixing:                          No mix
Internal clocks:                       none
Retiming Flops:                        none
Add lockup:                            True
Lockup type:                           latch
Insert terminal lockup:                False
Create dedicated scan out ports:       False
Shared scan in:                        0
Bidirectional mode:                    No bidirectional type
Internal Clock Mixing:                 False
Test Clocks by System Clocks:          False
Hierarchical Isolation:                False
Multiple Scan Enable:                  Disable
Pipeline Scan Enable:                  Disable
Voltage Mixing:                        False
Identify Shift Register:               False
Power Domain Mixing:                   False
Reuse MV Isolation Cells:              True
Multi LSSD:                            Disable

(6)report_dft_configuration

DFT Structures                         Status
--------------                         --------
Scan:                                  Enable
Fix Sets:                              Disable
Fix Resets:                            Disable
Fix Clocks:                            Disable
Fix Busses:                            Enable
Fix Bdirectional Ports:                Enable
Fix X Propagation:                     Disable
Control Points:                        Disable
Observe Points:                        Disable
Test Points:                           Disable
Testability:                           Disable
Logic BIST:                            Disable
Wrapper:                               Disable
Boundary scan:                         Disable
Scan Compression:                      Disable
Streaming Compression:                 Disable
Core Integration:                      Disable
Power Control:                         Disable
Pipeline Scan Data:                    Disable
Clock Controller:                      Disable
ConnectClockGating:                    Enable
Mode Decoding Style:                   Binary
IEEE 1500 control:                     Disable

DFT Compiler极简示例1相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. CUDA运行时 Runtime(二)
  2. python简笔画绘制 数据驱动绘图_pytorch visdom可视化工具学习—2—详细使用-2-plotting绘图...
  3. python清除缓存的命令_python – 重启django服务器时清除缓存的最佳位置
  4. 平板电脑有必要买吗_华为平板M6值得买吗
  5. sun cluster3.1
  6. jquery hover事件中 fadeIn和fadeOut 效果不能及时停止
  7. centos中安装、升级git
  8. makefile how to
  9. cookie、session和token原理
  10. 8运行不了_民航局暂停运行737max8,分析可能因为“它”导致飞机俯冲坠落
  11. linux添加文件环境变量
  12. oracle异常:主动抛出自定义异常+捕获指定异常
  13. 异构计算全新升级,阿里云全方位释能人工智能产业
  14. 关于区块链的一点经济学思考
  15. Linux 十四 修改文件操作权限 用户文件权限详解
  16. Java 接入 cachecloud 入门
  17. 软件概要设计如何写(文档恐惧症的程序猿必读)
  18. 技能高考计算机专业考什么,2016年技能高考计算机专业考试总结.pdf
  19. C++ 面向对象高级开发(侯捷)
  20. 系统架构师论文-论软件架构的选择与应用

热门文章

  1. 谷歌浏览器如何开启全黑模式
  2. Linux根目录扩容
  3. 百度智能云 x 国寿财险 | 打造NPS+AI新一代客户体验管理模式
  4. 计算机系统基础课程实验课bomb--phase_5
  5. CSS3实现立体书效果
  6. linux配置i3窗口管理器,i3窗口管理器配置
  7. 3DGS脚本教程翻译(11)-指针
  8. 微信公众平台获取测试号的appID和appsecret
  9. nvm下node安装;node环境变量配置
  10. C#值类型-引用类型