IP Library Granted Patent US 12,475,288
Granted Patent B1
US 12,475,288 · App. 17/953,693 · Granted Nov 18, 2025

Clock-based test-point flop sharing in a circuit design

Inventors: Brian Foutz (Charlottesville, VA); Vivek Chickermane (Slaterville Springs, NY); Bharath Nandakumar (New Delhi, IN); Sameer Chakravarthy Chillarige (Bengaluru, IN); Krishna Chakravadhanula (Vestal, NY); Prateek Kumar Rai (Uttar Pradesh, IN); Sarthak Singhal (Noida-Uttar Pradesh, IN)
Assignee: Cadence Design Systems, Inc.
G06F30/333G01R31/31704G01R31/318583G06F30/323G06F30/392
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,475,288
App. No.
17/953,693
Granted
Nov 18, 2025
Kind
B1
Abstract

A system includes a memory that stores instructions and receives a circuit netlist, and includes a processing unit that accesses the memory and executes the instructions. The instructions include an EDA application that includes a test-point flop allocation module that divide the test-point nodes into a plurality of test-point sharing groups in which each of the test-point nodes is associated with one of the clock-gates that is common to each of at least one flip-flop of the portion of the functional logic coupled to each of the respective test-point nodes in the test-point sharing group. The test-point flop allocation module can further allocate one of the test-point flops to each of the test-point sharing groups. The EDA application also includes a circuit layout module configured to generate a circuit layout associated with the circuit design based on the circuit netlist. The circuit layout is employable to fabricate an IC chip.

Claims (33)

1 . A system comprising:

a non-transitory memory that stores machine-readable instructions and receives a circuit netlist associated with a circuit design, the circuit netlist comprising functional logic, test-point nodes coupled to portions of the functional logic, a plurality of clock-gates, and a plurality of test-point flops associated with scan-chains; and

a processing unit that accesses the memory and executes the machine-readable instructions, the machine-readable instructions comprising an electronic design automation (EDA) application, the EDA application comprising:

a test-point flop allocation module that is configured to divide the test-point nodes into a plurality of test-point sharing groups in which each of the test-point nodes is associated with one of the clock-gates that is common to each of at least one flip-flop of the portion of the functional logic coupled to each of the respective test-point nodes in the test-point sharing group, the test-point flop allocation module being further configured to allocate one of the test-point flops to each of the test-point sharing groups in the circuit netlist; and

a circuit layout module configured to generate a circuit layout associated with the circuit design based on the circuit netlist.

2 . The system of claim 1 , wherein the test-point flop allocation module is configured to trace input/output connections backwards on the circuit netlist from the test-point node to an output of each of the at least one flip-flop in the portion of the functional logic, from a clock input of each of the at least one flip-flop to an output of each of the clock-gates, and from an input of each of the clock-gates to a clock signal that defines an associated clock domain to determine the respective one of the clock-gates that is common to each of the at least one flip-flop of the portion of the functional logic.

3 . The system of claim 2 , wherein the test-point flop allocation module selects the respective one of the clock-gates that is most directly coupled to the at least one flip-flop of the portion of the functional logic in response to the test-point flop allocation module determining multiple clock-gates common to each of the at least one flip-flop of the portion of the functional logic.

4 . The system of claim 1 , wherein the test-point flop allocation module is further configured to subdivide the test-point nodes in the test-point sharing groups into smaller test-point sharing groups based on functional hierarchy tiers defined in the circuit netlist.

5 . The system of claim 1 , wherein the test-point flop allocation module is further configured to assign a clock signal to the test-point flop associated with each of the test-point sharing groups, the clock signal being output from the respective one of the clock-gates that is common to each of the at least one flip-flop of the portion of the functional logic coupled to the test-point nodes of the respective one of the test-point sharing groups, wherein the circuit layout module is configured to arrange the test-point flops proximal to the test-point nodes of the respective one of test-point sharing groups on the circuit layout based on the assignment of the clock signal from the respective one of the clock-gates.

6 . The system of claim 1 , wherein, in response to a quantity of the test-point sharing groups being less than a quantity of the test-point flops, the test-point flop allocation module is further configured to subdivide the test-point nodes in the test-point sharing groups into smaller test-point sharing groups based on functional hierarchy tiers defined in the circuit netlist.

7 . The system of claim 6 , wherein the test-point flop allocation module is further configured to assign a clock signal to the test-point flop associated with each of the test-point sharing groups, the clock signal being output from a respective one of the clock-gates that is common to each of at least one flip-flop of the portion of the functional logic coupled to the test-point nodes of the respective one of the test-point sharing groups.

8 . The system of claim 1 , wherein, in response to the circuit layout module generating the circuit layout, the circuit layout module is further configured to receive user inputs to facilitate relocation of each of the test-point flops proximal to a respective one of the test-point sharing groups in the circuit layout of the circuit design.

9 . The system of claim 8 , wherein the circuit layout module is further configured to provide interconnects between the relocated test-point flops in the circuit layout to form the scan-chains.

10 . A non-transitory computer readable medium comprising machine-readable instructions, the machine-readable instructions being executed to:

receive, at a circuit design tool executing on a computing platform, a circuit netlist associated with a circuit design, the circuit netlist comprising functional logic, test-point nodes coupled to portions of the functional logic, a plurality of clock-gates, and a plurality of test-point flops associated with scan-chains;

divide the test-point nodes into a plurality of test-point sharing groups in which each of the test-point nodes is associated with one of the clock-gates that is common to each of at least one flip-flop of the portion of the functional logic coupled to each of the respective test-point nodes in the test-point sharing group via a test-point flop allocation module executing on the computing platform;

allocate one of the test-point flops to each of the test-point sharing groups in the circuit netlist via the test-point flop allocation module executing on the computing platform; and

generate a circuit layout associated with the circuit design via a circuit layout module executing on the computing platform based on the circuit netlist, wherein the circuit layout is employable to fabricate an integrated circuit (IC) chip.

11 . The medium of claim 10 , wherein the test-point flop allocation module is configured to trace input/output connections backwards on the circuit netlist from the test-point node to an output of each of the at least one flip-flop in the portion of the functional logic, from a clock input of each of the at least one flip-flop to an output of each of the clock-gates, and from an input of each of the clock-gates to a clock signal that defines an associated clock domain to determine the respective one of the clock-gates that is common to each of the at least one flip-flop of the portion of the functional logic.

12 . The medium of claim 11 , wherein the test-point flop allocation module selects the respective one of the clock-gates that is most directly coupled to the at least one flip-flop of the portion of the functional logic in response to the test-point flop allocation module determining multiple clock-gates common to each of the at least one flip-flop of the portion of the functional logic.

13 . The medium of claim 10 , wherein, in response to a quantity of the test-point sharing groups being less than a quantity of the test-point flops, the test-point flop allocation module is further configured to subdivide the test-point nodes in the test-point sharing groups into smaller test-point sharing groups based on functional hierarchy tiers defined in the circuit netlist.

14 . The medium of claim 13 , wherein the test-point flop allocation module is further configured to assign a clock signal to the test-point flop associated with each of the test-point sharing groups, the clock signal being output from a respective one of the clock-gates that is common to each of at least one flip-flop of the portion of the functional logic coupled to the test-point nodes of the respective one of the test-point sharing groups.

15 . The medium of claim 10 , wherein the test-point flop allocation module is further configured to assign a clock signal to the test-point flop associated with each of the test-point sharing groups, the clock signal being output from the respective one of the clock-gates that is common to each of the at least one flip-flop of the portion of the functional logic coupled to the test-point nodes of the respective one of the test-point sharing groups, wherein the circuit layout module is configured to arrange the test-point flops proximal to the test-point nodes of the respective one of test-point sharing groups on the circuit layout based on the assignment of the clock signal from the respective one of the clock-gates.

16 . A method for allocating test-point flops in scan-chains of a circuit design, the method comprising:

receiving, at a circuit design tool executing on a computing platform, a circuit netlist associated with a circuit design, the circuit netlist comprising functional logic, test-point nodes coupled to portions of the functional logic, a plurality of clock-gates, and a plurality of test-point flops associated with scan-chains;

dividing the test-point nodes into a plurality of test-point sharing groups in which each of the test-point nodes is associated with one of the clock-gates that is common to each of at least one flip-flop of the portion of the functional logic coupled to each of the respective test-point nodes in the test-point sharing group via a test-point flop allocation module executing on the computing platform;

allocate one of the test-point flops to each of the test-point sharing groups via the test-point flop allocation module executing on the computing platform;

assigning a clock signal to the test-point flop associated with each of the test-point sharing groups via the test-point flop allocation module executing on the computing platform, the clock signal being output from a respective one of the clock-gates that is common to each of at least one flip-flop of the portion of the functional logic coupled to the test-point nodes of the respective one of the test-point sharing groups; and

generating a circuit layout associated with the circuit design based on the circuit netlist via a circuit layout module executing on the computing platform, wherein the circuit layout is employable to fabricate an integrated circuit (IC) chip.

17 . The method of claim 16 , wherein determining one of the clock-gates comprises tracing input/output connections backwards on the circuit netlist from the test-point node to an output of each of the at least one flip-flop in the portion of the functional logic, from a clock input of each of the at least one flip-flop to an output of each of the clock-gates, and from an input of each of the clock-gates to a clock signal corresponding to an associated clock domain.

18 . The method of claim 17 , further comprising selecting the respective one of the clock-gates that is most directly coupled to the at least one flip-flop of the portion of the functional logic in response to determining multiple clock-gates common to each of the at least one flip-flop of the portion of the functional logic.

19 . The method of claim 16 , wherein dividing the test-point nodes comprises subdividing the test-point nodes in the test-point sharing groups into smaller test-point sharing groups based on functional hierarchy tiers defined in the circuit netlist in response to a quantity of the test-point sharing groups being less than a quantity of the test-point flops.

20 . The method of claim 16 , further comprising assigning a clock signal to the test-point flop associated with each of the test-point sharing groups, the clock signal being output from a respective one of the clock-gates that is common to each of at least one flip-flop of the portion of the functional logic coupled to the test-point nodes of the respective one of the test-point sharing groups via the test-point flop allocation module.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2022
From: FOUTZ, BRIAN; CHICKERMANE, VIVEK; NANDAKUMAR, BHARATH; CHILLARIGE, SAMEER CHAKRAVARTHY; CHAKRAVADHANULA, KRISHNA; RAI, PRATEEK KUMAR
To: CADENCE DESIGN SYSTEMS, INC.
Reel/Frame 061225/0810 →
References Cited (8)
US 10528692B1 · Guo · 2020 [cited by examiner]
US 20050091622A1 · Pappu · 2005 [cited by examiner]
M. Youssef et al., “Methodology for efficiently inserting and condensing test points,” IEE Proceedings-E, vol. 140, No. 3, May 1993, pp. 154-160. (Year: 1993). [cited by examiner]
M. Nakao et al., “Low Overhead Test Point Insertion for Scan-based BIST,” ITC Int'l Test Conference, Paper 14.1, 1999 IEEE, pp. 348-357. (Year: 1999). [cited by examiner]
J.-S. Yang et al., “Test Point Insertion Using Functional Flip-Flops to Drive Control Points,” Int'l Test Conference, Paper 17.3, 2009 IEEE, pp. 1-10. (Year: 2009). [cited by examiner]
N. Devta-Prasanna et al., “Clock Gate Test Points,” Int'l Test Conference, Paper 3.2, 2010 IEEE, pp. 1-10. (Year: 2010) (Year: 2010). [cited by examiner]
C. Papameletis et al., “Optimized Physical DFT Synthesis of Unified Compression and LBIST for Automotive Applications,” Int'l Test Conference, 2019 IEEE, pp. 1-6. (Year: 2019). [cited by examiner]
N. Mukherjee et al., “Time and Area Optimized Testing of Automotive ICs,” IEEE Trans. on Very Large Scale Integration (VLSI) Systems. vol. 29, No. 1, Jan. 2021, pp. 76-88. (Year: 2021). [cited by examiner]