From a6cfb042ddef7f64b54c00e4dacb4d5ad4d2bae4 Mon Sep 17 00:00:00 2001
From: Antonio Emilio <antonio_pereira@outlook.com>
Date: Tue, 18 Mar 2025 22:56:40 +0100
Subject: [PATCH] feat; working on ecg

---
 proj/AudioProc.cache/wt/project.wpc           |   2 +-
 proj/AudioProc.cache/wt/synthesis.wdf         |  52 ++
 proj/AudioProc.cache/wt/synthesis_details.wdf |   3 +
 proj/AudioProc.cache/wt/xsim.wdf              |   4 +-
 proj/AudioProc.runs/.jobs/vrs_config_1.xml    |  11 +
 .../synth_1/.Vivado_Synthesis.queue.rst       |   0
 proj/AudioProc.runs/synth_1/.vivado.begin.rst |   5 +
 proj/AudioProc.runs/synth_1/.vivado.end.rst   |   0
 proj/AudioProc.runs/synth_1/ISEWrap.js        | 270 ++++++
 proj/AudioProc.runs/synth_1/ISEWrap.sh        |  85 ++
 .../synth_1/__synthesis_is_complete__         |   0
 proj/AudioProc.runs/synth_1/controlUnit.dcp   | Bin 0 -> 14483 bytes
 proj/AudioProc.runs/synth_1/controlUnit.tcl   | 108 +++
 proj/AudioProc.runs/synth_1/controlUnit.vds   | 324 ++++++++
 proj/AudioProc.runs/synth_1/gen_run.xml       | 122 +++
 proj/AudioProc.runs/synth_1/htr.txt           |  10 +
 proj/AudioProc.runs/synth_1/project.wdf       |  31 +
 proj/AudioProc.runs/synth_1/rundef.js         |  37 +
 proj/AudioProc.runs/synth_1/runme.bat         |  11 +
 proj/AudioProc.runs/synth_1/runme.log         | 315 +++++++
 proj/AudioProc.runs/synth_1/runme.sh          |  44 +
 proj/AudioProc.runs/synth_1/vivado.jou        |  24 +
 proj/AudioProc.runs/synth_1/vivado.pb         | Bin 0 -> 32872 bytes
 .../sim_1/behav/xsim/compile.bat              |   2 +-
 .../sim_1/behav/xsim/compile.log              |   8 +
 .../sim_1/behav/xsim/elaborate.bat            |   2 +-
 .../sim_1/behav/xsim/elaborate.log            |  13 +-
 .../sim_1/behav/xsim/simulate.bat             |   2 +-
 .../sim_1/behav/xsim/tb_firUnit_behav.wdb     | Bin 61927 -> 448 bytes
 proj/AudioProc.sim/sim_1/behav/xsim/xelab.pb  | Bin 847 -> 1963 bytes
 .../tb_firUnit_behav/obj/xsim_0.win64.obj     | Bin 18800 -> 23178 bytes
 .../xsim.dir/tb_firUnit_behav/obj/xsim_1.c    |  15 +-
 .../tb_firUnit_behav/obj/xsim_1.win64.obj     | Bin 3564 -> 3713 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.dbg   | Bin 11896 -> 14440 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.mem   | Bin 3997 -> 4348 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.reloc | Bin 1240 -> 1533 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.rlx   |   2 +-
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.rtti  | Bin 935 -> 881 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.type  | Bin 7400 -> 7408 bytes
 .../xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg  | Bin 99120 -> 91568 bytes
 .../tb_firUnit_behav/xsimSettings.ini         |  10 +-
 .../xsim/xsim.dir/tb_firUnit_behav/xsimk.exe  | Bin 79482 -> 84320 bytes
 .../xsim.dir/tb_firUnit_behav/xsimkernel.log  |   6 +-
 .../xsim.dir/xil_defaultlib/controlunit.vdb   | Bin 12285 -> 11296 bytes
 .../xsim/xsim.dir/xil_defaultlib/firunit.vdb  | Bin 9487 -> 12656 bytes
 .../xsim.dir/xil_defaultlib/operativeunit.vdb | Bin 39538 -> 37543 bytes
 .../xsim.dir/xil_defaultlib/tb_firunit.vdb    | Bin 7671 -> 6102 bytes
 .../xil_defaultlib/xil_defaultlib.rlx         |   6 +-
 proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log |   8 +
 proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.pb  | Bin 16 -> 1094 bytes
 proj/AudioProc.xpr                            |  21 +-
 src-ref/ECG_raw_3filters-inc.pdf              | Bin 3091 -> 3091 bytes
 src-ref/ECG_raw_3filters.tex                  |   2 +-
 src-ref/coeficientes_vhdl.txt                 | 258 +++---
 src/hdl/controlUnit.vhd                       | 290 +++----
 src/hdl/firUnit.vhd                           | 120 +--
 src/hdl/operativeUnit.vhd                     | 769 +++++++++---------
 src/hdl/tb_firUnit.vhd                        |  54 +-
 58 files changed, 2229 insertions(+), 817 deletions(-)
 create mode 100644 proj/AudioProc.cache/wt/synthesis.wdf
 create mode 100644 proj/AudioProc.cache/wt/synthesis_details.wdf
 create mode 100644 proj/AudioProc.runs/.jobs/vrs_config_1.xml
 create mode 100644 proj/AudioProc.runs/synth_1/.Vivado_Synthesis.queue.rst
 create mode 100644 proj/AudioProc.runs/synth_1/.vivado.begin.rst
 create mode 100644 proj/AudioProc.runs/synth_1/.vivado.end.rst
 create mode 100644 proj/AudioProc.runs/synth_1/ISEWrap.js
 create mode 100644 proj/AudioProc.runs/synth_1/ISEWrap.sh
 create mode 100644 proj/AudioProc.runs/synth_1/__synthesis_is_complete__
 create mode 100644 proj/AudioProc.runs/synth_1/controlUnit.dcp
 create mode 100644 proj/AudioProc.runs/synth_1/controlUnit.tcl
 create mode 100644 proj/AudioProc.runs/synth_1/controlUnit.vds
 create mode 100644 proj/AudioProc.runs/synth_1/gen_run.xml
 create mode 100644 proj/AudioProc.runs/synth_1/htr.txt
 create mode 100644 proj/AudioProc.runs/synth_1/project.wdf
 create mode 100644 proj/AudioProc.runs/synth_1/rundef.js
 create mode 100644 proj/AudioProc.runs/synth_1/runme.bat
 create mode 100644 proj/AudioProc.runs/synth_1/runme.log
 create mode 100644 proj/AudioProc.runs/synth_1/runme.sh
 create mode 100644 proj/AudioProc.runs/synth_1/vivado.jou
 create mode 100644 proj/AudioProc.runs/synth_1/vivado.pb
 create mode 100644 proj/AudioProc.sim/sim_1/behav/xsim/compile.log

diff --git a/proj/AudioProc.cache/wt/project.wpc b/proj/AudioProc.cache/wt/project.wpc
index c7c2fb6..4e6ebcf 100644
--- a/proj/AudioProc.cache/wt/project.wpc
+++ b/proj/AudioProc.cache/wt/project.wpc
@@ -1,3 +1,3 @@
 version:1
-6d6f64655f636f756e7465727c4755494d6f6465:5
+6d6f64655f636f756e7465727c4755494d6f6465:10
 eof:
diff --git a/proj/AudioProc.cache/wt/synthesis.wdf b/proj/AudioProc.cache/wt/synthesis.wdf
new file mode 100644
index 0000000..ff3b5e6
--- /dev/null
+++ b/proj/AudioProc.cache/wt/synthesis.wdf
@@ -0,0 +1,52 @@
+version:1
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d70617274:78633761323030747362673438342d31:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e616d65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d746f70:636f6e74726f6c556e6974:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d696e636c7564655f64697273:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d67656e65726963:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d646566696e65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d766572696c6f675f646566696e65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d7668646c5f646566696e65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d636f6e737472736574:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d7365755f70726f74656374:64656661756c743a3a6e6f6e65:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d666c617474656e5f686965726172636879:64656661756c743a3a72656275696c74:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d67617465645f636c6f636b5f636f6e76657273696f6e:64656661756c743a3a6f6666:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d646972656374697665:64656661756c743a3a64656661756c74:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d696e6372656d656e74616c5f6d6f6465:64656661756c743a3a64656661756c74:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d72746c:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6c696e74:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d66696c65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d64617461666c6f77:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d64617461666c6f775f73657474696e6773:64656661756c743a3a6e6f6e65:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d72746c5f736b69705f6970:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d72746c5f736b69705f636f6e73747261696e7473:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e6f5f6c63:5b7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6c75745f63617363616465:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6f73:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d62756667:64656661756c743a3a3132:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d66616e6f75745f6c696d6974:343030:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73687265675f6d696e5f73697a65:35:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d6f6465:64656661756c743a3a64656661756c74:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d66736d5f65787472616374696f6e:6f6e655f686f74:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6b6565705f6571756976616c656e745f726567697374657273:5b7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d7265736f757263655f73686172696e67:6f6666:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d636173636164655f647370:64656661756c743a3a6175746f:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d636f6e74726f6c5f7365745f6f70745f7468726573686f6c64:64656661756c743a3a6175746f:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f6272616d:64656661756c743a3a2d31:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f7572616d:64656661756c743a3a2d31:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f647370:64656661756c743a3a2d31:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f6272616d5f636173636164655f686569676874:64656661756c743a3a2d31:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f7572616d5f636173636164655f686569676874:64656661756c743a3a2d31:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d726574696d696e67:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e6f5f726574696d696e67:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d676c6f62616c5f726574696d696e67:64656661756c743a3a6175746f:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e6f5f73726c65787472616374:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d617373657274:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e6f5f74696d696e675f64726976656e:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73666375:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d64656275675f6c6f67:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d657374:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c7573616765:656c6170736564:30303a30313a303773:00:00
+73796e746865736973:73796e7468657369735c7573616765:6d656d6f72795f7065616b:313631322e3936394d42:00:00
+73796e746865736973:73796e7468657369735c7573616765:6d656d6f72795f6761696e:313233392e3039384d42:00:00
+eof:2367322580
diff --git a/proj/AudioProc.cache/wt/synthesis_details.wdf b/proj/AudioProc.cache/wt/synthesis_details.wdf
new file mode 100644
index 0000000..78f8d66
--- /dev/null
+++ b/proj/AudioProc.cache/wt/synthesis_details.wdf
@@ -0,0 +1,3 @@
+version:1
+73796e746865736973:73796e7468657369735c7573616765:686c735f6970:30:00:00
+eof:2511430288
diff --git a/proj/AudioProc.cache/wt/xsim.wdf b/proj/AudioProc.cache/wt/xsim.wdf
index 51d5206..50afb2c 100644
--- a/proj/AudioProc.cache/wt/xsim.wdf
+++ b/proj/AudioProc.cache/wt/xsim.wdf
@@ -1,4 +1,4 @@
 version:1
-7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f6d6f6465:6265686176696f72616c:00:00
+7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f6d6f6465:64656661756c743a3a6265686176696f72616c:00:00
 7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f74797065:64656661756c743a3a:00:00
-eof:2427094519
+eof:241934075
diff --git a/proj/AudioProc.runs/.jobs/vrs_config_1.xml b/proj/AudioProc.runs/.jobs/vrs_config_1.xml
new file mode 100644
index 0000000..f0bcf81
--- /dev/null
+++ b/proj/AudioProc.runs/.jobs/vrs_config_1.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<Runs Version="1" Minor="0">
+	<Run Id="synth_1" LaunchDir="C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1" FlowId="Vivado_Synthesis" FromStepId="vivado" ToStepId="vivado"/>
+	<Parameters>
+		<Parameter Name="runs.monitorLSFJobs" Val="true" Type="bool"/>
+		<Parameter Name="runs.enableClusterConf" Val="true" Type="bool"/>
+		<Parameter Name="general.shortenLongPath" Val="true" Type="bool"/>
+	</Parameters>
+	<ProductInfo Name="vivado"/>
+</Runs>
+
diff --git a/proj/AudioProc.runs/synth_1/.Vivado_Synthesis.queue.rst b/proj/AudioProc.runs/synth_1/.Vivado_Synthesis.queue.rst
new file mode 100644
index 0000000..e69de29
diff --git a/proj/AudioProc.runs/synth_1/.vivado.begin.rst b/proj/AudioProc.runs/synth_1/.vivado.begin.rst
new file mode 100644
index 0000000..252a77f
--- /dev/null
+++ b/proj/AudioProc.runs/synth_1/.vivado.begin.rst
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<ProcessHandle Version="1" Minor="0">
+    <Process Command="vivado.bat" Owner="Conta" Host="BOOK-IFJRPL7DU0" Pid="16568" HostCore="20" HostMemory="033897811968">
+    </Process>
+</ProcessHandle>
diff --git a/proj/AudioProc.runs/synth_1/.vivado.end.rst b/proj/AudioProc.runs/synth_1/.vivado.end.rst
new file mode 100644
index 0000000..e69de29
diff --git a/proj/AudioProc.runs/synth_1/ISEWrap.js b/proj/AudioProc.runs/synth_1/ISEWrap.js
new file mode 100644
index 0000000..61806d0
--- /dev/null
+++ b/proj/AudioProc.runs/synth_1/ISEWrap.js
@@ -0,0 +1,270 @@
+//
+//  Vivado(TM)
+//  ISEWrap.js: Vivado Runs Script for WSH 5.1/5.6
+//  Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. 
+//  Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. 
+//
+
+// GLOBAL VARIABLES
+var ISEShell = new ActiveXObject( "WScript.Shell" );
+var ISEFileSys = new ActiveXObject( "Scripting.FileSystemObject" );
+var ISERunDir = "";
+var ISELogFile = "runme.log";
+var ISELogFileStr = null;
+var ISELogEcho = true;
+var ISEOldVersionWSH = false;
+
+
+
+// BOOTSTRAP
+ISEInit();
+
+
+
+//
+// ISE FUNCTIONS
+//
+function ISEInit() {
+
+  // 1. RUN DIR setup
+  var ISEScrFP = WScript.ScriptFullName;
+  var ISEScrN = WScript.ScriptName;
+  ISERunDir = 
+    ISEScrFP.substr( 0, ISEScrFP.length - ISEScrN.length - 1 );
+
+  // 2. LOG file setup
+  ISELogFileStr = ISEOpenFile( ISELogFile );
+
+  // 3. LOG echo?
+  var ISEScriptArgs = WScript.Arguments;
+  for ( var loopi=0; loopi<ISEScriptArgs.length; loopi++ ) {
+    if ( ISEScriptArgs(loopi) == "-quiet" ) {
+      ISELogEcho = false;
+      break;
+    }
+  }
+
+  // 4. WSH version check
+  var ISEOptimalVersionWSH = 5.6;
+  var ISECurrentVersionWSH = WScript.Version;
+  if ( ISECurrentVersionWSH < ISEOptimalVersionWSH ) {
+
+    ISEStdErr( "" );
+    ISEStdErr( "Warning: ExploreAhead works best with Microsoft WSH " +
+	       ISEOptimalVersionWSH + " or higher. Downloads" );
+    ISEStdErr( "         for upgrading your Windows Scripting Host can be found here: " );
+    ISEStdErr( "             http://msdn.microsoft.com/downloads/list/webdev.asp" );
+    ISEStdErr( "" );
+
+    ISEOldVersionWSH = true;
+  }
+
+}
+
+function ISEStep( ISEProg, ISEArgs ) {
+
+  // CHECK for a STOP FILE
+  if ( ISEFileSys.FileExists(ISERunDir + "/.stop.rst") ) {
+    ISEStdErr( "" );
+    ISEStdErr( "*** Halting run - EA reset detected ***" );
+    ISEStdErr( "" );
+    WScript.Quit( 1 );
+  }
+
+  // WRITE STEP HEADER to LOG
+  ISEStdOut( "" );
+  ISEStdOut( "*** Running " + ISEProg );
+  ISEStdOut( "    with args " + ISEArgs );
+  ISEStdOut( "" );
+
+  // LAUNCH!
+  var ISEExitCode = ISEExec( ISEProg, ISEArgs );  
+  if ( ISEExitCode != 0 ) {
+    WScript.Quit( ISEExitCode );
+  }
+
+}
+
+function ISEExec( ISEProg, ISEArgs ) {
+
+  var ISEStep = ISEProg;
+  if (ISEProg == "realTimeFpga" || ISEProg == "planAhead" || ISEProg == "vivado") {
+    ISEProg += ".bat";
+  }
+
+  var ISECmdLine = ISEProg + " " + ISEArgs;
+  var ISEExitCode = 1;
+
+  if ( ISEOldVersionWSH ) { // WSH 5.1
+
+    // BEGIN file creation
+    ISETouchFile( ISEStep, "begin" );
+
+    // LAUNCH!
+    ISELogFileStr.Close();
+    ISECmdLine = 
+      "%comspec% /c " + ISECmdLine + " >> " + ISELogFile + " 2>&1";
+    ISEExitCode = ISEShell.Run( ISECmdLine, 0, true );
+    ISELogFileStr = ISEOpenFile( ISELogFile );
+
+  } else {  // WSH 5.6
+
+    // LAUNCH!
+    ISEShell.CurrentDirectory = ISERunDir;
+
+    // Redirect STDERR to STDOUT
+    ISECmdLine = "%comspec% /c " + ISECmdLine + " 2>&1";
+    var ISEProcess = ISEShell.Exec( ISECmdLine );
+    
+    // BEGIN file creation
+    var wbemFlagReturnImmediately = 0x10;
+    var wbemFlagForwardOnly = 0x20;
+    var objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Systemtime)}!//./root/cimv2");
+    var processor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly);
+    var computerSystem = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly);
+    var NOC = 0;
+    var NOLP = 0;
+    var TPM = 0;
+    var cpuInfos = new Enumerator(processor);
+    for(;!cpuInfos.atEnd(); cpuInfos.moveNext()) {
+        var cpuInfo = cpuInfos.item();
+        NOC += cpuInfo.NumberOfCores;
+        NOLP += cpuInfo.NumberOfLogicalProcessors;
+    }
+    var csInfos = new Enumerator(computerSystem);
+    for(;!csInfos.atEnd(); csInfos.moveNext()) {
+        var csInfo = csInfos.item();
+        TPM += csInfo.TotalPhysicalMemory;
+    }
+
+    var ISEHOSTCORE = NOLP
+    var ISEMEMTOTAL = TPM
+
+    var ISENetwork = WScript.CreateObject( "WScript.Network" );
+    var ISEHost = ISENetwork.ComputerName;
+    var ISEUser = ISENetwork.UserName;
+    var ISEPid = ISEProcess.ProcessID;
+    var ISEBeginFile = ISEOpenFile( "." + ISEStep + ".begin.rst" );
+    ISEBeginFile.WriteLine( "<?xml version=\"1.0\"?>" );
+    ISEBeginFile.WriteLine( "<ProcessHandle Version=\"1\" Minor=\"0\">" );
+    ISEBeginFile.WriteLine( "    <Process Command=\"" + ISEProg + 
+			    "\" Owner=\"" + ISEUser + 
+			    "\" Host=\"" + ISEHost + 
+			    "\" Pid=\"" + ISEPid +
+			    "\" HostCore=\"" + ISEHOSTCORE +
+			    "\" HostMemory=\"" + ISEMEMTOTAL +
+			    "\">" );
+    ISEBeginFile.WriteLine( "    </Process>" );
+    ISEBeginFile.WriteLine( "</ProcessHandle>" );
+    ISEBeginFile.Close();
+    
+    var ISEOutStr = ISEProcess.StdOut;
+    var ISEErrStr = ISEProcess.StdErr;
+    
+    // WAIT for ISEStep to finish
+    while ( ISEProcess.Status == 0 ) {
+      
+      // dump stdout then stderr - feels a little arbitrary
+      while ( !ISEOutStr.AtEndOfStream ) {
+        ISEStdOut( ISEOutStr.ReadLine() );
+      }  
+      
+      WScript.Sleep( 100 );
+    }
+
+    ISEExitCode = ISEProcess.ExitCode;
+  }
+
+  ISELogFileStr.Close();
+
+  // END/ERROR file creation
+  if ( ISEExitCode != 0 ) {    
+    ISETouchFile( ISEStep, "error" );
+    
+  } else {
+    ISETouchFile( ISEStep, "end" );
+  }
+
+  return ISEExitCode;
+}
+
+
+//
+// UTILITIES
+//
+function ISEStdOut( ISELine ) {
+
+  ISELogFileStr.WriteLine( ISELine );
+  
+  if ( ISELogEcho ) {
+    WScript.StdOut.WriteLine( ISELine );
+  }
+}
+
+function ISEStdErr( ISELine ) {
+  
+  ISELogFileStr.WriteLine( ISELine );
+
+  if ( ISELogEcho ) {
+    WScript.StdErr.WriteLine( ISELine );
+  }
+}
+
+function ISETouchFile( ISERoot, ISEStatus ) {
+
+  var ISETFile = 
+    ISEOpenFile( "." + ISERoot + "." + ISEStatus + ".rst" );
+  ISETFile.Close();
+}
+
+function ISEOpenFile( ISEFilename ) {
+
+  // This function has been updated to deal with a problem seen in CR #870871.
+  // In that case the user runs a script that runs impl_1, and then turns around
+  // and runs impl_1 -to_step write_bitstream. That second run takes place in
+  // the same directory, which means we may hit some of the same files, and in
+  // particular, we will open the runme.log file. Even though this script closes
+  // the file (now), we see cases where a subsequent attempt to open the file
+  // fails. Perhaps the OS is slow to release the lock, or the disk comes into
+  // play? In any case, we try to work around this by first waiting if the file
+  // is already there for an arbitrary 5 seconds. Then we use a try-catch block
+  // and try to open the file 10 times with a one second delay after each attempt.
+  // Again, 10 is arbitrary. But these seem to stop the hang in CR #870871.
+  // If there is an unrecognized exception when trying to open the file, we output
+  // an error message and write details to an exception.log file.
+  var ISEFullPath = ISERunDir + "/" + ISEFilename;
+  if (ISEFileSys.FileExists(ISEFullPath)) {
+    // File is already there. This could be a problem. Wait in case it is still in use.
+    WScript.Sleep(5000);
+  }
+  var i;
+  for (i = 0; i < 10; ++i) {
+    try {
+      return ISEFileSys.OpenTextFile(ISEFullPath, 8, true);
+    } catch (exception) {
+      var error_code = exception.number & 0xFFFF; // The other bits are a facility code.
+      if (error_code == 52) { // 52 is bad file name or number.
+        // Wait a second and try again.
+        WScript.Sleep(1000);
+        continue;
+      } else {
+        WScript.StdErr.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath);
+        var exceptionFilePath = ISERunDir + "/exception.log";
+        if (!ISEFileSys.FileExists(exceptionFilePath)) {
+          WScript.StdErr.WriteLine("See file " + exceptionFilePath + " for details.");
+          var exceptionFile = ISEFileSys.OpenTextFile(exceptionFilePath, 8, true);
+          exceptionFile.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath);
+          exceptionFile.WriteLine("\tException name: " + exception.name);
+          exceptionFile.WriteLine("\tException error code: " + error_code);
+          exceptionFile.WriteLine("\tException message: " + exception.message);
+          exceptionFile.Close();
+        }
+        throw exception;
+      }
+    }
+  }
+  // If we reached this point, we failed to open the file after 10 attempts.
+  // We need to error out.
+  WScript.StdErr.WriteLine("ERROR: Failed to open file " + ISEFullPath);
+  WScript.Quit(1);
+}
diff --git a/proj/AudioProc.runs/synth_1/ISEWrap.sh b/proj/AudioProc.runs/synth_1/ISEWrap.sh
new file mode 100644
index 0000000..05d5381
--- /dev/null
+++ b/proj/AudioProc.runs/synth_1/ISEWrap.sh
@@ -0,0 +1,85 @@
+#!/bin/sh
+
+#
+#  Vivado(TM)
+#  ISEWrap.sh: Vivado Runs Script for UNIX
+#  Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. 
+#  Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. 
+#
+
+cmd_exists()
+{
+  command -v "$1" >/dev/null 2>&1
+}
+
+HD_LOG=$1
+shift
+
+# CHECK for a STOP FILE
+if [ -f .stop.rst ]
+then
+echo ""                                        >> $HD_LOG
+echo "*** Halting run - EA reset detected ***" >> $HD_LOG
+echo ""                                        >> $HD_LOG
+exit 1
+fi
+
+ISE_STEP=$1
+shift
+
+# WRITE STEP HEADER to LOG
+echo ""                      >> $HD_LOG
+echo "*** Running $ISE_STEP" >> $HD_LOG
+echo "    with args $@"      >> $HD_LOG
+echo ""                      >> $HD_LOG
+
+# LAUNCH!
+$ISE_STEP "$@" >> $HD_LOG 2>&1 &
+
+# BEGIN file creation
+ISE_PID=$!
+
+HostNameFile=/proc/sys/kernel/hostname
+if cmd_exists hostname
+then
+ISE_HOST=$(hostname)
+elif cmd_exists uname
+then
+ISE_HOST=$(uname -n)
+elif [ -f "$HostNameFile" ] && [ -r $HostNameFile ] && [ -s $HostNameFile ] 
+then
+ISE_HOST=$(cat $HostNameFile)
+elif [ X != X$HOSTNAME ]
+then
+ISE_HOST=$HOSTNAME #bash
+else
+ISE_HOST=$HOST     #csh
+fi
+
+ISE_USER=$USER
+
+ISE_HOSTCORE=$(awk '/^processor/{print $3}' /proc/cpuinfo | wc -l)
+ISE_MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo)
+
+ISE_BEGINFILE=.$ISE_STEP.begin.rst
+/bin/touch $ISE_BEGINFILE
+echo "<?xml version=\"1.0\"?>"                                                                     >> $ISE_BEGINFILE
+echo "<ProcessHandle Version=\"1\" Minor=\"0\">"                                                   >> $ISE_BEGINFILE
+echo "    <Process Command=\"$ISE_STEP\" Owner=\"$ISE_USER\" Host=\"$ISE_HOST\" Pid=\"$ISE_PID\" HostCore=\"$ISE_HOSTCORE\" HostMemory=\"$ISE_MEMTOTAL\">" >> $ISE_BEGINFILE
+echo "    </Process>"                                                                              >> $ISE_BEGINFILE
+echo "</ProcessHandle>"                                                                            >> $ISE_BEGINFILE
+
+# WAIT for ISEStep to finish
+wait $ISE_PID
+
+# END/ERROR file creation
+RETVAL=$?
+if [ $RETVAL -eq 0 ]
+then
+    /bin/touch .$ISE_STEP.end.rst
+else
+    /bin/touch .$ISE_STEP.error.rst
+fi
+
+exit $RETVAL
+
diff --git a/proj/AudioProc.runs/synth_1/__synthesis_is_complete__ b/proj/AudioProc.runs/synth_1/__synthesis_is_complete__
new file mode 100644
index 0000000..e69de29
diff --git a/proj/AudioProc.runs/synth_1/controlUnit.dcp b/proj/AudioProc.runs/synth_1/controlUnit.dcp
new file mode 100644
index 0000000000000000000000000000000000000000..be17eb1c38dd5de5a49c9b3c314ed8f35bfdaf1b
GIT binary patch
literal 14483
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
C1yVc!

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.runs/synth_1/controlUnit.tcl b/proj/AudioProc.runs/synth_1/controlUnit.tcl
new file mode 100644
index 0000000..eae312a
--- /dev/null
+++ b/proj/AudioProc.runs/synth_1/controlUnit.tcl
@@ -0,0 +1,108 @@
+# 
+# Synthesis run script generated by Vivado
+# 
+
+set TIME_start [clock seconds] 
+namespace eval ::optrace {
+  variable script "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1/controlUnit.tcl"
+  variable category "vivado_synth"
+}
+
+# Try to connect to running dispatch if we haven't done so already.
+# This code assumes that the Tcl interpreter is not using threads,
+# since the ::dispatch::connected variable isn't mutex protected.
+if {![info exists ::dispatch::connected]} {
+  namespace eval ::dispatch {
+    variable connected false
+    if {[llength [array get env XILINX_CD_CONNECT_ID]] > 0} {
+      set result "true"
+      if {[catch {
+        if {[lsearch -exact [package names] DispatchTcl] < 0} {
+          set result [load librdi_cd_clienttcl[info sharedlibextension]] 
+        }
+        if {$result eq "false"} {
+          puts "WARNING: Could not load dispatch client library"
+        }
+        set connect_id [ ::dispatch::init_client -mode EXISTING_SERVER ]
+        if { $connect_id eq "" } {
+          puts "WARNING: Could not initialize dispatch client"
+        } else {
+          puts "INFO: Dispatch client connection id - $connect_id"
+          set connected true
+        }
+      } catch_res]} {
+        puts "WARNING: failed to connect to dispatch server - $catch_res"
+      }
+    }
+  }
+}
+if {$::dispatch::connected} {
+  # Remove the dummy proc if it exists.
+  if { [expr {[llength [info procs ::OPTRACE]] > 0}] } {
+    rename ::OPTRACE ""
+  }
+  proc ::OPTRACE { task action {tags {} } } {
+    ::vitis_log::op_trace "$task" $action -tags $tags -script $::optrace::script -category $::optrace::category
+  }
+  # dispatch is generic. We specifically want to attach logging.
+  ::vitis_log::connect_client
+} else {
+  # Add dummy proc if it doesn't exist.
+  if { [expr {[llength [info procs ::OPTRACE]] == 0}] } {
+    proc ::OPTRACE {{arg1 \"\" } {arg2 \"\"} {arg3 \"\" } {arg4 \"\"} {arg5 \"\" } {arg6 \"\"}} {
+        # Do nothing
+    }
+  }
+}
+
+OPTRACE "synth_1" START { ROLLUP_AUTO }
+OPTRACE "Creating in-memory project" START { }
+create_project -in_memory -part xc7a200tsbg484-1
+
+set_param project.singleFileAddWarning.threshold 0
+set_param project.compositeFile.enableAutoGeneration 0
+set_param synth.vivado.isSynthRun true
+set_property webtalk.parent_dir C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.cache/wt [current_project]
+set_property parent.project_path C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.xpr [current_project]
+set_property default_lib xil_defaultlib [current_project]
+set_property target_language VHDL [current_project]
+set_property ip_repo_paths c:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/repo [current_project]
+update_ip_catalog
+set_property ip_output_repo c:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.cache/ip [current_project]
+set_property ip_cache_permissions {read write} [current_project]
+OPTRACE "Creating in-memory project" END { }
+OPTRACE "Adding files" START { }
+read_vhdl -library xil_defaultlib C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd
+OPTRACE "Adding files" END { }
+# Mark all dcp files as not used in implementation to prevent them from being
+# stitched into the results of this synthesis run. Any black boxes in the
+# design are intentionally left as such for best results. Dcp files will be
+# stitched into the design at a later time, either when this synthesis run is
+# opened, or when it is stitched into a dependent implementation run.
+foreach dcp [get_files -quiet -all -filter file_type=="Design\ Checkpoint"] {
+  set_property used_in_implementation false $dcp
+}
+read_xdc C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc
+set_property used_in_implementation false [get_files C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc]
+
+set_param ips.enableIPCacheLiteLoad 1
+close [open __synthesis_is_running__ w]
+
+OPTRACE "synth_design" START { }
+synth_design -top controlUnit -part xc7a200tsbg484-1 -fanout_limit 400 -fsm_extraction one_hot -keep_equivalent_registers -resource_sharing off -no_lc -shreg_min_size 5
+OPTRACE "synth_design" END { }
+if { [get_msg_config -count -severity {CRITICAL WARNING}] > 0 } {
+ send_msg_id runtcl-6 info "Synthesis results are not added to the cache due to CRITICAL_WARNING"
+}
+
+
+OPTRACE "write_checkpoint" START { CHECKPOINT }
+# disable binary constraint mode for synth run checkpoints
+set_param constraints.enableBinaryConstraints false
+write_checkpoint -force -noxdef controlUnit.dcp
+OPTRACE "write_checkpoint" END { }
+OPTRACE "synth reports" START { REPORT }
+OPTRACE "synth reports" END { }
+file delete __synthesis_is_running__
+close [open __synthesis_is_complete__ w]
+OPTRACE "synth_1" END { }
diff --git a/proj/AudioProc.runs/synth_1/controlUnit.vds b/proj/AudioProc.runs/synth_1/controlUnit.vds
new file mode 100644
index 0000000..9cd05a3
--- /dev/null
+++ b/proj/AudioProc.runs/synth_1/controlUnit.vds
@@ -0,0 +1,324 @@
+#-----------------------------------------------------------
+# Vivado v2024.2 (64-bit)
+# SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024
+# IP Build 5239520 on Sun Nov 10 16:12:51 MST 2024
+# SharedData Build 5239561 on Fri Nov 08 14:39:27 MST 2024
+# Start of session at: Tue Mar 11 23:00:46 2025
+# Process ID         : 26040
+# Current directory  : C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1
+# Command line       : vivado.exe -log controlUnit.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source controlUnit.tcl
+# Log file           : C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1/controlUnit.vds
+# Journal file       : C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1\vivado.jou
+# Running On         : BOOK-IFJRPL7DU0
+# Platform           : Windows Server 2016 or Windows 10
+# Operating System   : 26100
+# Processor Detail   : 13th Gen Intel(R) Core(TM) i7-13700H
+# CPU Frequency      : 2918 MHz
+# CPU Physical cores : 14
+# CPU Logical cores  : 20
+# Host memory        : 33897 MB
+# Swap memory        : 2147 MB
+# Total Virtual      : 36045 MB
+# Available Virtual  : 12725 MB
+#-----------------------------------------------------------
+source controlUnit.tcl -notrace
+INFO: [IP_Flow 19-234] Refreshing IP repositories
+WARNING: [IP_Flow 19-2248] Failed to load user IP repository 'c:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/repo'; Can't find the specified path.
+If this directory should no longer be in your list of user repositories, go to the IP Settings dialog and remove it.
+INFO: [IP_Flow 19-2313] Loaded Vivado IP repository 'C:/Xilinx/Vivado/2024.2/data/ip'.
+WARNING: [IP_Flow 19-4995] The host OS only allows 260 characters in a normal path. The IP cache path is more than 80 characters. If you experience issues with IP caching, please consider changing the IP cache to a location with a shorter path. Alternately consider using the OS subst command to map part of the path to a drive letter. 
+Current IP cache path is c:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.cache/ip 
+Command: synth_design -top controlUnit -part xc7a200tsbg484-1 -fanout_limit 400 -fsm_extraction one_hot -keep_equivalent_registers -resource_sharing off -no_lc -shreg_min_size 5
+Starting synth_design
+Attempting to get a license for feature 'Synthesis' and/or device 'xc7a200t'
+INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7a200t'
+INFO: [Device 21-403] Loading part xc7a200tsbg484-1
+INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 2 processes.
+INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes
+INFO: [Synth 8-7075] Helper process launched with PID 42632
+---------------------------------------------------------------------------------
+Starting RTL Elaboration : Time (s): cpu = 00:00:05 ; elapsed = 00:00:07 . Memory (MB): peak = 1081.090 ; gain = 468.262
+---------------------------------------------------------------------------------
+INFO: [Synth 8-638] synthesizing module 'controlUnit' [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd:22]
+WARNING: [Synth 8-614] signal 'SR_filterStage' is read in the process but is not in the sensitivity list [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd:34]
+INFO: [Synth 8-256] done synthesizing module 'controlUnit' (0#1) [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd:22]
+---------------------------------------------------------------------------------
+Finished RTL Elaboration : Time (s): cpu = 00:00:09 ; elapsed = 00:00:11 . Memory (MB): peak = 1185.668 ; gain = 572.840
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Handling Custom Attributes
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Handling Custom Attributes : Time (s): cpu = 00:00:09 ; elapsed = 00:00:12 . Memory (MB): peak = 1185.668 ; gain = 572.840
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished RTL Optimization Phase 1 : Time (s): cpu = 00:00:09 ; elapsed = 00:00:12 . Memory (MB): peak = 1185.668 ; gain = 572.840
+---------------------------------------------------------------------------------
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.001 . Memory (MB): peak = 1185.668 ; gain = 0.000
+INFO: [Project 1-570] Preparing netlist for logic optimization
+
+Processing XDC Constraints
+Initializing timing engine
+Parsing XDC File [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc]
+WARNING: [Vivado 12-584] No ports matched 'CLK100MHZ'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:8]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:8]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'led3'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:15]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:15]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'led4'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:16]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:16]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'led5'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:17]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:17]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'led6'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:18]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:18]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'led7'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:19]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:19]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'BTNC'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:23]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:23]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'BTND'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:24]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:24]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'BTNL'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:25]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:25]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'BTNR'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:26]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:26]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'BTNU'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:27]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:27]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'rstn'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:28]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:28]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sw'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:32]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:32]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sw3'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:35]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:35]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sw4'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:36]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:36]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sw5'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:37]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:37]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sw6'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:38]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:38]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sw7'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:39]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:39]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'ac_adc_sdata'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:91]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:91]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'ac_bclk'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:92]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:92]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'ac_dac_sdata'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:93]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:93]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'ac_lrclk'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:94]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:94]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'ac_mclk'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:95]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:95]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'scl'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:202]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:202]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sda'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:203]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:203]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+Finished Parsing XDC File [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc]
+Completed Processing XDC Constraints
+
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1254.090 ; gain = 0.000
+INFO: [Project 1-111] Unisim Transformation Summary:
+No Unisim elements were transformed.
+
+Constraint Validation Runtime : Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.005 . Memory (MB): peak = 1254.090 ; gain = 0.000
+---------------------------------------------------------------------------------
+Finished Constraint Validation : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Loading Part and Timing Information
+---------------------------------------------------------------------------------
+Loading part: xc7a200tsbg484-1
+---------------------------------------------------------------------------------
+Finished Loading Part and Timing Information : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Applying 'set_property' XDC Constraints
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished applying 'set_property' XDC Constraints : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262
+---------------------------------------------------------------------------------
+INFO: [Synth 8-802] inferred FSM for state register 'SR_presentState_reg' in module 'controlUnit'
+---------------------------------------------------------------------------------------------------
+                   State |                     New Encoding |                Previous Encoding 
+---------------------------------------------------------------------------------------------------
+             wait_sample |                          0000001 |                              000
+                   store |                          0000010 |                              001
+         processing_loop |                          0000100 |                              010
+                  output |                          0001000 |                              011
+             next_filter |                          0010000 |                              101
+            final_output |                          0100000 |                              110
+         wait_end_sample |                          1000000 |                              100
+---------------------------------------------------------------------------------------------------
+INFO: [Synth 8-3354] encoded FSM with state register 'SR_presentState_reg' using encoding 'one-hot' in module 'controlUnit'
+---------------------------------------------------------------------------------
+Finished RTL Optimization Phase 2 : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start RTL Component Statistics 
+---------------------------------------------------------------------------------
+Detailed RTL Component Info : 
++---Adders : 
+	   2 Input    2 Bit       Adders := 1     
++---Registers : 
+	                2 Bit    Registers := 1     
++---Muxes : 
+	   7 Input    7 Bit        Muxes := 1     
+	   2 Input    7 Bit        Muxes := 4     
+	   2 Input    2 Bit        Muxes := 1     
+	   2 Input    1 Bit        Muxes := 1     
+	   7 Input    1 Bit        Muxes := 3     
+---------------------------------------------------------------------------------
+Finished RTL Component Statistics 
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Part Resource Summary
+---------------------------------------------------------------------------------
+Part Resources:
+DSPs: 740 (col length:100)
+BRAMs: 730 (col length: RAMB18 100 RAMB36 50)
+---------------------------------------------------------------------------------
+Finished Part Resource Summary
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Cross Boundary and Area Optimization
+---------------------------------------------------------------------------------
+WARNING: [Synth 8-7080] Parallel synthesis criteria is not met
+---------------------------------------------------------------------------------
+Finished Cross Boundary and Area Optimization : Time (s): cpu = 00:00:32 ; elapsed = 00:00:37 . Memory (MB): peak = 1254.090 ; gain = 641.262
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Applying XDC Timing Constraints
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Applying XDC Timing Constraints : Time (s): cpu = 00:00:47 ; elapsed = 00:00:54 . Memory (MB): peak = 1386.586 ; gain = 773.758
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Timing Optimization
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Timing Optimization : Time (s): cpu = 00:00:47 ; elapsed = 00:00:54 . Memory (MB): peak = 1386.586 ; gain = 773.758
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Technology Mapping
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Technology Mapping : Time (s): cpu = 00:00:47 ; elapsed = 00:00:54 . Memory (MB): peak = 1396.641 ; gain = 783.812
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Flattening Before IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Flattening Before IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Final Netlist Cleanup
+---------------------------------------------------------------------------------
+WARNING: synth_design option "-fanout_limit" is deprecated.
+---------------------------------------------------------------------------------
+Finished Final Netlist Cleanup
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished IO Insertion : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Instances
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Instances : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Rebuilding User Hierarchy
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Rebuilding User Hierarchy : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Ports
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Ports : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Handling Custom Attributes
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Handling Custom Attributes : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Nets
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Nets : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Writing Synthesis Report
+---------------------------------------------------------------------------------
+
+Report BlackBoxes: 
++-+--------------+----------+
+| |BlackBox name |Instances |
++-+--------------+----------+
++-+--------------+----------+
+
+Report Cell Usage: 
++------+-----+------+
+|      |Cell |Count |
++------+-----+------+
+|1     |BUFG |     1|
+|2     |LUT2 |     6|
+|3     |LUT3 |     3|
+|4     |LUT4 |     1|
+|5     |LUT5 |     2|
+|6     |FDCE |     8|
+|7     |FDPE |     1|
+|8     |IBUF |     4|
+|9     |OBUF |     9|
++------+-----+------+
+---------------------------------------------------------------------------------
+Finished Writing Synthesis Report : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+Synthesis finished with 0 errors, 0 critical warnings and 1 warnings.
+Synthesis Optimization Runtime : Time (s): cpu = 00:00:42 ; elapsed = 00:00:58 . Memory (MB): peak = 1612.969 ; gain = 931.719
+Synthesis Optimization Complete : Time (s): cpu = 00:00:56 ; elapsed = 00:01:04 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+INFO: [Project 1-571] Translating synthesized netlist
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1612.969 ; gain = 0.000
+INFO: [Project 1-570] Preparing netlist for logic optimization
+INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s).
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1612.969 ; gain = 0.000
+INFO: [Project 1-111] Unisim Transformation Summary:
+No Unisim elements were transformed.
+
+Synth Design complete | Checksum: f94b0336
+INFO: [Common 17-83] Releasing license: Synthesis
+18 Infos, 29 Warnings, 25 Critical Warnings and 0 Errors encountered.
+synth_design completed successfully
+synth_design: Time (s): cpu = 00:01:04 ; elapsed = 00:01:13 . Memory (MB): peak = 1612.969 ; gain = 1245.328
+INFO: [runtcl-6] Synthesis results are not added to the cache due to CRITICAL_WARNING
+Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.002 . Memory (MB): peak = 1612.969 ; gain = 0.000
+INFO: [Common 17-1381] The checkpoint 'C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1/controlUnit.dcp' has been generated.
+INFO: [Common 17-206] Exiting Vivado at Tue Mar 11 23:02:03 2025...
diff --git a/proj/AudioProc.runs/synth_1/gen_run.xml b/proj/AudioProc.runs/synth_1/gen_run.xml
new file mode 100644
index 0000000..1476d2c
--- /dev/null
+++ b/proj/AudioProc.runs/synth_1/gen_run.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<GenRun Id="synth_1" LaunchPart="xc7a200tsbg484-1" LaunchTime="1741730442">
+  <File Type="PA-TCL" Name="controlUnit.tcl"/>
+  <File Type="REPORTS-TCL" Name="controlUnit_reports.tcl"/>
+  <File Type="RDS-RDS" Name="controlUnit.vds"/>
+  <File Type="RDS-DCP" Name="controlUnit.dcp"/>
+  <FileSet Name="sources" Type="DesignSrcs" RelSrcDir="$PSRCDIR/sources_1" RelGenDir="$PGENDIR/sources_1">
+    <Filter Type="Srcs"/>
+    <File Path="$PPRDIR/../src/hdl/controlUnit.vhd">
+      <FileInfo>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <File Path="$PPRDIR/../src/hdl/operativeUnit.vhd">
+      <FileInfo>
+        <Attr Name="AutoDisabled" Val="1"/>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <File Path="$PPRDIR/../src/hdl/firUnit.vhd">
+      <FileInfo>
+        <Attr Name="AutoDisabled" Val="1"/>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <File Path="$PPRDIR/../src/hdl/tb_firUnit.vhd">
+      <FileInfo>
+        <Attr Name="AutoDisabled" Val="1"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <File Path="$PPRDIR/../src/ip/clk_wiz_0/clk_wiz_0.xci">
+      <FileInfo>
+        <Attr Name="AutoDisabled" Val="1"/>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="implementation"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <File Path="$PPRDIR/../src/hdl/audio_init.v">
+      <FileInfo>
+        <Attr Name="AutoDisabled" Val="1"/>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="implementation"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <File Path="$PPRDIR/../src/hdl/debounce.v">
+      <FileInfo>
+        <Attr Name="AutoDisabled" Val="1"/>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="implementation"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <File Path="$PPRDIR/../src/hdl/TWICtl.vhd">
+      <FileInfo>
+        <Attr Name="AutoDisabled" Val="1"/>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <File Path="$PPRDIR/../src/hdl/fir.vhd">
+      <FileInfo>
+        <Attr Name="AutoDisabled" Val="1"/>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <File Path="$PPRDIR/../src/hdl/i2s_ctl.vhd">
+      <FileInfo>
+        <Attr Name="AutoDisabled" Val="1"/>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <File Path="$PPRDIR/../src/hdl/audioProc.v">
+      <FileInfo>
+        <Attr Name="AutoDisabled" Val="1"/>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="implementation"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <Config>
+      <Option Name="DesignMode" Val="RTL"/>
+      <Option Name="TopModule" Val="controlUnit"/>
+    </Config>
+  </FileSet>
+  <FileSet Name="constrs_in" Type="Constrs" RelSrcDir="$PSRCDIR/constrs_1" RelGenDir="$PGENDIR/constrs_1">
+    <Filter Type="Constrs"/>
+    <File Path="$PPRDIR/../src/constraints/NexysVideo_Master.xdc">
+      <FileInfo>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="implementation"/>
+      </FileInfo>
+    </File>
+    <Config>
+      <Option Name="ConstrsType" Val="XDC"/>
+    </Config>
+  </FileSet>
+  <FileSet Name="utils" Type="Utils" RelSrcDir="$PSRCDIR/utils_1" RelGenDir="$PGENDIR/utils_1">
+    <Filter Type="Utils"/>
+    <Config>
+      <Option Name="TopAutoSet" Val="TRUE"/>
+    </Config>
+  </FileSet>
+  <Strategy Version="1" Minor="2">
+    <StratHandle Name="Flow_PerfOptimized_High" Flow="Vivado Synthesis 2014"/>
+    <Step Id="synth_design">
+      <Option Id="FsmExtraction">1</Option>
+      <Option Id="KeepEquivalentRegisters">1</Option>
+      <Option Id="NoCombineLuts">1</Option>
+      <Option Id="RepFanoutThreshold">400</Option>
+      <Option Id="ResourceSharing">2</Option>
+      <Option Id="ShregMinSize">5</Option>
+    </Step>
+  </Strategy>
+</GenRun>
diff --git a/proj/AudioProc.runs/synth_1/htr.txt b/proj/AudioProc.runs/synth_1/htr.txt
new file mode 100644
index 0000000..ba6b514
--- /dev/null
+++ b/proj/AudioProc.runs/synth_1/htr.txt
@@ -0,0 +1,10 @@
+REM
+REM Vivado(TM)
+REM htr.txt: a Vivado-generated description of how-to-repeat the
+REM          the basic steps of a run.  Note that runme.bat/sh needs
+REM          to be invoked for Vivado to track run status.
+REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+REM Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+REM
+
+vivado -log controlUnit.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source controlUnit.tcl
diff --git a/proj/AudioProc.runs/synth_1/project.wdf b/proj/AudioProc.runs/synth_1/project.wdf
new file mode 100644
index 0000000..f1d3e11
--- /dev/null
+++ b/proj/AudioProc.runs/synth_1/project.wdf
@@ -0,0 +1,31 @@
+version:1
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:737263736574636f756e74:3131:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:636f6e73747261696e74736574636f756e74:31:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:64657369676e6d6f6465:52544c:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:73796e7468657369737374726174656779:466c6f775f506572664f7074696d697a65645f48696768:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:696d706c7374726174656779:56697661646f20496d706c656d656e746174696f6e2044656661756c7473:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:63757272656e7473796e74686573697372756e:73796e74685f31:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:63757272656e74696d706c72756e:696d706c5f31:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:746f74616c73796e74686573697372756e73:31:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:746f74616c696d706c72756e73:31:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:636f72655f636f6e7461696e6572:66616c7365:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:73696d756c61746f725f6c616e6775616765:4d69786564:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:7461726765745f6c616e6775616765:5648444c:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:64656661756c745f6c696272617279:78696c5f64656661756c746c6962:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:7461726765745f73696d756c61746f72:5853696d:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f7873696d:313239:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f6d6f64656c73696d:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f717565737461:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f696573:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f766373:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f72697669657261:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f61637469766568646c:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f7873696d:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f6d6f64656c73696d:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f717565737461:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f696573:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f766373:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f72697669657261:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f61637469766568646c:30:00:00
+5f5f48494444454e5f5f:5f5f48494444454e5f5f:50726f6a65637455554944:3238613064366633653562323462333061616630666633386336303662663433:506172656e742050412070726f6a656374204944:00
+eof:2655913581
diff --git a/proj/AudioProc.runs/synth_1/rundef.js b/proj/AudioProc.runs/synth_1/rundef.js
new file mode 100644
index 0000000..fadc53b
--- /dev/null
+++ b/proj/AudioProc.runs/synth_1/rundef.js
@@ -0,0 +1,37 @@
+//
+// Vivado(TM)
+// rundef.js: a Vivado-generated Runs Script for WSH 5.1/5.6
+// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+//
+
+var WshShell = new ActiveXObject( "WScript.Shell" );
+var ProcEnv = WshShell.Environment( "Process" );
+var PathVal = ProcEnv("PATH");
+if ( PathVal.length == 0 ) {
+  PathVal = "C:/Xilinx/Vitis/2024.2/bin;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/bin/nt64;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/lib/nt64;C:/Xilinx/Vivado/2024.2/bin;";
+} else {
+  PathVal = "C:/Xilinx/Vitis/2024.2/bin;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/bin/nt64;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/lib/nt64;C:/Xilinx/Vivado/2024.2/bin;" + PathVal;
+}
+
+ProcEnv("PATH") = PathVal;
+
+var RDScrFP = WScript.ScriptFullName;
+var RDScrN = WScript.ScriptName;
+var RDScrDir = RDScrFP.substr( 0, RDScrFP.length - RDScrN.length - 1 );
+var ISEJScriptLib = RDScrDir + "/ISEWrap.js";
+eval( EAInclude(ISEJScriptLib) );
+
+
+ISEStep( "vivado",
+         "-log controlUnit.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source controlUnit.tcl" );
+
+
+
+function EAInclude( EAInclFilename ) {
+  var EAFso = new ActiveXObject( "Scripting.FileSystemObject" );
+  var EAInclFile = EAFso.OpenTextFile( EAInclFilename );
+  var EAIFContents = EAInclFile.ReadAll();
+  EAInclFile.Close();
+  return EAIFContents;
+}
diff --git a/proj/AudioProc.runs/synth_1/runme.bat b/proj/AudioProc.runs/synth_1/runme.bat
new file mode 100644
index 0000000..6733dc9
--- /dev/null
+++ b/proj/AudioProc.runs/synth_1/runme.bat
@@ -0,0 +1,11 @@
+@echo off
+
+rem  Vivado (TM)
+rem  runme.bat: a Vivado-generated Script
+rem  Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+rem  Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+
+
+set HD_SDIR=%~dp0
+cd /d "%HD_SDIR%"
+cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %*
diff --git a/proj/AudioProc.runs/synth_1/runme.log b/proj/AudioProc.runs/synth_1/runme.log
new file mode 100644
index 0000000..1df6445
--- /dev/null
+++ b/proj/AudioProc.runs/synth_1/runme.log
@@ -0,0 +1,315 @@
+
+*** Running vivado
+    with args -log controlUnit.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source controlUnit.tcl
+
+
+
+****** Vivado v2024.2 (64-bit)
+  **** SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024
+  **** IP Build 5239520 on Sun Nov 10 16:12:51 MST 2024
+  **** SharedData Build 5239561 on Fri Nov 08 14:39:27 MST 2024
+  **** Start of session at: Tue Mar 11 23:00:46 2025
+    ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+    ** Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+
+source controlUnit.tcl -notrace
+INFO: [IP_Flow 19-234] Refreshing IP repositories
+WARNING: [IP_Flow 19-2248] Failed to load user IP repository 'c:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/repo'; Can't find the specified path.
+If this directory should no longer be in your list of user repositories, go to the IP Settings dialog and remove it.
+INFO: [IP_Flow 19-2313] Loaded Vivado IP repository 'C:/Xilinx/Vivado/2024.2/data/ip'.
+WARNING: [IP_Flow 19-4995] The host OS only allows 260 characters in a normal path. The IP cache path is more than 80 characters. If you experience issues with IP caching, please consider changing the IP cache to a location with a shorter path. Alternately consider using the OS subst command to map part of the path to a drive letter. 
+Current IP cache path is c:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.cache/ip 
+Command: synth_design -top controlUnit -part xc7a200tsbg484-1 -fanout_limit 400 -fsm_extraction one_hot -keep_equivalent_registers -resource_sharing off -no_lc -shreg_min_size 5
+Starting synth_design
+Attempting to get a license for feature 'Synthesis' and/or device 'xc7a200t'
+INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7a200t'
+INFO: [Device 21-403] Loading part xc7a200tsbg484-1
+INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 2 processes.
+INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes
+INFO: [Synth 8-7075] Helper process launched with PID 42632
+---------------------------------------------------------------------------------
+Starting RTL Elaboration : Time (s): cpu = 00:00:05 ; elapsed = 00:00:07 . Memory (MB): peak = 1081.090 ; gain = 468.262
+---------------------------------------------------------------------------------
+INFO: [Synth 8-638] synthesizing module 'controlUnit' [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd:22]
+WARNING: [Synth 8-614] signal 'SR_filterStage' is read in the process but is not in the sensitivity list [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd:34]
+INFO: [Synth 8-256] done synthesizing module 'controlUnit' (0#1) [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd:22]
+---------------------------------------------------------------------------------
+Finished RTL Elaboration : Time (s): cpu = 00:00:09 ; elapsed = 00:00:11 . Memory (MB): peak = 1185.668 ; gain = 572.840
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Handling Custom Attributes
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Handling Custom Attributes : Time (s): cpu = 00:00:09 ; elapsed = 00:00:12 . Memory (MB): peak = 1185.668 ; gain = 572.840
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished RTL Optimization Phase 1 : Time (s): cpu = 00:00:09 ; elapsed = 00:00:12 . Memory (MB): peak = 1185.668 ; gain = 572.840
+---------------------------------------------------------------------------------
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.001 . Memory (MB): peak = 1185.668 ; gain = 0.000
+INFO: [Project 1-570] Preparing netlist for logic optimization
+
+Processing XDC Constraints
+Initializing timing engine
+Parsing XDC File [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc]
+WARNING: [Vivado 12-584] No ports matched 'CLK100MHZ'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:8]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:8]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'led3'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:15]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:15]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'led4'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:16]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:16]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'led5'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:17]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:17]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'led6'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:18]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:18]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'led7'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:19]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:19]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'BTNC'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:23]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:23]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'BTND'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:24]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:24]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'BTNL'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:25]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:25]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'BTNR'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:26]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:26]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'BTNU'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:27]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:27]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'rstn'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:28]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:28]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sw'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:32]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:32]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sw3'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:35]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:35]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sw4'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:36]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:36]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sw5'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:37]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:37]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sw6'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:38]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:38]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sw7'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:39]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:39]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'ac_adc_sdata'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:91]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:91]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'ac_bclk'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:92]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:92]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'ac_dac_sdata'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:93]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:93]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'ac_lrclk'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:94]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:94]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'ac_mclk'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:95]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:95]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'scl'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:202]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:202]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+WARNING: [Vivado 12-584] No ports matched 'sda'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:203]
+CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:203]
+Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
+Finished Parsing XDC File [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc]
+Completed Processing XDC Constraints
+
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1254.090 ; gain = 0.000
+INFO: [Project 1-111] Unisim Transformation Summary:
+No Unisim elements were transformed.
+
+Constraint Validation Runtime : Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.005 . Memory (MB): peak = 1254.090 ; gain = 0.000
+---------------------------------------------------------------------------------
+Finished Constraint Validation : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Loading Part and Timing Information
+---------------------------------------------------------------------------------
+Loading part: xc7a200tsbg484-1
+---------------------------------------------------------------------------------
+Finished Loading Part and Timing Information : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Applying 'set_property' XDC Constraints
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished applying 'set_property' XDC Constraints : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262
+---------------------------------------------------------------------------------
+INFO: [Synth 8-802] inferred FSM for state register 'SR_presentState_reg' in module 'controlUnit'
+---------------------------------------------------------------------------------------------------
+                   State |                     New Encoding |                Previous Encoding 
+---------------------------------------------------------------------------------------------------
+             wait_sample |                          0000001 |                              000
+                   store |                          0000010 |                              001
+         processing_loop |                          0000100 |                              010
+                  output |                          0001000 |                              011
+             next_filter |                          0010000 |                              101
+            final_output |                          0100000 |                              110
+         wait_end_sample |                          1000000 |                              100
+---------------------------------------------------------------------------------------------------
+INFO: [Synth 8-3354] encoded FSM with state register 'SR_presentState_reg' using encoding 'one-hot' in module 'controlUnit'
+---------------------------------------------------------------------------------
+Finished RTL Optimization Phase 2 : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start RTL Component Statistics 
+---------------------------------------------------------------------------------
+Detailed RTL Component Info : 
++---Adders : 
+	   2 Input    2 Bit       Adders := 1     
++---Registers : 
+	                2 Bit    Registers := 1     
++---Muxes : 
+	   7 Input    7 Bit        Muxes := 1     
+	   2 Input    7 Bit        Muxes := 4     
+	   2 Input    2 Bit        Muxes := 1     
+	   2 Input    1 Bit        Muxes := 1     
+	   7 Input    1 Bit        Muxes := 3     
+---------------------------------------------------------------------------------
+Finished RTL Component Statistics 
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Part Resource Summary
+---------------------------------------------------------------------------------
+Part Resources:
+DSPs: 740 (col length:100)
+BRAMs: 730 (col length: RAMB18 100 RAMB36 50)
+---------------------------------------------------------------------------------
+Finished Part Resource Summary
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Cross Boundary and Area Optimization
+---------------------------------------------------------------------------------
+WARNING: [Synth 8-7080] Parallel synthesis criteria is not met
+---------------------------------------------------------------------------------
+Finished Cross Boundary and Area Optimization : Time (s): cpu = 00:00:32 ; elapsed = 00:00:37 . Memory (MB): peak = 1254.090 ; gain = 641.262
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Applying XDC Timing Constraints
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Applying XDC Timing Constraints : Time (s): cpu = 00:00:47 ; elapsed = 00:00:54 . Memory (MB): peak = 1386.586 ; gain = 773.758
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Timing Optimization
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Timing Optimization : Time (s): cpu = 00:00:47 ; elapsed = 00:00:54 . Memory (MB): peak = 1386.586 ; gain = 773.758
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Technology Mapping
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Technology Mapping : Time (s): cpu = 00:00:47 ; elapsed = 00:00:54 . Memory (MB): peak = 1396.641 ; gain = 783.812
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Flattening Before IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Flattening Before IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Final Netlist Cleanup
+---------------------------------------------------------------------------------
+WARNING: synth_design option "-fanout_limit" is deprecated.
+---------------------------------------------------------------------------------
+Finished Final Netlist Cleanup
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished IO Insertion : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Instances
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Instances : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Rebuilding User Hierarchy
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Rebuilding User Hierarchy : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Ports
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Ports : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Handling Custom Attributes
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Handling Custom Attributes : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Nets
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Nets : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Writing Synthesis Report
+---------------------------------------------------------------------------------
+
+Report BlackBoxes: 
++-+--------------+----------+
+| |BlackBox name |Instances |
++-+--------------+----------+
++-+--------------+----------+
+
+Report Cell Usage: 
++------+-----+------+
+|      |Cell |Count |
++------+-----+------+
+|1     |BUFG |     1|
+|2     |LUT2 |     6|
+|3     |LUT3 |     3|
+|4     |LUT4 |     1|
+|5     |LUT5 |     2|
+|6     |FDCE |     8|
+|7     |FDPE |     1|
+|8     |IBUF |     4|
+|9     |OBUF |     9|
++------+-----+------+
+---------------------------------------------------------------------------------
+Finished Writing Synthesis Report : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+---------------------------------------------------------------------------------
+Synthesis finished with 0 errors, 0 critical warnings and 1 warnings.
+Synthesis Optimization Runtime : Time (s): cpu = 00:00:42 ; elapsed = 00:00:58 . Memory (MB): peak = 1612.969 ; gain = 931.719
+Synthesis Optimization Complete : Time (s): cpu = 00:00:56 ; elapsed = 00:01:04 . Memory (MB): peak = 1612.969 ; gain = 1000.141
+INFO: [Project 1-571] Translating synthesized netlist
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1612.969 ; gain = 0.000
+INFO: [Project 1-570] Preparing netlist for logic optimization
+INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s).
+Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1612.969 ; gain = 0.000
+INFO: [Project 1-111] Unisim Transformation Summary:
+No Unisim elements were transformed.
+
+Synth Design complete | Checksum: f94b0336
+INFO: [Common 17-83] Releasing license: Synthesis
+18 Infos, 29 Warnings, 25 Critical Warnings and 0 Errors encountered.
+synth_design completed successfully
+synth_design: Time (s): cpu = 00:01:04 ; elapsed = 00:01:13 . Memory (MB): peak = 1612.969 ; gain = 1245.328
+INFO: [runtcl-6] Synthesis results are not added to the cache due to CRITICAL_WARNING
+Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.002 . Memory (MB): peak = 1612.969 ; gain = 0.000
+INFO: [Common 17-1381] The checkpoint 'C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1/controlUnit.dcp' has been generated.
+INFO: [Common 17-206] Exiting Vivado at Tue Mar 11 23:02:03 2025...
diff --git a/proj/AudioProc.runs/synth_1/runme.sh b/proj/AudioProc.runs/synth_1/runme.sh
new file mode 100644
index 0000000..35b6709
--- /dev/null
+++ b/proj/AudioProc.runs/synth_1/runme.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+
+# 
+# Vivado(TM)
+# runme.sh: a Vivado-generated Runs Script for UNIX
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+# 
+
+echo "This script was generated under a different operating system."
+echo "Please update the PATH and LD_LIBRARY_PATH variables below, before executing this script"
+exit
+
+if [ -z "$PATH" ]; then
+  PATH=C:/Xilinx/Vitis/2024.2/bin;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/bin/nt64;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/lib/nt64:C:/Xilinx/Vivado/2024.2/bin
+else
+  PATH=C:/Xilinx/Vitis/2024.2/bin;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/bin/nt64;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/lib/nt64:C:/Xilinx/Vivado/2024.2/bin:$PATH
+fi
+export PATH
+
+if [ -z "$LD_LIBRARY_PATH" ]; then
+  LD_LIBRARY_PATH=
+else
+  LD_LIBRARY_PATH=:$LD_LIBRARY_PATH
+fi
+export LD_LIBRARY_PATH
+
+HD_PWD='C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1'
+cd "$HD_PWD"
+
+HD_LOG=runme.log
+/bin/touch $HD_LOG
+
+ISEStep="./ISEWrap.sh"
+EAStep()
+{
+     $ISEStep $HD_LOG "$@" >> $HD_LOG 2>&1
+     if [ $? -ne 0 ]
+     then
+         exit
+     fi
+}
+
+EAStep vivado -log controlUnit.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source controlUnit.tcl
diff --git a/proj/AudioProc.runs/synth_1/vivado.jou b/proj/AudioProc.runs/synth_1/vivado.jou
new file mode 100644
index 0000000..16184e7
--- /dev/null
+++ b/proj/AudioProc.runs/synth_1/vivado.jou
@@ -0,0 +1,24 @@
+#-----------------------------------------------------------
+# Vivado v2024.2 (64-bit)
+# SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024
+# IP Build 5239520 on Sun Nov 10 16:12:51 MST 2024
+# SharedData Build 5239561 on Fri Nov 08 14:39:27 MST 2024
+# Start of session at: Tue Mar 11 23:00:46 2025
+# Process ID         : 26040
+# Current directory  : C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1
+# Command line       : vivado.exe -log controlUnit.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source controlUnit.tcl
+# Log file           : C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1/controlUnit.vds
+# Journal file       : C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1\vivado.jou
+# Running On         : BOOK-IFJRPL7DU0
+# Platform           : Windows Server 2016 or Windows 10
+# Operating System   : 26100
+# Processor Detail   : 13th Gen Intel(R) Core(TM) i7-13700H
+# CPU Frequency      : 2918 MHz
+# CPU Physical cores : 14
+# CPU Logical cores  : 20
+# Host memory        : 33897 MB
+# Swap memory        : 2147 MB
+# Total Virtual      : 36045 MB
+# Available Virtual  : 12725 MB
+#-----------------------------------------------------------
+source controlUnit.tcl -notrace
diff --git a/proj/AudioProc.runs/synth_1/vivado.pb b/proj/AudioProc.runs/synth_1/vivado.pb
new file mode 100644
index 0000000000000000000000000000000000000000..546585ccf9f5b98f92ca3d006660e7d5a85a28a9
GIT binary patch
literal 32872
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

literal 0
HcmV?d00001

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/compile.bat b/proj/AudioProc.sim/sim_1/behav/xsim/compile.bat
index 90c0bc0..882944f 100644
--- a/proj/AudioProc.sim/sim_1/behav/xsim/compile.bat
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/compile.bat
@@ -6,7 +6,7 @@ REM Filename    : compile.bat
 REM Simulator   : AMD Vivado Simulator
 REM Description : Script for compiling the simulation design source files
 REM
-REM Generated by Vivado on Sat Mar 08 19:39:29 +0100 2025
+REM Generated by Vivado on Tue Mar 18 22:56:13 +0100 2025
 REM SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024
 REM
 REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/compile.log b/proj/AudioProc.sim/sim_1/behav/xsim/compile.log
new file mode 100644
index 0000000..e9b0a65
--- /dev/null
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/compile.log
@@ -0,0 +1,8 @@
+INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'controlUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/operativeUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'operativeUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'firUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/tb_firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'tb_firUnit'
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.bat b/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.bat
index b4dbe4f..6a296df 100644
--- a/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.bat
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.bat
@@ -6,7 +6,7 @@ REM Filename    : elaborate.bat
 REM Simulator   : AMD Vivado Simulator
 REM Description : Script for elaborating the compiled design
 REM
-REM Generated by Vivado on Sat Mar 08 19:39:30 +0100 2025
+REM Generated by Vivado on Tue Mar 18 22:56:15 +0100 2025
 REM SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024
 REM
 REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.log b/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.log
index db78a7c..515bcc8 100644
--- a/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.log
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.log
@@ -5,4 +5,15 @@ Running: C:/Xilinx/Vivado/2024.2/bin/unwrapped/win64.o/xelab.exe --incr --debug
 Using 2 slave threads.
 Starting static elaboration
 Completed static elaboration
-INFO: [XSIM 43-4323] No Change in HDL. Linking previously generated obj files to create kernel
+Starting simulation data flow analysis
+Completed simulation data flow analysis
+Time Resolution for simulation is 1ps
+Compiling package std.standard
+Compiling package std.textio
+Compiling package ieee.std_logic_1164
+Compiling package ieee.numeric_std
+Compiling architecture archi_operativeunit of entity xil_defaultlib.controlUnit [controlunit_default]
+Compiling architecture arch_operativeunit of entity xil_defaultlib.operativeUnit [operativeunit_default]
+Compiling architecture archi_firunit of entity xil_defaultlib.firUnit [firunit_default]
+Compiling architecture archi_tb_firunit of entity xil_defaultlib.tb_firunit
+Built simulation snapshot tb_firUnit_behav
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/simulate.bat b/proj/AudioProc.sim/sim_1/behav/xsim/simulate.bat
index d40839b..7592180 100644
--- a/proj/AudioProc.sim/sim_1/behav/xsim/simulate.bat
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/simulate.bat
@@ -6,7 +6,7 @@ REM Filename    : simulate.bat
 REM Simulator   : AMD Vivado Simulator
 REM Description : Script for simulating the design by launching the simulator
 REM
-REM Generated by Vivado on Sat Mar 08 18:23:47 +0100 2025
+REM Generated by Vivado on Tue Mar 18 22:56:16 +0100 2025
 REM SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024
 REM
 REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb b/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb
index 92bae6e04f64d3de695bb19e86c20b7dd4aed561..0a124f5b9dca22e3cdb98dbdbdd741af6a74cc7a 100644
GIT binary patch
delta 109
zcmaF<nE3$n1Pdj`H#gHom>A$-0waWJ$O@rP+D>L<w3|3XhZm&kr!7Qu=fscU6ALti
eUNSQ<2!Mn*Km-FrMD64#Mn3@$s39H@Q3e39%@U6Q

literal 61927
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
UItO$^^#9-g{{K|B*v-5X00AIYdH?_b

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xelab.pb b/proj/AudioProc.sim/sim_1/behav/xsim/xelab.pb
index 0e76091ce692a7c8ed1f8df69a920743b1957817..cb33821cb848f406541364fbad7d42619dbd4469 100644
GIT binary patch
literal 1963
zcmd<`<ziDUR!}YG5@3;HHZe5N;w;Y0EzL<R$uBYz;t~kUEK5wuR|tlSadUB&85tOv
z=o#r5M6sI~>l#~{n`bZ-uvD;2U}O+r;+n<C#SAtM*`!*oYUlid%A(Blj1mPyOA9ky
zBLgENg^0|Y%)AO61<$->Jq5>{9EBi|f?|cB)Z)~lveXnkE`%<S29Pcj1;>=K#JuFx
z6b0YR<f429m(;S%<kVt3rXV}7g^7zNs5CDxGcVl==51qRV`RskXXHA==xn7Aah*OS
z2=pPI)=$dJ(=W{{FG?&ZNKMf%&&)G3(aYDbNX<!1(o3yKRnXPV%u6m((A7;zO)5=S
zD5)&SOis*E(A6zU%}K0K(ACW?Q7}@_^--wE%!yA)O-n4zDapx90*Mr-CYKhaW)^_h
z6$QBpy1K=Ai3P<O`6UV^N%3i!MWK0_CGknA8Hr_Ry7dt93c5M@=?Wm{<QFBDr0Riq
zka#jNu|y6CCob{O;>^5s1=V7O;+({?RE3g^qSV9`NJ=m^H%AT<W-dk}s414lsHVsS
zmn0UIfD9@wNi4}shTEN)p9fA<#wJEcMnO$6wLmt-nM>9=Ker$!wInq~0f#Y07RYH6
zVvMn+8L~0HT<QqNKvHaGex5=~Vo9PxT26ksLSkNGPGxZ>)QcvDSloq@mi@RiklaPk
zL?d%c3=@qlO_7}##HAXNnVSkq;rThGB_QXe<rgVH^Bjnq3D1qjCMHP68L@IP8x|Bp
zJZ@rUfNZKa7ca=2pxgwCPe`y^AUnoLj7y{-F*!RiJyoH&Bt@^dBrz`~u_y&%oT&kd
zBRvTlC&DF!Y+OldMM-8pR>Oh_8z##o4Kpk=H8oYQxFjV$CqF$iIo{CF%mk~c{)A1H
z;*vlyHLo-`wJ0+=zPJRtuO~4QHZzthI<Y7@BeNtmxumoxRRPS2&o4+VN-W7NOD)aI
zEK$f$Q%KD#$t<Zv&!oxuc_l^pIiOsu5Dn#kbij&%SgbysN`$i#xZ=PrL3S3gu7W!r
z;x0Isu*+JAaG5`sFNVu9L1h`pc-%n+E$kGc(=v-dD)9$V1>uNu=5oa14oI;HvH-VJ
z5NfbSPdJyXQ)y;S333*O7u(=^P>R{e+yXfx3vmfR3<ZTaq&$ZhZER_RoU8e`xLos6
N6oOKd^NUgh7y;%yPpkj{

delta 139
zcmZ3@f1Yi_S*H4YE>FLF1?P;!y!2Fs%sd4T7au(ZpUk}M%)E4kf}+&2%>2^goJxiC
z)V$Q9#FEq$h5V!}g|y6^)MAB_e1+tq)Wnihh3wR#ywn^4Rw-svOA9T|;>_IAoWzp+
qq9}F~V_g$tBjXH)0@e!F35*N^Ok8|iT&{U33PGvK`9;hr0*nCpCMyyE

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_0.win64.obj b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_0.win64.obj
index b9ea848c6020f20559f2661c92bd8ee660742b73..51cfd6dc986e82e69f3c0153fd167cb9cad472b3 100644
GIT binary patch
literal 23178
zcmYdkV`Bh;9sUdqz90qz1A|^kYDEc@4Wc@27#LU>85nwPK|BTqW<~}E1%`kGy_Cd~
zM2HZaT;mRBf*B4B1_$(#ii^P<JVXOXT?MLv7Z@2Bu$bqdSA?prfPsOb#*=~JjVHtc
zJ_ZH`2L=ZRy#iEq4U7y76<!PsKfEF862R&V92~<P!yH4x!h=1U-)Q)B9(O$E5W(Wu
zToJ%n>g>@S@6he<(H-vN((NAN*!<&v=Lvq7LypZq7#%yWxbV9?w7lrT@Ats9^WlFH
zRgk$Z+UXuH{Oi+0JQ?r2oXEhy;MsZJr#C&qqu1TTqnpE{+kwNQ(?7wZ(><fxJ)zS*
zrrSS<fBixJ_5LZAC+d?u8;>t2U|{g+HUXP9VZww7{M+0kJbGmgcyyN|xy7a1KgRL@
zwQi6BDV>M3!#()dhllWQ6A|-a{LQ~jM5-e^!tz9kP<MC^<AqN582<H#_}8DZJW;p7
zv5Q5;qxpzNbbOp+jANW*{9%wS2<&*w!HL0<f187YM=#3(NB(UAjvkDsx>}e%7BDb4
zb~rc@tKO-QH1(5ls&|CAr>lkI2}F$}k{iJB7Yd5OP*@atcAj<Yc1UnF{NH+DFDO>{
zJzqE;cgSF5U|?|UbjWe+%qVa??oa~acfN$ioMY!P4>-r8^VlXvkIsXhoiAR13~=dA
zPjGF0;>z#&$EWirREI~Wdxb~mL66Q)zMVh7%8s`;FfcHHjCJW;-on7Z;L^FjgMoqJ
zczX|2+@l+;#G|u)3IhX!M|V3&+M~054g&*2H(0E*eFBKxzkq>(0h}`WXD~1@Sf1eT
zUjo*FNEwhg^XSeG==RU(4$pDvb}w=1?gwfAe+|lT={%wBp25G~y@Y?83o9rb=divl
z1lgQl(cKSnZTEDrL%YFF{C}+*Y`r$vmHg|$f*moe3=rXNs9Q>8x~GHO$9MtaT3G7h
z@5}rD|G!6fdBt&e2S_laySQ}LdmMN70dYN&!NK8y6oiK%A?OJWK@Vukcj^52|C&qZ
z&;QpvI&XlJYb-du#$u#cQ2d95!{gquJ0ijGZR>4*kGq{Wp%Dd+S{TQp^O)f!aMa!a
z$C*oaeS&N2|J|TycI5ZG@A&_`2VAE|r+Wd+fl%e0^%ck6Ye1?y=YzuUcsnTk{{R2~
z{}?zj8M@sQdOiNP9^m(U(b*4*_v7Fo1?yN3iuL2|pcn<|@aP7mpmtDDA`-?5Q1pYv
zpvj_t4Lm7;k^m?vfC^z)P(hLboCK!_u)W>WK}o@-8*H6RcRwhNffELZ0ZJI)*yUdj
zmIo&fmVY*^<$3(u4*XX+3UaSUcYZ;)e?@nAjY~Jgo7cL*Nmbjuf`2_&<d_R91Ji3S
zxb+i=)WiH*459}TYK#!hgb5QM7IcGCyX6T`N&|Txl+r-XMx->6|Ns9tfRhsgf6GEp
z*64MwfETg-TR<Y6?R&t13F36NZve6T55NO+2RL8VXP^cohWlN*`$0NESp!5Pyw1PP
zKcmA3ls7=)-Te^rN+i0cgX{pg7$gpJaosYH?(zbc&U%OA?k=Ff?TiOy3ve<>-VaJi
z$l2m3EY(2@7MK&k*`o6%C|A6I=L*y^-0_%$BO|!{?rP!qhFM;M^Gf3zkYjy14|{Z;
z^X#o~Fnnux$#Dlbi^B7!4P$AjM`w&mfk(G<K(}{97Yj#6iwej~KD{m~1s<Ir!THCA
zxl{+FOaqjwU`1mWLx+n>21uO-Tpg1G|CFPznGD}{zVK)~0<u3kHa_k!DE~Ub%J0TE
zGZ+~dd_YC<X~*u0gkJamj-3sl4CZS1w)MXwzsFz4&IVAK>3F;Wl(#?u>Dajgl+YcI
zH-K^%C_o)M8$emi@puC$%|O+Fa+%}t22d6Pse${`vGX`0<UKo&fc$X~Rvx)@Zv)xx
z*z3mV+WHM%nKb|V=fdy*!Xx=FLaRq-8z}2~bRP8Sd<56uxeXLz$J;<j5abY-&UGNK
zA8!MtOprUe+CXvN(FRI0$J<VT)PT}y8_3$uwlkpGqwNZ`_Gtd`&!w|QMaQKxM@6GE
zM@5Cd?+z0KL$3#8XWs>|$|F$ytq1r!t}=mI5;owLgimjdih)OOj!K0`XNgLMM|WLD
zcONK>x~GAH$fdgt6fQ2^eINrI|6hl)K&3<*NE!cnumb*VEbJXEDmxh%7(nJ2cy!kV
zboYVcqk9@CI$XNjKyl#s|9W>D$RzDHkR1Pduqarwi%KE?Hn3+qz=`OlFSLs7Xi)(L
zj7R59Sf%UOdBmf8A1F+_`#^!%Jq;9yF5TdugE|n&CXf>T^$^Jp6?TyOz@EkBNQ4Pc
z7TB|x?k&I(SV&f*hmea(p+_gO&maM|MJ0d{6mVNqI2aiiV8PI$;sFvR6eF+zMYpR(
z#S^5x^QKR43)oz6uIy-0nFto%q5?`-2)jV76CAMy4F)8Cp$A5b3M1H1uw5W?VRlVG
z2!p%`6Gn?rNFs-Lq`ME4v@K7R7<EqrC+`cL;1mNZF8TX{|Nj5~TI6^eC}D$A^>MH~
zhy_g*E}dl#$KAkXX}61tMyH#{aW@}Omhwp62C?}gv;p7&D(DV+bpG<}`~Y?vtUT@Z
zQPKH-t=mUM1yrQo@Mt_TgOPy&R4zHjI6~SQDCJZ08w;P#WAKv6AqUjP1QkpF9XlPs
zZAy^)96Kv29FIHHfZT#q%p5~5D-LgB0yjb+<-1FFUXEjLE~9JfTSrjAz~I8~`P8xb
z?>|R=zxSTWe~@*8%L{Pza0^k&tOG^W@itH%1i7Gd9jHV+4$gKUSGaWh<+y13W$^bj
zfeIJDg6^=A&hsvs=UuwpYCM?h0*<?=Xn+(RcTrIQ8Q{?^11>lIU-s<01<m1Z86aai
zPrGQIM#=3S%=17+Sf`7M0?Zi4|ChSma<tttdOa9h54iAq{`Ba)>CyQM)=>87-Urg+
z(wPT~!OlFS*aJD<qmy9lfonsT&WDh=Yd&Iu5^>NL1vvgfz_niU8wJ<S^B$eoJUUNz
z?@<A{z_s&?Z|@c!4t7wj^U<;M2Q<aB9^h~32bFTY-8<|-&1D@(a9s81?LOee!0;c$
zNQj3rDpH_~59v_Gh71T}bp{(K$G`OG{N&pC!x5euJUWkg_V&mqfbIPRi${-6423?O
zA3Zt|3K|bX47>?9(4+Z?0@UAej`1G<Rlp8~dVa!$31J@1ZxlQ_ukBQ2SioR-3F<$O
zZnunXzk&uE4(3wvoodKZ$J!pSFfcH@_S~tCEbP(ir(t->)$o9;;Yp|=EeA@Rc50v~
z>TVNYVPNR)lVD+B05urEW_k4XU0`Nl@Mt`Cf&~;BpFnPogF6+>gZJpb@daxSG{3O`
zN7q?ck9em6*gD7m*Z8-${x4);Nb79tU}a$N=$%&pvZ8li0V@N8;|?ZJ+<}uE)U7)W
zVH%IMtzczfVDjkgdjTr7dZ$fbMbwiXojxiW9-Sd729E!)?=(W_IRVn+)4MJLRH^nZ
z+W^wj`O>HJ5lEdWOr1w}+YM%r{~s`e3V0R{kLDlj{OuXc3=IEOjv6p9Fzhr3tA)DC
zqq_~%Ea~n8)pDT7;BWO}W?<N9fvo6Q+Y43(2F8~=Kr(h<8OQ(EAl_j1=mt5sJ4D66
zqniaB^`4!_|6kZ?4^zj#y_K;D9!}Uo#sQ}ESR2Tf%sy~`IU;00P5^}&2Pg&`k6i$T
zdFLme&L1zIF)}dhbb+bl-`>iM-#S;AQjhL7P|erf2dXk4o=;(7VA$yfQvmTei$`xC
z*w)@@U|XTy^Z<L)9ibK!t4P7||N2f3h6M~SXMqAe9Hxwadn-GB=S9Gjg5nZXSoS?&
zU|@ha?+(bTkuU`i=dt2*UKBztrt_i^l1SnHax%!lelR)y?X9f%9qbQN>e1aMzz9lw
z5{xhhJAoV=08;>QFf%>}2O`v>IoPA~hX+~_>+%1=&P137{_U-t_#K)AQ|i&(1{#g)
z?(2X%6x4XznG99{%^DELvb{V63XU9P8T3rU#NP_4{dVRuEMRyoyt5cY@$Ae5Q58F_
zkaa@LWO!Y;(+g9W>2=i3SWIE&*UmeGF@;%P>+DR$6lQ%bx-%bBm>m}8@SKAgme7J5
zUS3xq8v{y=@PehmhJ&$`^H|#iHU<Xf*X$4mD06NA6=;peD!_FPS}6;w5#Z)m;WWRC
zg`@Le!@++IKbgu{Y*;~7S+GN`0x>{VDKLQxbWjE6(TT$<u$6H8YDlr~0n9!S17zO>
zh<zv6u~Z;ndte0IzB-)tHP~=4fjrg00reD!0kVVvRE0DiE8xIm3Ecb!eC9KQ%s1eK
znh#=t%s&C~gajus<~QLppABUG4Vd{L2FQF1i2Dx^Wqu1m^BcIJ?gueI=FfnbpTULC
z{o$a2ba1VGey2IZ2IMwJyL1sqXPXBo7Q5TILA>sMVGz~X=KvDyYy%}QkKVow5UW7x
z%W;PUxHbo+GL3jdy8#m8VaWDbBiq;A?p(yc(Ag#ciq7tKYp^wK91xx{gvS8kDT8?3
z{n{X^v+oDQB_BXkZ=V9B#=F4|YFDV>aS0apI3T;nqj$PH$b#O!9ULIDN>~^eAia^^
zz6lUZ7QiJSnF`ap6HxrS5Y7DEWuT@|-vwTf`JfR5nE4E#`nvJh4!8tP^Fi$|$ZUuK
zG!i$USc24WjNG{qMXK?*eL2|vAABJDLH_gT`~`CYxb4??>;WGGg9oge;c9rmaVJFG
zCuq6<atf%<+Kgf_wx%b4OEyU178Hfu-~p6w@L&j}%60=O+KQs6@%ZLyP&HWrDlM7&
z3K$s}K<)vJenFZ?jyoaE$6rt<wH)AY`NsfiBtiz?cWwil=lK5`sJ{c!2htx4N*d5^
zli|r-aiGZt@Q|9T;mQA(yZ7AyMKSZf3oKykG+^35>QIzB?gUBwzwFW52MNavkVbeo
z?gNKo?>v-n^y!8S^EmF{0a?2fqUEPY=Pgk4bUVzsC^e@?w+M$v=QNNV-7Xv)oox*K
z=rIE_%%c-(%mk0-BL<*ZBh>Lml=QeCY!futkoy?6I}adB9d8p50d+IMsU-naT{Ry2
zAq+}1psoi-+T3{vSu@t22!D$NsCj%CRpIol#Kbhzy)6eyw09msF`&B*G+xr(2O6&d
zrKi%moktlqFuXMW|NsBa^C(Jtr*9|8F8-EgP|M~5iXrIs@wZ+ADY^)<bN|2p|92ik
zQ*Hrn@PX!9K+fZD6$Uk+kE1C9bs4++3fLGJnr%4Zpk|%`nVAhT^EQg|-sw9@^hYnq
ziFZ&8!Su&%kfOUFJHP+^|9|HtH09|2@CIeu%V>&F{K3TEdKqNq6_A;WL1vx;u~b1C
zpQC7OJieP4A9-{l=l4?}vtOW?gYK!)*qtvyR;qz4zlWw2)kCFqJMW_@K=BM?Y0AzA
zAhT}$`Tu|CHHHlguj6;VLeqg}r1s9&XbMn_<SLce`37WU`=9^+L30K1aff$40-4OZ
z^Bqo&-7Fmc4|IZa=gY)D|Nl>zfLR~>LebqjeJ?Sg3(sTxEiIrSe&{^k&fj3e9RFYQ
z=x#%}zuSfbR-~bpjh#Oo|6f1&oT-<kzPk@nqPATCm5<#bj2@lSc8D-Abh|KebhaH3
z0hcYH(EyL$X$wF+XxR)YBmZCC`3INPc&uCivWvNG28e=K`2cR^3y>wfeKSB+ZSS-b
zBB0_7RD%A$yz?Jct01}24wPm8!xS8A;}B(F0QJ#8<(WtCv=1Otp~d_E>pK}3K`kn9
z|6fBCGK{eT)T->ACLqed@c;TwMuY+nsDcL&1qKiWOpF^CUIwr;Fzn<4D}~04NAL9g
zBu3;<<cQ=38-_n3LDec`n#mC*BEi)ab6Wx;R7r|R9$Z!%p4^4YN&}Ex%xxMViiC*d
z!)jHt4F?l{>t;|y^1~DyYXb#8C?b)9-vbem0tkiJBT^8d0F)#^?Qf(c@&EcxAy7oN
zvobL3WI-s!ViuC6tO$i5*MZDLa^3&yJJ}Eluv^LwvQ!9UsT5c#BJ~`kB=tyx4a1*$
zK+Pg-spki%tH9j$0YpKflBColgUf2ele=(Pc>rV=a~o(x&I4j4QN@59R;!wAI2ia_
zE`U;x3QWPVHvAE(icp9>BGnKIut%giC?Y*UZ6*<fQv8;RA{1h`R1Bd2yQShFORs=@
zss&aGOFfOp4-=DmP^)MG&`>O_9?=Gyhd%*vf!fC4COK;H;{htMncEyd6eKoDN<cce
ztTsHk3zwAwAiJ2`I6xG{N}>{w9#*TGZ8*62TX{h(AAOjDV{IAGdL#gpR(q!fh=Qgu
zAl-!j*LNBq6k?A{Lxch>sRA@Oj!=LS*^S3QRn|*TlX<5+LJi0eP-%!%TOk!p3J8VR
zoui0QfMOe@g8YAdrxN1^hSxR7eUzOh2t6R%L8Tpb+f5M)vD<EjP=MWbbA$p=xPz<$
zhkN5OaJYAVf()O+`cEGJA3#P6CQJbJwHx0Ufcm1KiK+8DZNNrBb4GVt11O0ww^e|s
z&KB^bmB;ZG70`$$H>k%6?(u=9?mRkMR6rAF-F={uTMy>G1z;^bDxeu-kQUHP16WIE
ziwbDI0kk~Bz@vA%gDq%K2DWs=qw{!oj7o(^Z-`0(xSuW#wgof<1F^+LMZ=@lM@0cr
z6hqzV(arAB?a$%S*(M+cGObSnM0L9hcyzWYfSA2~2SCngJoZBr)Gh)U=g|r4^TXF$
zP4H+u0t$-g_&C^vkYgBl?ym6-WR4j$cem3PIfy)ZcY}P;-KGHQM>4lbfT+$E6;P)L
z<ZaL#gB)lj=014_1_qEHd^#aB@yA<KKw$zB?rsCmEii*;KtLf03SW?JP>7<3KnplX
zLBVGMnbw2`LiZX-^mMkUfV%e{-7cV&7Cmr5kk33idsILTdC+YA4N%A;Pf~%xevXO)
zC@u6(Q2`C(gJM7f<a(dZ63_w;9~BK8;eG-X%AI`|Kolh0Z$Oyh9-VFXLCoGh&?JsW
z<FO55peO)&8xaMt8S&1S|F3}-7=dB}6yo5iMR;U@<`a>}+Z<6M0%>T-cBd1nRQsK3
zP`YTFFAge(+OI-*Ga$U9AYOO>*=h!cm!Jvioh~Svu@C?J0rk*aQ51H!fu`@f`xY=l
zCO}HFce<e}X#WkesuSjnFAyHo8BajG?*2C*s<Uqb$Zef%9U!W=PXLsv8jlr-BLy9#
zR|T8L-06;LRU2ppb9dhjm|OgJdY~!zzzQ0M`T@!pps|?l8V=Ba4A{cXePHXmLpTIH
zI;TP0=fVMsN>Bj4%myv9Y(Aoaxqb?=@Zp+A=lPuhsMf(JeEC}wK`9K{9oiWPQFghz
zox27!TpAz&jv?k6aC~`yc)fiVAn*51GmrpzAKa;dtasiS1l8@)-7XK&(E!rX-Odl<
zb@z*dsLs9$kYHz90f_4DdjYAEB0xOQ&>3hb$fFxF#SR`41QieeukH+n8s6OwT5;Lg
zb^xTIyWJjaW*cZ&*rU7M9KzcGky8ipy8HD(RA=7`kYH!q0ua^P7r_GR6He;@@nF`1
ztpknf{=d321Ztf}<8g10{@%U^VE=*!QjrESEkF_0c<cm*F%Wg1{$G9hn1g{~XBfmd
zNI>BjwAuwy7>=T_yUl?KlrB7&Ac>g2^&2RqN1!P}B%X#E4pC<Q);4C)2qh#CcSeF$
zJO00lJVFU-&H8jh=9y5sMy`e@9sghP=$;4afpxC~b;pqPf%;G=>LEjvU@b1%pdua;
z_$=BU-9FkJ9w_1N)4L56?moTyP{JJ+-H_h6<4#bF`*eQv>HPKo>dq)oGqDlWHcbHg
z16sa%bhmMUg9g;{gN%1+voJ91Ohi+J5j1h27=xwvB#7$Eo}KrQJ;@0wjG<~!8g8zj
z;aiW+yWR63?ZkPYb|SJ)P#X_L2PAm@U-j&K;{i)U6(Hj~Z-EEHeR}tS(@^g`lr-c6
z%>l3=0cr7pj=o;qnGANe<Ns?uz1u<c9klWS#VN=!pn46Ira_L`392wa3pzo9jypv`
z)!tQ)?lwfYc=Wn(aKfv(9Uv7TjUW+Fh3A3Nr~tJee0oz<EIc}Y`hXU@KY+#uw7%>1
z;OOjo0m=>C3?7|rpgaSrw!rI%z}X8_Ucfy9TUpfk^8e+XDPT`QjU&-V(0oOaw=jGJ
zSrr8K5xB?#`v^~|1^1uh|Erxp|6hLD!-A9xW5C`Us<|*0=6a9b`J|^faOpr<l5+tk
zIgid;&;$ZqvjvVFaLEpi9dO|eO8TH$1Rfu-vIM^3>ZL!ZJjn+832L54cUuLxJZXRz
zwOSxWIcSOy`373lN`h47BCDc(+T9DvMW77r(YXex{fVvlJ_pj`><v+=05xGjZGA|)
ze+_u~wnuLdxc!gOknC&&)%M-)9Gz|8MgX+hZ#;&m_7M$6c$@v@H{@Z!G;pY(O^rdy
zR!G%^Qc{A-)~nt7AO-6_q6=2EQWZAEh@(`6^m&m>Rrs9N&U9qwf<hORkU&Kt5oKt1
z2&fF51}g8mT{r|g+rVWY$N-d-h_Eb!a?3zP5yUcZ@r1o81<wSa$-gYHrHB*{8Yb)R
z1CN=38l9cfphj|ZwjmqYcnqa=1`9n<B1EJCP$vP@-~@LPU<+n<<|ErkOx=X7B!>nr
zI6;B~7f*^r+D-slwhL>NBdvcdMRt})cbfwnxRnKJ*g^t=Lkcu`0GbIEkODOn`#M0)
z)W%~UBw>wS$i$=q$`S<d{AUGps@#}C0eQWHn?bjq1!x(hi%J2gyJ+Ci`4ij%=xF-^
zYJ&IHX?QdqdjMjBl1+y&0|PkjK$SW;*}yu;jyphdjypjlM8c!_NCn1P2+)`UsJ{%}
z2nSm8X@cyYV{HqVz%vGQ2_C)kI+&1Vdtu8fQEk5ko@M}PVg^^}7GCJ?L#SW^t5|Ul
zn+nj(F?hcrs2_<EUgpT|^FW@x#~x}Ppcv`h2U>dW(Rj=N!~+GKgA+f_fCI@n?gWw8
z0}gY3%L>_1-R;-Gy&_14X+IC@7j%Nhntgh=fm%i$z4JgzKEd7x<$Kt?6*wqC*#*3U
z7c>vw-ToNasM`pmz?xT_(uH^eP1Ad1P0!IZY54nK)$|)#(`PhID=ueY)x=&4>i<D~
z`X5b`Mnor8O~S~UxNE_kMo<|8@zb5<ST)HbYZ6D(q>*?Gt0rw^P0DDRG8SLOs>vK#
zlRlcJ6;GdF)#Qw<$r?@53-vEpHTffJa!1pYu||jyGev+h25d<1uonXZ11|#u0}}%%
zSwUDVObiUdU@<`^1_scQ2_^<bCI$vjgPn!JjER9k3@i)kD}qL;SQs`j!Az-SW?%sI
zs+btMm>C!#vXht@7$m_u?lZ$oe!~ni`42P9WJwm7$)FAvMDJb}n8^~X44`#W3``7c
zY%np<T11F#3)x_{tz?7QCd$shAPctFhMj>ynt_3Vg&~lgfdSM}VPZ&ui~VJXxr&Pe
z<|-);n5$elV6KYdfZ6eg1LlGjP6h@6u*uWltT-+P2GE9Z7KTf3mK`@tER>r8wC06@
zg&`fzdcX|}wU68|JAQJ*{E@-~b6+73%zceKF!!zIfw}Jh4@|EVF9U-j*yn}3FtK^O
zFgw=6#kTXp>=5E(U{D6@(Bxxa01ZtrF%<DJFn|_!Gck1V!AzOW$H1TlR<{x^b_uTT
z6CVSE23VGtAI4IFv&{J!7&O7Mo^Y{Reg+0Du-GcN*kgVM1|6^%mjFyQTL2dOl>#u6
z=fPQL;p+Yh!1U$_!dP1bVWw~k!Nh`vU}AgVVl2Wiu~cE0x+%gi+t$HZFW{{IaF&<|
zOr0*A<pO6#!&%)TFgq5(#U8`Om_%Ww_=&>Q6~V>!!NnfI#gxTh>YT)2dYj>5i{N69
z;bKhUFm=x2FuiGTv901TpI?KE*-OC0(j;Jd>m^_*VhLRK7+m%~T$V)=rdL}Mrq>P5
zN|J<`(j&>hU<r=%`Ec1ylCbo00xtFz&XSj6V6Xz~(3gUl94G}#_p78}CZCjonH(k!
zQ&$LQEs%z}Zyj9hpft?h>u@nP8JKMnGB8t|;jALKYzJIyJDha~&f=DZ>9vxDnHK;T
ztB13ez*%?UEPgqd4pljrDFJX+A)K`s&N>2T{e`ov<zafW<YDGj!Numt!^*X{^007O
zp#V!IEQ&C_#)>e#&Tz3*MVQ`giZH!}N-(|8;4CL)m??$IFjE@gVvChwrhHL`nX+C5
zW(sH&5mH(-sKQLyqzW_T5M1nuD$Ep9HJB+M)L^F6tHW4-;jCF2F!Ojc85r!q>B>oy
zfx#ZkYS4t4(y0kL=mS(=?$w0paMxmBa009A&|+Y42D5f)!Spg~!}M}%!}Pjo!}KP?
zS@YnmjoPsEcN{ME0?u;PfteSq12d%r&Uy@I{eiQrbYVJrbYXcxTMw2$lJ#Jwl<C3j
z?SYGJgtIQfS)cV_xvW|rX5Mmrm?>xAtT%9$fB{TLz5&eMJ_DFub3+COH*lzx7{WrR
z%@AhZZbO(}P9vDQa3h#(r4dY)(HLgla$}gfC&n=Iz8k}I$e6%bPH<Ma3Cxt!CNRCs
zrmz?^F@=SnttrerFH@K)Ii@hZM@?aVdtwT6%S$tuItz1{ShP7ztkoQ*_m(-#j!$q|
z3k#T7m<3Enp#=kjAh^A;&;n-OK??>3&^a_r4A0=|I4xnaZI&>-%PnDgZ^31MS;F*6
zTfx+YSi$r%F!Hi9@H%lCa1^j7upMA|!1RHEfl+{yLBNT}fIEPzfHQ&P0NVwqI1f7m
zj}wOhdjMMjYXVe^n~i~+QJjIrfH{DvfH8qln2SM}(U<{UH`vT1bWsKdMm`P(J|ivz
z&H#i97+IMZSdADHaO#1{lS;EOGq5><T*<(|NDLd~w;*-{m~T<^pv!TwGH@}fF)$lI
z%?E`mqY(p}0c!wD0doS=12j9q;Utb3PB1@#-1i7-7AGqMrxU9Iia9VjG<V3bf_jS#
z3;|FYG|vwbfzjyl`JlEf0|Uc4DD4VLdkhQ=PoVTvA&_nc20KuHfq{YHI+R`lr6IDQ
z(`h)MOhyK%Q4EaWjsi%SkpVnx4?b@I)O>`9fi^BeSQa1(Eb9PgdB9l#a8?AI1v+O5
z#9?H}08wDQAO;g?kORbEU|{&d2x&}%xNOXjtOjC(<|1JBfL30@%m=NIhnWVN90Tp-
z1*r#(bb`(w0I~nGFff3QHUP2185kHqX9s}TNem1O;4Rh+3=AMP=$HbKI7kg>OFE1V
z+LR7s-vKcg7#Kimo<P}|3=9l!plr}e?jKM#$mgK*vOruA8?+@4#8zWsV32|O`5wrR
zP<8|-0|RJ507#7_Xe0<K-p0tl5CLU_CgO9TY&mWQ2GGt0kop(~1_qEEh~3J-zyO;4
z2C?TcFfc5Es_z5&9m?)xVqiD`WrIc;m>EFJ?IA2sssNn^#>@cXgAx-nIDJ4^pspuG
z7Szd;VqjokW{_cEV1TedX$B$->aKvqnZcb82n*DKfXIT<5op-~GlK~O0|SHwN>LD5
z8wSwHVjz=2aSk$*nE|xBA0i7%WlCUseHa)RAS_UNfXIe0FfgctWkF#MVSz#iA`41`
z+F;of1_lNQ3zU8!vN;S447y-h&{<*-7U%>th%9IpP7f>#I`jv^0;M;IENIGCA1n)6
zFalwLHsM2LLFpIdXJ!Uas)VpWoqLEZD0Lcw^@3KRKv<wtI3Tj1v}^>H1)YBbVS#o@
zLS#Xy*%&Mf8h?ebK&cuc3mP8-g)lP%D0M?vpp!))vY=FM3f2ocS^>fWrFMucXi<t8
zSQeD(AuP}iScohr^_zobLF1SZ7AO}$WIr%4Fo5Ednc)kZ1<Dr?S<r$FYp`C>rV0oP
zlv5zGp!H&)6u`{D!^pq@VS(}vL{@~6fdO;?9Ww)HRSbj$%1sbi(25yHu*oWn3=9w!
zXax>LR)>)RoQ{|oKnrj{DT<lFgpq*(A`8lUu3)`3j0_AA7HH`ZMAn6ofdO==9Ww)H
z84-j9I?4(n3);90N|($GA)uTKHU*StA+j-y3=E(_9cG3EI4cEiFX%Kf&{1^E44|A1
zVS%<HLG*&oCIh8&W^i7Iuxj9Xk<aJ@WoKqa&?$YOL!m<4E+v6P7#NVx=L1dPgJeNv
z0|bLa7#NVx=3@rA9-<YZ1hg3vbRHnmxqP6~f|(Jtt_7sTarv2FAQ1)z<TLp|)fqD*
zC?|miUV=*9m_Q;749Ms4f&It`+5-&AnTB#Qzd<4(GZ`3EA<7v*H4(&>pi&Vc2Wsqt
zSfHUOP})GKac5y*0L2<Y1auAoC_E7&Pna1PKr4d~BB1rVpz;tQ0t#c04Im7$9pXa}
zA7p!OYHo2VsBnM?FhJCNKngb|hTPQL<bq150&rs*%!VjMV*UoRAp}GcwB!M_v>4$Y
z&}je{*g&<m0@N;HW(I~2C?cyMMu16(IiP$E=E7|U9TU{Rj%-dKD+7Z953&d-{7`j?
zvobI|;6+xGj^b00YS1YeAR2@rwqL?f(}N*W%)-C`+QEkKX*5JL$QY<k3o%6MkRk&j
zX~V+6Fo7T0h4(Pju!7WxAgj3v3PTi;Ma&Eg38KhqvY8neE})2*Ff%Y1h#{-_%f!Gi
z0Y$`(m4V>{iU?>iO@KJEE<+Xuh65-fznB>qK=WIO&^X7;zyMlQgAkd{%)lTZiEIw2
zmIMbEJeJpEgmVHj1A~J!vMx<#1_lLrWRXvx*>4SG5zz25s>zm+;06mqm|PfkS+g=Q
zEYL(Y2eeKHtOf4EZ4k|1K?w6Q3j>3JHnOf*Q26K|i}XO0BI!~Cr5|%-HETgWwLlgD
zl|f)FaNEm3af+hGo|%E6z!F&(2dE&lf{A3XGBCu)XXX~fXJ%){7Z;QkXH+2xWTvL3
z#^;shrWR!;#}}8R#206#=cT5^=a%M_WESL9A}KA)NXdyWPR>Y8Da}cZFDXjQD^5%<
z$;{6K>q*RsFV4v?M^~Sjms(VknV1t_l$w>AT!JJGH>sc~KRLCy7)c6jQ)*diUJ1<T
zg2bZ4+|-iPB6L+biNz)HWr;bZsrZx@7vvWp=}bZ8f~`x=NKMX;FG|cyPmRw{i_gqU
zNv()S(S=P}aZYA(DylM2Ac6|eTx1&)b28KOkX=xjmzbNGj1r0<^O2N*xbcZaMTwR1
z$@#ejiAAaLsfDG9Ip|6t;gp=1larK~oQ)(4j%y@-3MlT8__(6JD784VDiui~7MGx@
zC@#q@iO<i=$;`vhSCm<tnU@})nv#wzh0E^Dyps6DloTY(aj68U0?QS|n<N^frKKiY
z#ut|+#al9@R-`7EmZZj;AehDorjaEBRGVd@d1{(rauQgZ1wtEwX^dbRSzy&>j?ji+
z8Y7rS=2*3vA+#Zw#t5d78CGqk2yF<au_;!yCJ40%rm+cDwZ?F@rU<49f@y4wRhtn)
z8-i(qU>X}C#UnTo!Sg(p(jyI&lZ#VJK&jXu9+bcgvD#{gu+@-k^BIsGV1U&g1B5*Y
OrU_gvN}@9~U;qGJa=W<z

literal 18800
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
Klr&{%zyJWf_edT9

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c
index 2306e51..39a36f6 100644
--- a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c
@@ -62,11 +62,11 @@ IKI_DLLESPEC extern void execute_32(char*, char *);
 IKI_DLLESPEC extern void execute_33(char*, char *);
 IKI_DLLESPEC extern void execute_34(char*, char *);
 IKI_DLLESPEC extern void execute_35(char*, char *);
+IKI_DLLESPEC extern void execute_36(char*, char *);
 IKI_DLLESPEC extern void execute_37(char*, char *);
 IKI_DLLESPEC extern void execute_38(char*, char *);
 IKI_DLLESPEC extern void execute_39(char*, char *);
 IKI_DLLESPEC extern void execute_40(char*, char *);
-IKI_DLLESPEC extern void execute_41(char*, char *);
 IKI_DLLESPEC extern void execute_42(char*, char *);
 IKI_DLLESPEC extern void execute_43(char*, char *);
 IKI_DLLESPEC extern void execute_44(char*, char *);
@@ -76,16 +76,19 @@ IKI_DLLESPEC extern void execute_47(char*, char *);
 IKI_DLLESPEC extern void execute_48(char*, char *);
 IKI_DLLESPEC extern void execute_49(char*, char *);
 IKI_DLLESPEC extern void execute_50(char*, char *);
+IKI_DLLESPEC extern void execute_51(char*, char *);
+IKI_DLLESPEC extern void execute_52(char*, char *);
+IKI_DLLESPEC extern void execute_53(char*, char *);
 IKI_DLLESPEC extern void transaction_0(char*, char*, unsigned, unsigned, unsigned);
 IKI_DLLESPEC extern void vhdl_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *);
-funcp funcTab[24] = {(funcp)execute_26, (funcp)execute_27, (funcp)execute_28, (funcp)execute_29, (funcp)execute_32, (funcp)execute_33, (funcp)execute_34, (funcp)execute_35, (funcp)execute_37, (funcp)execute_38, (funcp)execute_39, (funcp)execute_40, (funcp)execute_41, (funcp)execute_42, (funcp)execute_43, (funcp)execute_44, (funcp)execute_45, (funcp)execute_46, (funcp)execute_47, (funcp)execute_48, (funcp)execute_49, (funcp)execute_50, (funcp)transaction_0, (funcp)vhdl_transfunc_eventcallback};
-const int NumRelocateId= 24;
+funcp funcTab[27] = {(funcp)execute_26, (funcp)execute_27, (funcp)execute_28, (funcp)execute_29, (funcp)execute_32, (funcp)execute_33, (funcp)execute_34, (funcp)execute_35, (funcp)execute_36, (funcp)execute_37, (funcp)execute_38, (funcp)execute_39, (funcp)execute_40, (funcp)execute_42, (funcp)execute_43, (funcp)execute_44, (funcp)execute_45, (funcp)execute_46, (funcp)execute_47, (funcp)execute_48, (funcp)execute_49, (funcp)execute_50, (funcp)execute_51, (funcp)execute_52, (funcp)execute_53, (funcp)transaction_0, (funcp)vhdl_transfunc_eventcallback};
+const int NumRelocateId= 27;
 
 void relocate(char *dp)
 {
-	iki_relocate(dp, "xsim.dir/tb_firUnit_behav/xsim.reloc",  (void **)funcTab, 24);
-	iki_vhdl_file_variable_register(dp + 12632);
-	iki_vhdl_file_variable_register(dp + 12688);
+	iki_relocate(dp, "xsim.dir/tb_firUnit_behav/xsim.reloc",  (void **)funcTab, 27);
+	iki_vhdl_file_variable_register(dp + 14376);
+	iki_vhdl_file_variable_register(dp + 14432);
 
 
 	/*Populate the transaction function pointer field in the whole net structure */
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.win64.obj b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.win64.obj
index 61e0b5b2725ca1d9831705a809ae010ce5a1a3b9..77d2a211d16e84e8c90bc3f4f0dbbe675d5159d7 100644
GIT binary patch
delta 303
zcmaDO-6+eO(#FmJ2J8$B4ikCh8K+Ftl^1-#z`&5h#K2I+3YKG#o*3)Q=reJlI^&;-
zC)HV1SQr>OCVo|B44Ev+D5opUz`)?s3s&mUD+<!_A541mc57HLFnDyEg2k?R^mZp$
zY))Z3!8o~rNnx@M^Abks%@>&~nIsP|FfiCMFfcGOoM2#JumiI$FfcIKZ+2xfWMsX;
zz`!8AxthJ1+3f%m$Se?6V1O`BLnsCY2AIe-43Q@&B8<$N`M8ys7|kZD@tRFe=Z#WG
Ytw>ESElG_xHDrJ@jSx)Z$p?6K0H=yO!vFvP

delta 186
zcmZpaeIw1A(#FmJ0*BZb7;Go<$}^Ts)Rh-Jz`($e!^FT4#R`&RV33#?>&&P#aiKcn
zorx#aSy@;Z7`!HaRc17qEXgRRE5X3P;L{6M>d`9-((xZmdh~Wj7&0(;ben?3u6gu!
zPcYn^!gzvlvJdkTMv2WInJbw#cd+R&vVts>*u0aynOWd46G$}(D=;uIJYd?~#I3|M
Sc|ETVqv7O>yeX5z__P7-`YTcZ

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.dbg b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.dbg
index 996eb5bcef13763a5511bea1d5c6a913b58524e2..977edfdc3b090cc560d422298ee6523588da95bd 100644
GIT binary patch
literal 14440
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
G_5lE4=_Bd@

literal 11896
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
R%`6fd)RqCQmqikSGXc4i;*$UX

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.mem b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.mem
index 65efeaad460ffe4b5fafcbe58c8a61560fcf0589..aadc0cde6f6320e416ef4b953df9c100fb9701e2 100644
GIT binary patch
delta 2788
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
Je=VN=9RRX%qM-l)

delta 2434
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

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.reloc b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.reloc
index adfe195c8edf1fc716d345a74120cfdb3008fb21..054fa97f5595f310eb1ad26354c696a980802fca 100644
GIT binary patch
literal 1533
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

literal 1240
zcmcb@!oX0$xOckthTCBRZCAq|Ez$q}c4nEHR`I3j-K*4USNO{3dDu)YIaV95p^=dR
z!T|~zAOPZMMC5+^ovtLlo$33V@~}<kZvH*L?%lV`4^D1PKO?E#JAbGB&S%NI=hs<(
z|G+5sAmiD;)F+Px;|_l0oqzuT>z>x@=6B~GRGo8pw)oxnL+m@67Eiyk|Hqx<b4ss@
z&$%=A*YoeoVh-J^XU+aEyXNor4d3MJ9`0ZMS3mJ>J#Y4Z>4@L=58tY1%l^;0=I`_k
z-|E}GA6eXdczSJYw|=e91A%#aAAOdtV9tLickaQ9(Eax9{sp}4#ox^fc=<oPG5yXS
z|1;u%_KtRCi~76oy&nkAIkelnLVnGkts6dx*S!6%S#KQivpeCbdfU|bB4IV<8y-a;
z=*s8R-j^Qn@omD<a>3ufMD7cO)tGO1w7XUGK2KOpam2^9iAT3Lir#0Owy!C_Nqzd4
ztxcl;Il}%3?@*K1togd^|2aXu2TXDMpZ*h`b2z=?>$cyI^MA^Ix)obcS^p}&#{MbS
zG`p;bUoR40CO0hYf6D)7-Ye-fpZ7LS{ja;`Px^*W^ADe@=hgntyXFu7hEMW;Uc3(c
z7rx<>{J~T8Oxpi7*Zh%Be7e11>V09Izw;Ac*6;iFbw!<S!qxR0_cZ5!cqCh|*Sh{*
z>AiyotIx5{x%0^OgHDOvVfP))kH6pD|KsHG$GP&(7W*E{9G2YEHeG&)ePggi>vQ>C
z_U-E*Fw4|D`Nwtdkg3gq^oq|L@83UYYg7H;^F?*La}R}O4nI8gH+x50w#9YJiWlEI
z!~2)*sj+$bt*Ly!&)<jZgY)z({^q`l|6}*`S=0A=pT8I92iwILl%4%6`q%#FY0E`=
zZytO|pMU;ATdmB4Y2U>Pj#bZk{qN4SpIq0<18s}<?`!rmpHuuQg!#4gioGYTe)O%>
z+gI%MYsWnML$5wd*2dJ@F7;pCpa1gotJ{XP5w%sG^F!n3T@Jt6p8aj7@_XGq3jM~f
zYEJ$+@cGqc+0Rk`8QAat+*du%-mt#ys=L&$mS1kZ@g5iQD=(V!T@k%H)3(&5RCV{$
z_o1?x&d+E4y|UqzNA>N$oV(T}UY+>r+?DtPtCZbe9dWYSw?f&n)ajq?8mmcx;!o}$
zT%}z7>QL8@r5j$I_;c#|^ddgzh@a61Z`C`=a?ZGaXqC0}tByMTw$SoFx&Qw~7wUCi
zEWIKr`*#1v*BA9R+`jnEBD}2r{7j?j2Y+VB7KEL7H*Zt)xsJ2pbNDy+&*9x{e6IDT
zX8NHwy3Y^3k<gvJ*JXOz`HM?#9uEE{se7xYnXmhK^8%OVv&E0AF5EY`ce(xX{EwTe
zt4dPO&$}?;rfHR?`)(KMskX|pJ>MqIx&2r2r;)X)dD{Q`;V1sbe!Iu^d*(&I_rJX6
z$+jQ0-F|!nOZKbB5?u?9*ClRQ{kyK;Q~Al6*(S5t?d+x7zbw41*85`OZS&)au4j!h
z=WOtms?OT$nS64mLFSelYQ3^w4=fQZ`sOR8yUkPivCnLiq+iV^7algVl)13w<if2-
z`=-~vnv>i3IJK;~?5y2_@Xg;}Tz$i`ch+9V^=a-euD%i2JFC`ddYX8~#Wym#vuYi>
z)BcNxd&;EsNIxo7Xp=SUljJ|LU)?_YnDS2P6S)T@CVrREE%`FVcGk)Z7w3HJ`KEMC
QCbsNL+|dW}28mf*0GYF?f&c&j

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx
index 4936ef8..baf8869 100644
--- a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx
@@ -1,6 +1,6 @@
 
 { 
-    crc :  4059207018839603124  , 
+    crc :  7733031991265798486  , 
     ccp_crc :  0  , 
     cmdline : " --incr --debug typical --relax --mt 2 -L xil_defaultlib -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit" , 
     buildDate : "Nov  8 2024" , 
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rtti b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rtti
index 3ad4fdbf846365595e1473582d996615b48ae1aa..b2ea0ee92f5a93add8fa8cf58e9ae5e1604e3b25 100644
GIT binary patch
literal 881
zcma#Z%*o8FQ1A@S%vA`93~*I&^Yn35FfcG=U|?W)b2FWrfq_AinSsHJfq{XUfnh;#
zh)cYWzq_Y10}}%S7&9|4FmN(3FsO&BGpI+XGpHM=GpHM?GpI+YGpL8FGpPHhGpKv0
zGpOsTGcYnRFnA-G6iS&<3JeSktPBhb{2W6<gB*Rp&H=gm|NsC0K~_03Ffa%pJ32nh
z)j7mJ2&|BiVFB1ZAcY{mfM}3r5dQc7|NpuF|Nk$7x-}%exFoS86|4`WmX(2lfrEj8
zA>7e3BtF>DH^9f0AvnZ8$d$p#G1%3|)6bP5Ajsd@H8?ol5zcaAaQ1Qa@p1HH@DB|M
z2n~VgcJ*_CnE-NuIn2qP?tZQ=U<-+Hs4_GpGV@AO(^HG$jg7!s85kHE{{R194>B1P
zgP_1DN=?r!E=etN%gjl21gipB0P+z?6&o~GL7@QRgD@x!fcT(b1%(PWlbrCH1PU{3
zCV|odx|^IJ@rcV&aSROLXhU~Y05sr`z2}^hnv;{5hu3LbILy-k`Iv!$0h9zl%)KCj
kfq~&Jl$Hbehk=1%0+c=urC&j56Of-77#QlH^hqcU0Kb!<a{vGU

literal 935
zcma#Z%*o8FQ1A@S%vA`93~*I&^Yn35FfcG=U|`tRcP5>Ofq}uDnSsHJfq{XUfnh;#
zh)cYWzq_Y10}}%S7&9|4FmN(3FsO&BGpI+XGpHM=GpHM?GpI+YGpL8FGpPHhGpKv0
zGpOsTGcYnRFnA-G6iS&<3JeSktPBhb{2W6<gB*Rp&S79+VEF(4|9_BGjtmS80?3Yz
z4|8=6@ecwkWMo(Xb`MA)$S)uoq#1<&{r~@e?*IS)m7x}7=9Q$TrxwK<8-cYlFfcUy
z|Np-pq@@h%osjtAlEji!usp~(Rt5$Jb_NE9a7WLO_+Urh03TO|;1K^HSB8Kfe`nX=
zU{62ycprcN00#fikbuw-h(cFC7nou{*NBjKH&34s*B}NrPd`VWc&I{<t>!SFdAj?#
zx_~Vu#y@^gZOQqmX-<j7sX3W>sg6ZOiIs2@*cceVp~3=<T~KH=K*d1b0r5e>3kn^7
zB-8xzOOi884Lqs{8<&E^IA0{=eDcc!5{ruo8^(phFqqqlGcwakf>P5ni%U|A2pfmX
ztFV;j=@;Va?g~jju%H0NhX#nlz`#%hrT0SVyHHvVq=<om!4XPthtlt$v<)c9FfcH5
PL+Kk(S{;<T7#J7;c5kkV

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.type b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.type
index f056cbb74fb228be3fded5feacc4f575d5932662..0ce4533366d0e0810008bee6c7e196ee59f94239 100644
GIT binary patch
delta 536
zcmaE1`N2}qnt_2KM3R9)n}LDBL5hLl!$!fwyo^64U*+|$KgGxZ2eJ$d3?M#CND9h-
z!3<F%4&^&I@q-0KpnQf?vp`lb2*UURORv0OU|`^d@ei!OHqnfMffL4OFbvc?#l!Ib
z|NqI0`7D`EF>b!c_k*K8DX};;Co?aVp`a)~IkmVrJ`v7JVo1(O&B;m3W5_QpDJU&r
zC{N5RiBHW-i7!sfEyzh_U|^7CSO9hvh+t=6VBlb2U;z0f03^V`z~BPq+c7XOFflMN
zm@+UhfIJ2Y6&3~t21OMH1_o9J1_nt61_m|;1_mJp1_qEp|Dgb6j@;xz3Gs;*Je=Gh
z9s>gd&tzUnWkryAAhSUB!DSd2KtB8rQm6*frWnV-zz`301vXV$lOIYbBbn?fd0$XO
zf`Oqzf`MU!1Ovkh2?hp*&8AYtOb!haAY&OA{(v0Gz`(ErjsF3SuL1HD142CjidA54

delta 537
zcmexh`NC4rnt_4AN0Na-n}LDBLW+Um#YVxyyo^65U*+|$mu6ys16c+J1`wYSDk25t
zzhH(4h(q}fPW)g25h$PG)GUw{41zGez|t!(7#J9MVf+K@uT3;#VBm!D84LsUPVq4O
z|NnpTVm?bIX{OEh_<nHI7Zl|urxq7y=B3By<mVSK<d>Edl$J1*CuWw!r{<-^7boTx
z<fJm>rB;;0r)B1pq!uxxW#%R3#6uM_Fi0>g0J{uCurV+&urn|)fP51I5@29p@PP82
z7#J8p9yelOU;udz6f!I_Am=eKFt9Q(Fn~M=GT=WHNKD=+A+FfKz`)Q5H3DQb$W#sn
z29QVogV>T_RVfS%45@fjNljLiROW>1pS)B;Srn_ulYJ%c3ra{ZFce5IFszVZV0a+G
jz#y^NR;rlEp+W*=Ap^r7Aqc$zjsF6TuOJCg2U8CK+c#aS

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg
index d1c15a5ceafd65b08a73ec37de2435d34bb35ad9..3393fc6ade93cd18ce6121bd5570d773a856e47a 100644
GIT binary patch
literal 91568
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%0AXD6
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%0AXD6o0u3FKp2<&W+ny(5XL3Hg^7Uy
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
J_)9?hZva+)ilzVn

literal 99120
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%0AXD6;>-*TAdE|1f|-E<gmKABGBYrM
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

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini
index a02389c..686fcde 100644
--- a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini
@@ -25,11 +25,11 @@ INOUT_PROTOINST_FILTER=true
 INTERNAL_PROTOINST_FILTER=true
 CONSTANT_PROTOINST_FILTER=true
 VARIABLE_PROTOINST_FILTER=true
-SCOPE_NAME_COLUMN_WIDTH=365
-SCOPE_DESIGN_UNIT_COLUMN_WIDTH=390
-SCOPE_BLOCK_TYPE_COLUMN_WIDTH=160
-OBJECT_NAME_COLUMN_WIDTH=417
-OBJECT_VALUE_COLUMN_WIDTH=4027
+SCOPE_NAME_COLUMN_WIDTH=220
+SCOPE_DESIGN_UNIT_COLUMN_WIDTH=160
+SCOPE_BLOCK_TYPE_COLUMN_WIDTH=304
+OBJECT_NAME_COLUMN_WIDTH=350
+OBJECT_VALUE_COLUMN_WIDTH=92
 OBJECT_DATA_TYPE_COLUMN_WIDTH=140
 PROCESS_NAME_COLUMN_WIDTH=75
 PROCESS_TYPE_COLUMN_WIDTH=75
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimk.exe b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimk.exe
index 3778ae9c5cfd7da7e5d7413927e85fb94b035c5b..2320308396f9a5dc2e0354164bd94a40633a5047 100644
GIT binary patch
delta 32712
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
bX}mpHnlXlR`Z+~LDag*A?W<K7&kF(o!Wd!B

delta 29003
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
QySyG_Fz5EE=8UHW0p5CaiU0rr

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log
index 8be5a2e..2c09a02 100644
--- a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log
@@ -1,4 +1,4 @@
-Running: xsim.dir/tb_firUnit_behav/xsimk.exe -simmode gui -wdb tb_firUnit_behav.wdb -simrunnum 0 -socket 63467
+Running: xsim.dir/tb_firUnit_behav/xsimk.exe -simmode gui -wdb tb_firUnit_behav.wdb -simrunnum 0 -socket 51894
 Design successfully loaded
-Design Loading Memory Usage: 28532 KB (Peak: 28532 KB)
-Design Loading CPU Usage: 452 ms
+Design Loading Memory Usage: 28580 KB (Peak: 28580 KB)
+Design Loading CPU Usage: 468 ms
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/controlunit.vdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/controlunit.vdb
index 6270efc5023fbed30bda8aba793c4dca2eea1cef..138ffec8953ffa512b6bced01e5bcf795a5ca2b2 100644
GIT binary patch
literal 11296
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
S%pjr!y#_G@L^^=h1_J=*yWQ~s

literal 12285
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
W;7fgAGVq~!kO44dFxmmM@E-u+R%P)3

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/firunit.vdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/firunit.vdb
index 301fc9cde4c58963d1245e7b18212a30db8d8b75..8a2a74eb0d641f71e7ce3f4bc3cf98d2fa275027 100644
GIT binary patch
literal 12656
zcmWg2k!R*+U|7Jwz`)?}q)MKd<^SuO>5L2_JPZ!+_nq10kj}7yi-FJC)i290)6v`0
z%fZhzjeT)T--<;oUCJN#xPmoCF)%Rv|NsBLLjVH<gO^)&f0nEN&SY2b1%6&`3p|oD
z7PxvQdnT<~?AV*-@9654ndRB*;^Enwl(k^j+^GwkGpA*_PFawV<?rd6>5(vNfn%0`
z!i)tO$(|WI7c8Ga6GNrIUUpz)VA#OQ#K>UH#N51iA%|D8qnE#9Rz^vW=t+>rAi``3
zu32fGSshH9zkvin0kc-lnu*2J)6<o2)#`-{9XwoJ68s#zvNArYEb0KMVP=G=a(KUQ
ztsE0F2T2^lgc`)%ym+B)W6PqBo)vxnq>Woara%-h<I+!pC17_zjI(A!i%o7&Y_|6<
zTHM#$xY_B$K9J3{wv!iRXUD3R#SM!(`g?y}J}?PnE5wxyTn_#W3=Con3m8C=0>TUo
za3L0-<b)J3fh-7$3UGWdFgPq^U|;}6FD#XUXp2QHT?`BkObh}H3=C`zc?=8;vJ49t
z*jpQW+Z%0LptOjCC5r$9gM%5100R>fBZCD4Sfw0D<>HQo9gA#R*da6ymGTS=7<fC{
z`+FJ|E?&{!*J9fO;Tb}BA`ZUT%vWGoz#!!1>gSm4>6hf|n30v4<nQX>3KrT87TN(3
znu^_hiVO=F1i<PtygZXVv;17W9TFe{JKzEvQ0!)AFoF0@iD3bQXmd+@!zzfgn>!YD
zEN*Y<vh4+nT7g9k;i9rAE&!Xt$RNPr(8(>p;Lrskx<Nz_i0B0oecS>J49pIHnFSdB
zJA|--NLB^`hW{YJ-^>CG4nb@J3=Yg7Gde&@9Y7?jLp?MBFfci^f{bb77GPjRh%!2~
zgA`kdgK{yW9++ZaV1P3m8W<QDV4~o30Vcq@P~_0EFB+Et>~2w*LI3|VFfdq2K<orl
zAUk0Uu(>b}*g7zQuoEVSoYRrn4B+q)g(-vB21>{bjCx=SWE+eDwhhJsWf2gDgcZo|
zFd2A>24^rhfWluCrT}CMBdEw{_^%4~n4&s}VgQ$n%v3H0!1;Tqm<e_)q{t9*@MK_M
z&}3M^fLvCB*cQ-olK~Q7kP_Bm2`F(2g3AtVP}zaMlrezhL>-VyNa=#Bl!2<$CAYkQ
z>epjfz#!Pr(bwDD+1IjgVMk-{qJG;JL4l6GUST8=^fC^rTOXvm2}8FKak>paZufKc
z^iS||@psM0@bpMXPI7P+nm5_gKVcS<5PDe$wcU_m0fTs7LwkEidn39VpyGnWxx@$@
zon0;63!58y+iiQf7k9OE8-m&Br5x05V^Hb7aAC)y=H`aQEqyJvy}S^f0GNkEmkE-t
zMUBY1z&sqfOc@q1aQ3WN2sXKwvuA}Nn1w^N8B{gc^<dRt77o?s3=0^z9J4YLyc`q!
z91^%DW@T;wGdG}>?ofYQfI_OhY4M6)u&KS=;zEm8$b#88Y_J5?NdAs~ex80FaC-zG
z0y7BMX2r08fwjG3p=~diltrtzpl-4zrQVXV#dIgAy}{tH6p~YygX)+SAYvtmSOp?h
zgNQXCVl9YR2O`#khz%fOBZ$}pA~u7FEg)hmh}Z@qwu6jysDu_83=Ydcf)Kl;KqUeL
z1ET}jPCG^h25?ah5oKWDY;5W5ZMSV+yb!^H#0uEKQlL@-q#Nv5xNe9jVcnpT1Ed@5
zOSo=`C}G{8as#9r96WH{5K+RqLFEQWH#l73x*?*3b%V+ckZy2<z;#1J3F`)x8X(=^
zn1t(wh!WNfDk(s^!AT$l7Gn@m!n#4F21qwJ?Z9<IL<#E#l^!77;6w-44G|@*8&ryb
zbc0hXTsK6Nux?PP0@4jm=5XB*QNp@Gr3^?nIDf!(LqrMd29-G=-QbJ`*9{RRtQ%DR
zfOLa%BwRN{l(2442?Wv&&dMO&oDdOcR)ui{k`uB#JhKs<KMVnI(Z%SH3~DxlTU87U
z4z)-eMsS{HU~td}B`RbYs00Jp1Tet?5t0HGd?3exiWmow<G{rSM3kV{zzsbEPzw*-
z0bA74W!uu-xTpcd19g!gJO&1E3kKX2cUTN6x<JhzJ5W7_(rp9lf_LI@Hh~;K4I84G
zK#m}lL^Xk&K#l?TO^E7fK`RYsP(=o+<{?#n3sRMjqp{-xvIkPhL#q51lqw&GE>|R7
z;7T5@3(Uiz%MDiXwSX%=^v)vG5AM*a9^4#gfj10rnCSsk4X&)gs=+KAsy$H}2Cj&P
z0glF)7brXt4TBb>h5-&6ys<P4T+tf_IBfF)H9XOqt-Tn{R?Mm%+z|H#=|*q1_6njm
zTXE?2!`f_3z-+eSXhQkpZnpN~Xtv^TNdPF1v^Om7U2NOS4xurdNZ_)<;Q^=>BIxi4
zl!G6Gh$kT8DTsImBA$bY7a-y#h<F7eUW14?AmS~Ecn2chgNP3x;v<Oo1Tq%fxB(Rj
z3=R)Lf)Kl;KzSWhI)UwkSF{jOf~AubDF1_WgB=Uk4G|@*8&oEMbc1~f(#;7Gffm~^
z4n`@BApkCKA;mUK6S&xhak#<3i(G8OWS|mQifvHQ19BWV^g)gT7uyg~!d?RvLm=JY
zXoKs9h!WNfDvm(9!SM~(4G|@*8&oWTbb}KLNH-@$1RAU`4n`<q2p|P3OcOX*VI0ib
z5GI2=SV5&B$Z_BV400SeSRtZ>y#^{BLAt>yAFdlBN?13jv;^q}XBoI|h$vy*pt2LB
z8=TkRx*?*3b%V-LkZy1$h3kfh64nhWNkO{7xf|YwfQS;-4Jt`Ny1~T)TsK6Nux?OE
z3epWOPvE*CqJ(vW%2AMRa6tsu4G|@*8&r0Jbc0GTaNCI!A_7gyFb+n_#SlPB$}mmf
zqzvO=mJl!*oJkqnG}8zH)iaK0qaz*}LKD$OM`rARbPB;k)eg5A7#K7{L0ZuVRy;C<
z&<9qqXbodnz#!St*V5jxumQb_Y+MME5${;ofL>J!8e+I1oM8cjgr|#RMuw{&h9{sB
z^9Xw-f?)vzPnNf<TLySo!XpFB*#YKYaegGj0tUW}49{dQFUKrbe^&>O3@CRZn2SYA
z6q1%?4-_q6E*34(pvIAJW(L?uj|?u~%pG7R7Ns#zrC<j`l!BR9l*WRZPz|u5mBxkK
z0<fVKEWsNGiegWHS3l1TM`zf$ibsZ!r@!kw&kV=Ou#puk_QZplKOLP73m3MuBWx3d
zh=}8{Gl5|N1Dl^`hJ!~2n3}NzocJM=B;b^1o&sv_D%gVh2GHS9UN8?aILe>{Qsbb{
z1Dbwu=wx7E0P#V2!NHi3fk6+>1C3q7IN(VhFyR0i{s))rFgeiJ>k6o4$ZQ6ONKorU
zP$mu5-vXHk<3Oi*VADM<4zZx73tknVi46vsbY#<D9OzUKY_PV)Ar595P8FaT5(b$J
zWYb_A@N5s32_RG<hj^GBB<cgr$S}xcBHIk(U>OQVZ)LYQB*5&2=@P<HN?{5)D1o9}
zCJWhK7)KDjsA<6zaY%&O3)3ZprHI26a!>}_n~iKQj3b0)_!(2kAqi$POdqHm#9cyS
zmvK-5yCVnL9WV~G-H&S+8$;Y78RjCG3D6Q1XHknO;h+k3PcE{1U>tC77}7I_42DD5
z4k<8uVJgAJF-qAC<2a~+&Cf$NAI5?9oFV;a*w8tY=a34s1Ev~Uf}<7aFs_3-*q(f3
zdte-xJ>b4J+#U$eAq{2^Of}3NaIp`sI2@r|2Mw@21<3ZmI4HyO(1Ch~beQ=tRa_`l
z2CVjQ&;*-Xh-@y512PxfO9u_)!{Q(VW-d$>$Xsxx0<K@+;jaZYw+Pu>7zcUCA2Isx
zkO?yxrj8rAIznPQXoJlzMm8J9;YN%C^dhqzvS6meRDvoiEcF+fkb@4`t`cOsU>xXh
z0mj4vLck##W-Ck&w4%eT`jA8%bisC(BHIb$fJbB?6B4}+IWW^<vfzplT0eSZIOu`R
zDMK~~#sN>NW1nir5Ov6f*+Z6Y@XR};IyA3fSiry!u9H{5$Lk<`3pk&Ffk6kP&LIQj
zd<JkW4dNqeX*ds5W5PJ#3K~oxYH64pXn+u5Au5l-p#V}-S0RTJjDt~Am%zdTrwT|-
zU5#uSjDt~Am%>cLsRB|{*C3k)<3N^lEQBoSfG+TW@f^xvCKII^v{-^crWV;27ze2|
zhKy4}N`e-La+nP;l>|%UI%M-<99Ss{8An9rIaI*xfT@O+lHe9EqLhSkp`~#>vOO>k
z%w%x+3mXS*fbbkDVfMgO!|Z_;zi3=&Y21Kp4~zrOp^%Z&7KbXBxiDF*IkXYk92f^w
z`a;44!E&gEnFmt^Dt)1zM`A)t^(JI<VH}WY;8Gnl3JZ(N8ko5-RUpG~mg>#O=E69L
zQr#7a=}-$Z8K#avsosKYHjIN*lD8nU9qM4F!&H(~s<$HB1>>NX>abB^c&YB{P!F>e
zriX-5y$#t;7zd-}+lwjU&;YX)ri-MOZ#%NRFb+mLw--~yp%G>;OczNl-wtGZVI0hs
zZvqw}hbEZKFntuXd^?fd0ps9k`NBrR(ObT~4$UwZ!Au~#<=chq9vBBYjt(17?{#Q_
z*#}brSxtwrybejg0kqr=TB$KGFff5TyWqN%8NBS!Asl389*DRPs`wm0BxFe&Xg-dC
z3B1A)#00J60%7R-MvxG=egzW@4A9kDJq!y#YmNjU%LhP;KovD;ts`h<E{ta2ch~{4
z@-v8-&%nR{8en2z1b5589cnP20q@Y614tiebculx+^quZ1M`W{2O3&pU<7xA!1};^
zBJ_bqk{B4l-4(DtFrNs0prIoMMsPO-tPjj5LLX=hiGdMZk%9Gr`9$ag4J0uzf-5Gl
zJ}{pMeW1}K21am&0oDiR6QK_@w8X&Z0BYug^?~_B=mU*2F))Ig@L+vlJ`wsrLrx5g
z;O013ADB;sKG1j*10%Re4b}(d6QK_@+{C~LZbEZ{*`Rglp!Oz=gE1D1Apjnqf=u7Q
zG=T?aVI0hP2AB*e2Z1oy1Tet?%E<;i0t^nBpjI)Plq|UXV1z7qg%7+#MDgY#khxNz
zmBgR{Xi)3Y0j?V&N?12&bumacsMQG8%?S~K4qwAK7y*JI0QMRrgkYM$Aq3-K4qwA$
zK)wKBunAxSwk`p*h#BNK&_EN|ao}i&h!XZ1XbCe&H>ePWjLbtspk9M<Fnod`0Cp3^
yYcNe<ufaH&UW3ViyamEw6Tk$_YoImKAjg4vRA9$}y#^5_=rxd$5bOZjYXJa>_5^?c

literal 9487
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
Ny#_K8f*n9hp#X3#cuD{O

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operativeunit.vdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operativeunit.vdb
index 2ad2321ac296882d59a7d09147a119061d19de52..09dd06999bcae67a80939e5fa5b29f99e837e20a 100644
GIT binary patch
literal 37543
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
W$ryyeCV&ZOQU(b^u!B&JJTm}*VB>TE

literal 39538
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

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_firunit.vdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_firunit.vdb
index 8131f554c897261ca74f45ff8a7af9ee5e2eb273..d622895935dd9c9719a4168f07ef8608bf438897 100644
GIT binary patch
literal 6102
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
FJ^&GB@OJ<J

literal 7671
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
HH028b6ztea

diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx
index 18f33e0..f84a889 100644
--- a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx
@@ -2,7 +2,7 @@
 2020.2
 Nov  8 2024
 22:36:57
-C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd,1741458025,vhdl,C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd,,,controlunit,,,,,,,,
+C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd,1742333722,vhdl,C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd,,,controlunit,,,,,,,,
 C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd,1741454254,vhdl,C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/tb_firUnit.vhd,,,firunit,,,,,,,,
-C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/operativeUnit.vhd,1741455408,vhdl,C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd,,,operativeunit,,,,,,,,
-C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/tb_firUnit.vhd,1741459119,vhdl,,,,tb_firunit,,,,,,,,
+C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/operativeUnit.vhd,1742334967,vhdl,C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd,,,operativeunit,,,,,,,,
+C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/tb_firUnit.vhd,1741730766,vhdl,,,,tb_firunit,,,,,,,,
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log b/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log
index e69de29..e9b0a65 100644
--- a/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log
+++ b/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log
@@ -0,0 +1,8 @@
+INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'controlUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/operativeUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'operativeUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'firUnit'
+INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/tb_firUnit.vhd" into library xil_defaultlib
+INFO: [VRFC 10-3107] analyzing entity 'tb_firUnit'
diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.pb b/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.pb
index b155e40f06a230303a04d2a77f07560e35c5dc93..6da5d2db73ad6dd87651bc3b4576dfb18c38f281 100644
GIT binary patch
literal 1094
zcmd<u$;hSQn3tGSS(TZWt`O$o;-iq3nUkuZq*|<`keOGKuaJ|ORFqg$si0acz$(RT
zXlAU%T~VBwTb5dsnU<Ms6vh?eY^5JsoLW?@@0_1klBn;JpIn-onpaY+@19xWQJSRh
z=^LV7QlOifoUWT%Qks&Pm{+2kXk=25T9lfpUtE-|pOKQIpPZjpQk0()nwMFkSC)}t
zB*4X2k(m>plA4xSnp2XKnH0rlXrOCoW}LxLz*@mNfssLgiOZKuG!gFj)Vz|+l1c@2
z)nau4Rw))EGfQ(+r}A=fBiRzgZfKxuY-nJPY~XH6gCl|~j4HvAUyxdqSdv+mN?L&U
zlN2EQT)ZguU=5P3lm<x<R{&LlBrUUuw7~ErDKI#>*r7IH4Tc?*216)UFjaz~Bq<*1
jPU7>44@n`x!^MTL1Z!aMadElkr6>fYCg&HW2rvQwP)AQI

literal 16
Xcmd<$<KlA7OHl|)P0lY$5nu!W9CHKI

diff --git a/proj/AudioProc.xpr b/proj/AudioProc.xpr
index b1f04a7..c8c23be 100644
--- a/proj/AudioProc.xpr
+++ b/proj/AudioProc.xpr
@@ -60,7 +60,7 @@
     <Option Name="IPUserFilesDir" Val="$PIPUSERFILESDIR"/>
     <Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/>
     <Option Name="EnableBDX" Val="FALSE"/>
-    <Option Name="WTXSimLaunchSim" Val="115"/>
+    <Option Name="WTXSimLaunchSim" Val="145"/>
     <Option Name="WTModelSimLaunchSim" Val="0"/>
     <Option Name="WTQuestaLaunchSim" Val="0"/>
     <Option Name="WTIesLaunchSim" Val="0"/>
@@ -99,24 +99,16 @@
       </File>
       <File Path="$PPRDIR/../src/hdl/operativeUnit.vhd">
         <FileInfo>
-          <Attr Name="AutoDisabled" Val="1"/>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
       <File Path="$PPRDIR/../src/hdl/firUnit.vhd">
         <FileInfo>
-          <Attr Name="AutoDisabled" Val="1"/>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
-      <File Path="$PPRDIR/../src/hdl/tb_firUnit.vhd">
-        <FileInfo>
-          <Attr Name="AutoDisabled" Val="1"/>
-          <Attr Name="UsedIn" Val="simulation"/>
-        </FileInfo>
-      </File>
       <File Path="$PPRDIR/../src/ip/clk_wiz_0/clk_wiz_0.xci">
         <FileInfo>
           <Attr Name="AutoDisabled" Val="1"/>
@@ -170,9 +162,15 @@
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
+      <File Path="$PPRDIR/../src/hdl/tb_firUnit.vhd">
+        <FileInfo>
+          <Attr Name="AutoDisabled" Val="1"/>
+          <Attr Name="UsedIn" Val="simulation"/>
+        </FileInfo>
+      </File>
       <Config>
         <Option Name="DesignMode" Val="RTL"/>
-        <Option Name="TopModule" Val="controlUnit"/>
+        <Option Name="TopModule" Val="firUnit"/>
       </Config>
     </FileSet>
     <FileSet Name="constrs_1" Type="Constrs" RelSrcDir="$PSRCDIR/constrs_1" RelGenDir="$PGENDIR/constrs_1">
@@ -232,7 +230,7 @@
     </Simulator>
   </Simulators>
   <Runs Version="1" Minor="22">
-    <Run Id="synth_1" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7a200tsbg484-1" ConstrsSet="constrs_1" Description="Higher performance designs, resource sharing is turned off, the global fanout guide is set to a lower number, FSM extraction forced to one-hot, LUT combining is disabled, equivalent registers are preserved, SRL are inferred  with a larger threshold" AutoIncrementalCheckpoint="true" WriteIncrSynthDcp="false" State="current" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/synth_1" ParallelReportGen="true">
+    <Run Id="synth_1" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7a200tsbg484-1" ConstrsSet="constrs_1" Description="Higher performance designs, resource sharing is turned off, the global fanout guide is set to a lower number, FSM extraction forced to one-hot, LUT combining is disabled, equivalent registers are preserved, SRL are inferred  with a larger threshold" AutoIncrementalCheckpoint="true" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/synth_1" ParallelReportGen="true">
       <Strategy Version="1" Minor="2">
         <StratHandle Name="Flow_PerfOptimized_High" Flow="Vivado Synthesis 2014"/>
         <Step Id="synth_design">
@@ -244,6 +242,7 @@
           <Option Id="ShregMinSize">5</Option>
         </Step>
       </Strategy>
+      <GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
       <ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2017"/>
       <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
       <RQSFiles/>
diff --git a/src-ref/ECG_raw_3filters-inc.pdf b/src-ref/ECG_raw_3filters-inc.pdf
index 355124ca47ee75d8f7d5002187e1919781adbbb8..6bf88846efa5db29fd21993721d3e1a1d19296e7 100644
GIT binary patch
delta 18
ZcmbO%F<D|l6T6|2fw_^P!N$%mZU8mU1)Kl?

delta 18
ZcmbO%F<D|l6T5+hp}B#9(Z<d$ZU8m^1)%@{

diff --git a/src-ref/ECG_raw_3filters.tex b/src-ref/ECG_raw_3filters.tex
index 2c2602a..35ac17b 100644
--- a/src-ref/ECG_raw_3filters.tex
+++ b/src-ref/ECG_raw_3filters.tex
@@ -7,7 +7,7 @@
 % Title: Figure 2
 % Creator: GL2PS 1.4.2, (C) 1999-2020 C. Geuzaine
 % For: Octave
-% CreationDate: Sat Mar  8 18:00:29 2025
+% CreationDate: Wed Mar 12 08:21:09 2025
 \setlength{\unitlength}{1pt}
 \begin{picture}(0,0)
 \includegraphics[scale=1]{ECG_raw_3filters-inc}
diff --git a/src-ref/coeficientes_vhdl.txt b/src-ref/coeficientes_vhdl.txt
index e1d30f9..fc89408 100644
--- a/src-ref/coeficientes_vhdl.txt
+++ b/src-ref/coeficientes_vhdl.txt
@@ -1,134 +1,134 @@
 
 --- Coefficients du filtre Baseline ---
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(64, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(-1, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
-to_signed(0, 8),
+to_signed(0.0161398, 8),
+to_signed(0.015271, 8),
+to_signed(0.0144957, 8),
+to_signed(0.0137641, 8),
+to_signed(0.0130196, 8),
+to_signed(0.0121989, 8),
+to_signed(0.0112324, 8),
+to_signed(0.0100452, 8),
+to_signed(0.00855703, 8),
+to_signed(0.00668368, 8),
+to_signed(0.00433731, 8),
+to_signed(0.00142748, 8),
+to_signed(-0.00213802, 8),
+to_signed(-0.00645221, 8),
+to_signed(-0.011608, 8),
+to_signed(-0.017697, 8),
+to_signed(-0.0248089, 8),
+to_signed(-0.03303, 8),
+to_signed(-0.0424426, 8),
+to_signed(-0.0531235, 8),
+to_signed(-0.0651436, 8),
+to_signed(-0.0785665, 8),
+to_signed(-0.0934478, 8),
+to_signed(-0.109834, 8),
+to_signed(-0.127762, 8),
+to_signed(-0.147259, 8),
+to_signed(-0.16834, 8),
+to_signed(-0.191009, 8),
+to_signed(-0.215257, 8),
+to_signed(-0.241064, 8),
+to_signed(-0.268396, 8),
+to_signed(-0.297208, 8),
+to_signed(-0.327439, 8),
+to_signed(-0.359018, 8),
+to_signed(-0.391859, 8),
+to_signed(-0.425867, 8),
+to_signed(-0.460931, 8),
+to_signed(-0.496931, 8),
+to_signed(-0.533736, 8),
+to_signed(-0.571204, 8),
+to_signed(-0.609185, 8),
+to_signed(-0.64752, 8),
+to_signed(-0.686042, 8),
+to_signed(-0.72458, 8),
+to_signed(-0.762955, 8),
+to_signed(-0.800987, 8),
+to_signed(-0.838492, 8),
+to_signed(-0.875284, 8),
+to_signed(-0.91118, 8),
+to_signed(-0.945994, 8),
+to_signed(-0.979548, 8),
+to_signed(-1.01166, 8),
+to_signed(-1.04217, 8),
+to_signed(-1.0709, 8),
+to_signed(-1.09771, 8),
+to_signed(-1.12243, 8),
+to_signed(-1.14494, 8),
+to_signed(-1.16512, 8),
+to_signed(-1.18284, 8),
+to_signed(-1.19801, 8),
+to_signed(-1.21054, 8),
+to_signed(-1.22036, 8),
+to_signed(-1.22741, 8),
+to_signed(-1.23166, 8),
+to_signed(63.5859, 8),
+to_signed(-1.23166, 8),
+to_signed(-1.22741, 8),
+to_signed(-1.22036, 8),
+to_signed(-1.21054, 8),
+to_signed(-1.19801, 8),
+to_signed(-1.18284, 8),
+to_signed(-1.16512, 8),
+to_signed(-1.14494, 8),
+to_signed(-1.12243, 8),
+to_signed(-1.09771, 8),
+to_signed(-1.0709, 8),
+to_signed(-1.04217, 8),
+to_signed(-1.01166, 8),
+to_signed(-0.979548, 8),
+to_signed(-0.945994, 8),
+to_signed(-0.91118, 8),
+to_signed(-0.875284, 8),
+to_signed(-0.838492, 8),
+to_signed(-0.800987, 8),
+to_signed(-0.762955, 8),
+to_signed(-0.72458, 8),
+to_signed(-0.686042, 8),
+to_signed(-0.64752, 8),
+to_signed(-0.609185, 8),
+to_signed(-0.571204, 8),
+to_signed(-0.533736, 8),
+to_signed(-0.496931, 8),
+to_signed(-0.460931, 8),
+to_signed(-0.425867, 8),
+to_signed(-0.391859, 8),
+to_signed(-0.359018, 8),
+to_signed(-0.327439, 8),
+to_signed(-0.297208, 8),
+to_signed(-0.268396, 8),
+to_signed(-0.241064, 8),
+to_signed(-0.215257, 8),
+to_signed(-0.191009, 8),
+to_signed(-0.16834, 8),
+to_signed(-0.147259, 8),
+to_signed(-0.127762, 8),
+to_signed(-0.109834, 8),
+to_signed(-0.0934478, 8),
+to_signed(-0.0785665, 8),
+to_signed(-0.0651436, 8),
+to_signed(-0.0531235, 8),
+to_signed(-0.0424426, 8),
+to_signed(-0.03303, 8),
+to_signed(-0.0248089, 8),
+to_signed(-0.017697, 8),
+to_signed(-0.011608, 8),
+to_signed(-0.00645221, 8),
+to_signed(-0.00213802, 8),
+to_signed(0.00142748, 8),
+to_signed(0.00433731, 8),
+to_signed(0.00668368, 8),
+to_signed(0.00855703, 8),
+to_signed(0.0100452, 8),
+to_signed(0.0112324, 8),
+to_signed(0.0121989, 8),
+to_signed(0.0130196, 8),
+to_signed(0.0137641, 8),
+to_signed(0.0144957, 8),
+to_signed(0.015271, 8),
+to_signed(0.0161398, 8),
 
 --- Coefficients du filtre Notch 50Hz ---
 to_signed(0, 8),
diff --git a/src/hdl/controlUnit.vhd b/src/hdl/controlUnit.vhd
index 0c18c92..19a3236 100644
--- a/src/hdl/controlUnit.vhd
+++ b/src/hdl/controlUnit.vhd
@@ -1,181 +1,135 @@
-library ieee;
-use ieee.std_logic_1164.all;
-use ieee.numeric_std.all;
+-- filepath: c:\Users\Conta\Documents\GitHub\IMT\tp-ecg-etudiant-a24perei\src\hdl\controlUnit.vhd
+LIBRARY ieee;
+USE ieee.std_logic_1164.ALL;
+USE ieee.numeric_std.ALL;
 
-entity controlUnit is
-  port (
-    I_clock               : in  std_logic;  
-    I_reset               : in  std_logic;  
-    I_inputSampleValid    : in  std_logic;  
-    I_processingDone      : in  std_logic;
-    O_loadShift           : out std_logic;  
-    O_initAddress         : out std_logic;  
-    O_incrAddress         : out std_logic;  
-    O_initSum             : out std_logic;  
-    O_loadSum             : out std_logic;  
-    O_loadY               : out std_logic;  
-    O_FilteredSampleValid : out std_logic;
-    O_filterStage         : out integer range 0 to 2  -- 🚀 Adicionado para indicar o estágio do filtro
-    );
-end entity controlUnit;
+ENTITY controlUnit IS
+  PORT (
+    I_clock : IN STD_LOGIC;
+    I_reset : IN STD_LOGIC;
+    I_inputSampleValid : IN STD_LOGIC;
+    I_processingDoneA : IN STD_LOGIC;
+    I_processingDoneB : IN STD_LOGIC;
+    I_processingDoneBL : IN STD_LOGIC;
+    I_processingDoneClellan : IN STD_LOGIC;
+    O_loadShift : OUT STD_LOGIC;
+    O_initAddress : OUT STD_LOGIC;
+    O_incrAddress : OUT STD_LOGIC;
+    O_initSum : OUT STD_LOGIC;
+    O_loadSum : OUT STD_LOGIC;
+    O_loadOutA : OUT STD_LOGIC;
+    O_loadOutBL : OUT STD_LOGIC;
+    O_loadOutClellan : OUT STD_LOGIC;
+    O_sel : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
+    O_FilteredSampleValid : OUT STD_LOGIC
+  );
+END ENTITY controlUnit;
 
-architecture archi_operativeUnit of controlUnit is
+ARCHITECTURE archi_operativeUnit OF controlUnit IS
+  TYPE T_state IS (WAIT_SAMPLE, STORE, BASELINE, PROCESS_A, PROCESS_B, CLELLAN, OUTPUT, WAIT_END_SAMPLE);
+  SIGNAL SR_presentState : T_state := WAIT_SAMPLE;
+  SIGNAL SR_futurState : T_state := WAIT_SAMPLE;
+BEGIN
 
-  type T_state is (WAIT_SAMPLE, STORE, PROCESSING_LOOP, OUTPUT, WAIT_END_SAMPLE, NEXT_FILTER, FINAL_OUTPUT);  
-  signal SR_presentState : T_state;
-  signal SR_futurState   : T_state;
-
-  -- Controle do estágio do filtro
-  signal SR_filterStage  : integer range 0 to 2 := 0;
+  -- State transition process
+  PROCESS (I_reset, I_clock)
+  BEGIN
+    IF I_reset = '1' THEN
+      SR_presentState <= WAIT_SAMPLE;
+    ELSIF rising_edge(I_clock) THEN
+      SR_presentState <= SR_futurState;
+    END IF;
+  END PROCESS;
 
-begin
+  -- Next state logic and output control
+  PROCESS (SR_presentState, I_inputSampleValid, I_processingDoneBL, I_processingDoneClellan, I_processingDoneA, I_processingDoneB)
+  BEGIN
+    -- Default values for outputs
+    O_sel <= "00";
+    O_initAddress <= '0';
+    O_initSum <= '0';
 
-  -- Processo para calcular o estado futuro
-  process (SR_presentState, I_inputSampleValid, I_processingDone) is
-    begin
-      case SR_presentState is
-        when WAIT_SAMPLE =>
-          if I_inputSampleValid = '1' then
-            SR_futurState <= STORE;
-          else
-            SR_futurState <= WAIT_SAMPLE;
-          end if;
-    
-        when STORE =>
-          SR_futurState <= PROCESSING_LOOP;
-    
-        when PROCESSING_LOOP =>
-          if I_processingDone = '1' then
-            SR_futurState <= OUTPUT;
-          else
-            SR_futurState <= PROCESSING_LOOP;
-          end if;
-    
-        when OUTPUT =>
-          if SR_filterStage < 2 then
-            SR_futurState <= NEXT_FILTER;
-          else
-            SR_futurState <= FINAL_OUTPUT;  -- ✅ Após o último filtro, vai para FINAL_OUTPUT
-          end if;
-    
-        when NEXT_FILTER =>
-          SR_futurState <= STORE;  -- ✅ Processa o próximo filtro e volta ao PROCESSING_LOOP
-    
-        when FINAL_OUTPUT =>
-          SR_futurState <= WAIT_END_SAMPLE;  -- ✅ Estado final antes de esperar um novo input
-    
-        when WAIT_END_SAMPLE =>
-          if I_inputSampleValid = '1' then
-            SR_futurState <= STORE;  -- ✅ Só recomeça se um novo input chegar
-          else
-            SR_futurState <= WAIT_END_SAMPLE;  -- ✅ Mantém a FSM parada se não houver novo input
-          end if;
-    
-        when others =>
+    -- State machine
+    CASE SR_presentState IS
+      WHEN WAIT_SAMPLE =>
+        IF I_inputSampleValid = '1' THEN
+          SR_futurState <= STORE;
+        ELSE
           SR_futurState <= WAIT_SAMPLE;
-      end case;
-    end process;
-    
-    
+        END IF;
 
-  -- Processo para atualizar o estado presente e o estágio do filtro
-  process (I_clock, I_reset) is
-  begin
-    if I_reset = '1' then               
-      SR_presentState <= WAIT_SAMPLE;
-      SR_filterStage  <= 0; -- Reinicia o controle dos filtros
-    elsif rising_edge(I_clock) then     
-      SR_presentState <= SR_futurState;
-      
-      if SR_presentState = OUTPUT and I_processingDone = '1' then
-        if SR_filterStage < 2 then
-          SR_filterStage <= SR_filterStage + 1; -- 🚀 Avança para o próximo filtro
-        end if;
-      elsif SR_presentState = FINAL_OUTPUT then
-        SR_filterStage <= 0; -- 🚀 Após os 3 filtros, reinicia para o primeiro
-      end if;
-      
-    end if;
-  end process;
+      WHEN STORE =>
+        O_initAddress <= '1';
+        O_sel <= "00";
+        O_initSum <= '1';
+        SR_futurState <= BASELINE;
 
-  -- Processo para gerar os sinais de controle
-  process (SR_presentState) is
-  begin
-    case SR_presentState is
-      when WAIT_SAMPLE =>
-        O_loadShift           <= '0';
-        O_initAddress         <= '0';
-        O_incrAddress         <= '0';
-        O_initSum             <= '0';
-        O_loadSum             <= '0';
-        O_loadY               <= '0';
-        O_FilteredSampleValid <= '0';
-      
-      when STORE =>
-        O_loadShift           <= '1';
-        O_initAddress         <= '1';
-        O_incrAddress         <= '0';
-        O_initSum             <= '1';
-        O_loadSum             <= '0';
-        O_loadY               <= '0';
-        O_FilteredSampleValid <= '0';
-      
-      when PROCESSING_LOOP =>
-        O_loadShift           <= '0';
-        O_initAddress         <= '0';
-        O_incrAddress         <= '1';
-        O_initSum             <= '0';
-        O_loadSum             <= '1';
-        O_loadY               <= '0';
-        O_FilteredSampleValid <= '0';
-      
-      when OUTPUT =>
-        O_loadShift           <= '0';
-        O_initAddress         <= '1';
-        O_incrAddress         <= '0';
-        O_initSum             <= '1';
-        O_loadSum             <= '1';
-        O_loadY               <= '1';
-        O_FilteredSampleValid <= '0';
-      
-      when NEXT_FILTER =>
-        O_loadShift           <= '0';
-        O_initAddress         <= '1';
-        O_incrAddress         <= '0';
-        O_initSum             <= '1';
-        O_loadSum             <= '0';
-        O_loadY               <= '0';
-        O_FilteredSampleValid <= '0';
+      WHEN BASELINE =>
+        O_sel <= "00";
+        IF I_processingDoneBL = '1' THEN
+          SR_futurState <= PROCESS_B;
+          O_initAddress <= '1';
+          O_initSum <= '1';
+        ELSE
+          SR_futurState <= BASELINE;
+        END IF;
 
-      when FINAL_OUTPUT =>
-        O_loadShift           <= '0';
-        O_initAddress         <= '0';
-        O_incrAddress         <= '0';
-        O_initSum             <= '0';
-        O_loadSum             <= '0';
-        O_loadY               <= '1';
-        O_FilteredSampleValid <= '0';
+      WHEN PROCESS_B =>
+        O_sel <= "01";
+        IF I_processingDoneB = '1' THEN
+          SR_futurState <= PROCESS_A;
+          O_initAddress <= '1';
+        ELSE
+          SR_futurState <= PROCESS_B;
+        END IF;
 
-      when WAIT_END_SAMPLE =>
-        O_loadShift           <= '0';
-        O_initAddress         <= '0';
-        O_incrAddress         <= '0';
-        O_initSum             <= '0';
-        O_loadSum             <= '0';
-        O_loadY               <= '0';
-        O_FilteredSampleValid <= '1';
+      WHEN PROCESS_A =>
+        O_sel <= "10";
+        IF I_processingDoneA = '1' THEN
+          SR_futurState <= CLELLAN;
+          O_initAddress <= '1';
+          O_initSum <= '1';
+        ELSE
+          SR_futurState <= PROCESS_A;
+        END IF;
+
+      WHEN CLELLAN =>
+        O_sel <= "11";
+        IF I_processingDoneClellan = '1' THEN
+          SR_futurState <= OUTPUT;
+        ELSE
+          SR_futurState <= CLELLAN;
+        END IF;
+
+      WHEN OUTPUT =>
+        SR_futurState <= WAIT_END_SAMPLE;
+
+      WHEN WAIT_END_SAMPLE =>
+        IF I_inputSampleValid = '0' THEN
+          SR_futurState <= WAIT_SAMPLE;
+        ELSE
+          SR_futurState <= WAIT_END_SAMPLE;
+        END IF;
 
-      when others => 
-        O_loadShift           <= '0';
-        O_initAddress         <= '0';
-        O_incrAddress         <= '0';
-        O_initSum             <= '0';
-        O_loadSum             <= '0';
-        O_loadY               <= '0';
-        O_FilteredSampleValid <= '0';
-    end case;
-  end process;
+      WHEN OTHERS =>
+        SR_futurState <= WAIT_SAMPLE;
+    END CASE;
+  END PROCESS;
 
-  O_filterStage <= SR_filterStage;
+  -- Output logic
+  O_loadShift <= '1' WHEN SR_presentState = STORE ELSE
+    '0';
+  O_incrAddress <= '1' WHEN SR_presentState = BASELINE OR SR_presentState = PROCESS_A OR SR_presentState = PROCESS_B OR SR_presentState = CLELLAN ELSE
+    '0';
+  O_loadSum <= '1' WHEN SR_presentState = BASELINE OR SR_presentState = PROCESS_A OR SR_presentState = PROCESS_B OR SR_presentState = CLELLAN ELSE
+    '0';
+  O_loadOutBL <= '1' WHEN SR_presentState = BASELINE ELSE
+    '0';
+  O_loadOutA <= '1' WHEN SR_presentState = PROCESS_A ELSE
+    '0';
+  O_loadOutClellan <= '1' WHEN SR_presentState = OUTPUT ELSE
+    '0';
+  O_FilteredSampleValid <= '1' WHEN SR_presentState = OUTPUT ELSE
+    '0';
 
-end architecture archi_operativeUnit;
+END ARCHITECTURE archi_operativeUnit;
\ No newline at end of file
diff --git a/src/hdl/firUnit.vhd b/src/hdl/firUnit.vhd
index 7758c51..7ac25d0 100644
--- a/src/hdl/firUnit.vhd
+++ b/src/hdl/firUnit.vhd
@@ -2,15 +2,21 @@
 -- Title      : firUnit
 -- Project    : 
 -------------------------------------------------------------------------------
--- File       : firUnit.vhd
+-- File       : operativeUnit.vhd
 -- Author     : Jean-Noel BAZIN  <jnbazin@pc-disi-026.enst-bretagne.fr>
 -- Company    : 
 -- Created    : 2018-04-11
--- Last update: 2025-03-08 (modificado para suportar 3 filtros FIR)
+-- Last update: 2018-04-11
 -- Platform   : 
 -- Standard   : VHDL'93/02
 -------------------------------------------------------------------------------
--- Description: 8-bit FIR filter with multiple stages
+-- Description: 8 bit FIR
+-------------------------------------------------------------------------------
+-- Copyright (c) 2018 
+-------------------------------------------------------------------------------
+-- Revisions  :
+-- Date        Version  Author  Description
+-- 2018-04-11  1.0      jnbazin Created
 -------------------------------------------------------------------------------
 
 library ieee;
@@ -22,9 +28,9 @@ entity firUnit is
   port (
     I_clock               : in  std_logic;  -- global clock
     I_reset               : in  std_logic;  -- asynchronous global reset
-    I_inputSample         : in  std_logic_vector(7 downto 0);  -- 8-bit input sample
+    I_inputSample         : in  std_logic_vector(11 downto 0);  -- 8 bit input sample
     I_inputSampleValid    : in  std_logic;
-    O_filteredSample      : out std_logic_vector(7 downto 0);  -- filtered sample
+    O_filteredSample      : out std_logic_vector(11 downto 0);  -- filtered sample
     O_filteredSampleValid : out std_logic
     );
 
@@ -34,67 +40,83 @@ architecture archi_firUnit of firUnit is
 
   component controlUnit is
     port (
-      I_clock               : in  std_logic;
-      I_reset               : in  std_logic;
-      I_inputSampleValid    : in  std_logic;
-      I_processingDone      : in  std_logic;
-      O_loadShift           : out std_logic;
-      O_initAddress         : out std_logic;
-      O_incrAddress         : out std_logic;
-      O_initSum             : out std_logic;
-      O_loadSum             : out std_logic;
-      O_loadY               : out std_logic;
-      O_FilteredSampleValid : out std_logic;
-      O_filterStage         : out integer range 0 to 2  -- 🚀 Adicionado para indicar o estágio do filtro
-    );
+    I_clock             : in  std_logic;  -- global clock
+    I_reset               : in  std_logic;  -- asynchronous global reset
+    I_inputSampleValid    : in  std_logic;  -- Control signal to load the input sample in the sample shift register and shift the register
+    I_processingDoneA     : in  std_logic;
+    I_processingDoneB     : in  std_logic;
+    I_processingDoneBL: in std_logic;
+    I_processingDoneClellan : in std_logic;
+    O_loadShift           : out std_logic;  -- filtered sample
+    O_initAddress         : out std_logic;  -- Control signal to initialize register read address
+    O_incrAddress         : out std_logic;  -- Control signal to increment register read address
+    O_initSum             : out std_logic;  -- Control signal to initialize the MAC register
+    O_loadSum             : out std_logic;  -- Control signal to load the MAC register;
+    O_loadOutA            : out std_logic;  -- Control signal to load Y register
+    O_loadOutBL     : out  std_logic;
+    O_loadOutClellan      : out  std_logic;
+    O_sel                 : out std_logic_vector(1 downto 0); 
+    O_FilteredSampleValid : out std_logic );
   end component controlUnit;
 
   component operativeUnit is
     port (
-      I_clock          : in  std_logic;
-      I_reset          : in  std_logic;
-      I_inputSample    : in  std_logic_vector(7 downto 0);
-      I_loadShift      : in  std_logic;
-      I_initAddress    : in  std_logic;
-      I_incrAddress    : in  std_logic;
-      I_initSum        : in  std_logic;
-      I_loadSum        : in  std_logic;
-      I_loadY          : in  std_logic;
-      I_filterStage    : in  integer range 0 to 2;  -- 🚀 Adicionado para controlar qual filtro está ativo
-      O_processingDone : out std_logic;
-      O_Y              : out std_logic_vector(7 downto 0)
-    );
+    I_clock          : in  std_logic;   -- global clock
+    I_reset          : in  std_logic;   -- asynchronous global reset
+    I_inputSample    : in  std_logic_vector(11 downto 0);  -- 8 bit input sample
+    I_loadShift      : in  std_logic;  -- Control signal to load the input sample in the sample shift register and shift the register
+    I_initAddress    : in  std_logic;  -- Control signal to initialize register read address
+    I_incrAddress    : in  std_logic;  -- Control signal to increment register read address
+    I_sel            : in  std_logic_vector(1 downto 0);  -- Control signal to control the type of process
+    I_initSum        : in  std_logic;  -- Control signal to initialize the MAC register
+    I_loadSum        : in  std_logic;  -- Control signal to load the MAC register;
+    I_loadOutA       : in  std_logic;   -- Control signal to load Y register coefficients A
+    I_loadOutBL : in  std_logic; 
+    I_loadOutClellan  : in  std_logic;
+    O_processingDoneA : out std_logic;   -- Indicate that processing is done
+    O_processingDoneB : out std_logic;   -- Indicate that processing is done
+    O_processingDoneBL: out std_logic;
+    O_processingDoneClellan : out std_logic;
+    O_total           : out std_logic_vector(11 downto 0));
+    
   end component operativeUnit;
 
-  signal SC_processingDone : std_logic;
+  signal SC_processingDoneA : std_logic;
+  signal SC_processingDoneB : std_logic;
+  signal SC_processingDoneBaseLine: std_logic;
+  signal SC_processingDoneLissage : std_logic;
   signal SC_loadShift      : std_logic;
   signal SC_initAddress    : std_logic;
   signal SC_incrAddress    : std_logic;
   signal SC_initSum        : std_logic;
   signal SC_loadSum        : std_logic;
-  signal SC_loadY          : std_logic;
-  signal SC_filterStage    : integer range 0 to 2;  -- 🚀 Novo sinal para armazenar o estágio do filtro
-
+  signal SC_loadOutA       : std_logic;
+  signal SC_loadOutBaseLine: std_logic;
+  signal SC_loadOutLissage : std_logic;
+  signal SC_sel            : std_logic_vector(1 downto 0);
+  
 begin
 
-  -- Instância da unidade de controle
   controlUnit_1 : entity work.controlUnit
     port map (
       I_clock               => I_clock,
       I_reset               => I_reset,
       I_inputSampleValid    => I_inputSampleValid,
-      I_processingDone      => SC_processingDone,
+      I_processingDoneA     => SC_processingDoneA,
+      I_processingDoneB     => SC_processingDoneB,
+      I_processingDoneBL  => SC_processingDoneBaseLine,
+      I_processingDoneClellan   => SC_processingDoneLissage,
       O_loadShift           => SC_loadShift,
       O_initAddress         => SC_initAddress,
       O_incrAddress         => SC_incrAddress,
       O_initSum             => SC_initSum,
       O_loadSum             => SC_loadSum,
-      O_loadY               => SC_loadY,
-      O_FilteredSampleValid => O_filteredSampleValid,
-      O_filterStage         => SC_filterStage  -- 🚀 Agora a unidade de controle define o estágio do filtro
-    );
+      O_loadOutA            => SC_loadOutA,
+      O_loadOutBL     => SC_loadOutBaseLine,
+      O_loadOutClellan      => SC_loadOutLissage,
+      O_sel                 => SC_sel,
+      O_FilteredSampleValid => O_FilteredSampleValid);
 
-  -- Instância da unidade operativa
   operativeUnit_1 : entity work.operativeUnit
     port map (
       I_clock          => I_clock,
@@ -103,12 +125,16 @@ begin
       I_loadShift      => SC_loadShift,
       I_initAddress    => SC_initAddress,
       I_incrAddress    => SC_incrAddress,
+      I_sel            => SC_sel,
       I_initSum        => SC_initSum,
       I_loadSum        => SC_loadSum,
-      I_loadY          => SC_loadY,
-      I_filterStage    => SC_filterStage,  -- 🚀 Agora a unidade operativa recebe o estágio do filtro
-      O_processingDone => SC_processingDone,
-      O_Y              => O_filteredSample
-    );
+      I_loadOutA          => SC_loadOutA,
+      I_loadOutBL   => SC_loadOutBaseLine,
+      I_loadOutClellan    => SC_loadOutLissage,
+      O_processingDoneA => SC_processingDoneA,
+      O_processingDoneB => SC_processingDoneB,
+      O_processingDoneBL => SC_processingDoneBaseLine,
+      O_processingDoneClellan => SC_processingDoneLissage,
+      O_total              => O_filteredSample  );
 
 end architecture archi_firUnit;
diff --git a/src/hdl/operativeUnit.vhd b/src/hdl/operativeUnit.vhd
index ab13e7a..4314419 100644
--- a/src/hdl/operativeUnit.vhd
+++ b/src/hdl/operativeUnit.vhd
@@ -1,404 +1,375 @@
-library ieee;
-use ieee.std_logic_1164.all;
-use ieee.numeric_std.all;
-
-entity operativeUnit is
-  port (
-    I_clock          : in  std_logic;   
-    I_reset          : in  std_logic;   
-    I_inputSample    : in  std_logic_vector(7 downto 0);  
-    I_loadShift      : in  std_logic;  
-    I_initAddress    : in  std_logic;  
-    I_incrAddress    : in  std_logic;  
-    I_initSum        : in  std_logic;  
-    I_loadSum        : in  std_logic;  
-    I_loadY          : in  std_logic;  
-    I_filterStage    : in  integer range 0 to 2; -- Novo: indica qual filtro está sendo aplicado
-    O_processingDone : out std_logic;   
-    O_Y              : out std_logic_vector(7 downto 0)   
-    );
-end entity operativeUnit;
+LIBRARY ieee;
+USE ieee.std_logic_1164.ALL;
+USE ieee.numeric_std.ALL;
 
-architecture arch_operativeUnit of operativeUnit is
-  -- Tamanho correto de cada filtro
-  type coefBaselineArray  is array(0 to 128) of signed(7 downto 0);
-  type coefNotch50HzArray is array(0 to 100) of signed(7 downto 0);
-  type coefLowPassArray   is array(0 to 10)  of signed(7 downto 0);
-  
-  -- Registradores de coeficientes
-  signal SR_coefBaseline   : coefBaselineArray;  
-  signal SR_coefNotch50Hz  : coefNotch50HzArray;
-  signal SR_coefLowPass    : coefLowPassArray;
-  
-  -- Shift register para armazenar amostras
-  type shiftRegisterArray is array(0 to 128) of signed(7 downto 0);
-  signal SR_shiftRegister  : shiftRegisterArray;
-
-  signal SC_multOperand1  : signed(7 downto 0);
-  signal SC_multOperand2  : signed(7 downto 0);
-  signal SC_MultResult    : signed(15 downto 0);  
-  signal SC_addResult     : signed(19 downto 0);  
-  signal SR_sum           : signed(19 downto 0);  
-  signal SR_Y             : signed(7 downto 0);   
-
-  -- Contador de leitura para cada filtro
-  signal SR_readAddress   : integer range 0 to 128;
-
-  -- Limite do contador baseado no filtro atual
-  signal SC_maxAddress : integer range 0 to 128;
-
-begin
-
-  -- *** Defina os coeficientes de cada filtro aqui ***
-  -- Baseline Wander Filter (129 coeficientes)
-  SR_coefBaseline <= (
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(64, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8)
-  ); 
-
-  -- Notch 50Hz Filter (101 coeficientes)
-  SR_coefNotch50Hz <= (
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(-1, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(1, 8),
-          to_signed(1, 8),
-          to_signed(1, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(0, 8),
-          to_signed(1, 8),
-          to_signed(1, 8),
-          to_signed(2, 8),
-          to_signed(2, 8),
-          to_signed(1, 8),
-          to_signed(-1, 8),
-          to_signed(-2, 8),
-          to_signed(-2, 8),
-          to_signed(-2, 8),
-          to_signed(-1, 8),
-          to_signed(1, 8),
-          to_signed(2, 8),
-          to_signed(3, 8),
-          to_signed(2, 8),
-          to_signed(1, 8),
-          to_signed(-1, 8),
-          to_signed(-2, 8),
-          to_signed(63, 8),
-          to_signed(-2, 8),
-          to_signed(-1, 8),
-          to_signed(1, 8),
-          to_signed(2, 8),
-          to_signed(3, 8),
-          to_signed(2, 8),
-          to_signed(1, 8),
-          to_signed(-1, 8),
-          to_signed(-2, 8),
-          to_signed(-2, 8),
-          to_signed(-2, 8),
-          to_signed(-1, 8),
-          to_signed(1, 8),
-          to_signed(2, 8),
-          to_signed(2, 8),
-          to_signed(1, 8),
-          to_signed(1, 8),
-          to_signed(0, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(-1, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(1, 8),
-          to_signed(1, 8),
-          to_signed(1, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(-1, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8),
-          to_signed(0, 8)
+ENTITY operativeUnit IS
+
+  PORT (
+    I_clock : IN STD_LOGIC;
+    I_reset : IN STD_LOGIC;
+    I_inputSample : IN STD_LOGIC_VECTOR(11 DOWNTO 0);
+    I_loadShift : IN STD_LOGIC;
+    I_initAddress : IN STD_LOGIC;
+    I_incrAddress : IN STD_LOGIC;
+    I_sel : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
+    I_initSum : IN STD_LOGIC;
+    I_loadSum : IN STD_LOGIC;
+    I_loadOutA : IN STD_LOGIC;
+    I_loadOutBL : IN STD_LOGIC;
+    I_loadOutClellan : IN STD_LOGIC;
+    O_processingDoneA : OUT STD_LOGIC;
+    O_processingDoneB : OUT STD_LOGIC;
+    O_processingDoneBL : OUT STD_LOGIC;
+    O_processingDoneClellan : OUT STD_LOGIC;
+    O_total : OUT STD_LOGIC_VECTOR(11 DOWNTO 0)
   );
 
-  -- Low-Pass Filter (Parks-McClellan) (11 coeficientes)
-  SR_coefLowPass <= (
-          to_signed(-13, 8),
-          to_signed(13, 8),
-          to_signed(16, 8),
-          to_signed(21, 8),
-          to_signed(25, 8),
-          to_signed(26, 8),
-          to_signed(25, 8),
-          to_signed(21, 8),
-          to_signed(16, 8),
-          to_signed(13, 8),
-          to_signed(-13, 8)
-  ); 
-
-  -- Definição do número de coeficientes para cada filtro
-  process (I_filterStage)
-  begin
-    case I_filterStage is
-      when 0 => SC_maxAddress <= 128;  -- Baseline (129 coeficientes)
-      when 1 => SC_maxAddress <= 100;  -- Notch 50Hz (101 coeficientes)
-      when 2 => SC_maxAddress <= 10;   -- Parks-McClellan (11 coeficientes)
-      when others => SC_maxAddress <= 128;
-    end case;
-  end process;  
-
-  -- Shift Register para armazenar amostras de entrada
-  shift : process (I_reset, I_clock) 
-  begin
-    if I_reset = '1' then               
-      SR_shiftRegister <= (others => (others => '0'));
-    elsif rising_edge(I_clock) then
-      if I_loadShift = '1' then
-        -- Shift das amostras
-        for i in SC_maxAddress downto 1 loop
-          SR_shiftRegister(i) <= SR_shiftRegister(i-1);
-        end loop;
-        SR_shiftRegister(0) <= signed(I_inputSample);
-      end if;
-    end if;
-  end process shift;
-
-  -- Incremento do endereço de leitura para os coeficientes
-  incr_address : process (I_reset, I_clock) 
-  begin
-    if I_reset = '1' then               
-    SR_readAddress <= 0;
-  elsif rising_edge(I_clock) then
-    if I_initAddress = '1' then               
+END ENTITY operativeUnit;
+
+ARCHITECTURE arch_operativeUnit OF operativeUnit IS
+  TYPE registerFileA IS ARRAY(0 TO 1) OF signed(11 DOWNTO 0);
+  SIGNAL SR_coefRegisterA : registerFileA;
+  SIGNAL SR_2A : registerFileA;
+
+  TYPE registerFileB IS ARRAY(0 TO 2) OF signed(11 DOWNTO 0);
+  SIGNAL SR_coefRegisterB : registerFileB;
+  SIGNAL SR_2 : registerFileB;
+
+  TYPE registerFileBL IS ARRAY(0 TO 94) OF signed(11 DOWNTO 0);
+  SIGNAL SR_coefRegisterBL : registerFileBL;
+  SIGNAL SR_1 : registerFileBL;
+
+  TYPE registerFileClellan IS ARRAY(0 TO 10) OF signed(11 DOWNTO 0);
+  SIGNAL SR_coefRegisterClellan : registerFileClellan;
+  SIGNAL SR_3 : registerFileClellan;
+
+  SIGNAL SC_multOperand1 : signed(11 DOWNTO 0);
+  SIGNAL SC_multOperand2 : signed(11 DOWNTO 0);
+  SIGNAL SC_MultResult : signed(23 DOWNTO 0);
+  SIGNAL SC_addResult : signed(30 DOWNTO 0);
+  SIGNAL SR_sum : signed(30 DOWNTO 0);
+  SIGNAL SR_Y : signed(11 DOWNTO 0);
+  SIGNAL SR_readAddress : INTEGER RANGE 0 TO 94;
+  
+BEGIN
+  SR_coefRegisterA <= (to_signed(1554, 12),
+    to_signed(-897, 12)
+    );
+
+  SR_coefRegisterB <= (to_signed(961, 12),
+    to_signed(-1554, 12),
+    to_signed(961, 12)
+    );
+
+  SR_coefRegisterBL <= (to_signed(-1, 12),
+    to_signed(-1, 12),
+    to_signed(-1, 12),
+    to_signed(-1, 12),
+    to_signed(-1, 12),
+    to_signed(-1, 12),
+    to_signed(-2, 12),
+    to_signed(-2, 12),
+    to_signed(-2, 12),
+    to_signed(-3, 12),
+    to_signed(-3, 12),
+    to_signed(-3, 12),
+    to_signed(-4, 12),
+    to_signed(-4, 12),
+    to_signed(-5, 12),
+    to_signed(-5, 12),
+    to_signed(-6, 12),
+    to_signed(-6, 12),
+    to_signed(-7, 12),
+    to_signed(-7, 12),
+    to_signed(-8, 12),
+    to_signed(-8, 12),
+    to_signed(-9, 12),
+    to_signed(-10, 12),
+    to_signed(-10, 12),
+    to_signed(-11, 12),
+    to_signed(-11, 12),
+    to_signed(-12, 12),
+    to_signed(-13, 12),
+    to_signed(-13, 12),
+    to_signed(-14, 12),
+    to_signed(-14, 12),
+    to_signed(-15, 12),
+    to_signed(-15, 12),
+    to_signed(-16, 12),
+    to_signed(-16, 12),
+    to_signed(-17, 12),
+    to_signed(-17, 12),
+    to_signed(-18, 12),
+    to_signed(-18, 12),
+    to_signed(-18, 12),
+    to_signed(-19, 12),
+    to_signed(-19, 12),
+    to_signed(-19, 12),
+    to_signed(-19, 12),
+    to_signed(-19, 12),
+    to_signed(-19, 12),
+    to_signed(1004, 12),
+    to_signed(-19, 12),
+    to_signed(-19, 12),
+    to_signed(-19, 12),
+    to_signed(-19, 12),
+    to_signed(-19, 12),
+    to_signed(-19, 12),
+    to_signed(-18, 12),
+    to_signed(-18, 12),
+    to_signed(-18, 12),
+    to_signed(-17, 12),
+    to_signed(-17, 12),
+    to_signed(-16, 12),
+    to_signed(-16, 12),
+    to_signed(-15, 12),
+    to_signed(-15, 12),
+    to_signed(-14, 12),
+    to_signed(-14, 12),
+    to_signed(-13, 12),
+    to_signed(-13, 12),
+    to_signed(-12, 12),
+    to_signed(-11, 12),
+    to_signed(-11, 12),
+    to_signed(-10, 12),
+    to_signed(-10, 12),
+    to_signed(-9, 12),
+    to_signed(-8, 12),
+    to_signed(-8, 12),
+    to_signed(-7, 12),
+    to_signed(-7, 12),
+    to_signed(-6, 12),
+    to_signed(-6, 12),
+    to_signed(-5, 12),
+    to_signed(-5, 12),
+    to_signed(-4, 12),
+    to_signed(-4, 12),
+    to_signed(-3, 12),
+    to_signed(-3, 12),
+    to_signed(-3, 12),
+    to_signed(-2, 12),
+    to_signed(-2, 12),
+    to_signed(-2, 12),
+    to_signed(-1, 12),
+    to_signed(-1, 12),
+    to_signed(-1, 12),
+    to_signed(-1, 12),
+    to_signed(-1, 12),
+    to_signed(-1, 12)
+    );
+
+  SR_coefRegisterClellan <= (to_signed(-119, 12),
+    to_signed(122, 12),
+    to_signed(149, 12),
+    to_signed(191, 12),
+    to_signed(226, 12),
+    to_signed(239, 12),
+    to_signed(226, 12),
+    to_signed(191, 12),
+    to_signed(149, 12),
+    to_signed(122, 12),
+    to_signed(-119, 12)
+    );
+
+  shift : PROCESS (I_reset, I_clock) IS
+  BEGIN
+    IF I_reset = '1' THEN
+      SR_1 <= (OTHERS => (OTHERS => '0'));
+
+    ELSIF rising_edge(I_clock) THEN
+      IF I_loadShift = '1' THEN
+        IF I_sel = "00" THEN
+          SR_1(1 TO 94) <= SR_1(0 TO 93);
+          SR_1(0) <= signed(I_inputSample);
+        END IF;
+      END IF;
+    END IF;
+  END PROCESS shift;
+
+  incr_address : PROCESS (I_reset, I_clock) IS
+  BEGIN
+    IF I_reset = '1' THEN
       SR_readAddress <= 0;
-    elsif I_incrAddress = '1' then
-      if SR_readAddress < SC_maxAddress then
-        SR_readAddress <= SR_readAddress + 1;
-      end if;
-    end if;
-  end if;
-  end process incr_address;
-
-  -- Indicação de processamento concluído
-  O_processingDone <= '1' when SR_readAddress >= SC_maxAddress else '0';
-
-  -- Multiplicação e acumulação
-  process (I_filterStage, SR_readAddress)
-  begin
-    case I_filterStage is
-      when 0 =>
-        SC_multOperand1 <= SR_coefBaseline(SR_readAddress);
-      when 1 =>
-        SC_multOperand1 <= SR_coefNotch50Hz(SR_readAddress);
-      when 2 =>
-        SC_multOperand1 <= SR_coefLowPass(SR_readAddress);
-      when others =>
-        SC_multOperand1 <= (others => '0');
-    end case;
-  end process;
-
-  SC_multOperand2 <= SR_shiftRegister(SR_readAddress);
-  SC_MultResult   <= SC_multOperand1 * SC_multOperand2;  
-  SC_addResult    <= resize(SC_MultResult, SC_addResult'length) + SR_sum;
-
-  -- Acumulador de soma (MAC)
-  sum_acc : process (I_reset, I_clock) 
-  begin
-    if I_reset = '1' then               
-      SR_sum <= (others => '0');
-    elsif rising_edge(I_clock) then
-      if I_initSum = '1' then
-        SR_sum <= (others => '0');
-      elsif I_loadSum = '1' then
+
+    ELSIF rising_edge(I_clock) THEN
+      IF I_sel = "00" THEN
+        IF I_initAddress = '1' THEN
+          SR_readAddress <= 0;
+        ELSIF I_incrAddress = '1' THEN
+          IF SR_readAddress = 94 THEN
+            SR_readAddress <= 0;
+          ELSE
+            SR_readAddress <= SR_readAddress + 1;
+          END IF;
+        END IF;
+
+      -- Process B
+      ELSIF I_sel = "01" THEN
+        IF I_initAddress = '1' THEN
+          SR_readAddress <= 0;
+        ELSIF I_incrAddress = '1' THEN
+          IF SR_readAddress = 2 THEN
+            SR_readAddress <= 0;
+          ELSE
+            SR_readAddress <= SR_readAddress + 1;
+          END IF;
+        END IF;
+
+      -- Process A
+      ELSIF I_sel = "10" THEN
+        IF I_initAddress = '1' THEN
+          SR_readAddress <= 0;
+        ELSIF I_incrAddress = '1' THEN
+          IF SR_readAddress = 1 THEN
+            SR_readAddress <= 0;
+          ELSE
+            SR_readAddress <= SR_readAddress + 1;
+          END IF;
+        END IF;
+
+      -- Process Clellan
+      ELSIF I_sel = "11" THEN
+        IF I_initAddress = '1' THEN
+          SR_readAddress <= 0;
+        ELSIF I_incrAddress = '1' THEN
+          IF SR_readAddress = 10 THEN
+            SR_readAddress <= 0;
+          ELSE
+            SR_readAddress <= SR_readAddress + 1;
+          END IF;
+        END IF;
+      END IF;
+    END IF;
+
+  END PROCESS incr_address;
+
+  mux_operands : PROCESS (SR_readAddress, I_sel, SR_1, SR_coefRegisterBL,
+    SR_3, SR_coefRegisterClellan, SR_2,
+    SR_coefRegisterB, SR_2A, SR_coefRegisterA) IS
+  BEGIN
+    IF I_sel = "00" THEN
+      SC_multOperand1 <= SR_1(SR_readAddress);
+      SC_multOperand2 <= SR_coefRegisterBL(SR_readAddress);
+
+      IF SR_readAddress = 94 THEN
+        O_processingDoneBL <= '1';
+        O_processingDoneA <= '0';
+        O_processingDoneB <= '0';
+        O_processingDoneClellan <= '0';
+      ELSE
+        O_processingDoneA <= '0';
+        O_processingDoneB <= '0';
+        O_processingDoneBL <= '0';
+        O_processingDoneClellan <= '0';
+      END IF;
+
+    ELSIF I_sel = "01" THEN
+      SC_multOperand1 <= SR_2(SR_readAddress);
+      SC_multOperand2 <= SR_coefRegisterB(SR_readAddress);
+
+      IF SR_readAddress = 2 THEN
+        O_processingDoneB <= '1';
+        O_processingDoneA <= '0';
+        O_processingDoneBL <= '0';
+        O_processingDoneClellan <= '0';
+      ELSE
+        O_processingDoneA <= '0';
+        O_processingDoneB <= '0';
+        O_processingDoneBL <= '0';
+        O_processingDoneClellan <= '0';
+      END IF;
+
+    ELSIF I_sel = "10" THEN
+      SC_multOperand1 <= SR_2A(SR_readAddress);
+      SC_multOperand2 <= SR_coefRegisterA(SR_readAddress);
+
+      IF SR_readAddress = 0 THEN
+        O_processingDoneA <= '1';
+        O_processingDoneB <= '0';
+        O_processingDoneBL <= '0';
+        O_processingDoneClellan <= '0';
+      ELSE
+        O_processingDoneA <= '0';
+        O_processingDoneB <= '0';
+        O_processingDoneBL <= '0';
+        O_processingDoneClellan <= '0';
+      END IF;
+
+    ELSIF I_sel = "11" THEN
+      SC_multOperand1 <= SR_3(SR_readAddress);
+      SC_multOperand2 <= SR_coefRegisterClellan(SR_readAddress);
+
+      IF SR_readAddress = 10 THEN
+        O_processingDoneClellan <= '1';
+        O_processingDoneB <= '0';
+        O_processingDoneA <= '0';
+        O_processingDoneBL <= '0';
+      ELSE
+        O_processingDoneA <= '0';
+        O_processingDoneB <= '0';
+        O_processingDoneBL <= '0';
+        O_processingDoneClellan <= '0';
+      END IF;
+    END IF;
+  END PROCESS mux_operands;
+
+  SC_MultResult <= SC_multOperand1 * SC_multOperand2;
+  SC_addResult <= resize(SC_MultResult, SC_addResult'length) + SR_sum;
+
+  sum_acc : PROCESS (I_reset, I_clock) IS
+  BEGIN
+    IF I_reset = '1' THEN
+      SR_sum <= (OTHERS => '0');
+
+    ELSIF rising_edge(I_clock) THEN
+      IF I_initSum = '1' THEN
+        SR_sum <= (OTHERS => '0');
+      ELSIF I_loadSum = '1' THEN
         SR_sum <= SC_addResult;
-      end if;
-    end if;
-  end process sum_acc;
-
-  -- Armazenamento do resultado final
-  store_result : process (I_reset, I_clock) 
-  begin
-    if I_reset = '1' then               
-      SR_Y <= (others => '0');
-    elsif rising_edge(I_clock) then
-      if I_loadY = '1' then
-        if SC_addResult(6) = '1' then 
-          SR_Y <= SC_addResult(14 downto 7) + 1;
-        else
-          SR_Y <= SC_addResult(14 downto 7);
-        end if;
-      end if;
-    end if;
-  end process store_result;
-
-  -- Saída final do filtro
-  O_Y <= std_logic_vector(SR_Y);
-
-end architecture arch_operativeUnit;
+      END IF;
+
+    END IF;
+  END PROCESS sum_acc;
+
+  store_result : PROCESS (I_reset, I_clock) IS
+  BEGIN
+    IF I_reset = '1' THEN
+      SR_Y <= (OTHERS => '0');
+      SR_2A <= (OTHERS => (OTHERS => '0'));
+      SR_2 <= (OTHERS => (OTHERS => '0'));
+      SR_3 <= (OTHERS => (OTHERS => '0'));
+
+    ELSIF rising_edge(I_clock) THEN
+      IF I_loadOutBL = '1' THEN
+        IF SC_addResult(9) = '1' THEN
+          SR_2(1 TO 2) <= SR_2(0 TO 1);
+          SR_2(0) <= signed(SC_addResult(21 DOWNTO 10) + 1);
+        ELSE
+          SR_2(1 TO 2) <= SR_2(0 TO 1);
+          SR_2(0) <= signed(SC_addResult(21 DOWNTO 10) + 1);
+        END IF;
+
+      ELSIF I_loadOutA = '1' THEN
+        IF SC_addResult(9) = '1' THEN
+          SR_3(1 TO 10) <= SR_3(0 TO 9);
+          SR_3(0) <= signed(SC_addResult(21 DOWNTO 10) + 1);
+          SR_2A(0) <= signed(SC_addResult(21 DOWNTO 10) + 1);
+        ELSE
+          SR_3(1 TO 10) <= SR_3(0 TO 9);
+          SR_3(0) <= signed(SC_addResult(21 DOWNTO 10));
+          SR_2A(0) <= signed(SC_addResult(21 DOWNTO 10));
+        END IF;
+        SR_2A(1) <= SR_2A(0);
+      ELSIF I_loadOutClellan = '1' THEN
+        IF SC_addResult(9) = '1' THEN
+          SR_Y <= SC_addResult(21 DOWNTO 10) + 1;
+        ELSE
+          SR_Y <= SC_addResult(21 DOWNTO 10);
+        END IF;
+      END IF;
+    END IF;
+  END PROCESS store_result;
+
+  O_total <= STD_LOGIC_VECTOR(SR_Y);
+
+END ARCHITECTURE arch_operativeUnit;
\ No newline at end of file
diff --git a/src/hdl/tb_firUnit.vhd b/src/hdl/tb_firUnit.vhd
index cea8698..6d885f7 100644
--- a/src/hdl/tb_firUnit.vhd
+++ b/src/hdl/tb_firUnit.vhd
@@ -33,17 +33,17 @@ architecture archi_tb_firUnit of tb_firUnit is
     port (
       I_clock               : in  std_logic;
       I_reset               : in  std_logic;
-      I_inputSample         : in  std_logic_vector(7 downto 0);
+      I_inputSample         : in  std_logic_vector(11 downto 0);
       I_inputSampleValid    : in  std_logic;
-      O_filteredSample      : out std_logic_vector(7 downto 0);
+      O_filteredSample      : out std_logic_vector(11 downto 0);
       O_filteredSampleValid : out std_logic);
   end component firUnit;
 
   signal SC_clock               : std_logic := '0';
   signal SC_reset               : std_logic;
-  signal SC_inputSample         : std_logic_vector(7 downto 0);
+  signal SC_inputSample         : std_logic_vector(11 downto 0);
   signal SC_inputSampleValid    : std_logic:='0';
-  signal SC_filteredSample      : std_logic_vector(7 downto 0);
+  signal SC_filteredSample      : std_logic_vector(11 downto 0);
   signal SC_filteredSampleValid : std_logic;
 
 begin
@@ -52,41 +52,21 @@ begin
   SC_reset <= '0', '1' after 19 ns, '0' after 57 ns;
 
   -- Sample period = 20 clk period
-  SC_inputSampleValid <= '0',
-                          '1' after 401 ns,
-                          '0' after 501 ns,
-                          '1' after 3601 ns,
-                          '0' after 3701 ns,
-                          '1' after 6201 ns,
-                          '0' after 6301 ns,
-                          '1' after 9401 ns,
-                          '0' after 9501 ns,
-                          '1' after 12601 ns,
-                          '0' after 12701 ns,
-                          '1' after 15801 ns,
-                          '0' after 15901 ns,
-                          '1' after 18001 ns,
-                          '0' after 18101 ns,
-                          '1' after 21201 ns,
-                          '0' after 21301 ns,
-                          '1' after 24401 ns,
-                          '0' after 24501 ns,
-                          '1' after 27601 ns,
-                          '0' after 27701 ns;
+  SC_inputSampleValid <= not SC_inputSampleValid after 1000 ns;
 
   -- Null signal followed by a Dirac and then an arbitrary sequence
-  SC_inputSample <= "00000000",
-                    "01111111" after 401 ns,
-                    "00000000" after 3601 ns,
-                    "00100100" after 6201 ns,
-                    "01100100" after 9401 ns,
-                    "10100010" after 12601 ns,
-                    "11011011" after 15801 ns,
-                    "00001011" after 18001 ns,
-                    "10000000" after 21201 ns,
-                    "01111111" after 24401 ns,
-                    "10111010" after 27601 ns;
-
+  SC_inputSample <= "000000000000",
+                    "001111111111" after 3001 ns,
+                    "000000000000" after 5001 ns,
+                    "000000100100" after 7001 ns,
+                    "000001100100" after 9001 ns,
+                    "000010100010" after 11001 ns,
+                    "000011011011" after 13001 ns,
+                    "000000001011" after 14001 ns,
+                    "000010000000" after 15001 ns,
+                    "000011111111" after 16001 ns,
+                    "000010111010" after 18001 ns;
+                    
 
 -- the filter output on 8 bits is a sequence of signed numbers (with the  assumption
 -- of rounding the output, so the accuracy can be slightly different depending
-- 
GitLab