A
system whereby a data flow language written in relatively high-level description is compiled to a hardware definition. The hardware definition is then used to configure data flow in a target
processing system at
execution time, or run time. In a preferred embodiment, the target
processing system includes a Reduced-
Instruction Set Computer (RISC) processor in communication with a
finite state machine (FSM),
shared memory, on-board memory, and other resources. The FSM is primarily used for accelerating matrix operations and is considered the target
machine to be configured according to the
dataflow definition. The RISC processor serves as a co-processor to an external
central processing unit (CPU) that is a
host processor for executing application code. Other embodiments can use aspects of the invention in any other
processing architecture. A
dataflow language is used to define interconnections among hardware elements in the matrix
datapath and controlled by FSM at run time and, thus, to determine hardware functionality at run time. The
interconnectivity between the matrix
datapath components, elements or resources, is capable of changing every
clock cycle to optimize preferred calculations. The
dataflow language is used to describe the optimized functions to an
application programmer. The dataflow language is also compiled to a hardware definition that is used to create aspects of the desired functionality in
silicon.