This implementation is optimized for applications that can be
dynamically configured to use one amongst different types of interfaces
at a particular time. As much as possible, resources that can be shared
across interfaces are factorized (counters, comparators, shift registers
...) and accessed through a multiplexer. However, and in order to avoid
penalizing simpler applications, static configuration allows to exclude
resources associated with an unused interface.
The master implements the following configurable data conversion