• [^] # Re: lu que la moitié, mais j'ai une bonne raison...

    Posté par (site web personnel) . En réponse au journal Conception d’un circuit intégré avec Qflow. Évalué à 4.

    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