• [^] # Re: j'ai quelques questions msieur !

    Posté par (site web personnel) . En réponse à la dépêche TapTempo en Verilog. Évalué à 6.

    Métastabilité :

    C'est un problème lors qu'une bascule "lit" un signal non stable. Selon le design de la bascule (FlipFlop ou 2 latchs), il existe un temps de "sampling" et si cette valeur n'est pas à 0 ou 1, il y a n'importe quoi derrière y compris une oscillation. Cela arrive quand on lit une entrée numérique qui n'est pas synchrone avec l'intérieur de la puce, ce qui est pratiquemnt toujours le cas.

    Une façon de lire et de tuer toute meta stabilité (l'oscillation) est de mettre 2 bascules à la suite (voir 3 dans certains designs). C'est plus une histoire de probabilité d'occurence qui baisse.

    Division :

    La division entière est un truc monstrueux en place, encore pire qu'une multiplication. Par contre, il existe un algo itératif qui permet de permet de faire une division 32 bits en 32 cycles. Il existe aussi des inverses de racine carré bien plus rapide qu'une division classique (instruction PowerPC de mémoire)

    Quelque part tu l'as posé le calcul, le logiciel ne peut pas le reproduire ?

    En théorie, cela serait possible. En pratique, toute opération se fait en asynchrone et ce sont les bascules décrites qui définissent les barrières temporelles. Il existe des synthétiseurs capable de répartir des opérations sur des suites de bascules reliées entre elle, mais ils ne le font pas tous (option "balanced_pipeline").

    "La première sécurité est la liberté"