1. A method for digital circuit design, comprising the steps of: providing a circuit design in the form of a hardware definition language; producing a binary simulation of the design by setting out for each unit of time during execution of the hardware design the a control state and a program state of the design; assigning a symbol to each signal of the design; executing a symbolic simulation of the design; identifying and capturing the combinational logic expression of the simulation output; and the next state functions of the simulation.