Multicartridge Atari con CPLD

Proyectos realizados por los Retronianos, también links a proyectos externos y sitios relacionados con Modding y DIY... A crear si ha dicho...

Multicartridge Atari con CPLD

Notapor SpaceInvader » Sab Feb 04, 2017 3:13 am

Presento mi nueva página web, es un multicartridge Atari con un CPLD de XILINX.

Imagen

Link: http://spaceinvader.comuf.com/Multicart ... n_CPLD.htm

Gracias a xt5 por su contribución, saludos.
Avatar de Usuario
SpaceInvader
 
Mensajes: 159
Registrado: Jue Jul 17, 2014 5:01 pm

Re: Multicartridge Atari con CPLD

Notapor xt5 » Dom Feb 05, 2017 8:05 pm

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!!
Avatar de Usuario
xt5
 
Mensajes: 284
Registrado: Vie Feb 08, 2013 1:56 pm

Re: Multicartridge Atari con CPLD

Notapor vitoco » Jue Feb 09, 2017 11:06 pm

¿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?
Avatar de Usuario
vitoco
 
Mensajes: 1787
Registrado: Lun Ene 28, 2013 5:47 pm

Re: Multicartridge Atari con CPLD

Notapor SpaceInvader » Vie Feb 10, 2017 3:24 am

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.
Avatar de Usuario
SpaceInvader
 
Mensajes: 159
Registrado: Jue Jul 17, 2014 5:01 pm

Re: Multicartridge Atari con CPLD

Notapor vitoco » Vie Feb 10, 2017 7:36 am

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?
Avatar de Usuario
vitoco
 
Mensajes: 1787
Registrado: Lun Ene 28, 2013 5:47 pm

Re: Multicartridge Atari con CPLD

Notapor xt5 » Vie Feb 10, 2017 12:43 pm

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

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;
Avatar de Usuario
xt5
 
Mensajes: 284
Registrado: Vie Feb 08, 2013 1:56 pm

Re: Multicartridge Atari con CPLD

Notapor vitoco » Sab Feb 11, 2017 10:26 pm

Tengo tantas cosas pendientes que no sé si meterme en una más...

... igual me pican los dedos!!! :oops:

Gracias por aclararlo, tocayo.
Avatar de Usuario
vitoco
 
Mensajes: 1787
Registrado: Lun Ene 28, 2013 5:47 pm


Volver a Proyectos, Modding y Restauraciones

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron