A behavioral synthesis tool that allows a designer to design an integrated
circuit using a generic programming language, such as ANSI C or C++,
without the need to include timing information into the source code. In
one aspect, the source code is read into the behavioral synthesis tool
and the user may dynamically allocate interface resources to the design.
In another aspect, the dynamic allocation is accomplished through user
input, such as a GUI, a command line, or a file. In another aspect, the
behavioral synthesis tool automatically analyzes variables in the source
code description and assigns the variables to interface resources. In yet
another aspect, the variables and interface resources associated with the
variables may be displayed in a hierarchical format in a GUI. In still
another aspect, the GUI may allow for expanding and collapsing of
different layers in the hierarchy. The GUI may also allow for
drag-and-drop operations for modifying the allocation of variables to
interface resources.