Structure and method for providing a reconfigurable emulation circuit without hold time violations
First Claim
Patent Images
1. In implementing an emulation circuit from a netlist description of a design, said design receiving a plurality of clock sources, a method comprising the steps of:
- analyzing said netlist description to identify, for each storage instance receiving a clock signal in said design, a clock path connecting said clock signal to one of said clock sources from which said clock signal is derived; and
implementing a predetermined clock path portion in a programmable logic device circuit dedicated for clock generation, said predetermined clock path portion creating global clock signals.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and a structure for implementing integrated circuit designs into a plurality of clocked and unclocked reprogrammable logic circuits. Software structures analyze the target logic circuit, form clusters, partition the integrated circuit design and implement the partitions into the clocked and unclocked reprogrammable logic circuits in order to prevent hold time violation artifacts.
189 Citations
21 Claims
-
1. In implementing an emulation circuit from a netlist description of a design, said design receiving a plurality of clock sources, a method comprising the steps of:
-
analyzing said netlist description to identify, for each storage instance receiving a clock signal in said design, a clock path connecting said clock signal to one of said clock sources from which said clock signal is derived; and implementing a predetermined clock path portion in a programmable logic device circuit dedicated for clock generation, said predetermined clock path portion creating global clock signals. - View Dependent Claims (2, 3, 4)
-
-
5. A method for implementing a netlist description of an integrated circuit in a plurality of reprogrammable logic circuits, the integrated circuit characterized by a clock path structure and a data path structure, the clock path structure and the data path structure in turn containing a plurality of storage instances with associated clock paths and data paths, said method comprising the steps of:
-
analyzing the netlist description to extract from the plurality of storage instances the identity of predetermined storage instances in the clock path structure of the integrated circuit being implemented; forming at least one cluster for each of the plurality of storage instances, each of said clusters containing one of the plurality of storage instances and its associated clock paths and data paths; and partitioning the netlist description into a plurality of partitions suitable for respective implementation into said plurality of reprogrammable logic circuits, said partitioning including the step of assigning each of said clusters to at least one of said plurality of partitions such that a predetermined number of said clusters containing said predetermined storage instances are assigned to a predetermined one of said plurality of partitions. - View Dependent Claims (6)
-
-
7. A method for implementing a netlist description of an integrated circuit in a plurality of reprogrammable logic circuits, the integrated circuit characterized by a clock path structure and a data path structure, said clock path structure in turn containing clock components, said method comprising the steps of:
-
analyzing the netlist description to extract the identity of predetermined clock components from the clock path structure of the integrated circuit being implemented; and partitioning the netlist description into a plurality of partitions suitable for respective implementation into said plurality of reprogrammable logic circuits, said partitioning including the step of assigning each of said predetermined clock components to at least one of said plurality of partitions such that a predetermined number of said predetermined clock components are assigned to a predetermined one of said plurality of partitions. - View Dependent Claims (8)
-
-
9. A method for processing a netlist description of an integrated circuit for implementation in a plurality of reprogrammable logic circuits, the integrated circuit characterized by a clock path structure and a data path structure, the clock path structure and the data path structure including respective clock path components and data path components associated with a plurality of storage instances, said method comprising the steps of:
-
identifying as common components the associated clock path components and data path components which are input to more than one of the plurality of storage instances; determining when the storage instances with said common components will be implemented in separate ones of the plurality of reprogrammable logic circuits; and duplicating said common components in each of said separate ones of the plurality of reprogrammable logic circuits where the storage instances with said common components appear.
-
-
10. A method for processing a netlist description of an integrated circuit for implementation in a plurality of reprogrammable logic circuits, the integrated circuit characterized by a clock path structure and a data path structure which collectively include a plurality of storage instances, said method comprising the steps of:
-
identifying as common structure the associated clock path structure and data path structure which are input to more than one of the plurality of storage instances; determining when any said common structure will be implemented in separate ones of the plurality of reprogrammable logic circuits; and duplicating said common structure in each of said separate ones of the plurality of reprogrammable logic circuits.
-
-
11. A method for processing a netlist description of an integrated circuit for implementation in a plurality of reprogrammable logic circuits, the integrated circuit characterized by a clock path structure and a data path structure, the clock path structure and the data path structure in turn containing respective clock paths and data paths associated with a plurality of storage instances, said method comprising the steps of:
-
forming a cluster for each of the plurality of storage instances, each of said clusters containing one of the plurality of storage instances and its associated clock paths and data paths; identifying all of the associated clock paths and data paths which are common to more than one of said clusters; determining when said clusters with said common clock paths and data paths are assigned to separate ones of the plurality of reprogrammable logic circuits; and duplicating all of said common clock paths and data paths in each of said separate ones of the plurality of reprogrammable logic circuits where said clusters with said common clock paths and data paths appear.
-
-
12. A method for implementing a netlist description of an integrated circuit in a plurality of reprogrammable logic circuits, the netlist including a plurality of storage instances, said method comprising the steps of:
-
tracing from a clock input on each of the plurality of storage instances, through a clock path, to a clock source until all of said clock sources are found; and implementing portions of said clock path starting from said clock source that are foundational to more than one clock signal into a first of said reprogrammable logic circuits.
-
-
13. A method for handling a clock path structure of a netlist description of an integrated circuit when implementing the netlist in a plurality of reprogrammable logic circuits comprising the steps of:
-
analyzing the netlist to identify at least one global clock signal within the netlist, each said global clock signal so identified forming the basis for other clock signals; and implementing each said global clock signal into a first of the plurality of reprogrammable logic circuits, said first of the plurality of reprogrammable logic circuits dedicated to said global clock signal generation.
-
-
14. A method for implementing a netlist description of an integrated circuit design into a plurality of programmable logic circuits, the netlist description having clock structures and data structures and plurality of storage instances, each of the plurality of storage instances having a clock input and data input, the method comprising:
-
(a) analyzing the clock structures of the netlist description to find any clock sources, clock paths and global clock paths present in the netlist description; (b) forming clusters, each of said clusters comprising one of the plurality of storage instances and the data structure connected to the data input and the clock structure connected to the clock input of said one of the plurality of storage instances, at least one of said clusters serving as a clock generation storage instance with an associated global clock structure; (c) identifying the data structures common to more than one of said clusters; (d) partitioning the netlist into a plurality of partitions, each of which is smaller in size than the total capacity of one of said plurality of reprogrammable logic circuits, each of said plurality of partitions containing at least one of said clusters, a predetermined one of said plurality of partitions comprising a clock generation partition which contains each of said clusters serving as a clock generation storage instance with said associated global clock structure; (e) duplicating said data structures common to more than one of said clusters in each partition containing a cluster in which the data structures are common to more than one of said clusters; and (f) placing one of each of said plurality of partitions in one of the plurality of reprogrammable logic circuits such that the reprogrammable logic circuit which receives said clock generation partition serves as a clock generation reprogrammable logic circuit. - View Dependent Claims (15, 16, 17)
-
-
18. A emulation system having a netlist description of an integrated circuit implemented therein, the emulation system comprising:
-
a plurality of first reprogrammable logic circuits, each of said plurality of first reprogrammable logic circuits having internal circuitry which is configured to provide functional elements selected from the group of at least combinatorial logic elements and storage elements, each of said plurality of first reprogrammable logic circuits also having reprogrammable I/O terminals connected to selected ones of said functional elements configured into said plurality of first reprogrammable logic circuits, said plurality of first reprogrammable logic circuits receiving at least one clock signal; a selected one of said plurality of first reprogrammable logic circuits having only clock generation structures configured therein; a plurality of second reprogrammable logic circuits, each of said plurality of second reprogrammable logic circuits having interconnections and data paths implemented therein, each of said plurality of second reprogrammable logic circuits further having reprogrammable I/O terminals and internal circuitry configured to provide interconnections between selected ones of said reprogrammable I/O terminals; and a set of fixed electrical conductors connecting said reprogrammable I/O terminals on said plurality of first reprogrammable logic circuits to said reprogrammable I/O terminals on said plurality of second reprogrammable logic circuits. - View Dependent Claims (19, 20)
-
-
21. An apparatus for implementing a netlist into a plurality of reprogrammable logic circuits and a plurality of programmable interconnect integrated circuits, the netlist providing a description of an integrated circuit design having a plurality of storage instances that receive clock signals, combinatorial logic and a plurality of clock sources, the apparatus comprising:
-
a clock analyzer capable of analyzing the netlist in order to identify a clock path which connects a clock signal generated by a clock source to one of the plurality of storage instances; a clusterer capable of forming a plurality of clusters, each of said plurality of clusters comprising one of said plurality of storage instances and portions of the combinatorial logic and said clock paths connected to said one of said plurality of storage instances; a duplicator capable of finding the combinatorial logic common to more than one of said plurality of clusters; and a partitioner capable of partitioning the netlist into a plurality of partitions, each of said plurality of partitions selected to comprise at least one of said plurality of clusters, said partitioner further placing the combinatorial logic common to more than one of said plurality of clusters into every one of said plurality of partitions containing said plurality of clusters having the combinatorial logic common to more than one of said plurality of clusters.
-
Specification