1. A computer program product embodied on a non-transitory computer readable medium, comprising: code for receiving one or more parameters, wherein at least one parameter of the one or more parameters corresponds to an interface protocol; code for constructing a data flow based on the one or more parameters, wherein the data flow represents a flow of data through a hardware design; code for receiving an indication of one or more constructs represented in a hardware description language, the one or more constructs selected from a group of constructs consisting of control constructs and compute constructs; and code for creating a hardware design, based on the data flow and the one or more constructs, wherein control constructs include an entity implemented as part of the hardware description language that receives one or more data flows as input.