Multicartridge Atari con CPLD
- SpaceInvader
- Mensajes: 217
- Registrado: Jue Jul 17, 2014 4:01 pm
- Contactar:
Multicartridge Atari con CPLD
Presento mi nueva página web, es un multicartridge Atari con un CPLD de XILINX.
Link: https://gamemasterquilpue.000webhostapp ... n_CPLD.htm
Gracias a xt5 por su contribución, saludos.
Link: https://gamemasterquilpue.000webhostapp ... n_CPLD.htm
Gracias a xt5 por su contribución, saludos.
Última edición por SpaceInvader el Vie May 26, 2017 8:19 pm, editado 1 vez en total.
Re: Multicartridge Atari con CPLD
Si es que el código para la versión de 128KB, está basado en el código publicado (que es la versión para 1MB), entonces debería ser compatible con las ROMs del Turbosoftware de 128KB.
Felicitaciones por el trabajo!!
Felicitaciones por el trabajo!!
Re: Multicartridge Atari con CPLD
¿Cuál es la función del CPLD? Como que de repente me pierdo con las componentes "complejas" metidas en proyectos de fierros... ¿Qué cosas reemplaza además de las componentes lógicas de los multicart normales?
- SpaceInvader
- Mensajes: 217
- Registrado: Jue Jul 17, 2014 4:01 pm
- Contactar:
Re: Multicartridge Atari con CPLD
En este caso, el cpld reemplaza a unas 4 compuertas y 8 flip-flops D, dos integrados ttl, dependiendo del hardware en que se ha basado el programador original. Pero puede hacer mucho más, hay unas 800 compuertas usables en el xc9536xl.
Re: Multicartridge Atari con CPLD
Gracias space... mi duda nacía porque en tu página tienes un par de diagramas mostrando la configuración de la placa y la componentes usadas, pero no vi nada sobre comportas lógicas y webaditas de álgebra binaria a la que nos acostumbramos en la vieja escuela. Eso ya no se usa? Cómo se enseña ahora?
Re: Multicartridge Atari con CPLD
El CPLD solo reemplaza la lógica combinacional y secuencial tal como dice SpaceInvader, y aun así sigue siendo un proyecto 100% de fierros, lo único que cambia es que en vez de hacer conexiones en la placa entre componentes discretos, haces ese ruteo con las primitivas que te ofrece internamente el CPLD.
El CPLD (y los FPGAs) son programables de cualquier forma que puedas describir un sistema digital, y representar funciones booleanas, es decir con esquemáticos entre compuertas, de manera algebraica, etc.
La teoría de sistemas digitales que se enseña ahora no ha variado en las ultimas décadas, solo ha variado la forma en que puedes implementarla.
Es todo un mundo, y su curva de aprendizaje es muy empinada, antiguamente se usaba mucho esquemáticos y lenguajes como ABEL o CUPL (que utilizan álgebra booleana, tablas de verdad, etc), que para un proyecto como este cart funciona muy bien, pero para diseños gigantes como una CPU, Codec, GPU, etc., no te servirá en la practica.
En la actualidad los dos lenguajes estándares de descripción de hardware, que te permiten expresar diseños de forma mas productiva son VHDL y Verilog, han estado allí por mucho tiempo y es necesario aprender al menos uno ellos para entender bien como funciona el diseño de sistemas digitales de gran tamaño.
En la actualidad se buscan alternativas aun mas productivas para describir propiedad intelectual, de los candidatos que tienen un futuro prometedor está Chisel (basado en Scala) y Migen (basado en Python), y no es que utilices código Scala o Python que será usado "en el chip", si no que lo usas para "expresar un esquemático complejo".
Respecto a este cart, es 100% equivalente al cart de Turbosoftware (y no al Atarimax como dice el autor), aquí está su definición
El CPLD (y los FPGAs) son programables de cualquier forma que puedas describir un sistema digital, y representar funciones booleanas, es decir con esquemáticos entre compuertas, de manera algebraica, etc.
La teoría de sistemas digitales que se enseña ahora no ha variado en las ultimas décadas, solo ha variado la forma en que puedes implementarla.
Es todo un mundo, y su curva de aprendizaje es muy empinada, antiguamente se usaba mucho esquemáticos y lenguajes como ABEL o CUPL (que utilizan álgebra booleana, tablas de verdad, etc), que para un proyecto como este cart funciona muy bien, pero para diseños gigantes como una CPU, Codec, GPU, etc., no te servirá en la practica.
En la actualidad los dos lenguajes estándares de descripción de hardware, que te permiten expresar diseños de forma mas productiva son VHDL y Verilog, han estado allí por mucho tiempo y es necesario aprender al menos uno ellos para entender bien como funciona el diseño de sistemas digitales de gran tamaño.
En la actualidad se buscan alternativas aun mas productivas para describir propiedad intelectual, de los candidatos que tienen un futuro prometedor está Chisel (basado en Scala) y Migen (basado en Python), y no es que utilices código Scala o Python que será usado "en el chip", si no que lo usas para "expresar un esquemático complejo".
Respecto a este cart, es 100% equivalente al cart de Turbosoftware (y no al Atarimax como dice el autor), aquí está su definición
Código: Seleccionar todo
-- Engineer: Robin Edwards
-- Create Date: 09:31:23 02/22/2015
-- atarimax 8-mbit banking scheme
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity BankSwitch is
port (
CCTL, CLK : in std_logic; -- cartridge 'CCTL, PHI2
ADDR_IN : in std_logic_vector (7 downto 0); -- low 8 address lines of cartridge bus
BANK_OUT : out std_logic_vector (5 downto 0); -- to high EEPROM address bits
RD5 : out std_logic -- cart enable
);
end BankSwitch;
architecture Behavioral of BankSwitch is
signal cart_disabled : std_logic;
begin
RD5 <= NOT cart_disabled;
process (CLK)
begin
if (rising_edge(CLK)) then
if (CCTL = '0') then
if (ADDR_IN(7) = '1') then
cart_disabled <= '1';
BANK_OUT <= "000000";
else
cart_disabled <= '0';
BANK_OUT <= ADDR_IN(5 downto 0);
end if;
end if;
end if;
end process;
end Behavioral;
Re: Multicartridge Atari con CPLD
Tengo tantas cosas pendientes que no sé si meterme en una más...
... igual me pican los dedos!!!
Gracias por aclararlo, tocayo.
... igual me pican los dedos!!!
Gracias por aclararlo, tocayo.
Re: Multicartridge Atari con CPLD
Estimados:
Tiempo atraz (en realidad años atras) me tente con un proyecto de cartridge para atari 8bits que aparece en AtariAge. Pero este año con la ayuda de Space Invader logre que funcionara.
Es un Cartridge para Atari de 8 Bits, que permite utilizar las imagenes de 128k y 512k creadas para los AtariMax.
El armado es bastante sencillo, ya que solo requiere 2 IC, el EPROM y el Xilinx. Ademas de 4 componenetes.
Uno de esos componentes es un regulador de voltaje, ya que si bien el Xilinx puede manipular datos a 5v, para su operacion solo funciona con 3,3V.
Lo mas complicado, en un principio fue la programacion del Xilinx, pero con la ayuda de Space Invader (quien programo los Xilinx) logre que el cart operara correctamente.
Lo mejor de este proyecto es que el PCB cabe exacto en los Catridge XEGS del tipo Ruged (los con las mismas lineas en los costado). Pero queda bastante bien en los XEGS planas y en algunas otras carcazas antiguas de Atari.
Todos los archivos de la placa y para programar el XC9536XL estan en el link de mas arriba. Pero OJO, que lo que mas me demoro fue comprar el XC9536 sin la XL.
Otro dato importante es que la placa esta diseñada para los EEprom del tipo 29 y para que por ejemplo funcionen los 27c040 hay que cortar la pista entre los pines 32 y 31, y realizar un puente del pin 1 al pin 31.
Por ahora me faltan algunos XILINX pero vienen en camino, cuando los tenga listos me comprometo a regalar 3 a los usuarios de este foro.
Saludos a todos y cualquier duda, estoy para contestarla.
Tiempo atraz (en realidad años atras) me tente con un proyecto de cartridge para atari 8bits que aparece en AtariAge. Pero este año con la ayuda de Space Invader logre que funcionara.
Es un Cartridge para Atari de 8 Bits, que permite utilizar las imagenes de 128k y 512k creadas para los AtariMax.
El armado es bastante sencillo, ya que solo requiere 2 IC, el EPROM y el Xilinx. Ademas de 4 componenetes.
Uno de esos componentes es un regulador de voltaje, ya que si bien el Xilinx puede manipular datos a 5v, para su operacion solo funciona con 3,3V.
Lo mas complicado, en un principio fue la programacion del Xilinx, pero con la ayuda de Space Invader (quien programo los Xilinx) logre que el cart operara correctamente.
Lo mejor de este proyecto es que el PCB cabe exacto en los Catridge XEGS del tipo Ruged (los con las mismas lineas en los costado). Pero queda bastante bien en los XEGS planas y en algunas otras carcazas antiguas de Atari.
Todos los archivos de la placa y para programar el XC9536XL estan en el link de mas arriba. Pero OJO, que lo que mas me demoro fue comprar el XC9536 sin la XL.
Otro dato importante es que la placa esta diseñada para los EEprom del tipo 29 y para que por ejemplo funcionen los 27c040 hay que cortar la pista entre los pines 32 y 31, y realizar un puente del pin 1 al pin 31.
Por ahora me faltan algunos XILINX pero vienen en camino, cuando los tenga listos me comprometo a regalar 3 a los usuarios de este foro.
Saludos a todos y cualquier duda, estoy para contestarla.
- SpaceInvader
- Mensajes: 217
- Registrado: Jue Jul 17, 2014 4:01 pm
- Contactar:
Re: Multicartridge Atari con CPLD
Hola Chongo, al fin se vieron tus posteos. Aprovecho de arreglar mis links, tengo nuevo sitio web, el otro murió y nos echaron a todos jaja
Este cart es bastante sencillo de realizar, excepto por la grabación del Xilinx, que es complicada. Yo estuve como 10 meses tratando de grabarlo...
Saludos, y bienvenido al foro.
Este cart es bastante sencillo de realizar, excepto por la grabación del Xilinx, que es complicada. Yo estuve como 10 meses tratando de grabarlo...
Saludos, y bienvenido al foro.
Re: Multicartridge Atari con CPLD
Felicidades por el proyecto!!Chongo escribió:Estimados:
Uno de esos componentes es un regulador de voltaje, ya que si bien el Xilinx puede manipular datos a 5v, para su operacion solo funciona con 3,3V.
....
Todos los archivos de la placa y para programar el XC9536XL estan en el link de mas arriba. Pero OJO, que lo que mas me demoro fue comprar el XC9536 sin la XL.
Otro dato importante es que la placa esta diseñada para los EEprom del tipo 29 y para que por ejemplo funcionen los 27c040 hay que cortar la pista entre los pines 32 y 31, y realizar un puente del pin 1 al pin 31.
No entiendo, te demoraste en comprar los XC9536 "sin la XL", pero el diseño es para los XC9536XL?
Los XC9536XL son tolerantes a los circuitos de 5V, y tienen drive suficiente para comunicarse con ellos, ante las dudas tienes que ver que el VIH, VIL, VOH, VOL tengan los umbrales adecuados especificados en la hoja de datos.
Me quedan algunos XC9536XL por ahí, pero no recuerdo el tipo de paquete, voy a revisar.