A method for automatically converting a synchronous circuit design to an asynchronous dataflow design, comprising: identifying (602, 604) a synchronous circuit design including a plurality of signal-conducting wires, a plurality of synchronous logic blocks, a plurality of connection boxes including synchronous connection switches connecting the plurality of signal-conducting wires to the synchronous logic blocks and to a plurality of switch boxes including synchronous switch box switches connecting the plurality of signal-conducting wires to other wires; determining functional characteristics of the synchronous circuit design, the functional characteristics including directionality; converting, from the synchronous circuit design, at least some of the plurality of synchronous logic blocks to corresponding asynchronous dataflow logic blocks, the asynchronous dataflow logic blocks providing corresponding asynchronous dataflow logic functions and protocol signals; converting, in the synchronous circuit design, the plurality of signal-conducting wires to tracks, each track supporting the plurality of signal-conducting wires to communicate data and protocol signals between the asynchronous dataflow logic blocks; converting, in the synchronous circuit design, dependent on the functional characteristics of the synchronous circuit design, the synchronous switch box switches to programmable switch points, including incorporating bi-directionality by using a buffer positioned to support a directional signal associated with the directionality of the synchronous circuit design; and converting, in the synchronous circuit design, dependent on the functional characteristics of the synchronous circuit design, the synchronous connection switches to programmable switches. identifying (602, 604) a synchronous circuit design including a plurality of signal-conducting wires, a plurality of synchronous logic blocks, a plurality of connection boxes including synchronous connection switches connecting the plurality of signal-conducting wires to the synchronous logic blocks and to a plurality of switch boxes including synchronous switch box switches connecting the plurality of signal-conducting wires to other wires; determining functional characteristics of the synchronous circuit design, the functional characteristics including directionality; converting, from the synchronous circuit design, at least some of the plurality of synchronous logic blocks to corresponding asynchronous dataflow logic blocks, the asynchronous dataflow logic blocks providing corresponding asynchronous dataflow logic functions and protocol signals; converting, in the synchronous circuit design, the plurality of signal-conducting wires to tracks, each track supporting the plurality of signal-conducting wires to communicate data and protocol signals between the asynchronous dataflow logic blocks; converting, in the synchronous circuit design, dependent on the functional characteristics of the synchronous circuit design, the synchronous switch box switches to programmable switch points, including incorporating bi-directionality by using a buffer positioned to support a directional signal associated with the directionality of the synchronous circuit design; and converting, in the synchronous circuit design, dependent on the functional characteristics of the synchronous circuit design, the synchronous connection switches to programmable switches.