From 2977f724567dc6e0cbec44cf12509a3d6e820c5d Mon Sep 17 00:00:00 2001 From: Remi LELUAN <r24lelua@fl-tp-br-518.imta.fr> Date: Mon, 5 May 2025 16:12:54 +0200 Subject: [PATCH] Ajout fichiers. --- docs/wave_generator_complet.drawio | 52 ++++++++++++++++++++++++++ src/hdl/wave_generator.vhd | 60 +++++++++++++++--------------- 2 files changed, 82 insertions(+), 30 deletions(-) create mode 100644 docs/wave_generator_complet.drawio diff --git a/docs/wave_generator_complet.drawio b/docs/wave_generator_complet.drawio new file mode 100644 index 0000000..ff4f3b2 --- /dev/null +++ b/docs/wave_generator_complet.drawio @@ -0,0 +1,52 @@ +<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64; rv:137.0) Gecko/20100101 Firefox/137.0" version="26.2.14"> + <diagram name="Page-1" id="ZRCvXX_TBlFcA-i0oMmK"> + <mxGraphModel dx="3112" dy="1136" 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"> + <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> + <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> + <mxCell id="liv1zIGuVtiVySRaDl_v-2" value="<div style="line-height: 60%;"><div>D</div><div><font style="font-size: 16px; line-height: 60%;">properties:</font></div><div><font style="font-size: 16px; line-height: 60%;">-sequential module</font></div><div><font style="font-size: 16px; line-height: 60%;">-générateur signal triangulaire (quart de période)</font></div></div>" 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> + <mxCell id="liv1zIGuVtiVySRaDl_v-3" value="<div style="line-height: 60%;"><div>B</div><div><font style="font-size: 16px; line-height: 60%;">properties:</font></div><div><font style="font-size: 16px; line-height: 60%;">-sequential module</font></div><div><font style="font-size: 16px; line-height: 60%;">-compteur bidirectionnel (en fonction up/down)</font></div></div>" 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> + <mxCell id="liv1zIGuVtiVySRaDl_v-4" value="<div style="line-height: 60%;"><div>I</div><div><font style="font-size: 16px; line-height: 60%;">properties:</font></div><div><font style="font-size: 16px; line-height: 60%;">-sequential module</font></div><div><font style="font-size: 16px; line-height: 60%;">-flip flop</font></div></div>" 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> + <mxCell id="liv1zIGuVtiVySRaDl_v-5" value="<div style="line-height: 60%;"><div>F</div><div><font style="font-size: 16px; line-height: 60%;">properties:</font></div><div><font style="font-size: 16px; line-height: 60%;">-module combinatoire</font></div><div><font style="font-size: 16px; line-height: 60%;">-multiplexeur 4 à 1 <br></font></div></div>" 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> + <mxCell id="liv1zIGuVtiVySRaDl_v-6" value="<div style="line-height: 80%;"><div>C</div><div><font style="font-size: 16px; line-height: 80%;">properties:</font></div><div><font style="font-size: 16px; line-height: 80%;">-sequential module</font></div><div><font style="font-size: 16px; line-height: 80%;">-générateur de sinusoides</font></div></div>" 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> + <mxCell id="liv1zIGuVtiVySRaDl_v-7" value="<div style="line-height: 60%;"><div>G</div><div><font style="font-size: 16px; line-height: 60%;">properties:</font></div><div><font style="font-size: 16px; line-height: 60%;">-module combinatoire</font></div><div><font style="font-size: 16px; line-height: 60%;">-inverseur</font></div></div>" 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> + <mxCell id="liv1zIGuVtiVySRaDl_v-8" value="<div style="line-height: 60%;"><div>H</div><div><font style="font-size: 16px; line-height: 60%;">properties:</font></div><div><font style="font-size: 16px; line-height: 60%;">-module combinatoire</font></div><div><font style="font-size: 16px; line-height: 60%;">-multiplexeur 2 à 1</font></div></div>" 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> + <mxCell id="liv1zIGuVtiVySRaDl_v-9" value="<div style="line-height: 60%;"><div>E</div><div><font style="font-size: 16px; line-height: 60%;">properties:</font></div><div><font style="font-size: 16px; line-height: 60%;">-sequential module</font></div><div><font style="font-size: 16px; line-height: 60%;">-générateur dent de scie (demie période)</font></div></div>" 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> + <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> + <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> + <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> + <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> + </root> + </mxGraphModel> + </diagram> +</mxfile> diff --git a/src/hdl/wave_generator.vhd b/src/hdl/wave_generator.vhd index 310c78f..0a82671 100644 --- a/src/hdl/wave_generator.vhd +++ b/src/hdl/wave_generator.vhd @@ -64,12 +64,12 @@ begin G_MAX_VAL => natural(floor(G_fs/(2.0*G_f0))) ) port map ( - I_clk => , - I_rst => , - I_u_d => , - O_val => , - O_last => , - O_middle => + I_clk => I_clk, + I_rst => I_rst, + I_u_d => S_u_d, + O_val => S_addr, + O_last => S_last, + O_middle => S_middle ); -- Module C @@ -94,10 +94,10 @@ begin G_fs => G_fs ) port map ( - I_clk => , - I_rst => , - I_addr => , - O_triangle => + I_clk => I_clk, + I_rst => I_rst, + I_addr => S_addr(C_addr_half_w-1 downto 0), + O_triangle => S_triangle_out_lut ); -- Module E @@ -108,10 +108,10 @@ begin G_fs => G_fs ) port map ( - I_clk => , - I_rst => , - I_addr => , - O_saw_tooth => + I_clk => I_clk, + I_rst => I_rst, + I_addr => S_addr, + O_saw_tooth => S_saw_tooth_out_lut ); S_square <= ((G_N-1) => '0', others => '1'); @@ -119,12 +119,12 @@ begin -- Module F F_inst : entity work.module_F port map ( - I_sel => , - I_din0 => , - I_din1 => , - I_din2 => , - I_din3 => , - O_dout => + 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, + O_dout => S_wave_value ); -- Module G @@ -133,17 +133,17 @@ begin G_N => G_N ) port map ( - I_din => , - O_dout => + I_din => S_wave_value, + O_dout => S_opposite_wave_sample ); -- Module H H_inst : entity work.module_H port map ( - I_sel => , - I_din0 => , - I_din1 => , - O_dout => + I_sel => S_sign_sel, + I_din0 => S_wave_value, + I_din1 => S_opposite_wave_sample, + O_dout => S_wave_sample ); -- Module I @@ -152,10 +152,10 @@ begin G_N => G_N ) port map ( - I_clk => , - I_rst => , - I_din => , - O_dout => + I_clk => I_clk, + I_rst => I_rst, + I_din => S_wave_sample, + O_dout => O_wav ); end arch; -- GitLab