DFT compiler commands

Status
Not open for further replies.

chis4yu

Newbie level 4
Joined
May 23, 2020
Messages
6
Helped
0
Reputation
0
Reaction score
0
Trophy points
1
Activity points
74
Hi,

I'm a little confused by DFT compiler and usage.

I understand that the normal clock is defined as the ScanClock with existing_dft

but I'm adding a bypass MUX in RTL.

Seems like the clock used for scan chain insertion ALWAYS uses functional clk name. In this case : clk.

Seems like the assumption is that "clk" will ALWAYS be the scan and capture clock.


Code dot - [expand]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
module ABC (clk, rst, d, q)
  always @(posedge clk or posedge rst)
     if (rst)
          q <= '0;
     else
          q <= d;
endmodule
 
module XYZ (clk, scanclk, rst, scanrst, d, q, TestMode)
 
assign clk_bypass = TestMode ? scanclk : clk;  // if TestMode then use scanclk else use functional clock
 
ABC i_ABC (.clk(clk_bypass),
                .rst(rst_bypass),
                .d(d),
                .q(q)
);
endmodule


what's the correct DFT compiler commands to add scan to module XYZ ?


Code dot - [expand]
1
2
3
set_dft_signal -view existing_dft -ScanClock -port clk 
set_dft_signal -view existing_dft -ScanReset -port rst
set_dft_signal -view existing_dft -type Constant -active 1 -port TestMode


How to handle and describe scanrst, scanclk to properly insert scan chain and connect to scanrst, scanclk ?

What's the correct syntax for the "set_dft_signal -view spec" to create the scan chains for "insert_dft"


Code dot - [expand]
1
2
3
set_dft_signal -view spec -ScanClock -port clk
set_dft_signal -view spec -ScanReset -port rst
set_dft_signal -view spec -type Constant -active 1 -port TestMode



Thanks
 
Last edited by a moderator:

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…