logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Wykrywanie 1111 lub 0000 na wejściu 4-bitowym – czy wystarczą 2x NAND 2, 2x NAND 3, 3x NOT, 2x XOR?

marek_choro 02 Cze 2025 02:33 405 14
  • #1 21567120
    marek_choro
    Poziom 3  
    Posty: 5
    Czy mając do dyspozycji dwa 2-wejściowe NAND-y i dwa 3-wejściowe NAND-y, 3 bramki NOT i dwie 2-wejściowe bramki XOR, mogę stworzyć dwa układy, z których jeden wypisuje na wyjście jedynkę, gdy na wejściu jest podane 1111, a drugi (osobny) wypisuje na wyjście jedynkę (lub zero, to raczej bez znaczenia, co konkretnie wypisuje, ważne, by identyfikował poprawnie wejście), gdy na wejściu zostało podane 0000? Próbowałem to zrobić wieloma metodami, ale póki co brakuje mi bramek, więc chciałem się spytać, czy jest jakaś szansa, by to wykonać bez konieczności ich dokupienia? Najdalej jak doszedłem (poza tradycyjnymi operacjami AND) to chyba plan, w którym X1 = A XOR B, X2 = C XOR D; gdy X1 = X2, to sprawdzamy, czy A = C; jeśli tak, to na wyjście dajemy A. Czy to ma sens? I czy wg Państwa da się to jednak wykonać na posiadanych przeze mnie układach? (A, B, C, D to odpowiednie bity podawane na wejście układów)
  • #2 21567150
    jarek_lnx
    Poziom 43  
    Posty: 22737
    Pomógł: 4199
    Ocena: 6128
    Mam pomysł jak zrobić NAND i OR czeterowejściowe ale brakuje mi jednego inwertera.

    marek_choro napisał:
    Najdalej jak doszedłem (poza tradycyjnymi operacjami AND) to chyba plan, w którym X1 = A XOR B, X2 = C XOR D; gdy X1 = X2, to sprawdzamy, czy A = C; jeśli tak, to na wyjście dajemy A. Czy to ma sens?

    Nie możesz sprawdzać czy X1=X2 tylko sprawdź czy X1=X2=0, brakuje ci kolejnego XOR do sprawdzenia czy A = C da się zrobić z czerech NAND i zabraknie bramek żeby połączyć wyjścia trzech XOR

    Rozważałeś bramki z diod i rezystorów? AND wymaga czterech lub pięciu elementów, AND tak samo.
  • #3 21567160
    cirrostrato
    Poziom 39  
    Posty: 4915
    Pomógł: 286
    Ocena: 959
    Jeśli to nie zadanie lekcyjne dlaczego po prostu nie kupisz, cena to marketowa kajzerka za sztukę (chyba, że ten problem to też sztuka dla sztuki.....) dwóch 7420 lub 7421 a najlepiej po jednej z obu typów?
  • #4 21567216
    _jta_
    Specjalista elektronik
    Posty: 49148
    Pomógł: 3212
    Ocena: 4260
    Do wykrywania 1111 wystarczy NAND3+NAND2+NOT, ale wtedy przy 1111 na wyjściu będzie 0 - jak ma być 1, to jeszcze jeden NOT. Ale pozostałych elementów raczej nie wystarczy na wykrywanie 0000.

    To, co można spróbować zrobić, to układ o dwóch wyjściach i czterech wejściach, który na jednym wyjściu pokaże, że na wejściach masz 1111, a na drugim, że 0000 (jakieś bramki byłyby wspólne).

    Spróbuj zapytać AI, albo napisać program - komputer może sprawdzić wszystkie kombinacje połączeń i wskazać taką, która pozwoli to uzyskać, o ile to jest możliwe.

    Hm... sprawdzenie wszystkich kombinacji, to "trochę" roboty: bramki mają 17 wejść, w układzie jest 15 sygnałów, ale wykluczamy podłączenie wejścia bramki do jej wyjścia, więc wybieramy z 14, to daje 14^17 = 30 491346 729331 195904 kombinacje - przy sprawdzaniu miliona na sekundę zajmie to milion lat.
  • #5 21567330
    gps79
    Poziom 37  
    Posty: 2212
    Pomógł: 495
    Ocena: 798
    Wydaje mi się, że na tym zestawie bramek się nie da. XOR są tutaj prawie zbędne. Mogą robić za bramki NOT.

    Jeśli możesz dołożyć prowizoryczną bramkę AND na dwóch diodach, to całość da się zrealizować.
  • #6 21567360
    LEDówki
    Poziom 43  
    Posty: 9640
    Pomógł: 1321
    Ocena: 2600
    AND mnoży liczby z wejścia. czterowejściowa pokaże 1 jeżeli 1 jest na wszystkich wejściach. Masz dwuwejściowe i trzywejściową. Na szybko z dwóch dwuwejściowych pomnożysz 2 pary sygnałów. Oba wyniki pomnożysz w kolejnej i gdziekolwiek pojawi się zero, to bramka to zasygnalizuje.
    Jedna para sygnałów na ma zero - wyjście AND - zero. Mnożenie w następnym AND daje zero na wyjściu. Dopiero 4 jedynki na wejściach dadzą jedynkę na wyjściu drugiej bramki AND.
    Jeżeli brakuje dwuwejściowych bramek, to możesz użyć trzywejściową jak dwuwejściową. Jedno wejście ustawiasz na 1, dwa pozostałe albo przyjmują sygnały porównywane, albo porównują sygnały ze wstępnego porównania.
    Z NAND można jeszcze zrobić NOT i w razie czego uzyskać odpowiedni sygnał na wyjściu układu.
    z zerami w zasadzie można chyba zanegować sygnały wejściowe i wtedy układ szuka jedynki, ale na wejściach są 4 zera.
    Weź to sobie rozpisz w tabelach (tabele prawdy), to łatwiej będzie Ci zapamiętać niż taką paplaninę.
    Masz teraz wygodę, bo zamiast lutować, przegrzewać płytki i układy scalone, możesz sobie zasymulować swój pomysł w symulatorze falstad.com albo jakimś innym.
  • #7 21567371
    jarek_lnx
    Poziom 43  
    Posty: 22737
    Pomógł: 4199
    Ocena: 6128
    LEDówki napisał:
    AND mnoży liczby z wejścia. czterowejściowa pokaże 1 jeżeli 1 jest na wszystkich wejściach. Masz dwuwejściowe i trzywejściową. Na szybko z dwóch dwuwejściowych pomnożysz 2 pary sygnałów. Oba wyniki pomnożysz w kolejnej i gdziekolwiek pojawi się zero, to bramka to zasygnalizuje.
    Prościej do dwuwejściowej NAND dodać inwerter i podłączyć do trzywejściowej powstanie czterowejściowa NAND i możemy zrobić takie dwie. Żeby tą drugą przerobić na czterowejściową OR potrzeba cztery inwertery, a mamy 3 (1 NOT 2 XOR).
  • #8 21567398
    _jta_
    Specjalista elektronik
    Posty: 49148
    Pomógł: 3212
    Ocena: 4260
    Chyba da się rozwiązać stosując: E=NAND(A,B), F=XOR(A,B), G=XOR(E,F) daje NOR(A,B); NAND(G,NOT C, NOT D) da OR(A,B,C,D); NAND(NOT E, C, D) da NAND(A,B,C,D). I jeszcze został NAND2, czyli układy mogą być rozdzielone.
  • #9 21567460
    acctr
    Poziom 39  
    Posty: 4554
    Pomógł: 389
    Ocena: 2025
    Do zrobienia na dostępnym zestawie bramek.
    Zakładając wejścia A,B,C,D budujemy układ o dwóch wyjściach E i F o aktywnym stanie niskim →Weryfikacja wyrażeń
    
    E=!((!(!((A^!C)&(B^!C))))&A&D)
    F=!((!(!((A^!C)&(B^!C))))&(!A)&(!D))
    

    Jedna z NAND dwuwejściowych robi za negator.
    Pomogłem? Kup mi kawę.
  • #10 21567600
    LEDówki
    Poziom 43  
    Posty: 9640
    Pomógł: 1321
    Ocena: 2600
    Autor śpi, albo nic nie rozumie, albo testuje przypadkowe konfiguracje bramek.
    2x3AND, 2x2AND - można z tego zrobić 2 układy wykrywające 1 na wejściach. Brakuje 1 bramki NOT, żeby wykryć zero. Czy da się to zrobić z 2 x XOR? Może rozwiązanie tkwi w użyciu wszystkich bramek - jak to w szkole. Uczeń ma się nauczyć myśleć a nie zadawać pytania tym, którzy się już nauczyli.
  • #11 21567746
    _jta_
    Specjalista elektronik
    Posty: 49148
    Pomógł: 3212
    Ocena: 4260
    acctr napisał:
    E=!((!(!((A^!C)&(B^!C))))&A&D)
    F=!((!(!((A^!C)&(B^!C))))&(!A)&(!D))

    To jest mało czytelne - nie widać, ile jest jakich bramek. Może to zapisać tak:
    Kod: Text
    Zaloguj się, aby zobaczyć kod

    A dla sprawdzenia:
    Kod: Python
    Zaloguj się, aby zobaczyć kod

    daje wyniki:
    Kod: Text
    Zaloguj się, aby zobaczyć kod

    Czyli F to "istnieje nie-0", a E to "istnieje 0".
  • #12 21567771
    acctr
    Poziom 39  
    Posty: 4554
    Pomógł: 389
    Ocena: 2025
    _jta_ napisał:
    To jest mało czytelne - nie widać, ile jest jakich bramek.

    Pewnie można inaczej, ale wybrałem taki zapis, żeby było prościej, bez dodatkowych narzędzi.
    To jest przede wszystkim rozwiązanie problemu z jakim się zmaga autor, zwięźle zapisane i proste do weryfikacji na stronie do której podałem linka. Na stronie opisane zostały również symbole operatorów. Wystarczy wkleić prawą stronę równania i dostajesz tabelę prawdy.
    Rozrysowanie tego w postaci schematu to tylko formalność. Na prośbę mogę narysować ale nie będę psuł zabawy ;)
    _jta_ napisał:
    Czyli F to "istnieje nie-0", a E to "istnieje 0".

    Inaczej pisząc, stan niski na wszystkich wejściach uaktywnia jedno z wyjść, stan wysoki na wszystkich uaktywnia drugie wyjście. Stan aktywny to L.
    Na jednym bicie tego zrobić się nie da, potrzeba dwa bity.
    Pomogłem? Kup mi kawę.
  • #13 21568124
    _jta_
    Specjalista elektronik
    Posty: 49148
    Pomógł: 3212
    Ocena: 4260
    No, to znalazłem takie dwa układy, że jeden ma bramki NAND3, NOT, NAND2 (po 1) i daje funkcję NAND4, a drugi ma NAND3, 2 XOR, NAND2, 2 NOT i daje funkcję NOR4 (w wyrażeniach logicznych bramki występują w podanej tu kolejności). W obu NAND2 jest podłączona do tych samych sygnałów, więc jeśli to ma być jeden układ z dwoma wyjściami, to można je zastąpić jedną, a tej bramki użyć np. do zanegowania jednego z wyjść.

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy możliwości zrealizowania układów detekcji stanów 1111 i 0000 na 4-bitowym wejściu przy użyciu ograniczonej liczby bramek: dwóch 2-wejściowych NAND, dwóch 3-wejściowych NAND, trzech NOT oraz dwóch 2-wejściowych XOR. Uczestnicy wskazują, że wykrycie 1111 jest możliwe stosunkowo łatwo, np. przez kombinację NAND3, NAND2 i NOT, jednak wykrycie 0000 jest trudniejsze i prawdopodobnie wymaga dodatkowych bramek. Proponowane rozwiązania obejmują tworzenie układów o dwóch wyjściach sygnalizujących odpowiednio 1111 i 0000, wykorzystanie XOR do porównań bitów, a także implementację bramek AND z diod i rezystorów jako prowizorycznych elementów. Wskazano, że XOR w tym zestawie bramek jest mało przydatny i może pełnić funkcję inwertera. Zaproponowano konkretne wyrażenia logiczne i schematy, które można zweryfikować programowo, m.in. z wykorzystaniem funkcji NAND2, NAND3 i XOR, aby uzyskać aktywne stany niskie na wyjściach dla wykrycia 1111 i 0000. Dyskusja podkreśla ograniczenia wynikające z liczby dostępnych bramek oraz sugeruje, że do pełnej realizacji potrzebne byłoby dokupienie dodatkowych elementów, np. układów 7420 lub 7421. Wskazano również, że problem można rozwiązać różnymi metodami, a dokładne sprawdzenie wszystkich kombinacji połączeń jest bardzo czasochłonne bez automatyzacji.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA