-
Notifications
You must be signed in to change notification settings - Fork 8
Home
Una CPU sintetizable en FPGAs libres, descrita en Verilog, basada en la utilizada en el ordenador de navegación del Apollo XI en su aterrizaje en la luna
Módulo de Mando | Módulo lunar |
---|---|
El ordenador de navegación del Apollo XI (AGC) es el que controlaba la orientación y navegación del Módulo de Mando y del Módulo lunar. Había por tanto dos AGC independientes en cada misión apollo.
¿No sería genial hacerte un robot que use la CPU del Apollo? ¿O usarla como controlador para alguno de tus proyectos? ¿Quieres aprender cómo se programa la CPU que guió la primera nave que aterrizó en la luna? Esto es posible usando FPGAs
Si con esta CPU lograron que el apollo navegase hasta la luna, seguro que es posible usarlo para hacer un robot siguelíneas :-D
VideoBlog 23: ACC: Apollo CPU Core. Vídeo en Youtube (pinchar en la imagen)
El ACC (Apollo CPU Core) es una implementación simplificada del AGC, en Verilog, y que se pueda sintetizar en FPGAs libres. No es una réplica exacta, ni incluye toda su funcionalidad ni todas sus intrucciones. La idea es que se pueda programar utilizando un subconjunto de las instrucciones originales, y que se pueda usar para nuestros proyectos de makers
El ACC en realidad es un microcontrolador: contiene en su interior la CPU, la memoria y algunos periféricos
Iremos implementando el ACC poco a poco, mediante versiones simplificadas que nos permitirán ir aprendiendo los detalles y poniendo a punto las herramientas
Documentación ACC | Descripción |
---|---|
ACC0 | Versión "Hola Mundo". Memoria ROM de 2K con registro S para su direccionamiento y Registro G (15 bits) para lectura de instrucciones |
ACC1 | Unidad de control que le permite ejecutar las instrucciones TCF (salto incondicional) y NOOP (no operación). Modo de ejecución automático y manual, seleccionable mediante pulsador |
ACC2 | Incorpora registro A (15 bits). Instrucción CA para cargar un dato almacenado en memoria en el acumulador A |
ACC3 | Por definir |
ACC4 | Por definir |
.... | .... |
(Más recientes primero)
-
2016/Agosto/30: Publican el enlace a la wiki del ACC en el resumen de links de Evil Mad Scientist
-
2016/Agosto/23: VideoBlog 23: ACC: Apollo CPU Core
-
2016/Agosto/22: Publicado el ACC1
-
2016/Agosto/16: Publicado el ACC0
-
2016/Julio/29: Empecé a buscar más información y preparé mi ebook para leer durante las vacaciones: Enlace al tuit
-
2016/Julio/26: Después de terminar la migración de la Icezum Alhambra a Kicad, se me metió en la cabeza la idea de hacer el micro del apollo en Verilog: Enlace al tuit
-
2016/Julio/09: Noticia sobre la publicación del código fuente del apollo en Github
-
2016/Julio/07: Código subido al repo de github
- Juan González-Gomez (Obijuan)
- Código: licencia GPL
- El resto de material: Imágenes, textos, diagramas, vídeos... Creative Commons Attribution-ShareAlike 4.0 International License
Código | Resto material |
---|---|
Recopilación de informacion sobre la CPU del Apollo XI
- Computador de Navegación del Apollo (Wikipedia)
- Módulo de Mando (Wikipedia)
- Módulo lunar (Wikipedia)
- Apollo XI (Wikipedia)
- Noticia sobre la publicación del código fuente del apollo en Github
- Repositorio del software del Apollo en github
- VirtualAGC: Apollo Guidance Computer Software. Herramientas para trabajar con la cpu del Apollo (Toolchain)
- Implementacion del AGC en Verilog, para FPGAs privativas de Alterna
- Ibiblio: AGC home page. Muchísima información con todos los detalles para construir una réplica del AGC
- Ibliblio:AGC assembly language manual. Manual del lenguaje ensamblador del AGC
- Documentación sobre la réplica del AGC de John Pultorak
- A Glimpse into the Apollo Guidance Computer. Entrada en el blog de un profesor de la universidad de Chicago, sobre el AGC
- Cápsula del Apollo 11 escaneada en 3D. Paseo virtual
- Imagen Computador de navegación: Wikimedia Commons, Dominio público.
- Imagen Módulo de mando De NASA, Dominio público.
- Imagen módulo lunar De Neil Armstrong - NASA Apollo. Prepared and restored by Kipp Teague., Dominio público.