Me disculpáis que suba un tema tan antiguo pero me quedan algunas dudas que, si os apetece, podemos debatir.
radastan escribió:La pega, por lo que no son 100% perfectos, es que es imposible emular de esta forma un hardware real. Las puertas lógicas tienen tiempos de propagación, los datos no llegan de forma simultánea a todos lados (en un emulador si)
No entiendo que se puede afirmar tan categóricamente que es imposible, los tiempos de propagación, por tomarlos como ejemplo, se pueden emular. Dependerá si el enfoque de la emulación es a nivel de componentes o del dispositivo a emular y tanto con un enfoque o con otro, los tiempos de propagación no son un problema insalvable.
radastan escribió:Una FPGA no es un emulador, no hay sistema operativo. Las siglas FPGA vienen de "Field Programmable Gate Array", es decir "Campo matricial de puertas programables". Contiene bloques lógicos (puertas lógicas) cuya interconexión y funcionalidad puede ser configurada.
Esta lógica programable no emula un circuito, lo reproduce.
Tampoco lo acabo de comprender. Una FPGA es un conjunto de puertas programables, el resultado de su funcionamiento depende de la interpretación que el usuario realice sobre el dispositivo al que emula, ¿cómo un campo matricial de puertas programables reproduce el comportamiento físico de una resistencia, un inductor o un condensador? ¿qué tipo de condensador, de qué material? La física de estos materiales es compleja y mediante software o mediante FPGA cualquier resultado solo va a ser una aproximación, de nuevo el resultado de una interpretación personal en base a modelos y simplificaciones propias. En este debate es raro que estemos debatiendo sobre el caso de un diseño lógico puro, una combinación o secuencia más o menos sofisticada de puertas lógicas, algo que sí se resuelve con una FPGA.
radastan escribió:Evidentemente para poder clonar un hardware debemos conocerlo al 100%,
Que no es el caso de microprocesadores como el Z80 o los 65xx y derivados para los que conocemos el juego de instrucciones pero no el "firmware", las microinstrucciones, si puedo abusar de estos términos, que determinan su comportamiento interno real. Más aún cuando algunos procesadores eran diseñados según los criterios de cada fabricante basándose solo y exclusivamente en la documentación publicada, es decir, el juego de instrucciones y poco más.
radastan escribió:QUÉ PUEDE HACER UNA FPGA QUE NO PUEDA HACER UN EMULADOR
Pues muy simple: funcionar exactamente igual.
Pero creo que no es el caso. Por poner un ejemplo para apoyar mi tesis, en el caso del ZX Spectrum ¿el comportamiento interno y externo es idéntico al 100%? ¿es posible diseñar un test para detectar si es un Spectrum, un emulador software, una FPGA?