Auto scan-generation Cadence script.

Status
Not open for further replies.

VitalyM4

Junior Member level 3
Joined
Jan 18, 2008
Messages
28
Helped
1
Reputation
2
Reaction score
0
Trophy points
1,281
Activity points
1,459
clock gating dft script cadence

Might be useful for someone.

Code:
set_message_verbosity VLOGPT-035 off

read_verilog ./src/${RTL_FILE}


issue_message -type info "--> Start synthesis"
do_build_generic -module ${TOP_LEVEL}

set_current_module ${TOP_LEVEL}
set_top_timing_module ${TOP_LEVEL}

#PKS insert scan_chains

#Select scan_type
set_scan_style mux_scan

set_global dft_scan_avoid_control_buffering true

set_global dft_scan_path_connect tieback

set_scan_mode SCAN_EN 1

report_dft_assertions -all_modules

check_dft_rules

report_dft_registers

check_netlist

set_clock SCLK -period 80 -waveform {0 50}

do_optimize 

set_global dft_scan_path_connect chain

set_number_of_scan_chains 1

set_scan_data -clock SCLK -rise  SCAN_IN  SCAN_OUT -enable SCAN_EN 

do_xform_connect_scan
RTL:
Code:
module frame_counter_no_scan (
	
	SCAN_EN ,              /*Scan Enable*/
	SCAN_IN ,              /*Scan Input*/
	RSTB , 			       /*Asynchronous reset*/
	SCLK ,                 /*Counter Clock*/	
	FRAME_CNT_INC_EN,      /*Increment enable*/
	FRAME_COUNT,			   /*Frame count*/
        SCAN_OUT
	);
	
	/*Port direction and types*/
	input SCAN_IN ;
	input SCAN_EN ;
	input FRAME_CNT_INC_EN;
	
	output [7:0] FRAME_COUNT ;
        output SCAN_OUT;	
	reg [7:0] FRAME_COUNT;
	input SCLK ;
	input RSTB ;	   
	
	/*Internal signal declaration*/
	wire rb ; 
	/*Functional description*/	
	/*disabled reset in SCAN mode*/
	assign rb= RSTB;
	
	/*Upward counter  */
	always@(negedge rb or posedge SCLK)
		        if(!rb)
				FRAME_COUNT<={8{1'b0}};
			else  if(FRAME_CNT_INC_EN) 
						FRAME_COUNT<=FRAME_COUNT+1'b1;  		 /*Normal mode*/
		
	
endmodule

Best regards.
 

creating negedge clock in pks

VitalyM4 said:
Might be useful for someone.

Practically no one uses Cadence to do DFT-insertion. Synopsys DFT-compiler or that third-party one (FastScan?) have the most marketshare.

I used Cadence Ambit/PKS test-insertion in the past -- it's not even close to Synopsys DFT-compiler in terms of usability and reliability. I didn't get to try RTL Compiler, I hope it's working much better than PKS!
 

script autoscan


I completely agree with you, but there are different situations. Maybe you know how to make gated-clock element scannable in DFT-compiler? Could you post generic script?
 

cadence script

but there are different situations. Maybe you know how to make gated-clock element scannable in DFT-compiler? Could you post generic script?

If you have (a) Power Compiler, (b) DFT-compiler licenses, (c) library-file with integrated-clockgating cells (ICG), then DFT-compiler internally understands any power-optimzations/transformations made by Power-Compiler synthesis. All you have to do is issue the power compiler commands to chose clock-gating-style to use the ICG. Most modern foundry libraries (0.13u and smaller) have ICG cells.

I don't handle the DFT stuff in my company any more, but this is what I was told by the tool people. (And Cadence RTL-compiler has similar level of DFT-automation for ICG.)
 

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