Methods and apparatus are provided for efficiently implementing a
customizable processor core on a programmable chip. Source code provided
in a high level language is compiled into intermediate code. The
optimizer uses the intermediate code and user parameters to define
aspects of the processor architecture. The output is used to generate a
model that provides profiling information for additional optimization.