ABSTRACT

After a few decades of research and experimentation, register–transfer dialects of two standard languages — Verilog and VHDL — have emerged as the industry standard starting point for automatic large-scale digital integrated circuit synthesis. Writing register-transfer-level descriptions of hardware remains a largely human process and hence the clarity, precision, and ease with which such descriptions can be coded correctly has a profound impact on the quality of the final product and the speed with which the design can be created.

While the efficiency of a design (e.g., the speed at which it can run or the power it consumes) is obviously important, its correctness is usually the paramount issue, consuming the majority of the time (and hence money) spent during the design process. In response to this challenge, a number of the socalled verification languages have arisen. These have been designed to assist in a simulation-based or formal verification process by providing mechanisms for checking temporal properties, generating pseudorandom test cases, and for checking how much of a design’s behavior has been exercised by the test cases.

Through examples and discussion, this chapter describes the two main design languages — VHDL and Verilog — as well as SystemC, a language currently used to build large simulation models; System Verilog, a substantial extension of Verilog; and OpenVera, e, and PSL, the three leading contenders for becoming the main verification language.