In this tutorial, the author describes how high-level synthesis bridges the gap between behavioral specifications and hardware structure by automatically generating a circuit description from a netlist. The resulting description can be used for other design automation tools such as logic synthesis and layout. Describing high-level synthesis for synchronous digital hardware, the author explains the steps of the process, which include compilation, transformation, scheduling, and allocation.igh-level synthesis bridges the gap between the high-level behavioral specification of a digital circuit and its structure. As opposed to logic synthesis, which optimizes only combina-H tional logic, high-level synthesis deals with memory elements, the interconnection structure, such a s buses and multiplexers, and the sequential aspects of a design. The behavioral specification aims at describing only the functionality of a circuit, or what the circuit must do. The specification is usually in a sequential or procedural language similar to programming languages such a s C or Pascal-for example, sequential VHDL. Circuit structure, on the other hand, gives strong hints about the circuit's implementation, or how it is built. The structure is described by a netlist, a list of components and their interconnections.The first step in synthesis is to compile a specification into an internal representation. The second step is to apply high-level transformations with the goal of optimizing the behavior. Finally, scheduling and allocation convert the behavior into a structure. Scheduling determines the time at which each operation is executed, while allocation synthesizes the necessary hardware to perform the operations. The structure is then passed to other design tools for logic synthesis. The advantage of high-level synthesis is that behavioral specifications are generally shorter than lower level structural specifications. Thus, they are easier to write, understand, and change. This makes them less error prone and faster to simulate, which makes the design of complex systems easier and allows a considerably shorter design cycle. But, a s is often the case, automation at this level also exacts a price, and we may have to trade advantages for larger or slower hardware. Moreover, design automation cannot generally match the abilities of a skilled human designer. Despite these drawbacks, design automation does increase productivity significantly.
~
DESIGN REPRESENTATIONA requisite for high-level synthesis is the precise definition of circuit behavior and structure and the systematic classification of design representations. As Table 1 shows, this definition and classification commonly involves two orthogonal axes: the domain and the level. There are three domains: the behavioral, the structural, and the physical. Ideally, pure behavior is described in terms of a n input-output relationship, such as a set of Boolean equations for a combinational network. The structure describes the topology of a system and is typically given 0740-7475/90/001...