IP Library Granted Patent US 7,730,438
Granted Patent B2
US 7,730,438 · App. 11/809,613 · Granted Jun 1, 2010

Methods and apparatuses for designing multiplexers

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 7,730,438
App. No.
11/809,613
Granted
Jun 1, 2010
Kind
B2
Abstract

Methods and apparatuses for designing multiplexers in one or more integrated circuits are described. One exemplary method includes receiving a representation of a first multiplexer and converting the representation to a partition neutral representation of the first multiplexer and partitioning the partition neutral representation to create a plurality of second multiplexers. Another exemplary method includes decomposing a representation of a first multiplexer into a representation of a plurality of second multiplexers, which are coupled together at a common output without any intervening multiplexers between the second multiplexers and the common output, and partitioning the second multiplexers between portions of at least one integrated circuit.

Claims (74)

1. A machine readable medium containing executable program instructions which when executed cause a data processing system to perform a method comprising:

receiving a representation of a first multiplexer;

converting the representation of the first multiplexer to a partition neutral representation of the first multiplexer;

partitioning the partition neutral representation of the first multiplexer to create a plurality of second multiplexers.

2. A medium as in claim 1 wherein the plurality of second multiplexers includes a first subset of multiplexers and a second subset of multiplexers, the first subset of multiplexers being designed to be placed on a first integrated circuit (IC) and the second subset of multiplexers being designed to be placed on a second IC, and wherein the first subset includes one or more multiplexers and wherein the second subset includes one or more multiplexers.

3. A medium as in claim 1 wherein the plurality of second multiplexers includes a first subset of multiplexers and a second subset of multiplexers, the first subset of multiplexers being designed to be placed on a first portion of an integrated circuit (IC) and the second subset of multiplexers being designed to be placed on a second portion of the IC, and wherein the first subset includes one or more multiplexers and wherein the second subset includes one or more multiplexers.

4. A medium as in claim 1 wherein the representation of the first multiplexer is in a register transfer level (RTL) form within an RTL netlist and wherein the converting is performed automatically.

5. A medium as in claim 1 wherein the partition neutral representation comprises one of (a) a plurality of tristate drivers; (b) a wired OR array; or (c) a wired AND array.

6. A medium as in claim 1 , wherein the method further comprises:

compiling a description of an integrated circuit in a Hardware Description Language (HDL) to create the representation of the first multiplexer.

7. A medium as in claim 6 , wherein the method further comprises:

replicating decode logic of the first multiplexer.

8. A medium as in claim 1 , the method further comprising:

extending a decode logic of the first multiplexer to include logic driving select lines of the first multiplexer.

9. A medium as in claim 8 , wherein the extending occurs before the converting and wherein the extending comprises a signal cut to define control logic to be replicated.

10. A medium as in claim 1 , the method further comprising:

converting the partition neutral representation within each partition into RTL (register transfer level) components.

11. A machine implemented method comprising:

receiving a representation of a first multiplexer;

converting the representation of the first multiplexer to a partition neutral representation of the first multiplexer;

partitioning on a data processing system, the partition neutral representation of the first multiplexer to create a plurality of second multiplexers.

12. A method as in claim 11 wherein the plurality of second multiplexers includes a first subset of multiplexers and a second subset of multiplexers, the first subset of multiplexers being designed to be placed on a first integrated circuit (IC) and the second subset of multiplexers being designed to be placed on a second IC, and wherein the first subset includes one or more multiplexers and wherein the second subset includes one or more multiplexers.

13. A method as in claim 11 wherein the plurality of second multiplexers includes a first subset of multiplexers and a second subset of multiplexers, the first subset of multiplexers being designed to be placed on a first portion of an integrated circuit (IC) and the second subset of multiplexers being designed to be placed on a second portion of the IC, and wherein the first subset includes one or more multiplexers and wherein the second subset includes one or more multiplexers.

14. A method as in claim 11 wherein the representation of the first multiplexer is in a register transfer level (RTL) form within an RTL netlist and wherein the converting is performed automatically.

15. A method as in claim 11 wherein the partition neutral representation comprises one of (a) a plurality of tristate drivers; (b) a wired OR array; or (c) a wired AND array.

16. A method as in claim 11 , wherein the method further comprises:

compiling a description of an integrated circuit in a Hardware Description Language (HDL) to create the representation of the first multiplexer.

17. A method as in claim 16 , wherein the method further comprises:

replicating decode logic of the first multiplexer.

18. A method as in claim 11 further comprising:

extending a decode logic of the first multiplexer to include logic driving select lines of the first multiplexer.

19. A method as in claim 18 wherein the extending occurs before the converting and wherein the extending comprises a signal cut to define control logic to be replicated.

20. A method as in claim 11 further comprising:

converting the partition neutral representation within each partition into RTL (register transfer level) components.

21. A machine comprising:

means for receiving a representation of a first multiplexer;

means for converting the representation of the first multiplexer to a partition neutral representation of the first multiplexer;

means for partitioning the partition neutral representation of the first multiplexer to create a plurality of second multiplexers.

22. A machine readable medium containing executable program instructions which when executed cause a data processing system to perform a method comprising:

receiving a representation of a first multiplexer having an output;

decomposing the representation of the first multiplexer into a plurality of representations of second multiplexers wherein the second multiplexers are coupled together at a common output, which matches the output of the first multiplexer, without any intervening multiplexer between the second multiplexers and the common output;

partitioning the second multiplexers between portions of at least one integrated circuit.

23. A medium as in claim 22 wherein the plurality of representations of second multiplexers is a partition neutral form of the first multiplexer.

24. A medium as in claim 22 wherein the second multiplexers include a first subset of multiplexers and a second subset of multiplexers, the first subset of multiplexers being partitioned to be placed on a first integrated circuit (IC) and the second subset of multiplexers being partitioned to be placed on a second IC, and wherein the first subset includes one or more multiplexers and wherein the second subset includes one or more multiplexers.

25. A medium as in claim 22 wherein the second multiplexers include a first subset of multiplexers and a second subset of multiplexers, the first subset of multiplexers being partitioned to be placed on a first portion of an integrated circuit (IC) and the second subset of multiplexers being partitioned to be placed on a second portion of the IC, and wherein the first subset includes one or more multiplexers and the second subset includes one or more multiplexers.

26. A medium as in claim 22 wherein the representation of the first multiplexer is in a register transfer level (RTL) form within an RTL netlist, and wherein the decomposing is performed automatically.

27. A medium as in claim 22 wherein the plurality of representations of second multiplexers are in the form of one of (a) a plurality of tristate drivers; (b) a wired OR array or (c) a wired AND array.

28. A medium as in claim 22 , wherein the method further comprises:

compiling a description of an integrated circuit in a Hardware Description Language (HDL) to create the representation of the first multiplexer.

29. A medium as in claim 28 , wherein the method further comprises:

replicating decode logic of the first multiplexer.

30. A machine implemented method comprising:

receiving a representation of a first multiplexer having an output;

decomposing the representation of the first multiplexer into a plurality of representations of second multiplexers wherein the second multiplexers are coupled together at a common output, which matches the output of the first multiplexer, without any intervening multiplexer between the second multiplexers and the common output;

partitioning on a data processing system, the second multiplexers between portions of at least one integrated circuit.

31. A method as in claim 30 wherein the plurality of representations of second multiplexers is a partition neutral form of the first multiplexer.

32. A method as in claim 30 wherein the second multiplexers include a first subset of multiplexers and a second subset of multiplexers, the first subset of multiplexers being partitioned to be placed on a first integrated circuit (IC) and the second subset of multiplexers being partitioned to be placed on a second IC, and wherein the first subset includes one or more multiplexers and wherein the second subset includes one or more multiplexers.

33. A method as in claim 30 wherein the second multiplexers include a first subset of multiplexers and a second subset of multiplexers, the first subset of multiplexers being partitioned to be placed on a first portion of an integrated circuit (IC) and the second subset of multiplexers being partitioned to be placed on a second portion of the IC, and wherein the first subset includes one or more multiplexers and the second subset includes one or more multiplexers.

34. A method as in claim 30 wherein the representation of the first multiplexer is in a register transfer level (RTL) form within an RTL netlist, and wherein the decomposing is performed automatically.

35. A method as in claim 30 wherein the plurality of representations of second multiplexers are in the form of one of(a) a plurality of tristate drivers; (b) a wired OR array or (c) a wired AND array.

36. A method as in claim 30 , wherein the method further comprises:

compiling a description of an integrated circuit in a Hardware Description Language (HDL) to create the representation of the first multiplexer.

37. A method as in claim 36 , wherein the method further comprises:

replicating decode logic of the first multiplexer.

38. A machine comprising:

means for receiving a representation of a first multiplexer having an output;

means for decomposing the representation of the first multiplexer into a plurality of representations of second multiplexers wherein the second multiplexers are coupled together at a common output, which matches the output of the first multiplexer, without any intervening multiplexer between the second multiplexers and the common output;

means for partitioning the second multiplexers between portions of at least one integrated circuit.

39. A machine readable medium containing executable program instructions which when executed cause a data processing system to perform a method comprising:

receiving a representation of a first logic component which is decomposable into a partition neutral decomposition;

converting the representation of the first logic component to a partition neutral representation;

partitioning the partition neutral representation to create a plurality of logic components which together provide a result of the first logic component.

40. A medium as in claim 39 wherein the first logic component is an N-input adder.

41. A medium as in claim 40 wherein the converting represents the N-input adder as a bus having a set of wires.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2010
From: SYNPLICITY, LLC
To: SYNOPSYS, INC.
Reel/Frame 023943/0038 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2008
From: SYNPLICITY, INC., A CALIFORNIA CORPORATION
To: SYNOPSYS, INC., A DELAWARE CORPORATION
Reel/Frame 021145/0353 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2007
From: MCELVAIN, KENNETH S.
To: SYNPLICITY, INC.
Reel/Frame 019425/0230 →