Back to the VDS Home Page
 

Towards a formal theory of communications in NoC architectures



This work addresses the validation of the communication infrastructure in NoC (Networks on Chip) centered designs.

Our method for formally verifying the correctness of the communication operations is based on a generic formal model for the representation of the communications on a chip, called GeNoC. This model is implemented in the ACL2 theorem prover.

The model

The model gives an abstract view of the Transport (4), Network (3) and Data Link (2) layers of the OSI model. It is parameterized by various characteristics of the NoC: its topology and size, routing and switching techniques.

Its definition assumes that each node is made of an application and an interface, and mainly relies on the following functions: These functions are not given explicit definitions. Rather, they are characterized by the set of properties they should satisfy, called proof obligations or constraints.

Proof of correctness

It has been proven, once and for all in the meta-model, that this set of proof obligations implies two correctness theorems, which state that: Proving that a particular NoC is a valid instance of GeNoC, and thus satisfies those correctness theorems, amounts to:

Results

This model has been used to perform formal verification on various communication infrastructures, such as We distribute here a stable version of GeNoC (August 2008), with the proof of the Spidergon.

Moreover, ACL2 provides both a theorem prover and an execution engine in the same environment, since its specification language is the programming language Common Lisp. Theorems can be proven for the functions we define in ACL2, and the same function definitions can also be executed. Thus we can get confidence in our formal model by comparing ACL2 executions with, for instance, VHDL simulations.
Here are examples of ACL2 simulations of Hermes and Spidergon, animated through a Java graphical interface:

          

An example of ACL2 simulation of Nostrum (animated through the Java graphical interface) can be found here.

We are currently targeting the verification of properties such as deadlock or livelock freedom.


References