Simulation in VHDL:
- It describes the behaviour of the circuit in terms of input signals, the output signals, knowledge of delays.
- The behaviour described in terms of occurrences of events and waveforms on signals.
- In this mode, design description is compiled and simulated and the results are evaluated.
- Simulation process in VHDL is based on discrete event simulation.
- Discrete event simulation utilizes a sorted event list structure. Each event is described by the type of event and the time it is to occur.
- Timestamp of an event is the time at which this event happens. The event list is ordered according to increasing timestamp value.
Synthesis in VHDL:
- Synthesis is a process in which a physical system is constructed from an abstract description using a pre-defined set of basic building blocks (e.g. logic gates, flip-flops, latches, small blocks of memory, LUTs in FPGA).
- Synthesis is the process of constructing a gate-level netlist from a model of a circuit described in VHDL.
- Synthesis process from VHDL model is based on the process of inference (conclusion) of hardware from the description.
- Inference is followed by optimization to reduce the size or increase the speed of the inferred circuit.
- In this route, VHDL is used as the specification and synthesis language, but the process of transformation into hardware is more automated.
- Synthesis process both increases productivity (through automation) and reduces flexibility (by restricting the choice of technology).
“SIMULATION AND SYNTHESIS ARE COMPLEMENTARY PROCESSES”
“EVERYTHING THAT CAN BE SIMULATED CANNOT BE SYNTHESIZED IN VHDL”
- Some VHDL constructs are not synthesizable. Therefore, it is possible to write a VHDL description that can be simulated, but not synthesized.
- For a design description to be synthesizable, we must use only those constructs that are acceptable to our synthesis tool.
- A synthesis tool infers the logic it synthesizes from the context in which specific constructs appear in a design description.
- If the VHDL code is physically meaningless or too far removed from the hardware it attempts to describe, it may not be synthesizable.