Przeanalizowałem sobie wszystko dokładnie i doszedłem do wniosku, że moje wcześniejsze założenia nie były ścisłe (żeby nie powiedzieć: były błędne).
kubafant pisze: ↑pt, 20 stycznia 2023, 11:01
Zauważyłem, że dla F=1 (format 24-godzinny) również część się upraszcza. Mianowicie do godziny 12 (0-11 włącznie) wystarczy przepisać wejścia na odpowiednie wyjścia. Całe przekodowywanie musi nastąpić wtedy, gdy E*F = 1, tj. gdy zarówno mamy wybrany tryb 24-godzinny, jak i wskazywana godzina jest większa od 11.
Czyli tylko 12 przypadków do rozważenia. Pewnie można to zrobić i na piechotę, licząc tasiemce algebraiczne
Otóż co prawda, gdy licznik zliczy godzinę dajmy na to 11-stą, rzeczywiście właśnie ta godzina 11 ma być wyświetlona. Nieprawdą natomiast jest, że można wtedy przepisać odpowiednie wejścia na wyjścia (czyli, że funkcja kombinacyjna upraszcza się do tożsamości Qi = xi): wszak wejścia dekoderów 74141 pracują w kodzie dwójkowym (8 4 2 1), a wyjścia licznika - w kodzie 12 8 4 2 1.
Początkowo utworzyłem tablicę Karnaugha dla funkcji 6 zmiennych, a potem 5 następnych dla kolejnych funkcji (bitów). Usprawniłem to w ten sposób, że po prostu wpisywałem ołówkiem wartości, a po przeanalizowaniu danej zależności ścierałem je i wpisywałem wartości dla kolejnej funkcji. Taka mapa funkcji 6-ściu zmiennych jest jednak bardzo trudna do analizowania, ze względu na złożone symetrie jakie na niej występują. Pamiętam, że na ćwiczeniach z układów logicznych na WEiTI dawali nam funkcje najwyżej 4 zmiennych. Co prawda przerobiłem w ten sposób wszystkie 6 funkcji, ale postanowiłem to powtórzyć z mniejszymi tablicami, ze względu na ryzyko popełnienia błędów.
Zauważyłem mianowicie (jak słusznie wcześniej przypuszczał Tomek), że argument A (najmłodszy bit wyjścia licznika) nie ma żadnego wpływu na postać funkcji (występuje jedynie w funkcji Qa, która jest prostą tożsamością Qa = a). W sumie jest to logiczne, bo niezależnie od formatu zapisu (dwójkowy czy mieszany) liczby parzyste pozostają parzystymi i vice versa. Pozwoliło to układ zredukować do 5 funkcji 5 zmiennych, a po przemianowaniu jednej ze zmiennych w parametr - 10 funkcji 4 zmiennych, które można analizować za pomocą prostych ("studenckich") 16-polowych tablic Karnaugha. W każdej z nich 4 pola wypadają (tzw. "don't care" - miejsca, gdzie wartość funkcji jest bez znaczenia, ponieważ nie są wykorzystywane).
Ostatecznie uzyskałem wynik, który załączam. Nie mam pomysłu jak go systematycznie sprawdzić, w każdym razie wyrywkowe sprawdzanie kombinacji we/wy nie wykryło żadnych błędów. Czy ktoś ma jakiś pomysł? Oraz może ktoś zasugerowałby jakieś algebraiczne przekształcenia, które pozwoliłyby dalej uprościć te wyrażenia? Nie mam doświadczenia z projektowaniem układów cyfrowych, pamiętam tylko z zajęć i z tego co sobie doczytałem, że dąży się do realizacji wszystkich zależności w postaci bramek NAND albo NOR.
Pozdrawiam wszystkich Kolegów biorących udział w dyskusji i czytających temat,
Jakub