optimization – How can we design a circuit that meets the target waveform using the minimum number of cells?

Input a waveform where the input signal values can be 0 or 1, and the output signal values can be 0, 1, or don’t care(x). Any case not shown in the waveform is considered as don’t care(x). As shown below, for the input case 000, both output signals are don’t care(xx):

   011 01
   111 x0

The standard cells available include: [and, not, or, nand, nor, xor, xnor, mux, xnor]. The goal is to use these cells to build a circuit that satisfies the given waveform requirements while using the minimum number of cells. Are there any algorithms or tools that can achieve this? I searched online and came across Karnaugh maps, but it seems they are only suitable for circuits that use only and, not, or gates. I also considered using DFS/BFS search, but the time complexity is extremely high, and it’s very difficult to implement.

Read more here: Source link