A method of designing an integrated circuit using a general purpose
programming language can include identifying a number of instances of
each class allocated in a programmatic design implemented using the
general purpose programming language and modeling the global memory of
the programmatic design. A data flow between the modeled global memory
and instructions of the programmatic design which access object fields
can be determined and access to the modeled global memory can be
scheduled. The programmatic design can be translated into a hardware
description of the integrated circuit using the modeled global memory,
the data flow, and the scheduled memory access.