Memory Logic
An asynchronous memory module - either temporary like SRAM, or permanent like EEPROM or flash - can be used to implement arbitrary digital logic functions. By programming the truth table into the memory, the address lines can be treated as inputs to the binary function, and the data lines can be treated as the result of several independent binary functions. The image depicts a 1024x4 memory module, which can implement any four binary functions on 10 inputs.