4 research outputs found
Compositional circuit design with asynchronous concepts
PhD ThesisSynchronous circuits are pervasive in modern digital systems, such as smart-phones,
wearable devices and computers. Synchronous circuits are controlled by a global clock
signal, which greatly simplifies their design but is also a limitation in some applications.
Asynchronous circuits are a logical alternative: they do not use a global clock to synchronise
their components. Instead, every component reacts to input events at the rate
they occur. Asynchronous circuits are not widely adopted by industry, because they are
often harder to design and require more sophisticated tools and formal models.
Signal Transition Graphs (STGs) is a well-studied formal model for the specification,
verification and synthesis of asynchronous circuits with state-of-the-art tool support.
STGs use a graphical notation where vertices and arcs specify the operation of
an asynchronous circuit. These graphical specifications can be difficult to describe compositionally,
and provide little reusability of useful sections of a graph. In this thesis
we present Asynchronous Concepts, a new design methodology for asynchronous circuit
design. A concept is a self-contained description of a circuit requirement, which is
composable with any other concept, allowing compositional specification of large asynchronous
circuits. Concepts can be shared, reused and extended by users, promoting the
reuse of behaviours within single or multiple specifications. Asynchronous Concepts can
be translated to STGs to benefit from the existing theory and tools developed by the
asynchronous circuits community.
Plato is a software tool developed for Asynchronous Concepts that supports the
presented design methodology, and provides automated methods for translation to STGs.
The design flow which utilises Asynchronous Concepts is automated using Plato and
the open-source toolsuite Workcraft, which can use the translated STGs in verification
and synthesis using integrated tools. The proposed language, the design flow, and the
supporting tools are evaluated on real-world case studies