Filiprino escribió:Un FPGA no es un ASIC en tanto que FPGA significa Field Programmable Gate Array y ASIC significa Application-Specific Integrated Circuit.
Un FPGA no está diseñado para una tarea en concreto, no es «Application-Specific». Un ASIC sí.
Tienes toda la razón, una FPGA tal cual dice su nombre no es un ASIC. Desde que se puede usar para distintos fines, deja de ser directamente un ASIC. Se me ha ido la pinzaaaa. Lo siento.
Filiprino escribió:Lo de emulación hardware no tiene sentido, porque con un FPGA tienes una implementación hardware que reproduce bit por bit el diseño. Lo único que cambia de la implementación para tecnología FPGA con respecto a ASIC son las bibliotecas que te abstraen de las puertas lógicas (sintetizadores, bibliotecas de funciones).
La emulación software es lo que no tiene sentido salvo que tengas que emular "low cost". La emulación consiste basicamente en hacer lo mismo que un simulador, pero en hardware. Todo ello con el objeto de acelerar la ejecución. Es bit a bit... depende del nivel de abstracción que tengas en el modelo a ejecutar. La empresa de la noticia tiene un modelo de 68070 propio que de patas a fuera y su comportamiento es compatible con la serie 680x0, pero internamente no es idéntico bit a bit.
Recuerda que por ejemplo NXP tiene para los Freescale un firmware que le permite ejecutar programas de 68hc11. Eso también es emulación (basada en micro no en fpga).
Como veo que manejas el tema, te recuerdo que sintetizadores hay muy pocos. Todos ellos en mayor medida han salido de Synopsys o de Mentor. El ciclo de diseño para desarrollar un producto en un ASIC o una FPGA se diferencian sólo en el último paso de mapeado tecnológico que emplea una librería de células estándar/custom o la librería de tu FPGA. Otra cosa es que te quieras casar con Atmel, Xilinx u otro fabricante y al emplear un frontend propietario no te enteres de que herramientas estas empleando (es normalmente lo más cómodo, pero no eficiente).
Filiprino escribió:Cuando emulas es cuando ejecutas el código de descripción de hardware en el entorno de desarrollo mediante el simulador (ModelSIM, Icarus Verilog, ....).
No necesariamente... estas contaminado por los informáticos.... los emuladores han existido, y existían antes de que se tuviese la potencia y memoria necesaria para emular mediante software. Los simuladores son simuladores y sólo saben SIMULAR.... por eso cuando ejecutas una descripción/diseño en un simulador, lo que estás haciendo es SIMULANDO.
Mírate estos links y lo entenderás.
https://www.synopsys.com/verification/emulation.htmlhttps://www.mentor.com/products/fv/mult ... 097871a3cfhttps://www.aldec.com/en/solutions/hard ... _solutionsFiliprino escribió: Y cuando estás preparando para ASIC añades también simulación SPICE. Para proyectos grandes puedes con la FPGA tener el hardware funcionando en tiempo real sin necesidad de mandar a hacer el ASIC. Lo cual te permite ahorrar costes para desarrollar todo el software necesario. Es lo que se usa por ejemplo en el desarrollo de GPUs.
Ahora si que no te entiendo. Si haces un ASIC del que estamos hablando, es decir de un 68000, no se que pinta SPICE en el. SPICE es un simulador analógico y que tiene algo de dital-analógico (mixto). Fíjate lo que voy a decir. Espero no morir antes de ver un 68000 simulado en SPICE al completo. Me conformo con ver la simulación de las primeras 100 instrucciones de cualquier programa (aunque sean 100 nop).
Lee el primer enlace de Synopsys que he puesto o el segundo de Mentor. La emulación hardware se ideó para acelerar la verificación. Porque básicamente la simulación es lenta del capón. Pero no creas que por meter tu diseño en el emulador vas a volar. No, de eso nada, las velocidades de emulación son lentas con respecto al diseño final. Todo ello, porque el emulado incluye un montón de módulos para incrementar la observabilidad de tu diseño y a eso unido a la FPGA que no vas a poder hacerla rendir a mas de unos pocos cientos de megahercios.... El resultado de emular es ir a 15 o 30 KILO hercios. Frente a ir a milisegundos ... Una simulación de 4 días pasa a 8 horas... pero claro... eso sería un mísero segundo o menos con el producto final.
AP... que asco... me gusta el tema y he escrito una biblia prácticamente. Lo siento..
PD.- Por cierto, me he acordado de un emulador sotfware puro....MAME.... el mame es el ejemplo de un emulador software. Mira su código y verás que implementan una máquina de estado que va llamando a los módulos software que emulan el comportamiento de la maquina original (no bit a bit) y de patas a fuera, son capaces de sacar en una pantalla y hacer uso del volcado de la memoria original.