CPU en el emulador de circuito

5

Idea:

Ejecute un emulador 68000 en una PC y conecte la PC a un sistema 68000 existente, reemplazando la CPU con un cable plano que va a la PC.

Me doy cuenta de que la emulación no sería un ciclo exacto, pero ese no es el objetivo.

Pregunta: ¿cuánto costaría en términos de lógica de cola entre los sistemas, mínimo?

Tengo algunas ideas locas: El puerto IDE en la PC es de 5 voltios. IDE es básicamente un puerto paralelo de 16 bits. El 68000 tiene bus de datos de 16 bits. ¿Tal vez algún pestillo para mantener la dirección de memoria de 20 bits? Los flancos de reinicio se pueden almacenar y leer en el emulador?

    
pregunta Prof. Falken

4 respuestas

4

Obtenga una placa FPGA estilo PCI que pueda usar IO genéricas para la conexión 68000 de destino. Implemente su sistema de control en el FPGA y escriba software para decirle qué hacer. Eso es básicamente hacer tu propio kit de ICE. Si los kits comerciales de ICE son tremendamente caros (verifique y averigüe si lo son, no lo sé), esto podría potencialmente ser más barato y le dará control sobre cómo funciona. Revise las placas Raggedstone, Broaddown o Mini-Can FPGA, son tablas relativamente baratas, pero no están seguras de si tienen suficientes pines IO accesibles para lo que necesita. Luego, consulte OpenCores para obtener bloques PCI de código abierto y otras cosas que pueden ser útiles. Es posible que también deba agregar algunos cambios de nivel en un pequeño complemento de PCB a estas placas. Busque los libros blancos de Xilinx / Altera sobre el uso de Interruptores rápidos entre 3.3V FPGA y 5V PCI, conectar las otras conexiones a un socket de 5V 68000 sería esencialmente el mismo proceso.

Como recuerdo, el DIP 68000 tiene 68 pines, y algunos de ellos no se usan en algunos sistemas, como Amiga no recomienda el uso de algunos de los pines periféricos de estilo 6800, y se desconectan en sistemas Amiga posteriores. / p>     

respondido por el billt
3

Me imagino que esto sería casi imposible de hacer.

En primer lugar, el tiempo es crítico en una CPU.

La CPU, mientras que el "dispositivo" maestro en el sistema, no es el maestro absoluto de todos.

Es esclavo del reloj del sistema.

Tu PC y su interfaz, y el emulador, tendrían que ser esclavos de este reloj maestro.

La interfaz IDE ciertamente no podría hacer eso.

Necesitaría una interfaz específicamente construida que emule todas las señales y líneas de control (que son críticas en cuanto a tiempo), además de proporcionar todas las líneas de datos y direcciones (y hay muchas). Con eso podría ser posible hacerlo, pero sería difícil y costoso. Es mejor simplemente emular todo el sistema en total o usar un chip 68000 real.

    
respondido por el Majenko
3

Dependiendo del sistema, puede o no ser capaz de engañar al hardware objetivo para que "piense" que tenía un 68K presente. En algunos (la mayoría) de los sistemas, como dijo Majenko, tendrías que responder a ciertas señales en tiempo real, lo que sería un dolor. Sin embargo, si el hardware de destino no tiene varios maestros de bus, es posible que pueda salirse con la suya. Tendrías que investigar realmente los requisitos de tiempo del sistema en cuestión. Si puede manejar la ejecución a velocidades de reloj extremadamente bajas, o permite que el reloj se suspenda y se reinicie, la perspectiva es más esperanzadora.

Pero hay otros dos problemas aquí.

Uno es que no desea conectar el bus de datos del hardware de destino directamente al bus IDE de su PC. El objetivo solo debe llevar datos al bus de datos de la PC cuando la PC así lo desea, por lo que necesitará un búfer bidireccional, decodificado para responder a una dirección adecuada en el mapa de memoria de la PC. Usted intuyó correctamente que necesitaría un búfer para capturar datos desde la PC para el bus de dirección de destino.

El otro, y probablemente más doloroso, sería configurar el software de la PC para admitir esto. Tendría que asignar al menos un par de direcciones en la memoria de la PC o en los mapas de E / S para acceder a este adaptador del sistema de destino, y con los sistemas operativos modernos, esto no ocurre sin un controlador de dispositivo. Entonces, si desea continuar con esto, necesita saber cómo hacerlo o estar preparado para aprenderlo.

    
respondido por el JustJeff
2

En realidad, lo que estás describiendo es bastante parecido a un emulador en circuito (ICE). Para los chips más populares como el 68000, generalmente encontrarás que puedes comprar un ICE como este para el 68000.

Dado que un ICE necesita una forma de interactuar con el usuario además de la placa de circuito de destino, a menudo se usa una PC para ese propósito. Un cable del ICE se conectará a la placa de circuito en lugar del chip de la CPU y otro se conectará a la PC.

Aunque quizás vaya más allá del alcance de su pregunta, es interesante observar que cuando se está diseñando un nuevo chip de CPU, generalmente se simulará en el software de otra computadora existente primero y luego se construirá un ICE con el chip real La producción es el último paso. Esto se debe a que es mucho más barato hacer un ICE que producir un chip de CPU complicado la primera vez.

    
respondido por el JonnyBoats

Lea otras preguntas en las etiquetas