Java as a specification language for hardware-software systems
Rachid Helaihel, Kunle Olukotun · 1997
The specification language is a critical component of the hardware-software co-design process since it is used for functional validation and as a starting point for hardware-software partitioning and co-synthesis. This paper pro-poses the Java programming language as a specification language for hardware-software systems. Java has several characteristics that make it suitable for system specifica-tion. However, static control and dataflow analysis of Java programs is problematic because Java classes are dynam-ically linked. This paper provides a general solution to the problem of statically analyzing Java programs using a technique that pre-allocates most class instances and aggressively resolves memory aliasing using global analy-sis. The output of our analysis is a control dataflow graph for the input specification. Our results for sample designs show that the analysis can extract fine to coarse-grained concurrency for subsequent hardware-software partition-ing and co-synthesis steps of the hardware-software co-design process to exploit. 1