Skip to Main Content
In an engineering perspective, agility is one property that a designer must consider when creating a product that is expected to undergo change throughout its lifetime. For embedded computing systems, traditionally the system hardware is fixed, and the system software provides the means of achieving agility. Altering software functionality is relatively easy to do, and software compile times are fast. There are situations, however, where for performance reasons, agility beyond software is needed. In theory, FPGAs offer a degree of agility to system hardware through the mechanism of altering functionality under software control. In practice, however, FPGAs are not very agile at all, requiring long design times and complicated compilation processes. In this talk, the use-model of contemporary FPGAs is reexamined, and alternative ways of hardware/software interaction are presented with the objective of achieving a higher degree of hardware agility.