1. A computer-accessible memory medium storing program instructions executable by a processor to: receive a first diagram, wherein the first diagram specifies one or more states and one or more transitions between the states, wherein the first diagram specifies first functionality; automatically generate a data flow program based on the first diagram, wherein the data flow program specifies a plurality of nodes and interconnections between the nodes, and wherein the data flow program specifies the first functionality; and automatically generate a hardware description based on the data flow program, wherein the hardware description specifies a hardware implementation of the data flow program, and wherein the hardware description is usable to configure a programmable hardware element to implement the first functionality.