1. A method comprising: generating a plurality of modular, reusable, scalable configurations, wherein each configuration comprises information corresponding to a portion of a neural network circuit and indicative of cost of utilizing the configuration to program the corresponding portion, at least one input received by the corresponding portion, at least output generated by the corresponding portion, and at least one function performed by the corresponding portion; combining at least two of the configurations to form a complex configuration, wherein the complex configuration comprises a hierarchical arrangement of the at least two configurations; and programming a multi-core circuit chip structure based on the complex configuration to simulate a plurality of interconnected neurosynaptic core circuits.