WaveDrom : les waveforms faciles (diagrammes de timing digital)

par Vincent Poulailleau - 2 minutes de lecture - 247 mots

Si vous faites régulièrement des diagrammes de timing, et que vous prenez du temps à les dessiner, et encore plus de temps à les modifier pour ajouter ou supprimer les informations manquantes, sachez qu’il existe WaveDrom qui fait cela très bien pour nous. C’est un outil gratuit et open-source (licence MIT) : https://github.com/wavedrom/wavedrom.

Vous pouvez l’essayer avec l’éditeur en ligne : https://wavedrom.com/editor.html.

Afin d’obtenir le diagramme suivant :

Diagramme basique de timing
Diagramme basique de timing

Il faut le décrire sous forme textuelle avec une syntaxe particulière. S’il manque un signal, il suffira d’ajouter la ligne manquante et de re-générer le diagramme (quasi-instantané). Voici le texte correspondant au diagramme ci-dessus :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{
  "signal": [
    { "name": "clk", "wave": "p.....|..." },
    {
      "name": "Data",
      "wave": "x.345x|=.x",
      "data": ["head", "body", "tail", "data"]
    },
    { "name": "Request", "wave": "0.1..0|1.0" },
    {},
    { "name": "Acknowledge", "wave": "1.....|01." }
  ]
}

Ou encore, de manière équivalente :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
  "signal": [
    {
      "name": "clk",
      "wave": "p.....|..."
    },
    {
      "name": "Data",
      "wave": "x.345x|=.x",
      "data": ["head", "body", "tail", "data"]
    },
    {
      "name": "Request",
      "wave": "0.1..0|1.0"
    },
    {},
    {
      "name": "Acknowledge",
      "wave": "1.....|01."
    }
  ]
}

D’autres exemples de diagrammes, issus du tutoriel officiel :

Groupement de signaux
Groupement de signaux
RAM DDR
RAM DDR
Avec des flèches
Avec des flèches

Pour apprendre à se servir de WaveDrom, c’est par là : https://wavedrom.com/tutorial.html.