¿Flash?¿BIOS?¿Cores?¿Firmware?

Discursiones en general sobre el proyecto que no tienen cabida en otro foro / General discussion for uncateorized topics about the ZX-Uno project
Avatar de Usuario
Quest
Mensajes: 900
Registrado: 27 Sep 2015, 00:20

Re: ¿Flash?¿BIOS?¿Cores?¿Firmware?

Mensaje por Quest » 14 Sep 2016, 21:17

Uto escribió: ¿Y qué es lo que hace que la FPGA cargue el core de Spectrum nada más empezar? ¿hay un programa a más bajo nivel aún o simplemente de alguna manera la FPGA "sabe" que tiene que hacerlo?
La FPGA, aparte de la parte programable, tiene otra pequeña parte que "trabaja sola", por decirlo de algún modo. Permite por defecto conectarle una Flash serie (SPI) o una flash paralelo (BPI) a unos pines determinados de la misma, y lo que hace nada más recibir corriente es conectarse a la flash en cuestión y buscar en $0000 el core desde el que arrancar (mejor dicho, el bitstream con el que "llenar sus celdas" y empezar a funcionar como un nuevo hardware).

En nuestro caso, tenemos en $0000 un header especial, que "redirige" la carga a otro offset de la flash para la carga del core de Spectrum.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: ¿Flash?¿BIOS?¿Cores?¿Firmware?

Mensaje por Uto » 14 Sep 2016, 21:20

Quest escribió:
Uto escribió: ¿Y qué es lo que hace que la FPGA cargue el core de Spectrum nada más empezar? ¿hay un programa a más bajo nivel aún o simplemente de alguna manera la FPGA "sabe" que tiene que hacerlo?
La FPGA, aparte de la parte programable, tiene otra pequeña parte que "trabaja sola", por decirlo de algún modo. Permite por defecto conectarle una Flash serie (SPI) o una flash paralelo (BPI) a unos pines determinados de la misma, y lo que hace nada más recibir corriente es conectarse a la flash en cuestión y buscar en $0000 el core desde el que arrancar.

En nuestro caso, tenemos en $0000 un header especial, que "redirige" la carga a otro offset de la flash para la carga del core de Spectrum.
Vale, misterio entendido, ¡gracias!

Avatar de Usuario
mcleod_ideafix
Mensajes: 831
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: ¿Flash?¿BIOS?¿Cores?¿Firmware?

Mensaje por mcleod_ideafix » 14 Sep 2016, 22:04

Uto escribió:Por otro lado, y entendiendo que los cores son siempre igual de grandes, en un momento dado si hay equipos a implementar muy sencillos (pongamos que queremos implementar una calculadora y una máquina Pong) es posible que en la FPGA nos cupieran ambos circuitos a la vez. El problema es que si hay dos circuitos, al arrancar el core arrancarían ambos, y si ambos están conectados a los dispositivos de entrada (teclado, joystick) y salida (pantalla, audio) se puede montar un cacao fino. ¿voy bien?
Sí. Lo que tú persigues es tener dos circuitos independientes que comparten recursos externos. Si ambos caben, el único problema sería determinar cuál de ellos se queda dormido y cuál es el que trabaja. Esto puede solucionarse por ejemplo usando una de las señales del bus de expansión: poniéndola a masa se activa un circuito del core, y dejándola sin conectar se activa el otro (por poner un ejemplo).
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: ¿Flash?¿BIOS?¿Cores?¿Firmware?

Mensaje por Uto » 14 Sep 2016, 22:53

mcleod_ideafix escribió: Sí. Lo que tú persigues es tener dos circuitos independientes que comparten recursos externos. Si ambos caben, el único problema sería determinar cuál de ellos se queda dormido y cuál es el que trabaja. Esto puede solucionarse por ejemplo usando una de las señales del bus de expansión: poniéndola a masa se activa un circuito del core, y dejándola sin conectar se activa el otro (por poner un ejemplo).
Al final lo voy a entender y todo :-)

¡Gracias por las explicaciones y la paciencia! :-)

Responder