The VHDL language was developed to allow modelling of digital hardware. It can be seen as a super-set of Ada, with a built-in message passing mechanism called signals. The language was defined in the mid-1980’s as a respons to the difficulties of developing, validating and co-simulating increasingly complex digital devices developed within the VHSIC program. The main focus was to be able to write executable specifications, and allow specifications (or models) from different providers (companies) to be simulated together.
When the language was first put to use, it was used for high-level behavioural simulation only. ’Synthesis’ into VLSI devices was made by manually converting the models into schematics using gates and building blocks from a target library. However, manual conversion tended to be error-prone, and was likely to invalidate the effort of system simulation. To address this problem, VHDL synthesis tools that could convert VHDL code directly to a technology netlist started to emerge on the market in the begining of 1990’s. Since the VHDL code could now be directly synthesised, the development of the models was primarily made by digital hardware designers rather than software engineers. The hardware engineers were used to schematic entry as design method, and their usage of VHDL resembled the dataflow design style of schematics. The functionality
was coded using a mix of concurrent statments and short processes, each decribing a limited piece of functionality such as a register, multiplexer, adder or state machine. In the early 1990’s, such a design style was acceptable since the complexity of the circuits was relatively low (< 50 Kgates) and the synthesis tools could not handle more complex VHDL structures. However, today the device complexity can reach several millions of gates, and the synthesis tools accept a much larger part of the VHDL standard. It should therefore be possible to use a more modern and efficient VHDL design method than the traditional ’dataflow’ version. This chapter will describe such a method and compare it to the ’dataflow’ version.
Read More/Download