欢迎光临专业集成电路测试网~~欢迎加入IC测试QQ群:111938408

专业IC测试网

当前位置: 网站主页 > 相关技术 >

DFT知识分享: dft_glb_gt_se/dft_syn_gt_se的区别?如何

时间:2023-10-06 19:46来源: ryan 火红的兔子 作者:ictest8_edit 点击:

 
  在DFT(面向可测试性设计)中:
信号 "dft_glb_gt_se"、"dft_syn_gt_se" 、"dftcgen" 在设计的不同阶段和测试环境中被用来控制集成时钟门(ICG)的扫描使能(SE)端,从而管理扫描路径的开闭。
通过控制这些时钟门,设计可以在不影响正常功能的情况下,进入适合进行ATPG(自动测试模式生成)或MBIST(内建自测试内存)的测试模式。
 
"dft_glb_gt_se"通常是在RTL(寄存器传输级)阶段前端设计代码中手动实例化的ICG的SE端的控制使能信号。
 
"dft_syn_gt_se"通常是在综合阶段,由综合EDA工具插入的ICG的SE端的控制使能信号。
 
"dftcgen"是ARM代码中的一个常用信号,对实例化的ICG的SE端进行了集成处理,以确保在ATPG模式下的时钟可控。
 
 
 
 根据模式的不同,这些信号在不同的场景下操作:
 
 在MBIST模式下,可能需要将 "dft_glb_gt_se" 配置为1,而 "dft_syn_gt_se" 配置为0,"dftcgen" 根据具体需求进行配置。
     例如,sharebus mbist 的情况下,一般不应将"dftcgen"配置为1,否则可能会引入错误的读写latency行为。非sharebus的dftcgen的值取决于集成时钟路径的设计,核心是保证到mem上的时钟通路。
在ATPG模式下,需要在移位时将dft_syn_gt_se ,dftcgen,dft_glb_gt_se和其他与DFT测试区域相关的时钟ICG设置为1,以确保扫描路径的正常运行。
 
    简而言之,在ATPG过程中,我们希望在移位过程中时钟可控,在捕获过程中,为了覆盖率和测试成本,又希望ICG的SE端在捕获时能为0也能为1。
    
 
  如何实现??
 
要实现这一点,我们首先可以添加一个控制TPI:
 
TPI可以以各种方式实现。工具默认提供的TPI样式如图1所示。
        
有AND控制和OR控制的测试点,可以使用这些控制测试点的使能来在需要时关闭测试点。
附上观察型测试点(如图2所示)来提高特定节点的可观察性。
     
 
那么问题来了?
 
单独加入控制测试点能否满足我们上面的要求?
在ATPG过程中,我们希望在移位过程中时钟可控,在捕获过程中,为了覆盖率和测试成本,又希望ICG的SE端在捕获时能为0也能为1。
 
答案考虑一下就有了:除了测试点之外需要和dft_scan_en的信号做一个或操作。
在此基础上还希望能够用tdr控制,允许配置为一个固定模式。
这里给一个verilog代码实现,不画图了。可以自己根据理解用visio画出很好看的图形,以增强tpi的结构理解。
 
      提出一个问题:
             对dft_syn_gt_se这个信号,如下的代码中tpi与scan_en的或放在最前面,是否合适呢?
 
 
module tpi(
    input wire scan_mode,
    input wire dft_scan_en,
    input wire tdr_in,
    input wire tdr_sel,
    input wire func_in,
    output reg dft_syn_gt_se
);
 
    //定义寄存器dft_syn_gt_se_tpi_reg
    reg dft_syn_gt_se_tpi_reg;
 
    // 定义或门
    wire dft_syn_gt_se_scan_en_or;
    assign dft_syn_gt_se_scan_en_or = dft_scan_en | dft_syn_gt_se_tpi_reg;
 
    // 定义mux dft_syn_gt_se_mux_choose_tpi
    wire dft_syn_gt_se_mux_choose_tpi;
    assign dft_syn_gt_se_mux_choose_tpi = (scan_mode) ? dft_syn_gt_se_scan_en_or : func_in;
    
    // 定义mux dft_syn_gt_se_mux_choose_tdr
    always @(tdr_sel or dft_syn_gt_se_mux_choose_tpi)
        if (tdr_sel)
            dft_syn_gt_se = tdr_in;
        else
            dft_syn_gt_se = dft_syn_gt_se_mux_choose_tpi;
 
endmodule
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名: 验证码: 点击我更换图片