Zatrzaskowy zegar
Wynik - 53.508 (z czego tylko 36.828 jest aktywnie wykorzystywanych ze względu na kształt litery L)
Nagrywanie w wysokiej jakości - https://1drv.ms/u/s!ArQEzxH5nQLKhvt_HHfcqQKo2FODLQ
Wzorzec Golly - https://1drv.ms/u/s!ArQEzxH5nQLKhvwAmwCY-IPiBuBmBw
Zasady przewodnie -
- Ponieważ po raz pierwszy użyłem automatu komórkowego, uniknąłem łączenia dużych, gotowych elementów. Jednym ważnym podejściem, którego nie podjąłem, byłby sumator binarny rozpoczynający się od zera i ciągle dodający jeden do ostatniego wyjścia, a następnie konwerter binarny na BCD, demultiplekser wyświetlacza, dekoder 7-segmentowy i wyświetlacz 7-segmentowy.
- Powinno być możliwe zimne uruchomienie zegara. Narzuciłem sobie dodatkowe ograniczenie, że pojedyncza głowica elektronowa umieszczona w konkretnej komórce przewodnika powinna poprawnie uruchomić zegar. Nie chciałem wymagać dokładnej ręcznej synchronizacji wielu różnych przerzutników i poszczególnych elementów taktowania przed rozpoczęciem symulacji.
Część I: Licznik minut
Matematyka
Liczenie binarne od 0 do 9 (dla najmniej znaczącej cyfry minut) wygląda następująco -
0 - 0000
1 - 0001
2 - 0010
3 - 0011
4 - 0100
5 - 0101
6 - 0110
7 - 0111
8 - 1000
9 - 1001
Czytanie, że jako kolumny najmniej znaczący (strumień bitów 2 ^ 0 jednostek) to 01010101, strumień 2 ^ 1 jednostek to 0011001100, strumień 2 ^ 2 jednostek to 0000111100, a strumień 2 ^ 3 jednostek to 0000000011.
Pierwszy jest łatwy - wystarczy przerzucić flip 01 na zawsze. Trzeci to strumień czterech zer, sześć zer z przesuniętą fazą o sześć zer. Czwarty to strumień ośmiu zer i dwóch zer.
Drugi jest nieco trudniejszy, ponieważ ma nieprzyjemną asymetrię. Zauważam jednak, że (gdzie. Jest operatorem konkat):
0011001100. 0011001100 = 0011001100. NOT (1100110011) = 00110011001100110011 XOR 00000000001111111111 = 5 (0011) XOR 00000000001111111111
(Nawiasem mówiąc, jak wspomniałem później, większość mojego zegara działa na tikrze 60-taktowym. Fala podwójnej długości 00000000001111111111 jest tam, gdzie pojawia się potrzeba tiksu 120-taktowego).
Projekt
Strumienie wyjściowe od góry do dołu to Jednostki minut (2 ^ 0, 2 ^ 1, 2 ^ 2, 2 ^ 3), a następnie Dziesiątki minut (2 ^ 0, 2 ^ 2, 2 ^ 1). Zauważ, że dolne dwa przewody są skrzyżowane.
- 120-taktowy zegar główny.
- Gdzie umieścić elektron na zimny start. Bez ogona elektronu rozchodzi się w dwóch kierunkach, ale dioda bezpośrednio nad nią łapie jeden z nich, dając ładny elektron kolarski krążący wokół pętli o 120 uderzeniach.
- 12-taktowy zegar wtórny.
- Cewka przewodnika + dioda uruchamia wtórny 12-taktowy zegar. Słowa nie potrafią opisać, jak wiernie zsynchronizowano ten mały kawałek. Musisz zsynchronizować zegary 120 i 60 taktów, a następnie zsynchronizować 24-taktowe pseudo zegary z 12-taktową częstotliwością i połową częstotliwości, a następnie przywrócić zegar 24-taktowy do zegara 120-taktowego, w przeciwnym razie bramka XOR nie będzie działać .
- Przesunięcie fazowe.
- Flip-flop. Pojedynczy elektron na wejściu najpierw uderza w ustawioną linię, a następnie po bardzo określonym czasie uderza w linię zerowania, dając dokładnie jeden impuls wejściowy, jeden impuls wyjściowy.
- Dodanie garbów tutaj - na linii resetowania zwiększa opóźnienie między setem a resetem na flip-flopie. Każdy dodatkowy garb daje dodatkowy puls. Poniższy flip-flop ma dziewięć dodatkowych garbów, więc dziesięć impulsów między setem a resetem.
- Bramka XOR dla mojej trudnej linii 2 ^ 1 jednostek minut.
- Bramka AND-NOT i bardzo specyficzne długości części oznaczają, że każdy impuls elektronu, który mija, podwaja się i unicestwia elektron za sobą. Połowa częstotliwości. Tworzy 24-taktowy zegar z 12-taktowego źródła wtórnego.
- 60-taktowy zegar wtórny, który faktycznie wykonuje większość pracy. Łatwiej jest rozpocząć szybki zegar od wolniejszego, więc najwolniejszy zegar (120 uderzeń) jest mistrzem, mimo że jest ledwo używany. 60-taktowy zegar jest sercem tej rzeczy.
- Drut zwrotny, który przenosi elektrony tylko wtedy, gdy tyka 60-taktowy zegar. Jest używany w połączeniu z bramką AND-NOT, aby zatrzymać ponowne uruchamianie zegara z poziomu 120-taktowego mistrza. W przeciwnym razie wydarzy się wiele okropnych rzeczy, a Ctrl-Z jest wybawicielem.
- Dioda, od której zaczyna się zegar 60-taktowy.
- Całe to urządzenie jest klapką, bramką AND i bramką AND-NOT łącznie. Daje zatrzask. Jeden impuls zaczyna, a jeden impuls zatrzymuje.
- Pętla drutu do kalibracji zatrzasku na 10 impulsów włączenia, 10 impulsów wyłączenia dla jednego na dziesięć impulsów wejściowych. Bez tego włączamy 12 impulsów, 8 impulsów wyłączamy. Te dziesięć na dziesięciu blokadach tworzą podstawowe elementy dziesięciominutowych bloków w taki sam sposób, w jaki przerzutniki 6 mikronów (1 puls) tworzyły podstawowe komponenty minutowych jednostek.
- Impuls początkowy zimnego startu spowodował różnego rodzaju problemy, w tym bicie dwóch faz poza fazą z włączonymi zegarami. To popsuwa zatrzaski. Ta bramka AND przechwytuje i pozbywa się impulsów niesynchronizowanych - w szczególności impulsu początkowego.
- Jest to część projektu, którego nieco żałuję z perspektywy czasu. Zajmuje elektron, dzieli go na pięć i unicestwia pięć elektronów z tyłu, przyjmując od 111111 do 100000.
- To zajmuje elektron i zszywa go z przodu. Dokładnie dwie fazy. Zajmuje 100000 i robi 101000. W połączeniu z częścią 16 otrzymujemy 111111 -> 100000 -> 101000. Z perspektywy czasu chciałbym zrobić 111111 -> 101010 -> 101000; osiągnąłby ten sam efekt na mniejszej przestrzeni.
- Powyższe wzory są następnie wciskane w dolny zatrzask, aby osiągnąć 20 wł., 40 wył. To jest podzielone, połowa jest przesunięta fazowo o 20 jednostek, a następnie tworzą one dwa strumienie bitów wysokiego rzędu z dziesiątek minut.
Część II: Licznik godzin
Wyjaśnienie
Wejście do licznika godzin to pojedynczy impuls elektronowy, raz na godzinę. Pierwszym krokiem jest zredukowanie tego do pojedynczego impulsu elektronowego, raz na dwanaście godzin. Osiąga się to za pomocą kilku operacji podstawowych „zatrzask i chwyt”.
„Zatrzask” to 6-mikronowy przerzutnik podłączony do AND-NOT i bramki AND w celu uzyskania 6-mikronowego zatrzasku. „Złap” pobiera ciągły strumień elektronów na wejściu, przepuszcza pierwszy, a następnie unicestwia każdy inny elektron za sobą, aż strumień się skończy, w którym to momencie łapanie resetuje się.
Umieszczenie zatrzasku, a następnie zatrzasku, w szeregu, powoduje, że jeden elektron wchodzi -> włącza zatrzask, jeden elektron na drugim końcu (resztę chwyta złapanie). Następnie drugi elektron w -> wyłącza zatrzask, łapanie cicho resetuje. Efekt netto: pierwszy elektron przechodzi, drugi elektron jest anihilowany, i tak dalej, i tak dalej, bez względu na to, jak długie jest opóźnienie między tymi elektronami .
Teraz połącz dwa „zatrzask i złap” szeregowo, a masz tylko jeden na cztery elektrony przechodzące.
Następnie weź trzeci „zatrzask i złap”, ale tym razem zatwierdź cały czwarty zatrzask i złap się na linii zestawu klap, między bramką AND-NOT a klapką. Pomyślę o tym, jak to działa, ale tym razem przechodzi tylko jeden na trzy elektrony, niezależnie od tego, jak długie jest opóźnienie między tymi elektronami .
Na koniec weź jeden na cztery elektrony i jeden na trzy, połącz je z bramką AND i tylko jeden na dwanaście elektronów przechodzi. Cały ten odcinek to niechlujny skręt ścieżek w lewym górnym rogu licznika godzin poniżej.
Następnie weź elektron co 12 godzin i dziel go z powrotem na jedną co godzinę, ale wysyłaj każdy na inny przewód przewodzący. Osiąga się to za pomocą długiego zwiniętego przewodu z trzynastoma punktami wyjścia.
Weź te elektrony - jedną godzinę w dół różnych przewodników i uderz w linię SET flip-flop. Linia RESET na tym samym klapie jest następnie uderzana przez przewód następnej godziny, dając sześćdziesiąt impulsów w dół każdego drutu na godzinę.
Na koniec - weź te impulsy i przekaż je do siedmiu i pół bajtu ROM (pamięć tylko do odczytu), aby wyprowadzić prawidłowe strumienie bitów BCD. Bardziej szczegółowe wyjaśnienie ROM WireWorld znajduje się tutaj: http://www.quinapalus.com/wires6.html
Projekt
- Wejście jednego elektronu na godzinę.
- Pierwszy zatrzask.
- Pierwszy połów
- „Zatrzask i zaczep” osadzony na zewnętrznej linii zestawu „zatrzask i zaczep”.
- I brama.
- Zatrzask AM / PM (włączany / wyłączany raz na dwanaście godzin).
- Każda pętla drutu ma długość 6 x 60 = 360 jednostek.
- Flip / Flop odwrócił się na bok, aby utworzyć mniejszy profil.
- Siedem i pół bajtu ROM.
Notatki
- Ze względu na swój jeden elektron na minutę, 6 mikronów, uruchom symulację z sześcioma generacjami na minutę (jedna generacja co 10 sekund) dla zegara czasu rzeczywistego.
- Linia AM / PM jest wysoka (1) dla AM, niska (0) dla PM. Może to wydawać się nieco nietypowym rozwiązaniem, ale istnieje uzasadnienie. Podczas zimnego startu zegara linia AM / PM jest początkowo naturalnie niska (0). Gdy tylko linia AM / PM zostanie podniesiona wysoko (1), oznacza to, że liczenie rozpoczęło się o godzinie 12:00. Wszystkie dane wyjściowe przed tym punktem powinny zostać pominięte, wszystkie dane wyjściowe po tym punkcie są uważane za znaczące.
Przydatne linki