HDL-Based Tools and Environments:Simulation Tools
Simulation Tools
Simulation is probably the most stabilized method for verifying the correctness of a designed system. A simulation tool is a software tool that helps us apply test vectors to the inputs of a designed system and observe the circuit responses. Here we will introduce the basic concepts of the simulation and types of simulation tools.
History of Simulation Tools
In the late 1960s, the first circuits were manufactured by integrating devices manually. Owing to the lack of CAD tools, the necessary design validations were performed after the fabrication process, and this obviously increased the chip cost and time to market. In the 1970s the first CAD tools were designed and employed in design entry. The first event-driven digital circuit simulator was designed in the mid-1970s and since then simulators are enhanced day by day to meet the design methodology requirements.
Hardware Simulation Methods
Figure 96.2 shows the structure of a typical hardware simulator. A hardware simulator is supplied with a description of the design called model and a set of input data as test data for this model. Then the hardware simulator is run and test vectors are applied to the model and outputs are generated. The results depend on both the abstraction level of the model and the input data applied to the model. The best benefit of simulation is that later modifications to the model can easily and quickly be applied with low costs.
Several implementations of hardware simulators exist in today’s design automation technology. Of these, interpreted and compiled implementations of hardware simulators are the most common and typical of simulation engines.
• Interpreted implementation: In this method, the simulator interprets the input model based on the data structures. The simulator converts the input model to an internal data structure and then the simulation process is performed by applying the input test data to the internal data structure and generating the appropriate results. The advantage of this method is simple conversion of the input model into the data structure and also simple implementation of the simulator. In contrast, the simulator executes slowly.
• Compiled implementation: In this method, the simulator converts the input model into a compiled code. Then the simulator executes the generated compiled code to perform simulation. The disadvantage of this method is the high compilation time, which is required for the conversion of the input model into the compiled code. The advantage of this method is that the execution time of the simulation is low.
Regardless of the level of abstraction chosen for simulation, hardware simulators are classified into three main categories: event-driven, oblivious, and cycle-based.
• Event-driven simulators: When an event (any change in the value of a signal) occurs in the simulation model, the simulator only evaluates the signals affected by the event. The event-driven simulator engine holds a time-ordered priority queue of events. The simulator engine picks all events from the queue which have time stamp t (the next simulation time) and applies the events to change the corresponding signal values. Then the affected signals are reevaluated based on the new input values. New events are appended to the priority queue. This loop is repeated until the queue is empty or the simulation end time is reached. This method employs a complex data structure (disadvantage) to provide a reasonable simulation time (advantage).
• Oblivious simulators: The oblivious simulators run the simulation at fixed time points. These simulators advance the simulation engine clock a fixed amount of time. The values for all signals in the design are calculated at the end of each time step. The time step should be selected in a way that no events on the interested signals are missed. Sometimes, analog (or mixed-signal) simulators choose a variable time step controlled by the convergence properties of the equations. The simple implementation of this method can be considered as its advantage. The disadvantage of this method is that all signals should be reevaluated at each time step even if they have not changed since the last time step.
• Cycle-based simulators: As mentioned before, one disadvantage of an event-driven simulator is that the simulation models use a lot of memory (as a result of complicated data structure) to hold the timing data required for a signal. Thus, it is very difficult to simulate a large design in a reasonable amount of time by event-driven simulators. Cycle-based simulators are designed and provided to resolve the event-driven simulator problems only in sequential circuits. Consider a classical synchronous design as combinational logic sandwiched between blocks of registers. The cycle-based
simulator only reevaluates the signals at the clock edges and ignores all other events. This results in an efficient use of memory and ability to verify large designs in smaller time. In a cycle-based simulator timing check ability is omitted, but instead some independent timing verification, such as static-timing analysis, needs to be done.
Comments
Post a Comment