Je viens d'un milieu de programmation et je ne me suis pas trop occupé du matériel ou du firmware (tout au plus un peu électronique et Arduino).
Quelle est la motivation à utiliser des langages de description matérielle (HDL) tels que Verilog et VHDL sur des langages de programmation comme C ou certains assembleurs?
Cette question est-elle une question de choix?
J'ai lu que le matériel, dont le micrologiciel est écrit dans un HDL, a un net avantage à exécuter les instructions en parallèle. Cependant, j'ai été surpris de voir des discussions exprimant des doutes quant à l'écriture du firmware en C ou Assembly (comment Assembly est-il approprié si vous n'avez pas nécessairement de CPU?), Mais j'ai conclu que c'était aussi une option.
Par conséquent, j'ai quelques questions (n'hésitez pas à expliquer quoi que ce soit):
Un firmware peut vraiment être écrit en HDL ou dans un langage de programmation logicielle, ou est-ce juste une autre façon d'effectuer la même mission? J'adorerais des exemples du monde réel. Quelles contraintes résultant de chaque option?
Je sais qu'une utilisation courante du micrologiciel par rapport au logiciel est dans les accélérateurs matériels (tels que les GPU, les adaptateurs réseau, les accélérateurs SSL, etc.). Si je comprends bien, cette accélération n'est pas toujours nécessaire, mais seulement recommandée (par exemple, dans le cas de SSL et d'accélération d'algorithmes complexes). Peut-on choisir entre firmware et logiciel dans tous les cas? Sinon, je serais heureux des cas dans lesquels le firmware est clairement et sans équivoque approprié.
J'ai lu que le firmware était principalement gravé sur ROM ou flash. Comment est-il représenté là-dedans? En bits, comme un logiciel? Si oui, quelle est la profonde différence? Est-ce la disponibilité de circuits adaptés dans le cas de firmware?
Je suppose que j'ai fait une erreur ici et là dans certaines hypothèses, veuillez me pardonner. Je vous remercie!