En Verilog/SystemVerilog, on peut trouver ce genre de code : Code SystemVerilog : Sélectionner tout - Visualiser dans une fenêtre à part 12a <= b; b <= a; Mais que fait ce code ? Il renvoie Vrai si a est inférieur ou égal à b... Non, ce n'est pas ça. Le signe <= est surement un opérateur d'affectation : je mets b dans a... puis a dans b ? C'est pour échanger les valeurs de a et b (swap) ? Mais ça ne peut pas fonctionner, car « normalement » pour faire l'échange, il faut passer par une variable temporaire : Code C : Sélectionner tout - Visualiser dans une fenêtre à part temp = a; a = b; b = temp; ...
a <= b; b <= a;
temp = a; a = b; b = temp;
Mis à jour 15/10/2023 à 21h32 par f-leb
En logique combinatoire, les sorties d'un système numérique ne dépendent que des états logiques présents aux entrées. Le système n'a donc pas de mémoire, et un système sans mémoire est forcément très limité. Prenez l'exemple d'un système d'ouverture à code qui donne trois tentatives à l'utilisateur pour saisir le bon code. Dans un système à logique purement combinatoire, chaque saisie de code infructueuse ne peut produire qu'un seul résultat, car sans mémorisation, il ne peut pas tenir compte ...
Lors du billet précédent, nous avions vu comment établir la description d'un composant simple appelé multiplexeur : Si sel=0, a est dirigé vers s, et si sel=1, c'est b qui est dirigé vers s Au niveau d'abstraction le plus bas, le niveau structurel, ce composant est décrit par le câblage de portes logiques élémentaires (portes AND, OR et NOT dans ce cas précis). Voyons comment pourrait-on établir une description de ce composant à ...
Mis à jour 22/12/2024 à 03h28 par f-leb
On ne le rappellera jamais assez... Les langages de description de matériel (ou HDL pour Hardware Description Language) tels VHDL ou Verilog/SystemVerilog ne sont pas des langages de programmation classiques comme C, C++, Java, etc. Même si on retrouve des séquences procédurales dans la syntaxe de ces langages, il ne s'agit plus de produire des suites d'instructions exécutées séquentiellement par un CPU. Le but des HDL est de générer des ...
Mis à jour 01/09/2023 à 16h24 par f-leb
Les Arduinautes connaissent bien ce genre de LED programmables que l'on retrouve souvent sous la forme de rubans souples de longueur 1m, 3m, ... 10m et plus, et que l'on utilise pour créer des effets lumineux personnalisés. Voir les bibliothèques FastLED ou NeoPixel par Adafruit. Pour la démonstration, j'utiliserai un anneau de 12 LED WS2812B (quelques euros l'anneau en cherchant bien), mais que je connecterai à une carte FPGA Altera DE0-Nano. ...
Mis à jour 01/12/2023 à 22h14 par f-leb