The MachXO2 non-volatile architecture also provides numerous hardened functions commonly used in a wide range of applications. Each MachXO2 device includes an Embedded Functional Block, or EFB, that includes hard IP implementations of two I²C controllers, one SPI controller and a versatile 16-bit timer/counter. Each of these functions can be flexibly routed internally within the device via the standard Wishbone bus, or externally via the dedicated I/O pins. The I²C and SPI controllers are configurable as master or slave, and are functionally equivalent to the standard, external interfaces commonly implemented on dedicated devices. The difference is that in this case, they are already fully integrated in the MachXO2 device so the customer saves the time of designing them on their own. Plus, they save valuable logic resources to use for the rest of the design.