Method and system for device-level simulation of a circuit design for a programmable logic device
First Claim
1. A computer-implemented method for simulating a circuit design for a programmable logic device (PLD), the PLD including two or more types of configurable elements, comprising:
- (a) reading a configuration bitstream;
(b) constructing objects in a computer memory, each object corresponding to a configurable element of the PLD as configured in the configuration bitstream, and each object having associated therewith an output signal state and one or more input signal states;
(c) generating events in response to signal values in the configuration bitstream, each event including an object identifier, an input signal identifier, and an input signal state;
(d) for each event, updating the output signal state and an input signal state of a corresponding object in response to the input signal state of the event and type of configurable element;
(e) performing steps (f)-(g) if processing an event changes the output signal state of an object;
(f) finding the configurable elements that are connected to the output signal; and
(g) generating events for the objects corresponding to the configurable elements from step (f).
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for simulating a circuit design for a programmable logic device (PLD) at the device level. The same configuration data that is used to configure a PLD is used to generate objects that represent configurable logic elements of the PLD. During simulation, events are generated based on changes in output signal states of the objects. Each event includes an input signal state and identifies an object to which the input signal is to be applied. Since configurable logic elements are simulated, for example, lookup tables, instead of logic gates, fewer events need to be generated and processed than in a conventional simulator. In another embodiment, the system supports an interface that allows tools to interface with the simulator in the same manner as the tools interface with a PLD.
-
Citations
20 Claims
-
1. A computer-implemented method for simulating a circuit design for a programmable logic device (PLD), the PLD including two or more types of configurable elements, comprising:
-
(a) reading a configuration bitstream;
(b) constructing objects in a computer memory, each object corresponding to a configurable element of the PLD as configured in the configuration bitstream, and each object having associated therewith an output signal state and one or more input signal states;
(c) generating events in response to signal values in the configuration bitstream, each event including an object identifier, an input signal identifier, and an input signal state;
(d) for each event, updating the output signal state and an input signal state of a corresponding object in response to the input signal state of the event and type of configurable element;
(e) performing steps (f)-(g) if processing an event changes the output signal state of an object;
(f) finding the configurable elements that are connected to the output signal; and
(g) generating events for the objects corresponding to the configurable elements from step (f). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. An apparatus for simulating a circuit design for a programmable logic device (PLD), the PLD including two or more types of configurable elements, comprising:
-
means for reading a configuration bitstream;
means for constructing objects in a computer memory, each object corresponding to a configurable element of the PLD as configured in the configuration bitstream, and each object having associated therewith an output signal state and one or more input signal states;
means for generating events in response to signal values in the configuration bitstream, each event including an object identifier, an input signal identifier, and an input signal state;
means for updating the output signal state and an input signal state of a corresponding object, for each event, in response to the input signal state of the event and type of configurable element;
means for finding the configurable elements that are connected to the output signal if processing an event changes the output signal state of an object;
means for generating events for the objects corresponding to the configurable elements connected to the output signal if processing an event changes the output signal state of an object.
-
Specification