diff --git a/proj/tb_module_B_behav.wcfg b/proj/tb_module_B_behav.wcfg
new file mode 100644
index 0000000000000000000000000000000000000000..6ff84145af2cd71341749c21687008f2e270d6d8
--- /dev/null
+++ b/proj/tb_module_B_behav.wcfg
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wave_config>
+   <wave_state>
+   </wave_state>
+   <db_ref_list>
+      <db_ref path="tb_module_B_behav.wdb" id="1">
+         <top_modules>
+            <top_module name="tb_module_B" />
+         </top_modules>
+      </db_ref>
+   </db_ref_list>
+   <zoom_setting>
+      <ZoomStartTime time="412.420 ns"></ZoomStartTime>
+      <ZoomEndTime time="490.221 ns"></ZoomEndTime>
+      <Cursor1Time time="258.970 ns"></Cursor1Time>
+   </zoom_setting>
+   <column_width_setting>
+      <NameColumnWidth column_width="276"></NameColumnWidth>
+      <ValueColumnWidth column_width="120"></ValueColumnWidth>
+   </column_width_setting>
+   <WVObjectSize size="8" />
+   <wvobject type="logic" fp_name="/tb_module_B/SR_clk">
+      <obj_property name="ElementShortName">SR_clk</obj_property>
+      <obj_property name="ObjectShortName">SR_clk</obj_property>
+   </wvobject>
+   <wvobject type="logic" fp_name="/tb_module_B/SR_rst">
+      <obj_property name="ElementShortName">SR_rst</obj_property>
+      <obj_property name="ObjectShortName">SR_rst</obj_property>
+   </wvobject>
+   <wvobject type="logic" fp_name="/tb_module_B/SR_u_d">
+      <obj_property name="ElementShortName">SR_u_d</obj_property>
+      <obj_property name="ObjectShortName">SR_u_d</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_module_B/SC_val">
+      <obj_property name="ElementShortName">SC_val[4:0]</obj_property>
+      <obj_property name="ObjectShortName">SC_val[4:0]</obj_property>
+      <obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
+      <obj_property name="isExpanded"></obj_property>
+   </wvobject>
+   <wvobject type="logic" fp_name="/tb_module_B/SC_last">
+      <obj_property name="ElementShortName">SC_last</obj_property>
+      <obj_property name="ObjectShortName">SC_last</obj_property>
+   </wvobject>
+   <wvobject type="logic" fp_name="/tb_module_B/SC_middle">
+      <obj_property name="ElementShortName">SC_middle</obj_property>
+      <obj_property name="ObjectShortName">SC_middle</obj_property>
+   </wvobject>
+   <wvobject type="other" fp_name="/tb_module_B/C_clk_period">
+      <obj_property name="ElementShortName">C_clk_period</obj_property>
+      <obj_property name="ObjectShortName">C_clk_period</obj_property>
+   </wvobject>
+   <wvobject type="other" fp_name="/tb_module_B/C_MAX_VAL">
+      <obj_property name="ElementShortName">C_MAX_VAL</obj_property>
+      <obj_property name="ObjectShortName">C_MAX_VAL</obj_property>
+   </wvobject>
+</wave_config>
diff --git a/proj/tb_module_G_behav.wcfg b/proj/tb_module_G_behav.wcfg
new file mode 100644
index 0000000000000000000000000000000000000000..a5f3d5ee4ab5face1cfa56e36311aa8bdefe6e30
--- /dev/null
+++ b/proj/tb_module_G_behav.wcfg
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wave_config>
+   <wave_state>
+   </wave_state>
+   <db_ref_list>
+      <db_ref path="tb_module_G_behav.wdb" id="1">
+         <top_modules>
+            <top_module name="tb_module_G" />
+         </top_modules>
+      </db_ref>
+   </db_ref_list>
+   <zoom_setting>
+      <ZoomStartTime time="0.000 ns"></ZoomStartTime>
+      <ZoomEndTime time="82.101 ns"></ZoomEndTime>
+      <Cursor1Time time="10.000 ns"></Cursor1Time>
+   </zoom_setting>
+   <column_width_setting>
+      <NameColumnWidth column_width="276"></NameColumnWidth>
+      <ValueColumnWidth column_width="120"></ValueColumnWidth>
+   </column_width_setting>
+   <WVObjectSize size="2" />
+   <wvobject type="array" fp_name="/tb_module_G/SR_din">
+      <obj_property name="ElementShortName">SR_din[7:0]</obj_property>
+      <obj_property name="ObjectShortName">SR_din[7:0]</obj_property>
+   </wvobject>
+   <wvobject type="array" fp_name="/tb_module_G/SC_dout">
+      <obj_property name="ElementShortName">SC_dout[7:0]</obj_property>
+      <obj_property name="ObjectShortName">SC_dout[7:0]</obj_property>
+   </wvobject>
+</wave_config>
diff --git a/src/hdl/wave_generator.vhd b/src/hdl/wave_generator.vhd
index 310c78f6226381637b988c9bc043aa8b4c3d3a76..1d3284c3369d1e360f3603f5a229098ef732919d 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_sample
             );
 
     -- Module G
@@ -133,17 +133,17 @@ begin
             G_N => G_N
             )
         port map (
-            I_din  => ,
-            O_dout =>
+            I_din  => S_wave_sample,
+            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_sample,
+            I_din1 => S_opposite_wave_sample,
+            O_dout => S_wave_value
             );
 
     -- 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_value,
+            O_dout => O_wav 
             );
 
 end arch;