que plusieurs étapes que tu définis comme très longues semblent automatiques avec ta pile?
Pas que avec ma pile. Tous les logiciels de placement et de routage de microélectronique ont des algorithmes pour faire le travail à la place des ingénieurs.
Voici un exemple de placement/routage avec l'outil Cadence Encounter. Comme tu peux le constater, ça peut se résumer à cliquer sur les boutons place et route.
Il est à noter que l'on peut aussi piloter le logiciel avec des scripts tcl pour n'avoir aucune intervention manuelle à faire. D'une manière générale, tous les outils de μélectronique sont pilotable par des scripts tcl.
Mis a part l'échelle (de quelques cm pour l'électroniques à quelques mm pour la μélec) qu'est-ce qui, selon toi, l'explique?
J'ignore pourquoi les logiciels d'électroniques ne sont pas automatisés. Mais je peux expliquer pourquoi il est nécessaire que ceux de μélectroniques le soient.
Les netlists ont tendance à être assez grosses : l'ALU du tuto fait à peine 949 portes logiques, mais sur un design un peu plus conséquent tel que le microcontrôleur ARM Cortex M0 (le plus petit des ARM) on passe déjà à 21026 portes logiques (toi aussi tu peux faire joujou avec les ARM Cortex M0 et M3). Et je ne parle même pas des dernières cartes graphiques où le nombre de portes logiques dépasse le milliards.
=== CORTEXM0INTEGRATION ===
Number of wires: 20875
Number of wire bits: 21178
Number of public wires: 20875
Number of public wire bits: 21178
Number of memories: 0
Number of memory bits: 0
Number of processes: 0
Number of cells: 21026
AND2X2 522
AOI21X1 1477
AOI22X1 971
BUFX2 134
DFFPOSX1 976
DFFSR 358
INVX1 2764
MUX2X1 34
NAND2X1 2697
NAND3X1 1513
NOR2X1 2661
NOR3X1 351
OAI21X1 5379
OAI22X1 295
OR2X2 321
XNOR2X1 426
XOR2X1 147
Il est tout simplement inhumain de placer et router un tel nombre de portes logiques à la main.
L'autre bénéfice de l'automatisation des outils via des scripts est la possibilité de relancer les flots pour obtenir des résultats répétables. Parce que les flots, tu vas très souvent les relancer pour converger vers le résultat final :
*lance le flot*
- zut, la STA n'est pas validée
*modifie les contraintes de timings*
*relance le flot*
- maintenant je vois qu'on peut essayer d'améliorer la densité de circuit
*modifie les paramètres de densité*
*relance le flot*
...
typiquement, la conception d'une puce va ressembler à ça
écrire configuration initiale
exécuter flot
tant que résultat pas satisfaisant faire
modifier paramètres
relancer flot
fin faire
ouvrir la bouteille de champagne
[^] # Re: lu que la moitié, mais j'ai une bonne raison...
Posté par jtremesay (site web personnel) . En réponse au journal Conception d’un circuit intégré avec Qflow. Évalué à 4.
Pas que avec ma pile. Tous les logiciels de placement et de routage de microélectronique ont des algorithmes pour faire le travail à la place des ingénieurs.
Voici un exemple de placement/routage avec l'outil Cadence Encounter. Comme tu peux le constater, ça peut se résumer à cliquer sur les boutons place et route.
Il est à noter que l'on peut aussi piloter le logiciel avec des scripts tcl pour n'avoir aucune intervention manuelle à faire. D'une manière générale, tous les outils de μélectronique sont pilotable par des scripts tcl.
J'ignore pourquoi les logiciels d'électroniques ne sont pas automatisés. Mais je peux expliquer pourquoi il est nécessaire que ceux de μélectroniques le soient.
Les netlists ont tendance à être assez grosses : l'ALU du tuto fait à peine 949 portes logiques, mais sur un design un peu plus conséquent tel que le microcontrôleur ARM Cortex M0 (le plus petit des ARM) on passe déjà à 21026 portes logiques (toi aussi tu peux faire joujou avec les ARM Cortex M0 et M3). Et je ne parle même pas des dernières cartes graphiques où le nombre de portes logiques dépasse le milliards.
Il est tout simplement inhumain de placer et router un tel nombre de portes logiques à la main.
L'autre bénéfice de l'automatisation des outils via des scripts est la possibilité de relancer les flots pour obtenir des résultats répétables. Parce que les flots, tu vas très souvent les relancer pour converger vers le résultat final :
*lance le flot*
- zut, la STA n'est pas validée
*modifie les contraintes de timings*
*relance le flot*
- maintenant je vois qu'on peut essayer d'améliorer la densité de circuit
*modifie les paramètres de densité*
*relance le flot*
...
typiquement, la conception d'une puce va ressembler à ça