Ty tabulky nejsou úplné, to by to nuselo mít 128 řádků.
Zároveň to vypadá, že (pokud tam další řádky nejsou, protože na nich nezáleží) platí
OUT(1) je negací OR(IN(1)...IN(7)) (Výstup je jedna, pouze pokud všechny vstupy jsou nula)
OUT(2) je negací OUT(1)
a ostatní OUT(n) prostě kopírují IN(n+1)
což vypadá jako docela zvláštní logika ... ale spíš neúplné zadání
Možná by bylo lepší napsat,
co to má dělat a
proč než řešit
jak to má dělat.
Například ten můj
http://8bit.gilhad.cz/HW/ATF16V8BQL.html pro
http://8bit.gilhad.cz/6809/Expanduino/Expanduino_I.html funguje takhle:
Na desce jsou 4 registry pro čtení (R0..R3) a 4 registry pro zápis (W0..W4). Kterékoli z nich je aktivován, když mu na /Enable přivedu nulu, takže potřebuju 8 výstupů, co budou normálně logická jedna a když se aktivujou budou logická nula.
Na desku vedou 3 bity adresy v normální logice, čili binárně 000..111, dekadicky 0..7, ale já potřebuju adresovat pouze registry 0..3
Taky tam vedou tři signály aktivní v nule, /Read, /Write a /IO1 (který vybírá tu desku)
To je celkem 6 vstupů.
Něco se vybírá, pouze pokud je vybrána deska (/IO1)
Pokud je aktivní /Read, vybírá se jeden z registrů Rx
Pokud je aktivní /Write, vybírá se jeden z registrů Wx
Pokud jsou ale aktivní oba, nebo žádný, nevybírá se nic.
Adresa 0..3 určuje, kolikátý z čipů Rx (resp. Wx) bude vybrán.
Adresy 4 a výš znamenají, že se nevybere nic.