From 583358edaa8244c5d59bdabb49cb1633102b23df Mon Sep 17 00:00:00 2001
From: Ahmed ABOULKACEM <a23aboul@fl-tp-br-104.imta.fr>
Date: Tue, 25 Mar 2025 17:51:55 +0100
Subject: [PATCH]  25 mars Ahmed

---
 proj/proj.cache/wt/project.wpc                |   2 +-
 proj/proj.cache/wt/synthesis.wdf              |  52 ++++
 proj/proj.cache/wt/synthesis_details.wdf      |   3 +
 proj/proj.runs/.jobs/vrs_config_1.xml         |  12 +
 .../synth_1/.Vivado_Synthesis.queue.rst       |   0
 proj/proj.runs/synth_1/.vivado.begin.rst      |   5 +
 proj/proj.runs/synth_1/.vivado.end.rst        |   0
 proj/proj.runs/synth_1/ISEWrap.js             | 270 ++++++++++++++++++
 proj/proj.runs/synth_1/ISEWrap.sh             |  85 ++++++
 .../synth_1/__synthesis_is_complete__         |   0
 proj/proj.runs/synth_1/ecgUnit.dcp            | Bin 0 -> 79123 bytes
 proj/proj.runs/synth_1/ecgUnit.tcl            | 109 +++++++
 proj/proj.runs/synth_1/ecgUnit.vds            | 260 +++++++++++++++++
 .../synth_1/ecgUnit_utilization_synth.pb      | Bin 0 -> 224 bytes
 .../synth_1/ecgUnit_utilization_synth.rpt     | 184 ++++++++++++
 proj/proj.runs/synth_1/gen_run.xml            |  56 ++++
 proj/proj.runs/synth_1/htr.txt                |  10 +
 proj/proj.runs/synth_1/project.wdf            |  31 ++
 proj/proj.runs/synth_1/rundef.js              |  41 +++
 proj/proj.runs/synth_1/runme.bat              |  12 +
 proj/proj.runs/synth_1/runme.log              | 250 ++++++++++++++++
 proj/proj.runs/synth_1/runme.sh               |  40 +++
 proj/proj.runs/synth_1/vivado.jou             |  24 ++
 proj/proj.runs/synth_1/vivado.pb              | Bin 0 -> 25609 bytes
 .../sources_1/imports/hdl/ecgUnit.vhdl        | 111 +++++++
 proj/proj.xpr                                 |  16 +-
 src/hdl/ecgUnit.vhdl                          |   0
 27 files changed, 1568 insertions(+), 5 deletions(-)
 create mode 100644 proj/proj.cache/wt/synthesis.wdf
 create mode 100644 proj/proj.cache/wt/synthesis_details.wdf
 create mode 100644 proj/proj.runs/.jobs/vrs_config_1.xml
 create mode 100644 proj/proj.runs/synth_1/.Vivado_Synthesis.queue.rst
 create mode 100644 proj/proj.runs/synth_1/.vivado.begin.rst
 create mode 100644 proj/proj.runs/synth_1/.vivado.end.rst
 create mode 100755 proj/proj.runs/synth_1/ISEWrap.js
 create mode 100755 proj/proj.runs/synth_1/ISEWrap.sh
 create mode 100644 proj/proj.runs/synth_1/__synthesis_is_complete__
 create mode 100644 proj/proj.runs/synth_1/ecgUnit.dcp
 create mode 100644 proj/proj.runs/synth_1/ecgUnit.tcl
 create mode 100644 proj/proj.runs/synth_1/ecgUnit.vds
 create mode 100644 proj/proj.runs/synth_1/ecgUnit_utilization_synth.pb
 create mode 100644 proj/proj.runs/synth_1/ecgUnit_utilization_synth.rpt
 create mode 100644 proj/proj.runs/synth_1/gen_run.xml
 create mode 100644 proj/proj.runs/synth_1/htr.txt
 create mode 100644 proj/proj.runs/synth_1/project.wdf
 create mode 100644 proj/proj.runs/synth_1/rundef.js
 create mode 100644 proj/proj.runs/synth_1/runme.bat
 create mode 100644 proj/proj.runs/synth_1/runme.log
 create mode 100755 proj/proj.runs/synth_1/runme.sh
 create mode 100644 proj/proj.runs/synth_1/vivado.jou
 create mode 100644 proj/proj.runs/synth_1/vivado.pb
 create mode 100644 proj/proj.srcs/sources_1/imports/hdl/ecgUnit.vhdl
 create mode 100644 src/hdl/ecgUnit.vhdl

diff --git a/proj/proj.cache/wt/project.wpc b/proj/proj.cache/wt/project.wpc
index de67d9c..2599f42 100644
--- a/proj/proj.cache/wt/project.wpc
+++ b/proj/proj.cache/wt/project.wpc
@@ -1,3 +1,3 @@
 version:1
-6d6f64655f636f756e7465727c4755494d6f6465:3
+6d6f64655f636f756e7465727c4755494d6f6465:7
 eof:
diff --git a/proj/proj.cache/wt/synthesis.wdf b/proj/proj.cache/wt/synthesis.wdf
new file mode 100644
index 0000000..0501334
--- /dev/null
+++ b/proj/proj.cache/wt/synthesis.wdf
@@ -0,0 +1,52 @@
+version:1
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d70617274:7863377a303230636c673438342d31:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e616d65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d746f70:656367556e6974: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:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6c75745f63617363616465:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6f73:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d62756667:64656661756c743a3a3132:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d66616e6f75745f6c696d6974:64656661756c743a3a3130303030:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73687265675f6d696e5f73697a65:64656661756c743a3a33:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d6f6465:64656661756c743a3a64656661756c74:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d66736d5f65787472616374696f6e:64656661756c743a3a6175746f:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6b6565705f6571756976616c656e745f726567697374657273:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00
+73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d7265736f757263655f73686172696e67:64656661756c743a3a6175746f: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:30303a30303a313173:00:00
+73796e746865736973:73796e7468657369735c7573616765:6d656d6f72795f7065616b:323430302e3133334d42:00:00
+73796e746865736973:73796e7468657369735c7573616765:6d656d6f72795f6761696e:3731352e3537384d42:00:00
+eof:2126513422
diff --git a/proj/proj.cache/wt/synthesis_details.wdf b/proj/proj.cache/wt/synthesis_details.wdf
new file mode 100644
index 0000000..78f8d66
--- /dev/null
+++ b/proj/proj.cache/wt/synthesis_details.wdf
@@ -0,0 +1,3 @@
+version:1
+73796e746865736973:73796e7468657369735c7573616765:686c735f6970:30:00:00
+eof:2511430288
diff --git a/proj/proj.runs/.jobs/vrs_config_1.xml b/proj/proj.runs/.jobs/vrs_config_1.xml
new file mode 100644
index 0000000..0621275
--- /dev/null
+++ b/proj/proj.runs/.jobs/vrs_config_1.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<Runs Version="1" Minor="0">
+	<Run Id="synth_1" LaunchDir="/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.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.ignorePathLengthChecks" Val="true" Type="bool"/>
+		<Parameter Name="general.shortenLongPath" Val="true" Type="bool"/>
+	</Parameters>
+	<ProductInfo Name="vivado"/>
+</Runs>
+
diff --git a/proj/proj.runs/synth_1/.Vivado_Synthesis.queue.rst b/proj/proj.runs/synth_1/.Vivado_Synthesis.queue.rst
new file mode 100644
index 0000000..e69de29
diff --git a/proj/proj.runs/synth_1/.vivado.begin.rst b/proj/proj.runs/synth_1/.vivado.begin.rst
new file mode 100644
index 0000000..a423b89
--- /dev/null
+++ b/proj/proj.runs/synth_1/.vivado.begin.rst
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<ProcessHandle Version="1" Minor="0">
+    <Process Command="vivado" Owner="a23aboul" Host="fl-tp-br-104" Pid="74769" HostCore="12" HostMemory="16040124">
+    </Process>
+</ProcessHandle>
diff --git a/proj/proj.runs/synth_1/.vivado.end.rst b/proj/proj.runs/synth_1/.vivado.end.rst
new file mode 100644
index 0000000..e69de29
diff --git a/proj/proj.runs/synth_1/ISEWrap.js b/proj/proj.runs/synth_1/ISEWrap.js
new file mode 100755
index 0000000..61806d0
--- /dev/null
+++ b/proj/proj.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/proj.runs/synth_1/ISEWrap.sh b/proj/proj.runs/synth_1/ISEWrap.sh
new file mode 100755
index 0000000..05d5381
--- /dev/null
+++ b/proj/proj.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/proj.runs/synth_1/__synthesis_is_complete__ b/proj/proj.runs/synth_1/__synthesis_is_complete__
new file mode 100644
index 0000000..e69de29
diff --git a/proj/proj.runs/synth_1/ecgUnit.dcp b/proj/proj.runs/synth_1/ecgUnit.dcp
new file mode 100644
index 0000000000000000000000000000000000000000..36b2cbf1281d1ca2c3ce7c7bb98f337a38eb8e1c
GIT binary patch
literal 79123
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

literal 0
HcmV?d00001

diff --git a/proj/proj.runs/synth_1/ecgUnit.tcl b/proj/proj.runs/synth_1/ecgUnit.tcl
new file mode 100644
index 0000000..6ca0b71
--- /dev/null
+++ b/proj/proj.runs/synth_1/ecgUnit.tcl
@@ -0,0 +1,109 @@
+# 
+# Synthesis run script generated by Vivado
+# 
+
+set TIME_start [clock seconds] 
+namespace eval ::optrace {
+  variable script "/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.runs/synth_1/ecgUnit.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 xc7z020clg484-1
+
+set_param project.singleFileAddWarning.threshold 0
+set_param project.compositeFile.enableAutoGeneration 0
+set_param synth.vivado.isSynthRun true
+set_property webtalk.parent_dir /homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.cache/wt [current_project]
+set_property parent.project_path /homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.xpr [current_project]
+set_property default_lib xil_defaultlib [current_project]
+set_property target_language VHDL [current_project]
+set_property board_part avnet.com:zedboard:part0:1.4 [current_project]
+set_property ip_output_repo /homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.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 {
+  /homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd
+  /homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd
+  /homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.srcs/sources_1/imports/hdl/ecgUnit.vhdl
+}
+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
+}
+set_param ips.enableIPCacheLiteLoad 1
+close [open __synthesis_is_running__ w]
+
+OPTRACE "synth_design" START { }
+synth_design -top ecgUnit -part xc7z020clg484-1
+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 ecgUnit.dcp
+OPTRACE "write_checkpoint" END { }
+OPTRACE "synth reports" START { REPORT }
+generate_parallel_reports -reports { "report_utilization -file ecgUnit_utilization_synth.rpt -pb ecgUnit_utilization_synth.pb"  } 
+OPTRACE "synth reports" END { }
+file delete __synthesis_is_running__
+close [open __synthesis_is_complete__ w]
+OPTRACE "synth_1" END { }
diff --git a/proj/proj.runs/synth_1/ecgUnit.vds b/proj/proj.runs/synth_1/ecgUnit.vds
new file mode 100644
index 0000000..7741495
--- /dev/null
+++ b/proj/proj.runs/synth_1/ecgUnit.vds
@@ -0,0 +1,260 @@
+#-----------------------------------------------------------
+# Vivado v2024.1 (64-bit)
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+# IP Build 5075265 on Wed May 22 21:45:21 MDT 2024
+# SharedData Build 5076995 on Wed May 22 18:29:18 MDT 2024
+# Start of session at: Tue Mar 25 17:37:19 2025
+# Process ID: 74841
+# Current directory: /homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.runs/synth_1
+# Command line: vivado -log ecgUnit.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source ecgUnit.tcl
+# Log file: /homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.runs/synth_1/ecgUnit.vds
+# Journal file: /homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.runs/synth_1/vivado.jou
+# Running On        :fl-tp-br-104
+# Platform          :Ubuntu
+# Operating System  :Ubuntu 24.04.2 LTS
+# Processor Detail  :12th Gen Intel(R) Core(TM) i5-12500
+# CPU Frequency     :1511.163 MHz
+# CPU Physical cores:6
+# CPU Logical cores :12
+# Host memory       :16425 MB
+# Swap memory       :4294 MB
+# Total Virtual     :20720 MB
+# Available Virtual :15733 MB
+#-----------------------------------------------------------
+source ecgUnit.tcl -notrace
+create_project: Time (s): cpu = 00:00:12 ; elapsed = 00:00:24 . Memory (MB): peak = 1680.586 ; gain = 325.840 ; free physical = 4328 ; free virtual = 14423
+Command: synth_design -top ecgUnit -part xc7z020clg484-1
+Starting synth_design
+Attempting to get a license for feature 'Synthesis' and/or device 'xc7z020'
+INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7z020'
+INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 4 processes.
+INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes
+INFO: [Synth 8-7075] Helper process launched with PID 75043
+---------------------------------------------------------------------------------
+Starting Synthesize : Time (s): cpu = 00:00:02 ; elapsed = 00:00:03 . Memory (MB): peak = 2112.207 ; gain = 427.652 ; free physical = 3579 ; free virtual = 13672
+---------------------------------------------------------------------------------
+INFO: [Synth 8-638] synthesizing module 'ecgUnit' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.srcs/sources_1/imports/hdl/ecgUnit.vhdl:23]
+INFO: [Synth 8-638] synthesizing module 'controlUnit' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:31]
+WARNING: [Synth 8-614] signal 'SR_presentState' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:49]
+WARNING: [Synth 8-614] signal 'I_inputSampleValid' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:49]
+WARNING: [Synth 8-614] signal 'I_processingDone' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:49]
+INFO: [Synth 8-256] done synthesizing module 'controlUnit' (0#1) [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:31]
+INFO: [Synth 8-638] synthesizing module 'operativeUnit' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:31]
+WARNING: [Synth 8-614] signal 'SR_shiftRegister1' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+WARNING: [Synth 8-614] signal 'SR_coefRegister1' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+WARNING: [Synth 8-614] signal 'SR_shiftRegister2' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+WARNING: [Synth 8-614] signal 'SR_coefRegister2' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+WARNING: [Synth 8-614] signal 'SR_shiftRegister3' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+WARNING: [Synth 8-614] signal 'SR_coefRegister3' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+WARNING: [Synth 8-614] signal 'SR_coefRegister4' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+INFO: [Synth 8-256] done synthesizing module 'operativeUnit' (0#1) [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:31]
+INFO: [Synth 8-256] done synthesizing module 'ecgUnit' (0#1) [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.srcs/sources_1/imports/hdl/ecgUnit.vhdl:23]
+---------------------------------------------------------------------------------
+Finished Synthesize : Time (s): cpu = 00:00:03 ; elapsed = 00:00:05 . Memory (MB): peak = 2192.176 ; gain = 507.621 ; free physical = 3482 ; free virtual = 13577
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Constraint Validation : Time (s): cpu = 00:00:04 ; elapsed = 00:00:05 . Memory (MB): peak = 2207.020 ; gain = 522.465 ; free physical = 3479 ; free virtual = 13575
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Loading Part and Timing Information
+---------------------------------------------------------------------------------
+Loading part: xc7z020clg484-1
+---------------------------------------------------------------------------------
+Finished Loading Part and Timing Information : Time (s): cpu = 00:00:04 ; elapsed = 00:00:05 . Memory (MB): peak = 2215.023 ; gain = 530.469 ; free physical = 3479 ; free virtual = 13575
+---------------------------------------------------------------------------------
+INFO: [Device 21-403] Loading part xc7z020clg484-1
+INFO: [Synth 8-802] inferred FSM for state register 'SR_presentState_reg' in module 'controlUnit'
+WARNING: [Synth 8-327] inferring latch for variable 'FSM_sequential_SR_futurState_reg' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:45]
+WARNING: [Synth 8-327] inferring latch for variable 'FSM_onehot_SR_futurState_reg' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:45]
+---------------------------------------------------------------------------------------------------
+                   State |                     New Encoding |                Previous Encoding 
+---------------------------------------------------------------------------------------------------
+             wait_sample |                      00001000000 |                             0000
+                  store1 |                      00010000000 |                             0001
+        processing_loop1 |                      00000000001 |                             0100
+                  store2 |                      00000000010 |                             0010
+        processing_loop2 |                      00000010000 |                             0101
+               inter_iir |                      01000000000 |                             1000
+        processing_loop3 |                      10000000000 |                             0110
+                  store3 |                      00000000100 |                             0011
+        processing_loop4 |                      00000001000 |                             0111
+                  output |                      00100000000 |                             1001
+         wait_end_sample |                      00000100000 |                             1010
+---------------------------------------------------------------------------------------------------
+INFO: [Synth 8-3354] encoded FSM with state register 'SR_presentState_reg' using encoding 'one-hot' in module 'controlUnit'
+WARNING: [Synth 8-327] inferring latch for variable 'FSM_onehot_SR_futurState_reg' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:45]
+WARNING: [Synth 8-327] inferring latch for variable 'O_cntrMux_reg' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:54]
+---------------------------------------------------------------------------------
+Finished RTL Optimization Phase 2 : Time (s): cpu = 00:00:04 ; elapsed = 00:00:06 . Memory (MB): peak = 2232.836 ; gain = 548.281 ; free physical = 3445 ; free virtual = 13542
+---------------------------------------------------------------------------------
+No constraint files found.
+---------------------------------------------------------------------------------
+Start RTL Component Statistics 
+---------------------------------------------------------------------------------
+Detailed RTL Component Info : 
++---Adders : 
+	   2 Input    8 Bit       Adders := 1     
+	   2 Input    4 Bit       Adders := 1     
++---Registers : 
+	               20 Bit    Registers := 1     
+	                8 Bit    Registers := 49    
+	                4 Bit    Registers := 1     
++---Muxes : 
+	   2 Input   20 Bit        Muxes := 1     
+	  11 Input   11 Bit        Muxes := 1     
+	   2 Input   11 Bit        Muxes := 6     
+	   4 Input    8 Bit        Muxes := 1     
+	  16 Input    5 Bit        Muxes := 1     
+	  11 Input    4 Bit        Muxes := 1     
+	   2 Input    4 Bit        Muxes := 2     
+	  11 Input    2 Bit        Muxes := 1     
+	  11 Input    1 Bit        Muxes := 3     
+	   2 Input    1 Bit        Muxes := 3     
+---------------------------------------------------------------------------------
+Finished RTL Component Statistics 
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Part Resource Summary
+---------------------------------------------------------------------------------
+INFO: [Device 21-9227] Part: xc7z020clg484-1 does not have CEAM library.
+Part Resources:
+DSPs: 220 (col length:60)
+BRAMs: 280 (col length: RAMB18 60 RAMB36 30)
+---------------------------------------------------------------------------------
+Finished Part Resource Summary
+---------------------------------------------------------------------------------
+No constraint files found.
+---------------------------------------------------------------------------------
+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:09 ; elapsed = 00:00:19 . Memory (MB): peak = 2394.188 ; gain = 709.633 ; free physical = 3273 ; free virtual = 13379
+---------------------------------------------------------------------------------
+No constraint files found.
+---------------------------------------------------------------------------------
+Start Timing Optimization
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Timing Optimization : Time (s): cpu = 00:00:09 ; elapsed = 00:00:19 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3275 ; free virtual = 13382
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Technology Mapping
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Technology Mapping : Time (s): cpu = 00:00:09 ; elapsed = 00:00:19 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3275 ; free virtual = 13382
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Flattening Before IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Flattening Before IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Final Netlist Cleanup
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Final Netlist Cleanup
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished IO Insertion : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Instances
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Instances : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Rebuilding User Hierarchy
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Rebuilding User Hierarchy : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Ports
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Ports : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Handling Custom Attributes
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Handling Custom Attributes : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Nets
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Nets : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Writing Synthesis Report
+---------------------------------------------------------------------------------
+
+Report BlackBoxes: 
++-+--------------+----------+
+| |BlackBox name |Instances |
++-+--------------+----------+
++-+--------------+----------+
+
+Report Cell Usage: 
++------+-------+------+
+|      |Cell   |Count |
++------+-------+------+
+|1     |BUFG   |     1|
+|2     |CARRY4 |    13|
+|3     |LUT2   |    10|
+|4     |LUT3   |     8|
+|5     |LUT4   |    28|
+|6     |LUT5   |    44|
+|7     |LUT6   |   143|
+|8     |MUXF7  |    48|
+|9     |MUXF8  |    24|
+|10    |FDCE   |   421|
+|11    |FDPE   |     1|
+|12    |LD     |    13|
+|13    |IBUF   |    11|
+|14    |OBUF   |     9|
++------+-------+------+
+
+Report Instance Areas: 
++------+------------------+--------------+------+
+|      |Instance          |Module        |Cells |
++------+------------------+--------------+------+
+|1     |top               |              |   774|
+|2     |  controlUnit_1   |controlUnit   |    69|
+|3     |  operativeUnit_1 |operativeUnit |   684|
++------+------------------+--------------+------+
+---------------------------------------------------------------------------------
+Finished Writing Synthesis Report : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+Synthesis finished with 0 errors, 0 critical warnings and 15 warnings.
+Synthesis Optimization Runtime : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+Synthesis Optimization Complete : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.133 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+INFO: [Project 1-571] Translating synthesized netlist
+Netlist sorting complete. Time (s): cpu = 00:00:00.01 ; elapsed = 00:00:00 . Memory (MB): peak = 2411.055 ; gain = 0.000 ; free physical = 3576 ; free virtual = 13673
+INFO: [Netlist 29-17] Analyzing 98 Unisim elements for replacement
+INFO: [Netlist 29-28] Unisim Transformation completed in 0 CPU seconds
+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 = 2530.832 ; gain = 0.000 ; free physical = 3446 ; free virtual = 13632
+INFO: [Project 1-111] Unisim Transformation Summary:
+  A total of 13 instances were transformed.
+  LD => LDCE: 13 instances
+
+Synth Design complete | Checksum: 180e514
+INFO: [Common 17-83] Releasing license: Synthesis
+21 Infos, 15 Warnings, 0 Critical Warnings and 0 Errors encountered.
+synth_design completed successfully
+synth_design: Time (s): cpu = 00:00:14 ; elapsed = 00:00:23 . Memory (MB): peak = 2530.832 ; gain = 850.246 ; free physical = 3446 ; free virtual = 13632
+INFO: [Common 17-2834] synth_design peak Physical Memory [PSS] (MB): overall = 2027.500; main = 1749.055; forked = 398.951
+INFO: [Common 17-2834] synth_design peak Virtual Memory [VSS] (MB): overall = 3460.230; main = 2530.836; forked = 1060.102
+Write ShapeDB Complete: Time (s): cpu = 00:00:00.01 ; elapsed = 00:00:00.01 . Memory (MB): peak = 2554.844 ; gain = 0.000 ; free physical = 3446 ; free virtual = 13632
+INFO: [Common 17-1381] The checkpoint '/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.runs/synth_1/ecgUnit.dcp' has been generated.
+INFO: [Vivado 12-24828] Executing command : report_utilization -file ecgUnit_utilization_synth.rpt -pb ecgUnit_utilization_synth.pb
+INFO: [Common 17-206] Exiting Vivado at Tue Mar 25 17:38:28 2025...
diff --git a/proj/proj.runs/synth_1/ecgUnit_utilization_synth.pb b/proj/proj.runs/synth_1/ecgUnit_utilization_synth.pb
new file mode 100644
index 0000000000000000000000000000000000000000..09a1d260e6ef4e8be935fbd04cbedd735c4760f6
GIT binary patch
literal 224
zcmd;LGcqtT(KDRHtPxzAo10ivsgR$hP+F3ilUbEml9`_e;%28-Dioy_=a&{Grxxp-
z<zZmB>^zs3;lg?Mr@TRer|sSfF);Wz?-gda;P2ilvN7a{U9Thq0|UcdNrn&YZcC*=
z?6vX?3=16p$}=!{I3HDDU{G*8s|pgItH!{<<NQ<&#O^f$k#~(47-F248iUwtEf^RY
z?EhLYFfceBwPaxMaF}Gp;S}oT?i>>2bJh-|WUf5}LxaOpdl37r3y9q73KD5`1F->@
CUp(0W

literal 0
HcmV?d00001

diff --git a/proj/proj.runs/synth_1/ecgUnit_utilization_synth.rpt b/proj/proj.runs/synth_1/ecgUnit_utilization_synth.rpt
new file mode 100644
index 0000000..70e5ecf
--- /dev/null
+++ b/proj/proj.runs/synth_1/ecgUnit_utilization_synth.rpt
@@ -0,0 +1,184 @@
+Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+---------------------------------------------------------------------------------------------------------------------------------------------
+| Tool Version : Vivado v.2024.1 (lin64) Build 5076996 Wed May 22 18:36:09 MDT 2024
+| Date         : Tue Mar 25 17:38:28 2025
+| Host         : fl-tp-br-104 running 64-bit Ubuntu 24.04.2 LTS
+| Command      : report_utilization -file ecgUnit_utilization_synth.rpt -pb ecgUnit_utilization_synth.pb
+| Design       : ecgUnit
+| Device       : xc7z020clg484-1
+| Speed File   : -1
+| Design State : Synthesized
+---------------------------------------------------------------------------------------------------------------------------------------------
+
+Utilization Design Information
+
+Table of Contents
+-----------------
+1. Slice Logic
+1.1 Summary of Registers by Type
+2. Memory
+3. DSP
+4. IO and GT Specific
+5. Clocking
+6. Specific Feature
+7. Primitives
+8. Black Boxes
+9. Instantiated Netlists
+
+1. Slice Logic
+--------------
+
++-------------------------+------+-------+------------+-----------+-------+
+|        Site Type        | Used | Fixed | Prohibited | Available | Util% |
++-------------------------+------+-------+------------+-----------+-------+
+| Slice LUTs*             |  204 |     0 |          0 |     53200 |  0.38 |
+|   LUT as Logic          |  204 |     0 |          0 |     53200 |  0.38 |
+|   LUT as Memory         |    0 |     0 |          0 |     17400 |  0.00 |
+| Slice Registers         |  435 |     0 |          0 |    106400 |  0.41 |
+|   Register as Flip Flop |  422 |     0 |          0 |    106400 |  0.40 |
+|   Register as Latch     |   13 |     0 |          0 |    106400 |  0.01 |
+| F7 Muxes                |   48 |     0 |          0 |     26600 |  0.18 |
+| F8 Muxes                |   24 |     0 |          0 |     13300 |  0.18 |
++-------------------------+------+-------+------------+-----------+-------+
+* Warning! The Final LUT count, after physical optimizations and full implementation, is typically lower. Run opt_design after synthesis, if not already completed, for a more realistic count.
+Warning! LUT value is adjusted to account for LUT combining.
+Warning! For any ECO changes, please run place_design if there are unplaced instances
+
+
+1.1 Summary of Registers by Type
+--------------------------------
+
++-------+--------------+-------------+--------------+
+| Total | Clock Enable | Synchronous | Asynchronous |
++-------+--------------+-------------+--------------+
+| 0     |            _ |           - |            - |
+| 0     |            _ |           - |          Set |
+| 0     |            _ |           - |        Reset |
+| 0     |            _ |         Set |            - |
+| 0     |            _ |       Reset |            - |
+| 0     |          Yes |           - |            - |
+| 1     |          Yes |           - |          Set |
+| 434   |          Yes |           - |        Reset |
+| 0     |          Yes |         Set |            - |
+| 0     |          Yes |       Reset |            - |
++-------+--------------+-------------+--------------+
+
+
+2. Memory
+---------
+
++----------------+------+-------+------------+-----------+-------+
+|    Site Type   | Used | Fixed | Prohibited | Available | Util% |
++----------------+------+-------+------------+-----------+-------+
+| Block RAM Tile |    0 |     0 |          0 |       140 |  0.00 |
+|   RAMB36/FIFO* |    0 |     0 |          0 |       140 |  0.00 |
+|   RAMB18       |    0 |     0 |          0 |       280 |  0.00 |
++----------------+------+-------+------------+-----------+-------+
+* Note: Each Block RAM Tile only has one FIFO logic available and therefore can accommodate only one FIFO36E1 or one FIFO18E1. However, if a FIFO18E1 occupies a Block RAM Tile, that tile can still accommodate a RAMB18E1
+
+
+3. DSP
+------
+
++-----------+------+-------+------------+-----------+-------+
+| Site Type | Used | Fixed | Prohibited | Available | Util% |
++-----------+------+-------+------------+-----------+-------+
+| DSPs      |    0 |     0 |          0 |       220 |  0.00 |
++-----------+------+-------+------------+-----------+-------+
+
+
+4. IO and GT Specific
+---------------------
+
++-----------------------------+------+-------+------------+-----------+-------+
+|          Site Type          | Used | Fixed | Prohibited | Available | Util% |
++-----------------------------+------+-------+------------+-----------+-------+
+| Bonded IOB                  |   20 |     0 |          0 |       200 | 10.00 |
+| Bonded IPADs                |    0 |     0 |          0 |         2 |  0.00 |
+| Bonded IOPADs               |    0 |     0 |          0 |       130 |  0.00 |
+| PHY_CONTROL                 |    0 |     0 |          0 |         4 |  0.00 |
+| PHASER_REF                  |    0 |     0 |          0 |         4 |  0.00 |
+| OUT_FIFO                    |    0 |     0 |          0 |        16 |  0.00 |
+| IN_FIFO                     |    0 |     0 |          0 |        16 |  0.00 |
+| IDELAYCTRL                  |    0 |     0 |          0 |         4 |  0.00 |
+| IBUFDS                      |    0 |     0 |          0 |       192 |  0.00 |
+| PHASER_OUT/PHASER_OUT_PHY   |    0 |     0 |          0 |        16 |  0.00 |
+| PHASER_IN/PHASER_IN_PHY     |    0 |     0 |          0 |        16 |  0.00 |
+| IDELAYE2/IDELAYE2_FINEDELAY |    0 |     0 |          0 |       200 |  0.00 |
+| ILOGIC                      |    0 |     0 |          0 |       200 |  0.00 |
+| OLOGIC                      |    0 |     0 |          0 |       200 |  0.00 |
++-----------------------------+------+-------+------------+-----------+-------+
+
+
+5. Clocking
+-----------
+
++------------+------+-------+------------+-----------+-------+
+|  Site Type | Used | Fixed | Prohibited | Available | Util% |
++------------+------+-------+------------+-----------+-------+
+| BUFGCTRL   |    1 |     0 |          0 |        32 |  3.13 |
+| BUFIO      |    0 |     0 |          0 |        16 |  0.00 |
+| MMCME2_ADV |    0 |     0 |          0 |         4 |  0.00 |
+| PLLE2_ADV  |    0 |     0 |          0 |         4 |  0.00 |
+| BUFMRCE    |    0 |     0 |          0 |         8 |  0.00 |
+| BUFHCE     |    0 |     0 |          0 |        72 |  0.00 |
+| BUFR       |    0 |     0 |          0 |        16 |  0.00 |
++------------+------+-------+------------+-----------+-------+
+
+
+6. Specific Feature
+-------------------
+
++-------------+------+-------+------------+-----------+-------+
+|  Site Type  | Used | Fixed | Prohibited | Available | Util% |
++-------------+------+-------+------------+-----------+-------+
+| BSCANE2     |    0 |     0 |          0 |         4 |  0.00 |
+| CAPTUREE2   |    0 |     0 |          0 |         1 |  0.00 |
+| DNA_PORT    |    0 |     0 |          0 |         1 |  0.00 |
+| EFUSE_USR   |    0 |     0 |          0 |         1 |  0.00 |
+| FRAME_ECCE2 |    0 |     0 |          0 |         1 |  0.00 |
+| ICAPE2      |    0 |     0 |          0 |         2 |  0.00 |
+| STARTUPE2   |    0 |     0 |          0 |         1 |  0.00 |
+| XADC        |    0 |     0 |          0 |         1 |  0.00 |
++-------------+------+-------+------------+-----------+-------+
+
+
+7. Primitives
+-------------
+
++----------+------+---------------------+
+| Ref Name | Used | Functional Category |
++----------+------+---------------------+
+| FDCE     |  421 |        Flop & Latch |
+| LUT6     |  143 |                 LUT |
+| MUXF7    |   48 |               MuxFx |
+| LUT5     |   44 |                 LUT |
+| LUT4     |   28 |                 LUT |
+| MUXF8    |   24 |               MuxFx |
+| LDCE     |   13 |        Flop & Latch |
+| CARRY4   |   13 |          CarryLogic |
+| IBUF     |   11 |                  IO |
+| LUT2     |   10 |                 LUT |
+| OBUF     |    9 |                  IO |
+| LUT3     |    8 |                 LUT |
+| FDPE     |    1 |        Flop & Latch |
+| BUFG     |    1 |               Clock |
++----------+------+---------------------+
+
+
+8. Black Boxes
+--------------
+
++----------+------+
+| Ref Name | Used |
++----------+------+
+
+
+9. Instantiated Netlists
+------------------------
+
++----------+------+
+| Ref Name | Used |
++----------+------+
+
+
diff --git a/proj/proj.runs/synth_1/gen_run.xml b/proj/proj.runs/synth_1/gen_run.xml
new file mode 100644
index 0000000..a30f4c5
--- /dev/null
+++ b/proj/proj.runs/synth_1/gen_run.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<GenRun Id="synth_1" LaunchPart="xc7z020clg484-1" LaunchTime="1742920636">
+  <File Type="VDS-TIMINGSUMMARY" Name="ecgUnit_timing_summary_synth.rpt"/>
+  <File Type="RDS-DCP" Name="ecgUnit.dcp"/>
+  <File Type="RDS-UTIL-PB" Name="ecgUnit_utilization_synth.pb"/>
+  <File Type="RDS-UTIL" Name="ecgUnit_utilization_synth.rpt"/>
+  <File Type="RDS-PROPCONSTRS" Name="ecgUnit_drc_synth.rpt"/>
+  <File Type="RDS-RDS" Name="ecgUnit.vds"/>
+  <File Type="REPORTS-TCL" Name="ecgUnit_reports.tcl"/>
+  <File Type="VDS-TIMING-PB" Name="ecgUnit_timing_summary_synth.pb"/>
+  <File Type="PA-TCL" Name="ecgUnit.tcl"/>
+  <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="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <File Path="$PSRCDIR/sources_1/imports/hdl/ecgUnit.vhdl">
+      <FileInfo>
+        <Attr Name="ImportPath" Val="$PPRDIR/../src/hdl/ecgUnit.vhdl"/>
+        <Attr Name="ImportTime" Val="1742920067"/>
+        <Attr Name="UsedIn" Val="synthesis"/>
+        <Attr Name="UsedIn" Val="simulation"/>
+      </FileInfo>
+    </File>
+    <Config>
+      <Option Name="DesignMode" Val="RTL"/>
+      <Option Name="TopModule" Val="ecgUnit"/>
+      <Option Name="TopAutoSet" Val="TRUE"/>
+    </Config>
+  </FileSet>
+  <FileSet Name="constrs_in" Type="Constrs" RelSrcDir="$PSRCDIR/constrs_1" RelGenDir="$PGENDIR/constrs_1">
+    <Filter Type="Constrs"/>
+    <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="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2024"/>
+    <Step Id="synth_design"/>
+  </Strategy>
+</GenRun>
diff --git a/proj/proj.runs/synth_1/htr.txt b/proj/proj.runs/synth_1/htr.txt
new file mode 100644
index 0000000..3899de3
--- /dev/null
+++ b/proj/proj.runs/synth_1/htr.txt
@@ -0,0 +1,10 @@
+#
+# Vivado(TM)
+# htr.txt: a Vivado-generated description of how-to-repeat the
+#          the basic steps of a run.  Note that runme.bat/sh needs
+#          to be invoked for Vivado to track run status.
+# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+#
+
+vivado -log ecgUnit.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source ecgUnit.tcl
diff --git a/proj/proj.runs/synth_1/project.wdf b/proj/proj.runs/synth_1/project.wdf
new file mode 100644
index 0000000..a3e3ef4
--- /dev/null
+++ b/proj/proj.runs/synth_1/project.wdf
@@ -0,0 +1,31 @@
+version:1
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:737263736574636f756e74:33:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:636f6e73747261696e74736574636f756e74:30:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:64657369676e6d6f6465:52544c:00:00
+70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:73796e7468657369737374726174656779:56697661646f2053796e7468657369732044656661756c7473: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:30: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:6638333533666134313436623437323661333866313835343032393465663463:506172656e742050412070726f6a656374204944:00
+eof:3533762494
diff --git a/proj/proj.runs/synth_1/rundef.js b/proj/proj.runs/synth_1/rundef.js
new file mode 100644
index 0000000..7d2be32
--- /dev/null
+++ b/proj/proj.runs/synth_1/rundef.js
@@ -0,0 +1,41 @@
+//
+// 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.
+//
+
+echo "This script was generated under a different operating system."
+echo "Please update the PATH variable below, before executing this script"
+exit
+
+var WshShell = new ActiveXObject( "WScript.Shell" );
+var ProcEnv = WshShell.Environment( "Process" );
+var PathVal = ProcEnv("PATH");
+if ( PathVal.length == 0 ) {
+  PathVal = "/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vitis/2024.1/bin:/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/ids_lite/ISE/bin/lin64;/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/bin;";
+} else {
+  PathVal = "/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vitis/2024.1/bin:/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/ids_lite/ISE/bin/lin64;/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/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 ecgUnit.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source ecgUnit.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/proj.runs/synth_1/runme.bat b/proj/proj.runs/synth_1/runme.bat
new file mode 100644
index 0000000..637899f
--- /dev/null
+++ b/proj/proj.runs/synth_1/runme.bat
@@ -0,0 +1,12 @@
+@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%"
+set PATH=%SYSTEMROOT%\system32;%PATH%
+cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %*
diff --git a/proj/proj.runs/synth_1/runme.log b/proj/proj.runs/synth_1/runme.log
new file mode 100644
index 0000000..bcf0469
--- /dev/null
+++ b/proj/proj.runs/synth_1/runme.log
@@ -0,0 +1,250 @@
+
+*** Running vivado
+    with args -log ecgUnit.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source ecgUnit.tcl
+
+
+****** Vivado v2024.1 (64-bit)
+  **** SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+  **** IP Build 5075265 on Wed May 22 21:45:21 MDT 2024
+  **** SharedData Build 5076995 on Wed May 22 18:29:18 MDT 2024
+  **** Start of session at: Tue Mar 25 17:37:19 2025
+    ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
+    ** Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
+
+source ecgUnit.tcl -notrace
+create_project: Time (s): cpu = 00:00:12 ; elapsed = 00:00:24 . Memory (MB): peak = 1680.586 ; gain = 325.840 ; free physical = 4328 ; free virtual = 14423
+Command: synth_design -top ecgUnit -part xc7z020clg484-1
+Starting synth_design
+Attempting to get a license for feature 'Synthesis' and/or device 'xc7z020'
+INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7z020'
+INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 4 processes.
+INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes
+INFO: [Synth 8-7075] Helper process launched with PID 75043
+---------------------------------------------------------------------------------
+Starting Synthesize : Time (s): cpu = 00:00:02 ; elapsed = 00:00:03 . Memory (MB): peak = 2112.207 ; gain = 427.652 ; free physical = 3579 ; free virtual = 13672
+---------------------------------------------------------------------------------
+INFO: [Synth 8-638] synthesizing module 'ecgUnit' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.srcs/sources_1/imports/hdl/ecgUnit.vhdl:23]
+INFO: [Synth 8-638] synthesizing module 'controlUnit' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:31]
+WARNING: [Synth 8-614] signal 'SR_presentState' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:49]
+WARNING: [Synth 8-614] signal 'I_inputSampleValid' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:49]
+WARNING: [Synth 8-614] signal 'I_processingDone' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:49]
+INFO: [Synth 8-256] done synthesizing module 'controlUnit' (0#1) [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:31]
+INFO: [Synth 8-638] synthesizing module 'operativeUnit' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:31]
+WARNING: [Synth 8-614] signal 'SR_shiftRegister1' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+WARNING: [Synth 8-614] signal 'SR_coefRegister1' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+WARNING: [Synth 8-614] signal 'SR_shiftRegister2' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+WARNING: [Synth 8-614] signal 'SR_coefRegister2' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+WARNING: [Synth 8-614] signal 'SR_shiftRegister3' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+WARNING: [Synth 8-614] signal 'SR_coefRegister3' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+WARNING: [Synth 8-614] signal 'SR_coefRegister4' is read in the process but is not in the sensitivity list [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:200]
+INFO: [Synth 8-256] done synthesizing module 'operativeUnit' (0#1) [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/operativeUnit.vhd:31]
+INFO: [Synth 8-256] done synthesizing module 'ecgUnit' (0#1) [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.srcs/sources_1/imports/hdl/ecgUnit.vhdl:23]
+---------------------------------------------------------------------------------
+Finished Synthesize : Time (s): cpu = 00:00:03 ; elapsed = 00:00:05 . Memory (MB): peak = 2192.176 ; gain = 507.621 ; free physical = 3482 ; free virtual = 13577
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Constraint Validation : Time (s): cpu = 00:00:04 ; elapsed = 00:00:05 . Memory (MB): peak = 2207.020 ; gain = 522.465 ; free physical = 3479 ; free virtual = 13575
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Loading Part and Timing Information
+---------------------------------------------------------------------------------
+Loading part: xc7z020clg484-1
+---------------------------------------------------------------------------------
+Finished Loading Part and Timing Information : Time (s): cpu = 00:00:04 ; elapsed = 00:00:05 . Memory (MB): peak = 2215.023 ; gain = 530.469 ; free physical = 3479 ; free virtual = 13575
+---------------------------------------------------------------------------------
+INFO: [Device 21-403] Loading part xc7z020clg484-1
+INFO: [Synth 8-802] inferred FSM for state register 'SR_presentState_reg' in module 'controlUnit'
+WARNING: [Synth 8-327] inferring latch for variable 'FSM_sequential_SR_futurState_reg' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:45]
+WARNING: [Synth 8-327] inferring latch for variable 'FSM_onehot_SR_futurState_reg' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:45]
+---------------------------------------------------------------------------------------------------
+                   State |                     New Encoding |                Previous Encoding 
+---------------------------------------------------------------------------------------------------
+             wait_sample |                      00001000000 |                             0000
+                  store1 |                      00010000000 |                             0001
+        processing_loop1 |                      00000000001 |                             0100
+                  store2 |                      00000000010 |                             0010
+        processing_loop2 |                      00000010000 |                             0101
+               inter_iir |                      01000000000 |                             1000
+        processing_loop3 |                      10000000000 |                             0110
+                  store3 |                      00000000100 |                             0011
+        processing_loop4 |                      00000001000 |                             0111
+                  output |                      00100000000 |                             1001
+         wait_end_sample |                      00000100000 |                             1010
+---------------------------------------------------------------------------------------------------
+INFO: [Synth 8-3354] encoded FSM with state register 'SR_presentState_reg' using encoding 'one-hot' in module 'controlUnit'
+WARNING: [Synth 8-327] inferring latch for variable 'FSM_onehot_SR_futurState_reg' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:45]
+WARNING: [Synth 8-327] inferring latch for variable 'O_cntrMux_reg' [/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/src/hdl/controlUnit.vhd:54]
+---------------------------------------------------------------------------------
+Finished RTL Optimization Phase 2 : Time (s): cpu = 00:00:04 ; elapsed = 00:00:06 . Memory (MB): peak = 2232.836 ; gain = 548.281 ; free physical = 3445 ; free virtual = 13542
+---------------------------------------------------------------------------------
+No constraint files found.
+---------------------------------------------------------------------------------
+Start RTL Component Statistics 
+---------------------------------------------------------------------------------
+Detailed RTL Component Info : 
++---Adders : 
+	   2 Input    8 Bit       Adders := 1     
+	   2 Input    4 Bit       Adders := 1     
++---Registers : 
+	               20 Bit    Registers := 1     
+	                8 Bit    Registers := 49    
+	                4 Bit    Registers := 1     
++---Muxes : 
+	   2 Input   20 Bit        Muxes := 1     
+	  11 Input   11 Bit        Muxes := 1     
+	   2 Input   11 Bit        Muxes := 6     
+	   4 Input    8 Bit        Muxes := 1     
+	  16 Input    5 Bit        Muxes := 1     
+	  11 Input    4 Bit        Muxes := 1     
+	   2 Input    4 Bit        Muxes := 2     
+	  11 Input    2 Bit        Muxes := 1     
+	  11 Input    1 Bit        Muxes := 3     
+	   2 Input    1 Bit        Muxes := 3     
+---------------------------------------------------------------------------------
+Finished RTL Component Statistics 
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Part Resource Summary
+---------------------------------------------------------------------------------
+INFO: [Device 21-9227] Part: xc7z020clg484-1 does not have CEAM library.
+Part Resources:
+DSPs: 220 (col length:60)
+BRAMs: 280 (col length: RAMB18 60 RAMB36 30)
+---------------------------------------------------------------------------------
+Finished Part Resource Summary
+---------------------------------------------------------------------------------
+No constraint files found.
+---------------------------------------------------------------------------------
+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:09 ; elapsed = 00:00:19 . Memory (MB): peak = 2394.188 ; gain = 709.633 ; free physical = 3273 ; free virtual = 13379
+---------------------------------------------------------------------------------
+No constraint files found.
+---------------------------------------------------------------------------------
+Start Timing Optimization
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Timing Optimization : Time (s): cpu = 00:00:09 ; elapsed = 00:00:19 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3275 ; free virtual = 13382
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Technology Mapping
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Technology Mapping : Time (s): cpu = 00:00:09 ; elapsed = 00:00:19 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3275 ; free virtual = 13382
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Flattening Before IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Flattening Before IO Insertion
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Final Netlist Cleanup
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Final Netlist Cleanup
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished IO Insertion : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Instances
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Instances : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Rebuilding User Hierarchy
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Rebuilding User Hierarchy : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Ports
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Ports : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Handling Custom Attributes
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Handling Custom Attributes : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Renaming Generated Nets
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Finished Renaming Generated Nets : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+---------------------------------------------------------------------------------
+Start Writing Synthesis Report
+---------------------------------------------------------------------------------
+
+Report BlackBoxes: 
++-+--------------+----------+
+| |BlackBox name |Instances |
++-+--------------+----------+
++-+--------------+----------+
+
+Report Cell Usage: 
++------+-------+------+
+|      |Cell   |Count |
++------+-------+------+
+|1     |BUFG   |     1|
+|2     |CARRY4 |    13|
+|3     |LUT2   |    10|
+|4     |LUT3   |     8|
+|5     |LUT4   |    28|
+|6     |LUT5   |    44|
+|7     |LUT6   |   143|
+|8     |MUXF7  |    48|
+|9     |MUXF8  |    24|
+|10    |FDCE   |   421|
+|11    |FDPE   |     1|
+|12    |LD     |    13|
+|13    |IBUF   |    11|
+|14    |OBUF   |     9|
++------+-------+------+
+
+Report Instance Areas: 
++------+------------------+--------------+------+
+|      |Instance          |Module        |Cells |
++------+------------------+--------------+------+
+|1     |top               |              |   774|
+|2     |  controlUnit_1   |controlUnit   |    69|
+|3     |  operativeUnit_1 |operativeUnit |   684|
++------+------------------+--------------+------+
+---------------------------------------------------------------------------------
+Finished Writing Synthesis Report : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+---------------------------------------------------------------------------------
+Synthesis finished with 0 errors, 0 critical warnings and 15 warnings.
+Synthesis Optimization Runtime : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.125 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+Synthesis Optimization Complete : Time (s): cpu = 00:00:11 ; elapsed = 00:00:21 . Memory (MB): peak = 2400.133 ; gain = 715.570 ; free physical = 3293 ; free virtual = 13391
+INFO: [Project 1-571] Translating synthesized netlist
+Netlist sorting complete. Time (s): cpu = 00:00:00.01 ; elapsed = 00:00:00 . Memory (MB): peak = 2411.055 ; gain = 0.000 ; free physical = 3576 ; free virtual = 13673
+INFO: [Netlist 29-17] Analyzing 98 Unisim elements for replacement
+INFO: [Netlist 29-28] Unisim Transformation completed in 0 CPU seconds
+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 = 2530.832 ; gain = 0.000 ; free physical = 3446 ; free virtual = 13632
+INFO: [Project 1-111] Unisim Transformation Summary:
+  A total of 13 instances were transformed.
+  LD => LDCE: 13 instances
+
+Synth Design complete | Checksum: 180e514
+INFO: [Common 17-83] Releasing license: Synthesis
+21 Infos, 15 Warnings, 0 Critical Warnings and 0 Errors encountered.
+synth_design completed successfully
+synth_design: Time (s): cpu = 00:00:14 ; elapsed = 00:00:23 . Memory (MB): peak = 2530.832 ; gain = 850.246 ; free physical = 3446 ; free virtual = 13632
+INFO: [Common 17-2834] synth_design peak Physical Memory [PSS] (MB): overall = 2027.500; main = 1749.055; forked = 398.951
+INFO: [Common 17-2834] synth_design peak Virtual Memory [VSS] (MB): overall = 3460.230; main = 2530.836; forked = 1060.102
+Write ShapeDB Complete: Time (s): cpu = 00:00:00.01 ; elapsed = 00:00:00.01 . Memory (MB): peak = 2554.844 ; gain = 0.000 ; free physical = 3446 ; free virtual = 13632
+INFO: [Common 17-1381] The checkpoint '/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.runs/synth_1/ecgUnit.dcp' has been generated.
+INFO: [Vivado 12-24828] Executing command : report_utilization -file ecgUnit_utilization_synth.rpt -pb ecgUnit_utilization_synth.pb
+INFO: [Common 17-206] Exiting Vivado at Tue Mar 25 17:38:28 2025...
diff --git a/proj/proj.runs/synth_1/runme.sh b/proj/proj.runs/synth_1/runme.sh
new file mode 100755
index 0000000..3098a02
--- /dev/null
+++ b/proj/proj.runs/synth_1/runme.sh
@@ -0,0 +1,40 @@
+#!/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.
+# 
+
+if [ -z "$PATH" ]; then
+  PATH=/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vitis/2024.1/bin:/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/ids_lite/ISE/bin/lin64:/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/bin
+else
+  PATH=/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vitis/2024.1/bin:/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/ids_lite/ISE/bin/lin64:/usr/home/enstb1/MEE/Xilinx/vivado2024.1/Vivado/2024.1/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='/homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.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 ecgUnit.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source ecgUnit.tcl
diff --git a/proj/proj.runs/synth_1/vivado.jou b/proj/proj.runs/synth_1/vivado.jou
new file mode 100644
index 0000000..e16ec76
--- /dev/null
+++ b/proj/proj.runs/synth_1/vivado.jou
@@ -0,0 +1,24 @@
+#-----------------------------------------------------------
+# Vivado v2024.1 (64-bit)
+# SW Build 5076996 on Wed May 22 18:36:09 MDT 2024
+# IP Build 5075265 on Wed May 22 21:45:21 MDT 2024
+# SharedData Build 5076995 on Wed May 22 18:29:18 MDT 2024
+# Start of session at: Tue Mar 25 17:37:19 2025
+# Process ID: 74841
+# Current directory: /homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.runs/synth_1
+# Command line: vivado -log ecgUnit.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source ecgUnit.tcl
+# Log file: /homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.runs/synth_1/ecgUnit.vds
+# Journal file: /homes/a23aboul/Bureau/MEDCOM/tp-ecg-etudiant-a23aboul/proj/proj.runs/synth_1/vivado.jou
+# Running On        :fl-tp-br-104
+# Platform          :Ubuntu
+# Operating System  :Ubuntu 24.04.2 LTS
+# Processor Detail  :12th Gen Intel(R) Core(TM) i5-12500
+# CPU Frequency     :1511.163 MHz
+# CPU Physical cores:6
+# CPU Logical cores :12
+# Host memory       :16425 MB
+# Swap memory       :4294 MB
+# Total Virtual     :20720 MB
+# Available Virtual :15733 MB
+#-----------------------------------------------------------
+source ecgUnit.tcl -notrace
diff --git a/proj/proj.runs/synth_1/vivado.pb b/proj/proj.runs/synth_1/vivado.pb
new file mode 100644
index 0000000000000000000000000000000000000000..ed2e4190f2cf119ee332ab8735928eaacd5c15d1
GIT binary patch
literal 25609
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

literal 0
HcmV?d00001

diff --git a/proj/proj.srcs/sources_1/imports/hdl/ecgUnit.vhdl b/proj/proj.srcs/sources_1/imports/hdl/ecgUnit.vhdl
new file mode 100644
index 0000000..c6f723c
--- /dev/null
+++ b/proj/proj.srcs/sources_1/imports/hdl/ecgUnit.vhdl
@@ -0,0 +1,111 @@
+-------------------------------------------------------------------------------
+-- Title      : ecgUnit
+-- Project    : 
+-------------------------------------------------------------------------------
+
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity ecgUnit 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_inputSampleValid    : in  std_logic;
+    O_filteredSample      : out std_logic_vector(7 downto 0);  -- filtered sample
+    O_filteredSampleValid : out std_logic
+    );
+
+end entity ecgUnit;
+
+architecture archi_ecgUnit of ecgUnit is
+
+  component controlUnit is
+      port (
+        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_processingDone      : in  std_logic;
+        O_loadShift1          : out std_logic;  -- filtered sample
+        O_loadShift2          : out std_logic;  -- filtered sample
+        O_loadShift3          : 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_cntrMux             : out std_logic_vector(1 downto 0);
+        O_loadSum             : out std_logic;  -- Control signal to load the MAC register;
+        O_loadY               : out std_logic;  -- Control signal to load Y register
+        O_FilteredSampleValid : out std_logic  -- Data valid signal for filtered sample
+        );
+    end component controlUnit;
+
+  component operativeUnit 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_loadShift1     : in  std_logic;  -- Control signal to load the input sample in the sample shift register and shift the register
+        I_loadShift2     : in  std_logic;  
+        I_loadShift3     : in  std_logic;
+        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_initSum        : in  std_logic;  -- Control signal to initialize the MAC register
+        I_loadSum        : in  std_logic;  -- Control signal to load the MAC register;
+        I_cntrMux        : in  std_logic_vector(1 downto 0);
+        I_loadY          : in  std_logic;   -- Control signal to load Y register
+        O_processingDone : out std_logic;   -- Indicate that processing is done
+        O_Y              : out std_logic_vector(7 downto 0)   -- filtered sample
+        );
+    end component operativeUnit;
+
+  signal SC_processingDone : std_logic;
+  signal SC_loadShift1     : std_logic;
+  signal SC_loadShift2     : std_logic;
+  signal SC_loadShift3     : std_logic;
+  signal SC_initAddress    : std_logic;
+  signal SC_incrAddress    : std_logic;
+  signal SC_initSum        : std_logic;
+  signal SC_cntrMux        : std_logic_vector(1 downto 0);
+  signal SC_loadSum        : std_logic;
+  signal SC_loadY          : std_logic;
+
+begin
+
+  controlUnit_1 : entity work.controlUnit
+    port map (
+      I_clock               => I_clock,
+      I_reset               => I_reset,
+      I_inputSampleValid    => I_inputSampleValid,
+      I_processingDone      => SC_processingDone,
+      O_loadShift1          => SC_loadShift1,
+      O_loadShift2          => SC_loadShift2,
+      O_loadShift3          => SC_loadShift3,
+      O_initAddress         => SC_initAddress,
+      O_incrAddress         => SC_incrAddress,
+      O_initSum             => SC_initSum,
+      O_cntrMux             => SC_cntrMux,
+      O_loadSum             => SC_loadSum,
+      O_loadY               => SC_loadY,
+      O_FilteredSampleValid => O_FilteredSampleValid);
+      
+  operativeUnit_1 : entity work.operativeUnit
+    port map (
+      I_clock          => I_clock,
+      I_reset          => I_reset,
+      I_inputSample    => I_inputSample,
+      I_loadShift1     => SC_loadShift1,
+      I_loadShift2     => SC_loadShift2,
+      I_loadShift3     => SC_loadShift3,
+      I_initAddress    => SC_initAddress,
+      I_incrAddress    => SC_incrAddress,
+      I_initSum        => SC_initSum,
+      I_cntrMux        => SC_cntrMux,
+      I_loadSum        => SC_loadSum,
+      I_loadY          => SC_loadY,
+      O_processingDone => SC_processingDone,
+      O_Y              => O_filteredSample);
+
+
+end architecture archi_ecgUnit;
diff --git a/proj/proj.xpr b/proj/proj.xpr
index a783aa4..57a5670 100644
--- a/proj/proj.xpr
+++ b/proj/proj.xpr
@@ -99,14 +99,21 @@
       </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="$PSRCDIR/sources_1/imports/hdl/ecgUnit.vhdl">
+        <FileInfo>
+          <Attr Name="ImportPath" Val="$PPRDIR/../src/hdl/ecgUnit.vhdl"/>
+          <Attr Name="ImportTime" Val="1742920067"/>
           <Attr Name="UsedIn" Val="synthesis"/>
           <Attr Name="UsedIn" Val="simulation"/>
         </FileInfo>
       </File>
       <Config>
         <Option Name="DesignMode" Val="RTL"/>
-        <Option Name="TopModule" Val="controlUnit"/>
+        <Option Name="TopModule" Val="ecgUnit"/>
         <Option Name="TopAutoSet" Val="TRUE"/>
       </Config>
     </FileSet>
@@ -120,7 +127,7 @@
       <Filter Type="Srcs"/>
       <Config>
         <Option Name="DesignMode" Val="RTL"/>
-        <Option Name="TopModule" Val="controlUnit"/>
+        <Option Name="TopModule" Val="ecgUnit"/>
         <Option Name="TopLib" Val="xil_defaultlib"/>
         <Option Name="TopAutoSet" Val="TRUE"/>
         <Option Name="TransportPathDelay" Val="0"/>
@@ -162,11 +169,12 @@
     </Simulator>
   </Simulators>
   <Runs Version="1" Minor="22">
-    <Run Id="synth_1" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7z020clg484-1" ConstrsSet="constrs_1" Description="Vivado Synthesis Defaults" 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="xc7z020clg484-1" ConstrsSet="constrs_1" Description="Vivado Synthesis Defaults" 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="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2024"/>
         <Step Id="synth_design"/>
       </Strategy>
+      <GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
       <ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2024"/>
       <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
       <RQSFiles/>
diff --git a/src/hdl/ecgUnit.vhdl b/src/hdl/ecgUnit.vhdl
new file mode 100644
index 0000000..e69de29
-- 
GitLab