spin is an experimental project and far from beeing available for commercial usage. If you are interrested in spin: mailto://spin@toem.de.


The first benchmark (“SimplePerf”) was taken from the systemC examples. It mainly performs context switches between a sink and the source thread sending characters via a fifo. The second benchmark (“SimpleAdd”) contains a signal generator connected to several adders and triggers mainly the scheduler and the port mechanisms. Comparing the results, it seems that the overall performance of spin is slightly better, just context switches seem to be more expensive. Especially the results of SimplePerf 10 and SimplePerf 20 point into this direction. The more fifo capacity is available, the less switches are needed.

Continue Reading

Introducing Spin 3 - Processes

Processes in spin are represented by objects. So a process can have its own data and methods encapsulated in a class. Like in systemC there are 2 basic types of processes represented by 2 base classes.

Continue Reading


Java code often assumes similar to C or C++, but in fact, the concepts are very different. So the systemC patterns developed in C++ do not really fit into this different world. On the otherhand, there are a lot of useful mechansims in java that might be useful for prototyping. As a result, spin got patterns that look similar to systemC, and new mechanisms that look very different.

Continue Reading

Introducing Spin 2 - Connectors

A port in spin is just a kind of connector. Connectors are elements that can be connected with the connectTo method. In spin there are no wiring elements like systemC signals. Instead connectors (e.g ports) are connected directly.

Continue Reading

Introducing Spin 4 - Dedicated Processes

Beside normal and threaded process, there are additional specialized processes (e.g. Statemachine) available. Reasons are:

  • Simplify non-threaded Processes.
  • Ready to use patterns to ease development.
  • Force the user to use special patterns to enable transformation of the prototyping code into hardware patterns.

Continue Reading

Introducing Spin 6 - Sensitivity

Processes are driven by time and/or sensitivity. Default sensitivity allows to trigger a process when a port has changed or modified its value. By deriving the default sensitivity class, the developer can define more concrete conditions when to trigger a certain process.

Continue Reading