Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Question: control/observe points clocked by internal clock

Not open for further replies.


Newbie level 3
Jul 8, 2011
Reaction score
Trophy points
Activity points
Question: control/observe points clocked by internal hook up pin


I met a problem while I put test points with DesignCompiler.

This chip has 5 bit mode pins.
Each mode corresponds to one operation mode, such as FUNCTION_MODE/SCAN_TMODE/BIST_TMODE/JTAG_MODE/....

The hierarchy is,
- top_design (port: PGPx, ...)
-------- PAD
-------- core
---------------- gpio (pin: o_SCLK)
------------------------ U_scan_sclk

For SCAN_TMODE (scan test mode), a port named PGP6[7], one of the GPIO ports, is used as SCAN CLOCK.
For other modes, PGP6[7] is just a GPIO port.

Passing through the PAD, PGP6[7] goes into core/gpio, and there, meets an AND gate.
The AND gate cuts PGP6[7] for all the modes except SCAN_TMODE.

verilog code (module: gpio) :
AND2 U_scan_sclk (.A(i_GP6_in[7]), .B(o_SCAN_TMODE), .Y(o_SCLK) );

i_GP6_in[7] is the PAD's output pin for PGP6[7].

I'd like to use U_scan_sclk/Y as the scan clock's CTS root.
So, I declared like this in DesignComplier script:

create_clock -name clk_scan -period $CLOCK_PERIOD_SCAN -waveform [list 0 [expr $CLOCK_PERIOD_SCAN / 2]] [get_pins -h U_scan_sclk/Y]
set_dft_signal -view existing_dft -type ScanClock -port PGP6[7] -hookup_pin [get_pins -h U_scan_sclk/Y] -timing {50 80}

Now, I need to put some observe points clocked by U_scan_sclk/Y for the low test coverage.

The problem is,
if I write like this,

set_test_point_element -type observe \
-control_signal [get_pins $scan_tmode] \
-clock_signal PGP6[7] \
-power_saving enable \
-test_points_per_source_or_sink 32 \
[get_object_name $observe_points]
insert_dft generates a net list which uses PGP6[7] as all observe points' clock.
In this case, I can't use U_scan_sclk/Y as CTS root,
because the observe points' clocks begins from PGP6[7], but other F/F's scan clock is from U_scan_sclk/Y.

If I write like this,
set_test_point_element -type observe \
-control_signal [get_pins $scan_tmode] \
-clock_signal [get_pins -h U_scan_sclk/Y] \
-power_saving enable \
-test_points_per_source_or_sink 32 \
[get_object_name $observe_points]​

DC says -clock_signal requires PORTS only.

So, going up one hierarchical level higher,
set_test_point_element -type observe \
-control_signal [get_pins $scan_tmode] \
-clock_signal [get_ports core/gpio/o_SCLK] \
-power_saving enable \
-test_points_per_source_or_sink 32 \
[get_object_name $observe_points]​

And, change the set_dft_signal a little bit,
create_clock -name clk_scan -period $CLOCK_PERIOD_SCAN -waveform [list 0 [expr $CLOCK_PERIOD_SCAN / 2]] [get_ports core/gpio/o_SCLK]

In this case, DC says there is NO SCAN CLOCK on port top_design/core/gpio/o_SCLK.
Here's the message.

Error: clock signal type not specified for the port core/gpio/o_SCLK. (TESTXG-27)

How can I put the test points clocked by internal hook up pin?
It is really serious for me.
Please give me some advices how to solve this problem.

Thank you, in advance.
Last edited:

Not open for further replies.

Part and Inventory Search

Welcome to