1. A data-driven method of processing a circuit design, comprising: inputting one or more input patterns in a first format to a programmed processor; converting each pattern of the one or more input patterns from the first format into a second format by the programmed processor, wherein each pattern identifies one or more inputs and one or more outputs and specifies each function that generates each of the one or more outputs from the one or more inputs; storing each pattern of the second format in a database; for an input circuit design, searching for circuit design elements in the circuit design that match patterns in the database; and outputting data indicative of each pattern in the database that matches a circuit design element.