Horloge à verrouillage
Score - 53 508 (dont seulement 36 828 sont activement utilisés en raison de la conception en forme de L)
Enregistrement de haute qualité - https://1drv.ms/u/s!ArQEzxH5nQLKhvt_HHfcqQKo2FODLQ
Golly pattern - https://1drv.ms/u/s!ArQEzxH5nQLKhvwAmwCY-IPiBuBmmw
Des principes directeurs -
- Comme c'était la première fois que j'utilisais un automate cellulaire, j'ai évité de chaîner de gros composants préfabriqués. Une approche valide que je n'ai pas adoptée aurait été un additionneur binaire commençant à zéro et en ajoutant continuellement un à la dernière sortie, suivi d'un convertisseur binaire en BCD, d'un démultiplexeur d'affichage, d'un décodeur à 7 segments et d'un affichage à 7 segments.
- Il devrait être possible de démarrer à froid l'horloge. Je me suis imposé la restriction supplémentaire qu'une seule tête d'électrons placée sur une cellule conductrice spécifique devrait correctement démarrer l'horloge. Je ne voulais pas exiger une synchronisation manuelle minutieuse de nombreuses bascules disparates et d'éléments de synchronisation individuels avant de commencer la simulation.
Partie I: Le compteur de minutes
Mathématiques
Compter de 0 à 9 en binaire (pour le chiffre des minutes les moins significatives) va comme suit -
0 - 0000
1 - 0001
2 - 0010
3 - 0011
4 - 0100
5 - 0101
6 - 0110
7 - 0111
8 - 1000
9 - 1001
En lisant que sous forme de colonnes, le flux de bits le moins significatif (2 ^ 0 unités) passe à 01010101, le flux de 2 ^ 1 unités à 0011001100, le flux de 2 ^ 2 unités à 0000111100 et le flux de 2 ^ 3 unités à 0000000011.
Le premier est simple - il vous suffit de basculer 01 pour toujours. Le troisième est un flux de quatre 1, six 0, déphasé de six zéros. Le quatrième est un flux de huit 0 et deux 1.
Le second est un peu plus difficile car il a une asymétrie désagréable. Cependant, je remarque que (où. Est l'opérateur concat):
0011001100. 0011001100 = 0011001100. NON (1100110011) = 00110011001100110011 XOR 0000000000111111111111 = 5 (0011) XOR 00000000001111111111
(Par ailleurs, comme évoqué plus tard, la majorité de mon horloge fonctionne sur un ticker de 60 temps.
Conception
Les flux de sortie de haut en bas vont des unités de minutes (2 ^ 0, 2 ^ 1, 2 ^ 2, 2 ^ 3) puis des dizaines de minutes (2 ^ 0, 2 ^ 2, 2 ^ 1). Notez que les deux fils inférieurs sont croisés.
- Horloge principale de 120 temps.
- Où placer un électron pour un démarrage à froid. Sans queue d'électrons, il se divise dans deux directions, mais la diode immédiatement au-dessus attrape l'une d'entre elles, ce qui donne un bel électron de cyclisme qui fait le tour de la boucle de 120 temps.
- Horloge secondaire à 12 temps.
- La bobine de conducteur + diode démarre l'horloge secondaire à 12 temps. Les mots ne peuvent pas décrire à quel point ce petit morceau devait être synchronisé. Vous devez synchroniser les horloges de 120 et 60 temps, puis synchroniser dans les pseudo-horloges de 24 temps et de fréquence de 24 temps, puis rattacher l'horloge de 24 temps à l'horloge de 120 temps, sinon la porte XOR ne fonctionne pas. .
- Déphasage.
- Tongues. Un seul électron sur l'entrée frappe d'abord la ligne définie, puis après un laps de temps très spécifique, frappe la ligne de réinitialisation en donnant précisément une impulsion d'entrée, une impulsion de sortie.
- L'ajout de bosses ici - sur la ligne de réinitialisation, augmente le délai entre le réglage et la réinitialisation sur la bascule. Chaque bosse supplémentaire donne une impulsion supplémentaire. La bascule ci-dessous a neuf bosses supplémentaires, donc dix impulsions entre le réglage et la réinitialisation.
- Porte XOR pour ma ligne délicate de 2 ^ 1 unités de minutes.
- La porte ET-NON et les longueurs de pièces très spécifiques signifient que chaque impulsion d'électrons qui vient de passer se double et annihile l'électron derrière. Diviseur de fréquence. Crée une horloge à 24 temps à partir de la source secondaire à 12 temps.
- Horloge secondaire à 60 temps, qui fait la plupart du travail. Il est juste plus facile de démarrer une horloge rapide à partir d'une horloge plus lente, donc l'horloge la plus lente (120 battements) est le maître, même si elle est à peine utilisée. L'horloge à 60 temps est le cœur de cette chose.
- Fil de rétroaction qui ne transporte des électrons que lorsque l'horloge à 60 temps tourne. Il est utilisé en conjonction avec une porte ET-NON pour empêcher le redémarrage de l'horloge à plusieurs reprises à partir du maître 120 temps. Sinon, beaucoup de choses horribles se produisent et Ctrl-Z est sauveur.
- La diode à partir de laquelle l'horloge à 60 temps est démarrée.
- L'ensemble de cet appareil est une bascule, une porte ET et une porte ET-NON combinées. Il donne un verrou. Une impulsion le démarre, une impulsion l'arrête.
- Boucle de fil pour calibrer le loquet à 10 impulsions activées, 10 impulsions désactivées pour une entrée d'impulsion sur dix. Sans cela, nous obtenons 12 impulsions, 8 impulsions. Ces verrous dix sur dix constituent les composants de base des blocs de dix minutes de la même manière que les bascules électroniques de 6 microns (1 impulsion) formaient les composants de base des unités de minutes.
- L'impulsion initiale de démarrage à froid a causé toutes sortes de problèmes, y compris le décalage de deux battements avec les horloges qu'elle démarre. Cela gâche les verrous. Cette porte ET capture et élimine les impulsions désynchronisées - en particulier l'impulsion de démarrage.
- C'est une partie du design que je regrette un peu rétrospectivement. Il prend un électron, le divise en cinq et annihile les cinq électrons derrière, prenant 111111 à 100000.
- Cela prend un électron et le coud sur le devant. Deux phases à venir pour être précis. Cela prend 100000 et fait 101000. Combiné avec la partie 16, nous obtenons 111111 -> 100000 -> 101000. Rétrospectivement, j'aurais aimé faire 111111 -> 101010 -> 101000; il aurait obtenu le même effet dans moins d'espace.
- Les motifs ci-dessus sont ensuite poussés dans le loquet inférieur pour obtenir 20 allumés, 40 éteints. Celui-ci est divisé, la moitié est déphasée de 20 unités, puis celles-ci forment les deux flux binaires d'ordre élevé des dizaines de minutes.
Partie II: Le compteur d'heures
Explication
L'entrée du compteur horaire est une impulsion électronique unique, une fois par heure. La première étape consiste à la réduire à une seule impulsion électronique, une fois toutes les douze heures. Ceci est réalisé en utilisant plusieurs primitives "verrouiller et rattraper".
Un «verrou» est une bascule de 6 microns connectée à un ET-NON et à une porte ET pour donner un verrou marche / arrêt de 6 microns. Un "catch" prend un flux continu d'électrons en entrée, laisse passer le premier, puis annihile tous les autres électrons derrière, jusqu'à ce que le flux se termine à quel point le catch se réinitialise.
Placer un verrou, suivi d'un verrou, en série, entraîne un électron dans -> allume le verrou, un électron à l'autre extrémité (le reste est capturé par le crochet). Ensuite, le deuxième électron entrant -> désactive le verrou, la capture se réinitialise silencieusement. Effet net: le premier électron passe à travers, le deuxième électron est annihilé, et ainsi de suite, quelle que soit la durée du retard entre ces électrons .
Maintenant, enchaînez deux "verrous et captures" en série, et vous n'avez plus qu'un électrons sur quatre à passer.
Ensuite, prenez un troisième "verrou et accrochage", mais cette fois, incorporez un quatrième verrou et accrochage sur la ligne SET de la bascule, entre la porte ET-NON et la bascule SET. Je vais vous laisser réfléchir à la façon dont cela fonctionne, mais cette fois, seul un électron sur trois passe, quelle que soit la durée du retard entre ces électrons .
Enfin, prenez un sur quatre électrons et un sur trois, combinez-les avec une porte ET, et seulement un sur douze électrons passe à travers. Cette section entière est le gâchis désordonné des chemins en haut à gauche du compteur d'heures ci-dessous.
Ensuite, prenez l'électron toutes les douze heures et divisez-le en un toutes les heures, mais sortez-les chacun sur un fil conducteur différent. Ceci est réalisé en utilisant le long conducteur enroulé avec treize points de sortie.
Prenez ces électrons - un par heure dans différents conducteurs, et frappez une ligne SET de bascule. La ligne RESET sur cette même bascule est alors frappée par le conducteur de l'heure suivante, donnant soixante impulsions sur chaque fil par heure.
Enfin - prenez ces impulsions et passez-les dans sept octets et demi de ROM (mémoire morte) pour sortir les flux binaires BCD corrects. Voir ici pour une explication plus détaillée de la ROM WireWorld: http://www.quinapalus.com/wires6.html
Conception
- Un électron par heure d'entrée.
- Premier verrou.
- Première prise.
- "Latch & catch" intégré sur une ligne SET "latch & catch" externe.
- ET porte.
- Verrou AM / PM (activé / désactivé toutes les douze heures).
- Chaque boucle de fil mesure 6x60 = 360 unités.
- Flip / Flop tourné sur le côté pour créer un profil plus petit.
- Sept octets et demi de ROM.
Remarques
- En raison de sa conception à un électron par minute et à 6 microns, exécutez la simulation à six générations par minute (une génération toutes les 10 secondes) pour une horloge en temps réel.
- La ligne AM / PM est haute (1) pour AM, basse (0) pour PM. Cela peut sembler une façon de procéder un peu inhabituelle, mais il y a une justification. Lors d'un démarrage à froid de l'horloge, la ligne AM / PM est naturellement basse (0) au départ. Dès que la ligne AM / PM est tirée haut (1), cela indique que le comptage a commencé à 00h00. Toute sortie avant ce point doit être ignorée, toute sortie après ce point est considérée comme significative.
Liens utiles