| | 52 | Dans l'illustration çi-dessus, le routage a échoué car il reste 7 segments que le routeur |
| | 53 | n'arrive pas à router. Cela se retrouve dans le taux de routage ({{{Wire Length Completion |
| | 54 | Ratio}}} qui n'est que de {{{99.77%}}}. Le routeur indique aussi la longueur totale de |
| | 55 | fil ayant été routée {{{275368}}} et celle restante {{{622}}}, en ''lambdas''. |
| | 56 | Au fur et à mesure que vous allez améliorer le placement, le taux de routage atteindra |
| | 57 | les {{{100%}}}, et la longueur de fil totale va (fortement) décroitre. |
| | 58 | |
| | 68 | Dans le cas des chemins de données, le problème du placement se réduit à un problème à |
| | 69 | une dimension. Autrement dit, placer un chemin de donnée revient simplement à définir |
| | 70 | l'ordre dans lequel les opérateurs (chaque opérateur est équivalent à une colonne) |
| | 71 | sont placés. Dans notre cas, on adopte l'ordre de gauche à droite. |
| | 72 | |
| | 73 | {{{ |
| | 74 | #!python |
| | 75 | class contest ( Model ) : |
| | 76 | def Interface ( self ) : |
| | 77 | # [...] |
| | 78 | return |
| | 79 | |
| | 80 | def Netlist ( self ) : |
| | 81 | # [...] |
| | 82 | return |
| | 83 | |
| | 84 | def Layout (self): |
| | 85 | Place ( self.acc_buff, NOSYM, XY(0,0) ) # First column: absolute placement. |
| | 86 | PlaceRight ( self.acc_reg, NOSYM ) # Second column, right of first. |
| | 87 | PlaceRight ( self.inv_np, NOSYM ) # Thirst column, right of second. |
| | 88 | PlaceRight ( self.inv_ra, NOSYM ) # ... |
| | 89 | # [...] |
| | 90 | return |
| | 91 | }}} |
| | 92 | |