Menu
Coddy logo textTech

Machine à états

Fait partie de la section Fondamentaux du Journey Verilog de Coddy. Leçon 88 sur 90.

challenge icon

Défi

Une machine à états est un circuit qui peut être dans l’un de plusieurs états. Pour UART, nous avons différents états pour chaque bit : repos, début, bits de données 0-7 et arrêt. Le compteur de bits (cnt) nous indique dans quel état nous nous trouvons. En fonction de cnt, nous décidons quelle valeur envoyer sur la ligne tx.

Vous disposez du compteur de bits de la leçon précédente. Vous devez le modifier pour qu’il fonctionne comme un émetteur UART.

Valeurs des bits à envoyer (pour la lettre 'A')

cntvaleur de tx
01
10
21
30
40
50
60
70
81
90
101

À faire

  1. Ajoutez une entrée appelée start
  2. Ajoutez une sortie reg appelée tx
  3. Dans le bloc initial, définissez tx = 1 (repos à l’état haut)
  4. Modifiez la logique du compteur :
    • Lorsque cnt == 0 et que start == 1, définissez cnt <= 1 (commencer la transmission)
    • Lorsque cnt est compris entre 1 et 9, incrémentez-le : cnt <= cnt + 1
    • Lorsque cnt == 10, réinitialisez-le à 0

Essayez vous-même

module uart_tx (
  input clk,
  output reg [3:0] cnt
);

  initial begin
    cnt = 0;
  end

  always @(posedge clk) begin
      cnt <= cnt + 1;
  end

endmodule

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Compilateur Verilog en ligne