Comment puis-je expliquer la différence entre émulateur et simulateur en termes de langage de génie électrique?


Réponse 1:

Un simulateur est un logiciel qui exécute un modèle de matériel sur des processeurs ordinaires (comme X86), un émulateur est un matériel qui exécute un modèle de matériel. Le matériel d'un émulateur est généralement quelque chose comme des FPGA ou des ASIC qui peuvent exécuter des FSM rapidement - comme décrit dans HDL au niveau RTL pour la conception réelle du CI.

Les émulateurs sont principalement utiles pour valider un logiciel qui fonctionnera sur un système avant d'obtenir le vrai Silicon, car ils peuvent fonctionner plus près de la vitesse réelle. Ils ne modélisent pas les aspects de Silicon comme la synchronisation ou la gestion de l'alimentation, qui peuvent être modélisés dans des simulateurs logiciels.


Réponse 2:

Ne prenez pas cela comme un évangile, mais c'est peut-être un point de départ. Autant que je sache, un émulateur reproduit, dans le logiciel et le matériel, le logiciel et le matériel réels d'un autre produit. Pour cela, il recrée le matériel réel en tant que logiciel, puis recrée le logiciel d'exploitation sur ce matériel. Vous auriez donc une couche de logiciel (OS, programme, etc.) qui aurait une autre couche de logiciel (le matériel de l'appareil en cours de réplication) qui aurait une autre couche de logiciel (le logiciel s'exécutant dans le matériel émulé). Si je lance un programme de simulation électrique dans lequel j'ai recréé un matériel Super Nintendo, et à mon tour chargé la ROM pour Super Mario Brothers, c'est un émulateur.

Un simulateur, d'autre part, recrée l'effet de ce qui précède, mais ne cherche pas à le faire en reproduisant le matériel réel. Il est juste destiné à faire la même chose, c'est-à-dire que Super Mario fonctionne sur mon ordinateur.

J'espère que ça aide.