Articles and Papers
BDTI
HOME << FREE INFO << ARTICLES AND PAPERS << BDTI

Migrating Designs From High-Level To Hardware Using
Block-Diagram-Based DSP Tools

Reprinted from Proceedings of the 1995 International Conference on Signal Processing Applications and Technology, October 1995.

Copyright © 1995 Berkeley Design Technology, Inc.

Contents

Abstract

As DSP hardware designs become increasingly complex and time-to-market windows shrink, designers are increasingly looking to high-level tools to help manage complexity and boost productivity. High-level, block-diagram-based tools have long been used for DSP algorithm development and recently have begun to support software and hardware development as well. However, the tools themselves can be complex and costly, and impose many restrictions on the designer. In this paper, we explore the important considerations in evaluating block-diagram-based tools for DSP hardware design. These include issues of design abstraction, data types, optimization, synthesis, and libraries.

1. Introduction

Block-diagram-based DSP tools allow users to create graphical representations of DSP systems using an assortment of functions provided in block libraries. For nearly a decade, such tools have supported simulation of DSP systems, primarily at a high level of abstraction. Recently, block-diagram-based tools such Alta Group's SPW, Mentor Graphics' DSP Station, and Synopsys' COSSAP have also begun to support the implementation of DSP designs in ASIC and FPGA hardware, often through links to hardware synthesis tools. In this paper, we explore the important considerations for evaluating block-diagram-based tools for DSP hardware design. These include issues of design abstraction, data types, optimization, synthesis, and libraries.

We examine three block-diagram-based DSP tools that support hardware design: Alta Group's SPW, Mentor Graphics' DSP Station, and Synopsys' COSSAP, and analyze how these tools support hardware design and synthesis. In particular, we compare the hardware design methodologies employed with the Alta, Mentor, and Synopsys tools and explain the types of design modifications that must be performed to migrate a behavioral design into a hardware implementation.

2. Design Abstraction

A critical issue to consider when evaluating block-diagram-based tools for DSP hardware design is the level of abstraction at which the design will be expressed. In their traditional role as simulation-only tools, block-diagram-based DSP tools have typically been used at a high level of abstraction, with the designer manipulating elements such as filters, modulators, and encoders drawn from a library. We call this type of design behavioral design, since the focus is on defining and verifying the behavior of a system or algorithm, rather than on developing an implementation. Working at this high level of abstraction allows the designer to rapidly experiment with a variety of approaches, and to efficiently verify the functionality of a design.

2.1 Moving Down in Abstraction

When implementing a design in hardware, it is necessary to descend to lower levels of abstraction. After the design has been defined at the behavioral level, the next step is usually to define a hardware architecture, which is the basic structure of hardware elements that will be used to implement the behavior.

Block-diagram-based DSP tools differ significantly in the ways in which they allow the user to transition a design from the behavioral level to the architectural level. In some cases, this step must be performed manually by the designer. This is the case, for example, with Alta Group's SPW. When developing a hardware design using SPW, the designer manually generates the desired hardware architecture. This architecture is entered as a block diagram using a special library of register-transfer-level elements such as multipliers, adders, and registers. These blocks are lower level than the blocks typically used for behavioral DSP design, usually necessitating some redesign as the system is implemented at the architectural level. Additionally, the designer may want different parts of the design to "share" expensive hardware elements. For example, the designer may want a a four-tap filter to be implemented using a single multiplier instead of four separate multipliers. In this case, the designer would have to manually create multiplexing and control circuitry to manage this sharing.

Once the hardware architecture has been designed, SPW generates either VHDL or Verilog HDL code for use with logic synthesis tools. These logic synthesis tools partially automate the process of migrating the design from a register-transfer-level hardware architecture to a gate-level implementation suitable for mapping to an ASIC or FPGA.

There are some clear benefits to manually designing the hardware architecture in this way. These include the ability to use a single design entry and simulation environment to design at the behavioral and architectural levels, and the ability to simulate mixed-level designs (where part of the design is specified at the behavioral level and part at the architectural level). However, the fact that the designer must manually create and specify the architectural-level design means that he or she cannot rapidly experiment with a wide range of architectural design options. This is unfortunate, since such experimentation often yields significant improvements in terms of design speed, cost, or power consumption.

2.2 Behavioral Synthesis

The other approach used by block-diagram tools for generating a hardware architecture from a behavioral DSP design is behavioral synthesis. Behavioral synthesis tools generate architectural-level designs from behavioral-level designs. While these tools are not completely automatic, they provide an environment that allows the designer to experiment with a range of architectural alternatives.

Starting with a behavioral description of a design and user-specified constraints (such as allowable execution time), behavioral synthesis tools allocate hardware elements (such as multipliers and memories) and interconnections between them, assign computations to be performed on these hardware elements, schedule the sequence of computations on each element, and generate a controller to manage the sequencing of computations and data transfers.

Mentor Graphics' DSP Station and Synopsys' COSSAP environments both support behavioral synthesis. DSP Station was the first commercial high-level DSP design environment to provide behavioral synthesis capabilities. To provide these capabilities, it incorporates the MISTRAL 1 and MISTRAL 2 behavioral synthesis tools. These tools are oriented towards synthesizing specific types of architectures for DSP designs. MISTRAL 1 synthesizes bit-serial architectures for low-complexity, low-cost designs, and MISTRAL 2 synthesizes bus-oriented, serial-parallel architectures for medium-performance designs.

Synopsys' COSSAP DSP environment relies on Synopsys' general-purpose Behavioral Compiler to generate hardware architectures. Unlike Mentor Graphics' MISTRAL tools, Behavioral Compiler does not target a specific style of architecture.

Both DSP Station and COSSAP also allow designers to enter their hardware architecture manually as is done with SPW, bypassing behavioral synthesis.

Effective use of behavioral synthesis tools often requires that the designer provide directives (sometimes called pragmas) to the tools, specifying that certain parts of the behavior should be implemented in certain ways, or limiting the freedom of the tool in some respects.

Behavioral synthesis tools generate hardware architectures described at the register-transfer level. Once a behavioral synthesis tool has generated a hardware architecture, lower-level logic synthesis tools are used to create a gate-level implementation suitable for mapping to an ASIC or FPGA.

The key benefits of behavioral synthesis for DSP hardware design are the ability to rapidly explore and evaluate a wide range of architectural designs, and the ability to find new architectural-level optimizations that might not otherwise have been discovered. They main drawbacks of this approach are the fact that to obtain good results, the designer often must very carefully supervise and direct the tool, and the fact that behavioral synthesis tools tend to be very costly, typically in the range of $50,000-100,000, not including related tools needed to perform other steps of the design process.

3. Libraries

One of the most important features of a block-diagram-based DSP tool is its block libraries. These libraries give a tool much of its power, by allowing the designer to reuse existing design elements for much of his or her design. This is another area where high-level DSP design tools differ significantly. The key differences among block libraries provided by high-level DSP design tools are the size and scope of the libraries, the levels of abstraction of the blocks, and their flexibility.

The block-diagram-based DSP tools mentioned earlier each provide libraries of several hundred blocks, ranging in abstraction from very high level (e.g., a complete transmitter) to very low level (e.g., an adder). While all of these blocks can be used to create simulations, typically only a subset of blocks can be used for hardware development. Often, this subset is comprised largely of low-level blocks such as adders, multipliers and registers. This means that if a behavioral design is first created at a high level of abstraction for simulation, the designer may have to modify the design by substituting combinations of lower-level blocks for more complex blocks in order to be able to generate a hardware implementation.

The scope of a block library can't be judged solely by the number of blocks it contains. Some tools provide libraries with highly configurable blocks that can take on different functions based on parameter values set by the user. This is the case, for example, with some of Mentor Graphics' DSP Station libraries.

3.1 Adding to Libraries

No matter how large and flexible a tool's block libraries are, it is very often the case that the user must create new blocks in order to complete a design, or that the design can be optimized or simplified by creating new blocks. Therefore, it is important that block-diagram-based tools provide a straightforward means for creating new blocks.

One way that tools facilitate the creation of new blocks is by providing source code for their block libraries. This allows the user to modify an existing, similar block rather than starting anew. Fortunately, the three commercial block-diagram-based tools that support hardware design all provide source code for most or all of their block libraries.

Another consideration is the language used to add blocks. DSP Station uses a single proprietary language (DFL) both for simulation within DSP Station and for hardware synthesis. COSSAP and SPW, in contrast, use the C language for simulation and VHDL or Verilog HDL for hardware synthesis. This means that when creating a new block to be used for simulation and synthesis, the user must provide two versions of the block: one in C or one in VHDL. This requires the designer to be familiar with both languages. This may be offset by the fact that both languages are increasingly widely used standards.

4. Data Types

Most DSP hardware designs use fixed-point numeric data types and arithmetic because these are simpler and less costly to implement than floating-point. Therefore, it isn't surprising that block-diagram-based tools for DSP hardware design only support fixed-point formats for hardware design. Despite this similarity, there are some important differences in the data type support of these tools.

While all block-diagram-based tools for DSP hardware design support fixed-point formats, not all support the fractional arithmetic formats commonly used in DSP design. In a fractional format, a number is represented by some number of integer bits to the left of an imaginary radix point, some number of fractional bits to the right of the radix point, and possibly a sign bit. While Mentor's DSP Station and Alta Group's SPW allow users good flexibility to use fractional formats and to vary the formats used throughout a design, Synopsys' COSSAP currently only supports integer formats. While designers can work around this limitation and emulate fractional formats by manually tracking the positions of radix points, this can be a burden.

4.1 Converting Designs from Floating-Point to Fixed Point

It is common for DSP algorithm and system designers to begin their designs at a high-level using floating-point numeric formats, which frees them from concerns of overflow, quantization, and scaling. If the design is to be implemented in hardware, it may later be converted to use fixed-point formats. A unique advantage of DSP Station's DFL library is that each block can be configured to use fixed-point or floating-point numeric formats. This allows the designer to manually convert a design from floating-point to fixed-point simply by changing parameters, assuming the designer knows what fixed-point formats to use.

4.2 Fixed-Point Optimization

When developing custom DSP hardware, the designer can use many different fixed-point numeric formats in a single ASIC, tailoring the precision and range of the numeric representation to the needs of various intermediate signals. This allows the designer to reduce the complexity and size of the needed hardware, lowering production costs and power consumption. However, this additional freedom comes at a cost: the designer must determine the numeric formats to be used at each point in the design, making sure to maintain adequate signal fidelity. Some block-diagram-based DSP tools offer capabilities to assist the designer in this optimization process.

Both Alta Group's SPW and Mentor Graphics' DSP Station provide the ability to automatically optimize numeric formats while maintaining the design's behavior within specified limits. For example, such an optimization might attempt to reduce the number of bits used to represent each signal or constant. The two vendors take very different approaches to fixed-point optimization. Alta's Fixed-Point Optimizer tool works with any type of signal processing design, but only optimizes for minimum numeric format size. Mentor's Constant Optimization Tool is limited to optimizing constants (such as filter coefficients) in linear, time-invariant, single-rate systems, but can use a variety of optimization goals (such as minimizing the number of "1" bits in a set of coefficients) that are appropriate for different types of hardware architectures. In addition, DSP Station provides a unique set of fixed-point analysis tools that enable the designer to predict the severity of limit cycles and quantization noise, given a particular selection of fixed-point numeric formats.

5. Conclusions

As DSP hardware designs become increasingly complex and time-to-market windows shrink, high-level, block-diagram-based DSP tools are becoming increasingly attractive due to their ability to boost productivity, facilitate the exploration of many design alternatives, and encourage design re-use. However, these tools are complex and expensive: a single copy of a complete environment can cost $100,000-200,000, and mastering the tools requires a significant investment in training.

In this paper, we've explored some of the most important considerations involved in evaluating block-diagram-based DSP tools for hardware design. We have also examined how the three commercially available environments compare in terms of these criteria.

Our focus here has been exclusively on tools targeting ASIC and FPGA implementation of DSP hardware, as these are the most commercially advanced of DSP hardware synthesis tools. However, there are also tools emerging to support the synthesis of larger DSP systems at the printed-circuit-board and system level.

From our analysis, it should be apparent that each tool has unique strengths and weaknesses; no single tool is best for all types of hardware designs and design methodologies. Therefore, when selecting such tools, it is critical to evaluate them in the context in which they will be used.

6. References

[1] Buyer's Guide to DSP Processors , Berkeley Design Technology, Inc. (Berkeley, California), 1995.

7. Acknowledgments

The authors would like to thank Franz Weller for his help in the preparation of this article.

Top of page