Tentative Syllabus

Notion of time, clock and synchronization in computation. Synchronous and asynchronous systems: advantages and challenges of each paradigm, asynchronous as a generalization of synchronous systems.

Specification and modeling: Petri Nets, process algebras, finite state transition systems. Communication: two-phase, four-phase, hybrid handshaking schemes. Timing issues: delay models, delay-insensitivity, speed-independence, speed-dependence, robustness versus generality and performance tradeoffs. Timed systems: coupling functionality with timing, races and hazards, constraints induced by race and hazard avoidance. Concurrency issues: arbitration, deadlock, livelock, starvation, safety.

Asynchronous logic: transition signalling, basic components, self-timed circuits, the problem of metastability. Overview of main asynchronous logic design styles, bundled data and completion sensing for synchronizing data and control. Micropipelines and applications. Overview of counterflow pipeline processors.

Analysis and verification: Trace-theoretic, state-space exploration, event-based and process-algebraic approaches. Timing verification: problems and algorithms. Complexity of verification problems. Performance analysis of asynchronous systems.

Brief case studies of asynchronous systems.