1. A computer program product embodied on a non-transitory computer readable medium, comprising: code for receiving one or more parameters, at least one of which corresponds to an interface protocol; code for constructing a data flow based on the one or more parameters; code for receiving an indication of one or more control constructs; and code for creating a hardware design, utilizing the constructed data flow and the one or more control constructs.