Dynamic FIFO for simulation
First Claim
1. A simulation environment with a time component, the simulation environment comprising:
- a first unit that produces data;
a second unit for consuming the data; and
a dynamic first-in first-out buffer (FIFO) that interfaces between the first unit and the second unit, the dynamic FIFO capable of automatically increasing its size to minimize deadlock.
3 Assignments
0 Petitions
Accused Products
Abstract
To perform a simulation, a design can be divided into “blocks” described by models. To ensure that data is efficiently transferred from an source model to a destination model, a dynamic first-in first-out (FIFO) can be placed between these models. The initial size of the dynamic FIFO can be set to a relatively small value. To prevent deadlock, the size of the FIFO can be automatically increased in size by increments. In this manner, the memory resources of the FIFO can be tightly controlled. Advantageously, the size of the optimized dynamic FIFO can be used as the desired size of the FIFO implemented in silicon, thereby also ensuring efficient use of silicon resources.
95 Citations
25 Claims
-
1. A simulation environment with a time component, the simulation environment comprising:
-
a first unit that produces data;
a second unit for consuming the data; and
a dynamic first-in first-out buffer (FIFO) that interfaces between the first unit and the second unit, the dynamic FIFO capable of automatically increasing its size to minimize deadlock. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A tool used in a simulation environment, the simulation environment including a first unit that produces data and a second unit for consuming the data, the tool comprising:
a dynamic first-in first-out buffer (FIFO) that interfaces between the first unit and the second unit, the dynamic FIFO capable of automatically increasing its size to eliminate deadlock between the first and second units. - View Dependent Claims (7, 8, 9)
-
10. A method of decreasing simulation time for a design, the simulation including a first model and a second model, the first model representing a first block of the design that generates a plurality of tokens, the second model representing a second block of the design that consumes the plurality of tokens based on a behavior, the method comprising:
-
providing a dynamic memory for receiving the tokens, storing the tokens, and providing the tokens in an order output by the first model when requested by the second model, setting a wait period of the dynamic memory, wherein the wait period is defined by a predetermined number of cycles associated with the behavior;
decreasing the wait period each time the dynamic memory is full and the second model does not request a token; and
automatically increasing a size of the dynamic memory by an increment if the wait period is zero. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A dynamic memory useable in a simulation environment, the dynamic memory providing an interface between a first model and a second model, the first model generating a plurality of tokens, the second model consuming the plurality of tokens based on a behavior, the dynamic memory device comprising:
-
means for handling the tokens including receiving the tokens, storing the tokens, and providing the tokens in an order output by the first model when requested by the second model, means for setting a wait period of the dynamic memory device, wherein the wait period is defined by a predetermined number of time units associated with the behavior;
means for decreasing the wait period each time the dynamic memory is full and the second model does not request a token; and
means for increasing a size of the means for storing the tokens by an increment if the wait period is zero. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
-
Specification