Placas Spartan 6 XC6SLX16

Otras placas, clones o aparatos basados en FPGA / Oher FPGA based clones/devices/boards
Avatar de Usuario
DistWave
Mensajes: 183
Registrado: 14 Oct 2015, 19:24
Ubicación: Zaragoza

Placas Spartan 6 XC6SLX16

Mensaje por DistWave » 08 Ene 2018, 15:27

Curioseando por eBay he visto estas dos placas:

Spartan 6 XC6SLX16 con 32 MB SDRAM por 18€
Imagen
https://www.ebay.es/itm/112548985135


Spartan 6 XC6SLX16 con 256 MB DDR3 por 30€
Imagen
https://www.ebay.es/itm/112643707681


Aunque no tienen slot para SD, salidas de video ni sonido, etc por el precio podrían ser buenas candidatas como placa base para hacer un proyecto de ZXUNO expandido siguiendo la estrategia del MISTer, añadiendo una placa de expansión con una SRAM y los puertos...

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: Placas Spartan 6 XC6SLX16

Mensaje por Quest » 08 Ene 2018, 15:35

Vaya, te me has adelantado xD pensaba madurarlo un poco antes...

Hace un tiempo que tengo una de esas, muy baratitas (yo la pillé por Aliexpress, la versión con SDRAM), me he diseñado un HAT para añadire los conectores y demás y ya he portado el core de PC con 32Mb de RAM y sonido Adlib + DSS. Win 3.0 stá funcionando en 640x480, así como Visual player y demás, etc. La verdad es que es una delicia.

Ando ahora a medias de portar el de Amiga, aunque aún falta para terminarlo (hay que afinar con el softcore de OpenRisc para que chute con esta SDRAM), de momento lo necesario entra justito en la LX16, pero entra :)

La verdad es que no había pensado que fuera un nuevo ZXuno sino algo aparte, algo como ZLX16 o algo así :lol: (el 16 puede pensarse como .... para cores 16 bits -algunos-, o por la nomenclatura de esta FPGA... :roll: )
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
Kyp
Mensajes: 240
Registrado: 18 May 2016, 20:16

Re: Placas Spartan 6 XC6SLX16

Mensaje por Kyp » 08 Ene 2018, 16:32

¡Qué interesante! Y si ya hay cores portados más. Pensando en comprar una... ¿tenéis un UCF para la placa?

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Placas Spartan 6 XC6SLX16

Mensaje por antoniovillena » 08 Ene 2018, 16:43

Estas placas las compramos hace tiempo los del equipo ZX-Uno para experimentar. La de Quest y la mía son el modelo antiguo que son dos PCBs separadas (placa core y placa addon) mientras que McLeod se la compró después y está en una placa como la que muestra DistWave. En mi caso le desoldé la memoria SDRAM y le soldé una SRAM de 2Mb. Generé unos pocos cores cambiando el .ucf y adapté el firmware. De hecho el firmware que puse para Next era este exactamente (lo único que hice para Next fue regenerar el core ya que el .ucf es distinto).

Subo un par de fotos. El DAC es de 18 bits, es un addon para zxuno recableado. También le puse SD, PS/2 para teclado/ratón y joystick. No le puse AD724, por lo que sólo funciona el VGA y el Scart (a través de adaptador VGA-Scart).

Aquí pongo el .ucf empleado.

Código: Seleccionar todo

# Clocks & debug
NET "clk50mhz"        LOC="A10"  | IOSTANDARD = LVCMOS33;
NET "testled"         LOC="A2"   | IOSTANDARD = LVCMOS33;

# Video output
NET "r<2>"            LOC="H2"   | IOSTANDARD = LVCMOS33;
NET "r<1>"            LOC="G1"   | IOSTANDARD = LVCMOS33;
NET "r<0>"            LOC="J1"   | IOSTANDARD = LVCMOS33;
#NET "rl<2>"           LOC="H1"   | IOSTANDARD = LVCMOS33;
#NET "rl<1>"           LOC="K1"   | IOSTANDARD = LVCMOS33;
#NET "rl<0>"           LOC="K2"   | IOSTANDARD = LVCMOS33;
NET "g<2>"            LOC="M2"   | IOSTANDARD = LVCMOS33;
NET "g<1>"            LOC="L1"   | IOSTANDARD = LVCMOS33;
NET "g<0>"            LOC="N1"   | IOSTANDARD = LVCMOS33;
#NET "gl<2>"           LOC="M1"   | IOSTANDARD = LVCMOS33;
#NET "gl<1>"           LOC="P1"   | IOSTANDARD = LVCMOS33;
#NET "gl<0>"           LOC="P2"   | IOSTANDARD = LVCMOS33;
NET "b<2>"            LOC="R2"   | IOSTANDARD = LVCMOS33;
NET "b<1>"            LOC="E3"   | IOSTANDARD = LVCMOS33;
NET "b<0>"            LOC="R1"   | IOSTANDARD = LVCMOS33;
#NET "bl<2>"           LOC="E4"   | IOSTANDARD = LVCMOS33;
#NET "bl<1>"           LOC="F3"   | IOSTANDARD = LVCMOS33;
#NET "bl<0>"           LOC="F4"   | IOSTANDARD = LVCMOS33;
NET "hsync"           LOC="F2"   | IOSTANDARD = LVCMOS33;
NET "vsync"           LOC="F1"   | IOSTANDARD = LVCMOS33;
NET "stdn"            LOC="H3"   | IOSTANDARD = LVCMOS33;
NET "stdnb"           LOC="B2"   | IOSTANDARD = LVCMOS33;

# Sound input/output
NET "audio_out_left"  LOC="B1"   | IOSTANDARD = LVCMOS33;
NET "audio_out_right" LOC="C2"   | IOSTANDARD = LVCMOS33;
NET "ear"             LOC="H4"   | IOSTANDARD = LVCMOS33;

# Keyboard and mouse
NET "clkps2"          LOC="L4"  | IOSTANDARD = LVCMOS33 | PULLUP;
NET "dataps2"         LOC="F5"  | IOSTANDARD = LVCMOS33 | PULLUP;
NET "mouseclk"        LOC="L5"  | IOSTANDARD = LVCMOS33 | PULLUP;
NET "mousedata"       LOC="F6"  | IOSTANDARD = LVCMOS33 | PULLUP;

# SRAM
NET "sram_addr<0>"    LOC="C16"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<1>"    LOC="D16"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<2>"    LOC="E15"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<3>"    LOC="E16"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<4>"    LOC="F15"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<5>"    LOC="K15"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<6>"    LOC="M16"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<7>"    LOC="K16"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<8>"    LOC="L16"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<9>"    LOC="M15"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<10>"   LOC="T14"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<11>"   LOC="T15"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<12>"   LOC="R12"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<13>"   LOC="R14"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<14>"   LOC="R16"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<15>"   LOC="L14"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<16>"   LOC="K14"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<17>"   LOC="J14"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<18>"   LOC="H14"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<19>"   LOC="T13"  | IOSTANDARD = LVCMOS33;
NET "sram_addr<20>"   LOC="G14"  | IOSTANDARD = LVCMOS33;

NET "sram_data<0>"    LOC="G16"  | IOSTANDARD = LVCMOS33;
NET "sram_data<1>"    LOC="H15"  | IOSTANDARD = LVCMOS33;
NET "sram_data<2>"    LOC="H16"  | IOSTANDARD = LVCMOS33;
NET "sram_data<3>"    LOC="N16"  | IOSTANDARD = LVCMOS33;
NET "sram_data<4>"    LOC="T12"  | IOSTANDARD = LVCMOS33;
NET "sram_data<5>"    LOC="R15"  | IOSTANDARD = LVCMOS33;
NET "sram_data<6>"    LOC="P15"  | IOSTANDARD = LVCMOS33;
NET "sram_data<7>"    LOC="N14"  | IOSTANDARD = LVCMOS33;

NET "sram_we_n"       LOC="J16"  | IOSTANDARD = LVCMOS33;
NET "sram_ce_n"       LOC="F16"  | IOSTANDARD = LVCMOS33;
NET "sram_oe_n"       LOC="M14"  | IOSTANDARD = LVCMOS33;

# SPI Flash
NET "flash_cs_n"      LOC="T3"   | IOSTANDARD = LVCMOS33;
NET "flash_clk"       LOC="R11"  | IOSTANDARD = LVCMOS33;
NET "flash_mosi"      LOC="T10"  | IOSTANDARD = LVCMOS33;
NET "flash_miso"      LOC="P10"  | IOSTANDARD = LVCMOS33;
#NET "flash_ext1"      LOC=""  | IOSTANDARD = LVCMOS33;
#NET "flash_ext2"      LOC=""  | IOSTANDARD = LVCMOS33;

# SD/MMC
NET "sd_cs_n"         LOC="E2"   | IOSTANDARD = LVCMOS33;
NET "sd_clk"          LOC="D1"   | IOSTANDARD = LVCMOS33;
NET "sd_mosi"         LOC="E1"   | IOSTANDARD = LVCMOS33;
NET "sd_miso"         LOC="D3"   | IOSTANDARD = LVCMOS33;

# JOYSTICK
NET "joyup"           LOC="M4"   | IOSTANDARD = LVCMOS33 | PULLUP;
NET "joydown"         LOC="M3"   | IOSTANDARD = LVCMOS33 | PULLUP;
NET "joyleft"         LOC="J6"   | IOSTANDARD = LVCMOS33 | PULLUP;
NET "joyright"        LOC="J4"   | IOSTANDARD = LVCMOS33 | PULLUP;
NET "joyfire"         LOC="M5"   | IOSTANDARD = LVCMOS33 | PULLUP;
#NET "joyfire2"        LOC="N4"   | IOSTANDARD = LVCMOS33 | PULLUP;
#NET "joyfire3"        LOC=""  | IOSTANDARD = LVCMOS33 | PULLUP;
Aunque si queréis sacar adelante un proyecto basado en esto no os recomiendo cambiar el chip de SDRAM. Yo metería un chip de 512K ó 2M en la placa addon. De esta forma sobrarían menos pines para expansión, pero al menos tendréis SDRAM+SRAM. La SRAM es muy útil para portar los cores del ZX-Uno existentes.
Adjuntos
photo_2018-01-08_16-23-29.jpg
photo_2018-01-08_16-26-35.jpg

Avatar de Usuario
neuro_999
Mensajes: 692
Registrado: 06 Oct 2015, 10:14

Re: Placas Spartan 6 XC6SLX16

Mensaje por neuro_999 » 08 Ene 2018, 16:44

Ala, si que molaria con algun addon que tenga entradas/salidas.. Ahi entraran algunos cores mas de arcade que ya no entran en zxuno. :)
Habra qnir pensando en ir pidiendo una para hacer pruebas.

Enviado desde mi ONE A2003 mediante Tapatalk

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: Placas Spartan 6 XC6SLX16

Mensaje por Quest » 08 Ene 2018, 16:48

Antonio, en realidad tengo las dos, me compré la segunda versión después porque es más pequeña y es más fácil diseñarle un HAT o Wing para ponerle todo lo necesario, así que diseñe la PCB con el DAC VGA, SD, ps/2 doble, DB9 y SRAM 8 bits (para tener dos tipos de RAMs, opcional). Lo que pasa que aún no me ha llegado (están tardando), y tengo todo montado con duponts, como hicimos con la antigua. El UCF no corresponde entre una versión y otra de la placa LX16, ya que por optimización de rutado de la PCB Wing, lo hice diferente (además tampoco usa el fabricante los mismos pines de la FPGA, así que no había otra). En cuanto me llegue y compruebe que todo está OK, pondré el UCF correspondiente al Wing. En cualquier caso, uso de momento la SDRAM, porque en esta placa doy prioridad a los 16 bits de momento.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Placas Spartan 6 XC6SLX16

Mensaje por antoniovillena » 08 Ene 2018, 16:51

Kyp escribió:¡Qué interesante! Y si ya hay cores portados más. Pensando en comprar una... ¿tenéis un UCF para la placa?
Sí, pero usad el .ucf de Quest en lugar del que he puesto arriba. No sé si él le añadió expansión de SRAM del ZX-Uno, pero sí que tenía mapeados los pines del chip SDRAM que venía en la placa. Subo aquí los cores que generé, aunque no creo que sean de mucha utilidad por lo que comenté antes del cambio de chip. Ah, se me olvidaba, también cambié el chip de flash y le puse un W25Q128 (mismo que el zxuno).
Adjuntos
ficheros.zip
(427.42 KiB) Descargado 341 veces
photo_2018-01-08_16-49-15.jpg

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Placas Spartan 6 XC6SLX16

Mensaje por antoniovillena » 08 Ene 2018, 16:58

Quest escribió:Antonio, en realidad tengo las dos, me compré la segunda versión después porque es más pequeña y es más fácil diseñarle un HAT o Wing para ponerle todo lo necesario, así que diseñe la PCB con el DAC VGA, SD, ps/2 doble, DB9 y SRAM 8 bits (para tener dos tipos de RAMs, opcional). Lo que pasa que aún no me ha llegado (están tardando), y tengo todo montado con duponts, como hicimos con la antigua. El UCF no corresponde entre una versión y otra de la placa LX16, ya que por optimización de rutado de la PCB Wing, lo hice diferente (además tampoco usa el fabricante los mismos pines de la FPGA, así que no había otra). En cuanto me llegue y compruebe que todo está OK, pondré el UCF correspondiente al Wing. En cualquier caso, uso de momento la SDRAM, porque en esta placa doy prioridad a los 16 bits de momento.
Vaya, no sabía que lo tenías tan avanzado. En ese caso me compraré también el nuevo modelo de placa. Respecto al HAT ó Wing que has diseñado, ¿los tienes en venta?

Avatar de Usuario
neuro_999
Mensajes: 692
Registrado: 06 Oct 2015, 10:14

Re: Placas Spartan 6 XC6SLX16

Mensaje por neuro_999 » 08 Ene 2018, 17:06

Eso eso, a ver que modelo de placa es cn el que estais trabajando para ir pillando una, y para el hat me apunto tb si lo vendeis. Jeje.

Enviado desde mi ONE A2003 mediante Tapatalk

Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: Placas Spartan 6 XC6SLX16

Mensaje por Quest » 08 Ene 2018, 17:09

antoniovillena escribió: Vaya, no sabía que lo tenías tan avanzado. En ese caso me compraré también el nuevo modelo de placa. Respecto al HAT ó Wing que has diseñado, ¿los tienes en venta?
No, aún no me han llegado las PCBs del Hat (como decía, de momento uso los cables dupont para desarrollar). De hecho acabo de darme cuenta AHORA MISMO (al ir a subir las imágenes aquí) de que puse la huella del conector VGA en el lado incorrecto :tepego: así que bueno, montaré una para ver si todo el rutado es correcto y funciona bien y luego la corregiré en Eagle con el conector bien puesto y la mandaré hacer otra vez.

Mira el FAIL :oops:
Lx16Hat.png
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Responder