IP Library Granted Patent US 9,842,181
Granted Patent B1
US 9,842,181 · App. 15/162,918 · Granted Dec 12, 2017

Method to optimize general-purpose input/output interface pad assignments for integrated circuit

Inventors: Kyung Suk Oh (Cupertino, CA); Yee Huan Yew (Bayan Lepas, MY); Chee Cheong Tan (Georgetown, MY); Mei See Chin (Gelugor, MY); Wai Ling Lee (Bayan Lepas, MY); Loke Yip Foo (Ipoh, MY); Chooi Ian Loh (Sungai Bakap, MY); Hui Lee Teng (Gelugor, MY)
Assignee: Altera Corporation
G06F17/5054G06F17/5068
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 9,842,181
App. No.
15/162,918
Granted
Dec 12, 2017
Kind
B1
Abstract

The present disclosure relates to an innovative method of assigning signals to general-purpose input/output pads of an integrated circuit chip. An inductance matrix for the input/output pads is obtained. A candidate assignment is made of a differential signal to a pair of the input/output pads, and a differential mutual inductance is determined for each open pad location in relation to the pair of input/output pads. Single-ended signals are assigned to open pad locations having the lowest differential mutual inductances. The jitter contribution due to each assigned single-ended signal is computed, and a total jitter is updated. In a first embodiment, said assigning, computing and updating steps are repeated until the total jitter exceeds a total jitter budget. In a second embodiment, said assigning, computing and updating steps are repeated until a number of assigned single-ended signals is equal to a target number. Other embodiments and features are also disclosed.

Claims (61)

1. A method of assigning signals to general-purpose input/output pads of an integrated circuit chip, the method comprising:

obtaining, using a computer, an inductance matrix for the input/output pads;

making a candidate assignment of a differential signal to a pair of the input/output pads;

determining a differential mutual inductance for each open pad location in relation to the pair of input/output pads;

assigning a single-ended signal to an open pad location having a lowest differential mutual inductance;

computing a jitter contribution due to the single-ended signal; and

updating a total jitter with the jitter contribution.

2. The method of claim 1 , further comprising:

repeating said assigning, computing and updating steps until the total jitter exceeds a total jitter budget.

3. The method of claim 2 , further comprising:

when the total jitter exceeds the total jitter budget, undoing a preceding assignment and reducing the total jitter by the jitter contribution of the preceding assignment; and

storing a resultant set of signal-to-pad assignments for the single-ended signals, along with the total jitter, in relation to the candidate assignment of the differential signal.

4. The method of claim 3 , further comprising:

when there is a further candidate assignment to process, looping back and making the further candidate assignment, then repeating said determining, assigning, computing, updating and repeating steps.

5. The method of claim 4 , further comprising:

selecting and outputting an optimal assignment that is the candidate assignment with a highest number of single-ended signals being assigned within the total jitter budget.

6. The method of claim 1 , further comprising:

repeating said assigning, computing and updating steps until a number of assigned single-ended signals is equal to a target number.

7. The method of claim 6 , further comprising:

when the number of assigned single-ended signals is equal to the target number, storing a resultant set of signal-to-pad assignments for the single-ended signals, along with the total jitter, in relation to the candidate assignment of the differential signal.

8. The method of claim 7 , further comprising:

when there is a further candidate assignment to process, looping back and making the further candidate assignment, then repeating said determining, assigning, computing, updating and repeating steps.

9. The method of claim 8 , further comprising:

selecting and outputting an optimal assignment that is the candidate assignment with a highest number of single-ended signals being assigned within the total jitter budget.

10. The method of claim 1 , wherein the candidate assignment involves assigning a plurality of differential signals to a plurality of pairs of the input/output pads.

11. The method of claim 1 , further comprising:

pre-assigning power-related inputs to the input/output pads.

12. The method of claim 1 , further comprising:

sorting the open pad locations by their differential mutual inductance.

13. A non-transitory computer-readable medium comprising instructions stored thereon, that when executed on a processor, perform the steps of:

obtaining, using a computer, an inductance matrix for the input/output pads of an integrated circuit chip;

making a candidate assignment of a differential signal to a pair of the input/output pads;

determining a differential mutual inductance for each open pad location in relation to the pair of input/output pads;

assigning a single-ended signal to an open pad location having a lowest differential mutual inductance;

computing a jitter contribution due to the single-ended signal; and

updating a total jitter with the jitter contribution.

14. The non-transitory computer-readable medium of claim 13 , wherein the steps further comprise:

repeating said assigning, computing and updating steps until the total jitter exceeds a total jitter budget.

15. The non-transitory computer-readable medium of claim 14 , wherein the steps further comprise:

when the total jitter exceeds the total jitter budget, undoing a preceding assignment and reducing the total jitter by the jitter contribution of the preceding assignment; and

storing a resultant set of signal-to-pad assignments for the single-ended signals, along with the total jitter, in relation to the candidate assignment of the differential signal.

16. The non-transitory computer-readable medium of claim 15 , wherein the steps further comprise:

when there is a further candidate assignment to process, looping back and making the further candidate assignment, then repeating said determining, assigning, computing, updating and repeating steps.

17. The non-transitory computer-readable medium of claim 16 , wherein the steps further comprise:

selecting and outputting an optimal assignment that is the candidate assignment with a highest number of single-ended signals being assigned within the total jitter budget.

18. The non-transitory computer-readable medium of claim 13 , wherein the steps further comprise:

repeating said assigning, computing and updating steps until a number of assigned single-ended signals is equal to a target number.

19. The non-transitory computer-readable medium of claim 18 , wherein the steps further comprise:

when the number of assigned single-ended signals is equal to the target number, storing a resultant set of signal-to-pad assignments for the single-ended signals, along with the total jitter, in relation to the candidate assignment of the differential signal.

20. The non-transitory computer-readable medium of claim 19 , wherein the steps further comprise:

when there is a further candidate assignment to process, looping back and making the further candidate assignment, then repeating said determining, assigning, computing, updating and repeating steps; and

selecting and outputting an optimal assignment that is the candidate assignment with a highest number of single-ended signals being assigned within the total jitter budget.

21. A system for assigning signals to general-purpose input/output pads of an integrated circuit chip, the system comprising:

an electronic-design automation tool executing on a computer; and

a signal-to-pad assignment module of the electronic-design automation tool, wherein the module is programmed to perform the steps of

obtaining, using the computer, an inductance matrix for the input/output pads,

making a candidate assignment of a differential signal to a pair of the input/output pads,

determining a differential mutual inductance for each open pad location in relation to the pair of input/output pads,

assigning a single-ended signal to an open pad location having a lowest differential mutual inductance,

computing a jitter contribution due to the single-ended signal, and

updating a total jitter with the jitter contribution.

Assignments (2)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2016
From: OH, KYUNG SUK; YEW, YEE HUAN; TAN, CHEE CHEONG; CHIN, MEI SEE; LEE, WAI LING; FOO, LOKE YIP; LOH, CHOOI IAN; TENG, HUI LEE
To: ALTERA CORPORATION
Reel/Frame 039425/0758 →