Bon, je vais pas faire comme si je m'étais mis au développement FPGA, mais je m'en approche de plus en plus. Assez en tous cas pour avoir commencer à programmer/débugger du code pour des soft cores, c'est à dire des processeurs réalisés à coups de LUTs et de flip/flops à l'intérieur d'un FPGA, qui a pour mission de piloter les différentes unités de traitement écrites en VHDL.
Et c'est l'occasion de découvrir quelques exotismes et autres vieilles connaissances en découvrant un peu l'architecture microblaze, chère à Xilinx.
- une instruction
imm %%%qui permet de précharger la partie haute/basse d'un mot 32 bits qui devra servir de constante dans une des instructions*i, et ça malgré le fait que toutes les instructions font elles-même 32 bits. (ARM doit aussi jouer à ça, mais d'une façon moins sexy :) - un registre r0 qui vaut toujours 0
- une variante
addken plus de l'instructionadd, qui évite que le carry flag soit modifié par effet de bord de l'addition (le compilateur adore, même si ça a l'air un peu gadget la plupart du temps) - une variante
briden plus de l'instruction de sautbri, qui permet d'éxécuter malgré tout une instruction qui se trouve après le saut pour éviter de perdre le travail présent dans le pipeline (on avait ça sous le nom "deferred" sur le processeur IXP2400 de ma thèse ... ici, ça peut s'appliquer aussi aux sauts conditionnels (heureusement) et même aux appels de fonction !


Vote for your favourite post


No comments:
Post a Comment