diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..ca2b7874ee44cef1857d5487e8c8184223131c55
Binary files /dev/null and b/.DS_Store differ
diff --git a/docs/wave_generator.drawio b/docs/wave_generator.drawio
index 6d65d824039ac0376711b9b39806f970cf0549ca..56eb1f44c14cf1a8154f687dfcb180bc5dcddb3c 100644
--- a/docs/wave_generator.drawio
+++ b/docs/wave_generator.drawio
@@ -1,50 +1,50 @@
-<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.2.2 Chrome/134.0.6998.178 Electron/35.1.2 Safari/537.36" version="26.2.2">
-  <diagram name="Page-1" id="ZRCvXX_TBlFcA-i0oMmK">
-    <mxGraphModel dx="3237" dy="1203" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
+<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0" version="27.0.5">
+  <diagram name="Page-1" id="7NDjApFd_wu7eMK28xhh">
+    <mxGraphModel dx="3215" dy="1323" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
       <root>
         <mxCell id="0" />
         <mxCell id="1" parent="0" />
-        <mxCell id="liv1zIGuVtiVySRaDl_v-15" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;arcSize=3;" parent="1" vertex="1">
-          <mxGeometry y="40" width="1320" height="720" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-1" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;arcSize=3;" vertex="1" parent="1">
+          <mxGeometry x="-2" y="41" width="1320" height="720" as="geometry" />
         </mxCell>
-        <mxCell id="liv1zIGuVtiVySRaDl_v-1" value="A" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" parent="1" vertex="1">
-          <mxGeometry x="160" y="80" width="280" height="160" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-2" value="&lt;div style=&quot;line-height: 50%;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;line-height: 50%;&quot;&gt;A&lt;/font&gt;&lt;font style=&quot;line-height: 50%;&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px; line-height: 50%;&quot;&gt;Machine à états&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px; line-height: 50%;&quot;&gt;Séquentiel&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" vertex="1" parent="1">
+          <mxGeometry x="158" y="81" width="280" height="160" as="geometry" />
         </mxCell>
-        <mxCell id="liv1zIGuVtiVySRaDl_v-2" value="D" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" parent="1" vertex="1">
-          <mxGeometry x="160" y="320" width="280" height="160" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-4" value="&lt;div style=&quot;line-height: 50%;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;line-height: 50%;&quot;&gt;B&lt;/font&gt;&lt;font style=&quot;line-height: 50%;&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px; line-height: 50%;&quot;&gt;Compteur/Générateur de rampes&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px; line-height: 50%;&quot;&gt;Séquentiel&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" vertex="1" parent="1">
+          <mxGeometry x="518" y="81" width="280" height="160" as="geometry" />
         </mxCell>
-        <mxCell id="liv1zIGuVtiVySRaDl_v-3" value="B" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" parent="1" vertex="1">
-          <mxGeometry x="520" y="80" width="280" height="160" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-7" value="C&lt;div style=&quot;line-height: 50%;&quot;&gt;&lt;font style=&quot;font-size: 18px; line-height: 50%;&quot;&gt;Générateur de sinus (numéri&lt;/font&gt;&lt;font style=&quot;line-height: 50%; font-size: 18px;&quot;&gt;ques)&lt;/font&gt;&lt;font style=&quot;font-size: 18px;&quot;&gt;&lt;br&gt;Séquentiel&lt;/font&gt;&lt;br&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" vertex="1" parent="1">
+          <mxGeometry x="878" y="81" width="280" height="160" as="geometry" />
         </mxCell>
-        <mxCell id="liv1zIGuVtiVySRaDl_v-4" value="I" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" parent="1" vertex="1">
-          <mxGeometry x="880" y="560" width="280" height="160" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-8" value="&lt;div style=&quot;line-height: 50%;&quot;&gt;&lt;div&gt;&lt;font style=&quot;line-height: 50%;&quot;&gt;G&lt;/font&gt;&lt;font style=&quot;line-height: 50%;&quot;&gt;&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px; line-height: 50%;&quot;&gt;Inverseur de signe en complément à 2&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px; line-height: 50%;&quot;&gt;Combinatoire&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font style=&quot;font-size: 18px; line-height: 50%;&quot;&gt;Risque : overflow pour la plus petite valeure négative si on lui change son signe&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" vertex="1" parent="1">
+          <mxGeometry x="158" y="561" width="280" height="160" as="geometry" />
         </mxCell>
-        <mxCell id="liv1zIGuVtiVySRaDl_v-5" value="F" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" parent="1" vertex="1">
-          <mxGeometry x="880" y="320" width="280" height="160" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-11" value="I_clk" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#f0a30a;strokeColor=#BD7000;fontColor=#000000;fontFamily=Ubuntu Mono;fontSize=18;fontStyle=1" vertex="1" parent="1">
+          <mxGeometry x="-42" y="121" width="160" height="40" as="geometry" />
         </mxCell>
-        <mxCell id="liv1zIGuVtiVySRaDl_v-6" value="C" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" parent="1" vertex="1">
-          <mxGeometry x="880" y="80" width="280" height="160" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-12" value="I_rst" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#f0a30a;strokeColor=#BD7000;fontColor=#000000;fontFamily=Ubuntu Mono;fontSize=18;fontStyle=1" vertex="1" parent="1">
+          <mxGeometry x="-42" y="201" width="160" height="40" as="geometry" />
         </mxCell>
-        <mxCell id="liv1zIGuVtiVySRaDl_v-7" value="G" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" parent="1" vertex="1">
-          <mxGeometry x="160" y="560" width="280" height="160" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-13" value="I_wave_sel" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#f0a30a;strokeColor=#BD7000;fontColor=#000000;fontFamily=Ubuntu Mono;fontSize=18;fontStyle=1" vertex="1" parent="1">
+          <mxGeometry x="-42" y="281" width="160" height="40" as="geometry" />
         </mxCell>
-        <mxCell id="liv1zIGuVtiVySRaDl_v-8" value="H" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" parent="1" vertex="1">
-          <mxGeometry x="520" y="560" width="280" height="160" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-14" value="O_wav" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#f0a30a;strokeColor=#BD7000;fontColor=#000000;fontFamily=Ubuntu Mono;fontSize=18;fontStyle=1" vertex="1" parent="1">
+          <mxGeometry x="1198" y="121" width="160" height="40" as="geometry" />
         </mxCell>
-        <mxCell id="liv1zIGuVtiVySRaDl_v-9" value="E" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" parent="1" vertex="1">
-          <mxGeometry x="520" y="320" width="280" height="160" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-15" value="D&lt;div style=&quot;line-height: 50%;&quot;&gt;&lt;font style=&quot;font-size: 18px; line-height: 50%;&quot;&gt;Générateur de rampes (numéri&lt;/font&gt;&lt;font style=&quot;line-height: 50%; font-size: 18px;&quot;&gt;ques)&lt;/font&gt;&lt;font style=&quot;font-size: 18px;&quot;&gt;&lt;br&gt;Séquentiel&lt;/font&gt;&lt;br&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" vertex="1" parent="1">
+          <mxGeometry x="158" y="319.5" width="280" height="163" as="geometry" />
         </mxCell>
-        <mxCell id="liv1zIGuVtiVySRaDl_v-10" value="I_clk" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#f0a30a;strokeColor=#BD7000;fontColor=#000000;fontFamily=Ubuntu Mono;fontSize=18;fontStyle=1" parent="1" vertex="1">
-          <mxGeometry x="-40" y="120" width="160" height="40" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-16" value="E&lt;div style=&quot;line-height: 50%;&quot;&gt;&lt;font style=&quot;font-size: 18px; line-height: 50%;&quot;&gt;Générateur de dents de scie (numéri&lt;/font&gt;&lt;font style=&quot;line-height: 50%; font-size: 18px;&quot;&gt;ques)&lt;/font&gt;&lt;font style=&quot;font-size: 18px;&quot;&gt;&lt;br&gt;Séquentiel&lt;/font&gt;&lt;br&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" vertex="1" parent="1">
+          <mxGeometry x="518" y="319.5" width="280" height="163" as="geometry" />
         </mxCell>
-        <mxCell id="liv1zIGuVtiVySRaDl_v-11" value="I_rst" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#f0a30a;strokeColor=#BD7000;fontColor=#000000;fontFamily=Ubuntu Mono;fontSize=18;fontStyle=1" parent="1" vertex="1">
-          <mxGeometry x="-40" y="200" width="160" height="40" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-17" value="F&lt;div style=&quot;line-height: 50%;&quot;&gt;&lt;font style=&quot;font-size: 18px; line-height: 50%;&quot;&gt;Multiplexeur 4 vers 1&lt;/font&gt;&lt;font style=&quot;font-size: 18px;&quot;&gt;&lt;br&gt;Séquentiel&lt;/font&gt;&lt;br&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" vertex="1" parent="1">
+          <mxGeometry x="878" y="319.5" width="280" height="163" as="geometry" />
         </mxCell>
-        <mxCell id="liv1zIGuVtiVySRaDl_v-12" value="I_wave_sel" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#f0a30a;strokeColor=#BD7000;fontColor=#000000;fontFamily=Ubuntu Mono;fontSize=18;fontStyle=1" parent="1" vertex="1">
-          <mxGeometry x="-40" y="280" width="160" height="40" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-18" value="H&lt;div style=&quot;line-height: 50%;&quot;&gt;&lt;font style=&quot;font-size: 18px; line-height: 50%;&quot;&gt;Multiplexeur 2 vers 1&lt;/font&gt;&lt;font style=&quot;font-size: 18px;&quot;&gt;&lt;br&gt;Séquentiel&lt;/font&gt;&lt;br&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" vertex="1" parent="1">
+          <mxGeometry x="518" y="561" width="280" height="163" as="geometry" />
         </mxCell>
-        <mxCell id="liv1zIGuVtiVySRaDl_v-14" value="O_wav" style="shape=step;perimeter=stepPerimeter;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#f0a30a;strokeColor=#BD7000;fontColor=#000000;fontFamily=Ubuntu Mono;fontSize=18;fontStyle=1" parent="1" vertex="1">
-          <mxGeometry x="1200" y="120" width="160" height="40" as="geometry" />
+        <mxCell id="m69L4zfaOTxG1qSxpspI-19" value="I&lt;div style=&quot;line-height: 50%;&quot;&gt;&lt;font style=&quot;font-size: 18px;&quot;&gt;C&#39;est un d-flip-flop&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 50%;&quot;&gt;&lt;font style=&quot;font-size: 18px;&quot;&gt;Séquentiel &lt;/font&gt;&lt;br&gt;&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Ubuntu Mono;fontSize=40;" vertex="1" parent="1">
+          <mxGeometry x="878" y="561" width="280" height="163" as="geometry" />
         </mxCell>
       </root>
     </mxGraphModel>
diff --git a/docs/wave_generator.png b/docs/wave_generator.png
new file mode 100644
index 0000000000000000000000000000000000000000..e031e79c5be3cfd41c089ca887f3c610f22db9dd
Binary files /dev/null and b/docs/wave_generator.png differ
diff --git a/src/hdl/wave_generator.vhd b/src/hdl/wave_generator.vhd
index 46fa0fd202f63742c2bd08b3afe54a986e4aef90..748d0fb8b12ec8679476cc26dc1b549f64961e36 100644
--- a/src/hdl/wave_generator.vhd
+++ b/src/hdl/wave_generator.vhd
@@ -64,7 +64,7 @@ begin
             G_MAX_VAL => natural(floor(G_fs/(2.0*G_f0)))
             )
         port map (
-            I_clk    => I_clk  ,
+            I_clk    => I_clk,
             I_rst    => I_rst,
             I_u_d    => S_u_d,
             O_val    => S_addr,
@@ -100,7 +100,7 @@ begin
             O_triangle => S_triangle_out_lut
             );
 
-    -- Module ES_addr
+    -- Module E
     E_inst : entity work.module_E
         generic map (
             G_N  => G_N,
@@ -122,8 +122,8 @@ begin
             I_sel  => I_wave_sel,
             I_din0 => S_sine_out_lut,
             I_din1 => S_square,
-            I_din2 => S_saw_tooth_out_lut,
-            I_din3 => S_triangle_out_lut,
+            I_din2 => S_triangle_out_lut,
+            I_din3 => S_saw_tooth_out_lut,
             O_dout => S_wave_sample
             );