Custom computers are special-purpose systems customised for specific
applications such as signal processing and database operations,
when general-purpose computers are too slow, too bulky or consume
too much power. Traditionally the development of custom computers
is an expensive, time-consuming and error-prone activity. This
course introduces an approach which enables the rapid and systematic
design of custom computers.
Overview: motivations; features and examples of custom computers;
summary of development methods and tools.
Design: parametrised description of leaf components and composite structures; resource and performance characterisation; high-level design tools.
Optimisation: techniques for improving design efficiency such as pipelining, serialisation, transposition and their combinations.
Realisation: bit-level designs, data refinement, FPGA-based implementations.
System-on-chip: architectures, technology trade-offs, design and optimisation methods.
Examples will be selected from a number of application areas, including digital signal processing, computer arithmetic and non-numerical operations.