diff --git a/proj/AudioProc.cache/wt/project.wpc b/proj/AudioProc.cache/wt/project.wpc index c7c2fb6900fc092f4c13bd3f83a7b96eb456e558..4e6ebcf8c6fc253a5b143e7519395aa5fae879b0 100644 --- a/proj/AudioProc.cache/wt/project.wpc +++ b/proj/AudioProc.cache/wt/project.wpc @@ -1,3 +1,3 @@ version:1 -6d6f64655f636f756e7465727c4755494d6f6465:5 +6d6f64655f636f756e7465727c4755494d6f6465:10 eof: diff --git a/proj/AudioProc.cache/wt/synthesis.wdf b/proj/AudioProc.cache/wt/synthesis.wdf new file mode 100644 index 0000000000000000000000000000000000000000..ff3b5e67390408839d28de22fc88554580a0ceb9 --- /dev/null +++ b/proj/AudioProc.cache/wt/synthesis.wdf @@ -0,0 +1,52 @@ +version:1 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d70617274:78633761323030747362673438342d31:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e616d65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d746f70:636f6e74726f6c556e6974:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d696e636c7564655f64697273:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d67656e65726963:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d646566696e65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d766572696c6f675f646566696e65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d7668646c5f646566696e65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d636f6e737472736574:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d7365755f70726f74656374:64656661756c743a3a6e6f6e65:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d666c617474656e5f686965726172636879:64656661756c743a3a72656275696c74:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d67617465645f636c6f636b5f636f6e76657273696f6e:64656661756c743a3a6f6666:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d646972656374697665:64656661756c743a3a64656661756c74:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d696e6372656d656e74616c5f6d6f6465:64656661756c743a3a64656661756c74:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d72746c:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6c696e74:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d66696c65:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d64617461666c6f77:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d64617461666c6f775f73657474696e6773:64656661756c743a3a6e6f6e65:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d72746c5f736b69705f6970:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d72746c5f736b69705f636f6e73747261696e7473:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e6f5f6c63:5b7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6c75745f63617363616465:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6f73:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d62756667:64656661756c743a3a3132:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d66616e6f75745f6c696d6974:343030:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73687265675f6d696e5f73697a65:35:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d6f6465:64656661756c743a3a64656661756c74:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d66736d5f65787472616374696f6e:6f6e655f686f74:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6b6565705f6571756976616c656e745f726567697374657273:5b7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d7265736f757263655f73686172696e67:6f6666:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d636173636164655f647370:64656661756c743a3a6175746f:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d636f6e74726f6c5f7365745f6f70745f7468726573686f6c64:64656661756c743a3a6175746f:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f6272616d:64656661756c743a3a2d31:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f7572616d:64656661756c743a3a2d31:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f647370:64656661756c743a3a2d31:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f6272616d5f636173636164655f686569676874:64656661756c743a3a2d31:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6d61785f7572616d5f636173636164655f686569676874:64656661756c743a3a2d31:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d726574696d696e67:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e6f5f726574696d696e67:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d676c6f62616c5f726574696d696e67:64656661756c743a3a6175746f:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e6f5f73726c65787472616374:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d617373657274:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d6e6f5f74696d696e675f64726976656e:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73666375:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d64656275675f6c6f67:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c636f6d6d616e645f6c696e655f6f7074696f6e73:2d657374:64656661756c743a3a5b6e6f745f7370656369666965645d:00:00 +73796e746865736973:73796e7468657369735c7573616765:656c6170736564:30303a30313a303773:00:00 +73796e746865736973:73796e7468657369735c7573616765:6d656d6f72795f7065616b:313631322e3936394d42:00:00 +73796e746865736973:73796e7468657369735c7573616765:6d656d6f72795f6761696e:313233392e3039384d42:00:00 +eof:2367322580 diff --git a/proj/AudioProc.cache/wt/synthesis_details.wdf b/proj/AudioProc.cache/wt/synthesis_details.wdf new file mode 100644 index 0000000000000000000000000000000000000000..78f8d66e566c72c9b7f2063ebfcca519992e3006 --- /dev/null +++ b/proj/AudioProc.cache/wt/synthesis_details.wdf @@ -0,0 +1,3 @@ +version:1 +73796e746865736973:73796e7468657369735c7573616765:686c735f6970:30:00:00 +eof:2511430288 diff --git a/proj/AudioProc.cache/wt/xsim.wdf b/proj/AudioProc.cache/wt/xsim.wdf index 51d5206f7011f2f0764fb661278617e58456141a..50afb2c7aebfafa7cc5fa823be2031ae4ebbf3af 100644 --- a/proj/AudioProc.cache/wt/xsim.wdf +++ b/proj/AudioProc.cache/wt/xsim.wdf @@ -1,4 +1,4 @@ version:1 -7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f6d6f6465:6265686176696f72616c:00:00 +7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f6d6f6465:64656661756c743a3a6265686176696f72616c:00:00 7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f74797065:64656661756c743a3a:00:00 -eof:2427094519 +eof:241934075 diff --git a/proj/AudioProc.runs/.jobs/vrs_config_1.xml b/proj/AudioProc.runs/.jobs/vrs_config_1.xml new file mode 100644 index 0000000000000000000000000000000000000000..f0bcf81e3601c06d0bb510e368fe0b4b530ee129 --- /dev/null +++ b/proj/AudioProc.runs/.jobs/vrs_config_1.xml @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<Runs Version="1" Minor="0"> + <Run Id="synth_1" LaunchDir="C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1" FlowId="Vivado_Synthesis" FromStepId="vivado" ToStepId="vivado"/> + <Parameters> + <Parameter Name="runs.monitorLSFJobs" Val="true" Type="bool"/> + <Parameter Name="runs.enableClusterConf" Val="true" Type="bool"/> + <Parameter Name="general.shortenLongPath" Val="true" Type="bool"/> + </Parameters> + <ProductInfo Name="vivado"/> +</Runs> + diff --git a/proj/AudioProc.runs/synth_1/.Vivado_Synthesis.queue.rst b/proj/AudioProc.runs/synth_1/.Vivado_Synthesis.queue.rst new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/proj/AudioProc.runs/synth_1/.vivado.begin.rst b/proj/AudioProc.runs/synth_1/.vivado.begin.rst new file mode 100644 index 0000000000000000000000000000000000000000..252a77f10ad13c8079c7cb807dedc8d4f6c402a7 --- /dev/null +++ b/proj/AudioProc.runs/synth_1/.vivado.begin.rst @@ -0,0 +1,5 @@ +<?xml version="1.0"?> +<ProcessHandle Version="1" Minor="0"> + <Process Command="vivado.bat" Owner="Conta" Host="BOOK-IFJRPL7DU0" Pid="16568" HostCore="20" HostMemory="033897811968"> + </Process> +</ProcessHandle> diff --git a/proj/AudioProc.runs/synth_1/.vivado.end.rst b/proj/AudioProc.runs/synth_1/.vivado.end.rst new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/proj/AudioProc.runs/synth_1/ISEWrap.js b/proj/AudioProc.runs/synth_1/ISEWrap.js new file mode 100644 index 0000000000000000000000000000000000000000..61806d02710bd275f7cfe41a9d52914e7a1e63df --- /dev/null +++ b/proj/AudioProc.runs/synth_1/ISEWrap.js @@ -0,0 +1,270 @@ +// +// Vivado(TM) +// ISEWrap.js: Vivado Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +// + +// GLOBAL VARIABLES +var ISEShell = new ActiveXObject( "WScript.Shell" ); +var ISEFileSys = new ActiveXObject( "Scripting.FileSystemObject" ); +var ISERunDir = ""; +var ISELogFile = "runme.log"; +var ISELogFileStr = null; +var ISELogEcho = true; +var ISEOldVersionWSH = false; + + + +// BOOTSTRAP +ISEInit(); + + + +// +// ISE FUNCTIONS +// +function ISEInit() { + + // 1. RUN DIR setup + var ISEScrFP = WScript.ScriptFullName; + var ISEScrN = WScript.ScriptName; + ISERunDir = + ISEScrFP.substr( 0, ISEScrFP.length - ISEScrN.length - 1 ); + + // 2. LOG file setup + ISELogFileStr = ISEOpenFile( ISELogFile ); + + // 3. LOG echo? + var ISEScriptArgs = WScript.Arguments; + for ( var loopi=0; loopi<ISEScriptArgs.length; loopi++ ) { + if ( ISEScriptArgs(loopi) == "-quiet" ) { + ISELogEcho = false; + break; + } + } + + // 4. WSH version check + var ISEOptimalVersionWSH = 5.6; + var ISECurrentVersionWSH = WScript.Version; + if ( ISECurrentVersionWSH < ISEOptimalVersionWSH ) { + + ISEStdErr( "" ); + ISEStdErr( "Warning: ExploreAhead works best with Microsoft WSH " + + ISEOptimalVersionWSH + " or higher. Downloads" ); + ISEStdErr( " for upgrading your Windows Scripting Host can be found here: " ); + ISEStdErr( " http://msdn.microsoft.com/downloads/list/webdev.asp" ); + ISEStdErr( "" ); + + ISEOldVersionWSH = true; + } + +} + +function ISEStep( ISEProg, ISEArgs ) { + + // CHECK for a STOP FILE + if ( ISEFileSys.FileExists(ISERunDir + "/.stop.rst") ) { + ISEStdErr( "" ); + ISEStdErr( "*** Halting run - EA reset detected ***" ); + ISEStdErr( "" ); + WScript.Quit( 1 ); + } + + // WRITE STEP HEADER to LOG + ISEStdOut( "" ); + ISEStdOut( "*** Running " + ISEProg ); + ISEStdOut( " with args " + ISEArgs ); + ISEStdOut( "" ); + + // LAUNCH! + var ISEExitCode = ISEExec( ISEProg, ISEArgs ); + if ( ISEExitCode != 0 ) { + WScript.Quit( ISEExitCode ); + } + +} + +function ISEExec( ISEProg, ISEArgs ) { + + var ISEStep = ISEProg; + if (ISEProg == "realTimeFpga" || ISEProg == "planAhead" || ISEProg == "vivado") { + ISEProg += ".bat"; + } + + var ISECmdLine = ISEProg + " " + ISEArgs; + var ISEExitCode = 1; + + if ( ISEOldVersionWSH ) { // WSH 5.1 + + // BEGIN file creation + ISETouchFile( ISEStep, "begin" ); + + // LAUNCH! + ISELogFileStr.Close(); + ISECmdLine = + "%comspec% /c " + ISECmdLine + " >> " + ISELogFile + " 2>&1"; + ISEExitCode = ISEShell.Run( ISECmdLine, 0, true ); + ISELogFileStr = ISEOpenFile( ISELogFile ); + + } else { // WSH 5.6 + + // LAUNCH! + ISEShell.CurrentDirectory = ISERunDir; + + // Redirect STDERR to STDOUT + ISECmdLine = "%comspec% /c " + ISECmdLine + " 2>&1"; + var ISEProcess = ISEShell.Exec( ISECmdLine ); + + // BEGIN file creation + var wbemFlagReturnImmediately = 0x10; + var wbemFlagForwardOnly = 0x20; + var objWMIService = GetObject ("winmgmts:{impersonationLevel=impersonate, (Systemtime)}!//./root/cimv2"); + var processor = objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly); + var computerSystem = objWMIService.ExecQuery("SELECT * FROM Win32_ComputerSystem", "WQL", wbemFlagReturnImmediately | wbemFlagForwardOnly); + var NOC = 0; + var NOLP = 0; + var TPM = 0; + var cpuInfos = new Enumerator(processor); + for(;!cpuInfos.atEnd(); cpuInfos.moveNext()) { + var cpuInfo = cpuInfos.item(); + NOC += cpuInfo.NumberOfCores; + NOLP += cpuInfo.NumberOfLogicalProcessors; + } + var csInfos = new Enumerator(computerSystem); + for(;!csInfos.atEnd(); csInfos.moveNext()) { + var csInfo = csInfos.item(); + TPM += csInfo.TotalPhysicalMemory; + } + + var ISEHOSTCORE = NOLP + var ISEMEMTOTAL = TPM + + var ISENetwork = WScript.CreateObject( "WScript.Network" ); + var ISEHost = ISENetwork.ComputerName; + var ISEUser = ISENetwork.UserName; + var ISEPid = ISEProcess.ProcessID; + var ISEBeginFile = ISEOpenFile( "." + ISEStep + ".begin.rst" ); + ISEBeginFile.WriteLine( "<?xml version=\"1.0\"?>" ); + ISEBeginFile.WriteLine( "<ProcessHandle Version=\"1\" Minor=\"0\">" ); + ISEBeginFile.WriteLine( " <Process Command=\"" + ISEProg + + "\" Owner=\"" + ISEUser + + "\" Host=\"" + ISEHost + + "\" Pid=\"" + ISEPid + + "\" HostCore=\"" + ISEHOSTCORE + + "\" HostMemory=\"" + ISEMEMTOTAL + + "\">" ); + ISEBeginFile.WriteLine( " </Process>" ); + ISEBeginFile.WriteLine( "</ProcessHandle>" ); + ISEBeginFile.Close(); + + var ISEOutStr = ISEProcess.StdOut; + var ISEErrStr = ISEProcess.StdErr; + + // WAIT for ISEStep to finish + while ( ISEProcess.Status == 0 ) { + + // dump stdout then stderr - feels a little arbitrary + while ( !ISEOutStr.AtEndOfStream ) { + ISEStdOut( ISEOutStr.ReadLine() ); + } + + WScript.Sleep( 100 ); + } + + ISEExitCode = ISEProcess.ExitCode; + } + + ISELogFileStr.Close(); + + // END/ERROR file creation + if ( ISEExitCode != 0 ) { + ISETouchFile( ISEStep, "error" ); + + } else { + ISETouchFile( ISEStep, "end" ); + } + + return ISEExitCode; +} + + +// +// UTILITIES +// +function ISEStdOut( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdOut.WriteLine( ISELine ); + } +} + +function ISEStdErr( ISELine ) { + + ISELogFileStr.WriteLine( ISELine ); + + if ( ISELogEcho ) { + WScript.StdErr.WriteLine( ISELine ); + } +} + +function ISETouchFile( ISERoot, ISEStatus ) { + + var ISETFile = + ISEOpenFile( "." + ISERoot + "." + ISEStatus + ".rst" ); + ISETFile.Close(); +} + +function ISEOpenFile( ISEFilename ) { + + // This function has been updated to deal with a problem seen in CR #870871. + // In that case the user runs a script that runs impl_1, and then turns around + // and runs impl_1 -to_step write_bitstream. That second run takes place in + // the same directory, which means we may hit some of the same files, and in + // particular, we will open the runme.log file. Even though this script closes + // the file (now), we see cases where a subsequent attempt to open the file + // fails. Perhaps the OS is slow to release the lock, or the disk comes into + // play? In any case, we try to work around this by first waiting if the file + // is already there for an arbitrary 5 seconds. Then we use a try-catch block + // and try to open the file 10 times with a one second delay after each attempt. + // Again, 10 is arbitrary. But these seem to stop the hang in CR #870871. + // If there is an unrecognized exception when trying to open the file, we output + // an error message and write details to an exception.log file. + var ISEFullPath = ISERunDir + "/" + ISEFilename; + if (ISEFileSys.FileExists(ISEFullPath)) { + // File is already there. This could be a problem. Wait in case it is still in use. + WScript.Sleep(5000); + } + var i; + for (i = 0; i < 10; ++i) { + try { + return ISEFileSys.OpenTextFile(ISEFullPath, 8, true); + } catch (exception) { + var error_code = exception.number & 0xFFFF; // The other bits are a facility code. + if (error_code == 52) { // 52 is bad file name or number. + // Wait a second and try again. + WScript.Sleep(1000); + continue; + } else { + WScript.StdErr.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + var exceptionFilePath = ISERunDir + "/exception.log"; + if (!ISEFileSys.FileExists(exceptionFilePath)) { + WScript.StdErr.WriteLine("See file " + exceptionFilePath + " for details."); + var exceptionFile = ISEFileSys.OpenTextFile(exceptionFilePath, 8, true); + exceptionFile.WriteLine("ERROR: Exception caught trying to open file " + ISEFullPath); + exceptionFile.WriteLine("\tException name: " + exception.name); + exceptionFile.WriteLine("\tException error code: " + error_code); + exceptionFile.WriteLine("\tException message: " + exception.message); + exceptionFile.Close(); + } + throw exception; + } + } + } + // If we reached this point, we failed to open the file after 10 attempts. + // We need to error out. + WScript.StdErr.WriteLine("ERROR: Failed to open file " + ISEFullPath); + WScript.Quit(1); +} diff --git a/proj/AudioProc.runs/synth_1/ISEWrap.sh b/proj/AudioProc.runs/synth_1/ISEWrap.sh new file mode 100644 index 0000000000000000000000000000000000000000..05d5381379bf87abb6918978ce23d53b6a3e9a78 --- /dev/null +++ b/proj/AudioProc.runs/synth_1/ISEWrap.sh @@ -0,0 +1,85 @@ +#!/bin/sh + +# +# Vivado(TM) +# ISEWrap.sh: Vivado Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2023 Advanced Micro Devices, Inc. All Rights Reserved. +# + +cmd_exists() +{ + command -v "$1" >/dev/null 2>&1 +} + +HD_LOG=$1 +shift + +# CHECK for a STOP FILE +if [ -f .stop.rst ] +then +echo "" >> $HD_LOG +echo "*** Halting run - EA reset detected ***" >> $HD_LOG +echo "" >> $HD_LOG +exit 1 +fi + +ISE_STEP=$1 +shift + +# WRITE STEP HEADER to LOG +echo "" >> $HD_LOG +echo "*** Running $ISE_STEP" >> $HD_LOG +echo " with args $@" >> $HD_LOG +echo "" >> $HD_LOG + +# LAUNCH! +$ISE_STEP "$@" >> $HD_LOG 2>&1 & + +# BEGIN file creation +ISE_PID=$! + +HostNameFile=/proc/sys/kernel/hostname +if cmd_exists hostname +then +ISE_HOST=$(hostname) +elif cmd_exists uname +then +ISE_HOST=$(uname -n) +elif [ -f "$HostNameFile" ] && [ -r $HostNameFile ] && [ -s $HostNameFile ] +then +ISE_HOST=$(cat $HostNameFile) +elif [ X != X$HOSTNAME ] +then +ISE_HOST=$HOSTNAME #bash +else +ISE_HOST=$HOST #csh +fi + +ISE_USER=$USER + +ISE_HOSTCORE=$(awk '/^processor/{print $3}' /proc/cpuinfo | wc -l) +ISE_MEMTOTAL=$(awk '/MemTotal/ {print $2}' /proc/meminfo) + +ISE_BEGINFILE=.$ISE_STEP.begin.rst +/bin/touch $ISE_BEGINFILE +echo "<?xml version=\"1.0\"?>" >> $ISE_BEGINFILE +echo "<ProcessHandle Version=\"1\" Minor=\"0\">" >> $ISE_BEGINFILE +echo " <Process Command=\"$ISE_STEP\" Owner=\"$ISE_USER\" Host=\"$ISE_HOST\" Pid=\"$ISE_PID\" HostCore=\"$ISE_HOSTCORE\" HostMemory=\"$ISE_MEMTOTAL\">" >> $ISE_BEGINFILE +echo " </Process>" >> $ISE_BEGINFILE +echo "</ProcessHandle>" >> $ISE_BEGINFILE + +# WAIT for ISEStep to finish +wait $ISE_PID + +# END/ERROR file creation +RETVAL=$? +if [ $RETVAL -eq 0 ] +then + /bin/touch .$ISE_STEP.end.rst +else + /bin/touch .$ISE_STEP.error.rst +fi + +exit $RETVAL + diff --git a/proj/AudioProc.runs/synth_1/__synthesis_is_complete__ b/proj/AudioProc.runs/synth_1/__synthesis_is_complete__ new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/proj/AudioProc.runs/synth_1/controlUnit.dcp b/proj/AudioProc.runs/synth_1/controlUnit.dcp new file mode 100644 index 0000000000000000000000000000000000000000..be17eb1c38dd5de5a49c9b3c314ed8f35bfdaf1b Binary files /dev/null and b/proj/AudioProc.runs/synth_1/controlUnit.dcp differ diff --git a/proj/AudioProc.runs/synth_1/controlUnit.tcl b/proj/AudioProc.runs/synth_1/controlUnit.tcl new file mode 100644 index 0000000000000000000000000000000000000000..eae312a0a1463d0ade94f2a39619f44b9ff744a0 --- /dev/null +++ b/proj/AudioProc.runs/synth_1/controlUnit.tcl @@ -0,0 +1,108 @@ +# +# Synthesis run script generated by Vivado +# + +set TIME_start [clock seconds] +namespace eval ::optrace { + variable script "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1/controlUnit.tcl" + variable category "vivado_synth" +} + +# Try to connect to running dispatch if we haven't done so already. +# This code assumes that the Tcl interpreter is not using threads, +# since the ::dispatch::connected variable isn't mutex protected. +if {![info exists ::dispatch::connected]} { + namespace eval ::dispatch { + variable connected false + if {[llength [array get env XILINX_CD_CONNECT_ID]] > 0} { + set result "true" + if {[catch { + if {[lsearch -exact [package names] DispatchTcl] < 0} { + set result [load librdi_cd_clienttcl[info sharedlibextension]] + } + if {$result eq "false"} { + puts "WARNING: Could not load dispatch client library" + } + set connect_id [ ::dispatch::init_client -mode EXISTING_SERVER ] + if { $connect_id eq "" } { + puts "WARNING: Could not initialize dispatch client" + } else { + puts "INFO: Dispatch client connection id - $connect_id" + set connected true + } + } catch_res]} { + puts "WARNING: failed to connect to dispatch server - $catch_res" + } + } + } +} +if {$::dispatch::connected} { + # Remove the dummy proc if it exists. + if { [expr {[llength [info procs ::OPTRACE]] > 0}] } { + rename ::OPTRACE "" + } + proc ::OPTRACE { task action {tags {} } } { + ::vitis_log::op_trace "$task" $action -tags $tags -script $::optrace::script -category $::optrace::category + } + # dispatch is generic. We specifically want to attach logging. + ::vitis_log::connect_client +} else { + # Add dummy proc if it doesn't exist. + if { [expr {[llength [info procs ::OPTRACE]] == 0}] } { + proc ::OPTRACE {{arg1 \"\" } {arg2 \"\"} {arg3 \"\" } {arg4 \"\"} {arg5 \"\" } {arg6 \"\"}} { + # Do nothing + } + } +} + +OPTRACE "synth_1" START { ROLLUP_AUTO } +OPTRACE "Creating in-memory project" START { } +create_project -in_memory -part xc7a200tsbg484-1 + +set_param project.singleFileAddWarning.threshold 0 +set_param project.compositeFile.enableAutoGeneration 0 +set_param synth.vivado.isSynthRun true +set_property webtalk.parent_dir C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.cache/wt [current_project] +set_property parent.project_path C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.xpr [current_project] +set_property default_lib xil_defaultlib [current_project] +set_property target_language VHDL [current_project] +set_property ip_repo_paths c:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/repo [current_project] +update_ip_catalog +set_property ip_output_repo c:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.cache/ip [current_project] +set_property ip_cache_permissions {read write} [current_project] +OPTRACE "Creating in-memory project" END { } +OPTRACE "Adding files" START { } +read_vhdl -library xil_defaultlib C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd +OPTRACE "Adding files" END { } +# Mark all dcp files as not used in implementation to prevent them from being +# stitched into the results of this synthesis run. Any black boxes in the +# design are intentionally left as such for best results. Dcp files will be +# stitched into the design at a later time, either when this synthesis run is +# opened, or when it is stitched into a dependent implementation run. +foreach dcp [get_files -quiet -all -filter file_type=="Design\ Checkpoint"] { + set_property used_in_implementation false $dcp +} +read_xdc C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc +set_property used_in_implementation false [get_files C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc] + +set_param ips.enableIPCacheLiteLoad 1 +close [open __synthesis_is_running__ w] + +OPTRACE "synth_design" START { } +synth_design -top controlUnit -part xc7a200tsbg484-1 -fanout_limit 400 -fsm_extraction one_hot -keep_equivalent_registers -resource_sharing off -no_lc -shreg_min_size 5 +OPTRACE "synth_design" END { } +if { [get_msg_config -count -severity {CRITICAL WARNING}] > 0 } { + send_msg_id runtcl-6 info "Synthesis results are not added to the cache due to CRITICAL_WARNING" +} + + +OPTRACE "write_checkpoint" START { CHECKPOINT } +# disable binary constraint mode for synth run checkpoints +set_param constraints.enableBinaryConstraints false +write_checkpoint -force -noxdef controlUnit.dcp +OPTRACE "write_checkpoint" END { } +OPTRACE "synth reports" START { REPORT } +OPTRACE "synth reports" END { } +file delete __synthesis_is_running__ +close [open __synthesis_is_complete__ w] +OPTRACE "synth_1" END { } diff --git a/proj/AudioProc.runs/synth_1/controlUnit.vds b/proj/AudioProc.runs/synth_1/controlUnit.vds new file mode 100644 index 0000000000000000000000000000000000000000..9cd05a3e8f2c290863e5294225b9ebbe16872daa --- /dev/null +++ b/proj/AudioProc.runs/synth_1/controlUnit.vds @@ -0,0 +1,324 @@ +#----------------------------------------------------------- +# Vivado v2024.2 (64-bit) +# SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024 +# IP Build 5239520 on Sun Nov 10 16:12:51 MST 2024 +# SharedData Build 5239561 on Fri Nov 08 14:39:27 MST 2024 +# Start of session at: Tue Mar 11 23:00:46 2025 +# Process ID : 26040 +# Current directory : C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1 +# Command line : vivado.exe -log controlUnit.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source controlUnit.tcl +# Log file : C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1/controlUnit.vds +# Journal file : C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1\vivado.jou +# Running On : BOOK-IFJRPL7DU0 +# Platform : Windows Server 2016 or Windows 10 +# Operating System : 26100 +# Processor Detail : 13th Gen Intel(R) Core(TM) i7-13700H +# CPU Frequency : 2918 MHz +# CPU Physical cores : 14 +# CPU Logical cores : 20 +# Host memory : 33897 MB +# Swap memory : 2147 MB +# Total Virtual : 36045 MB +# Available Virtual : 12725 MB +#----------------------------------------------------------- +source controlUnit.tcl -notrace +INFO: [IP_Flow 19-234] Refreshing IP repositories +WARNING: [IP_Flow 19-2248] Failed to load user IP repository 'c:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/repo'; Can't find the specified path. +If this directory should no longer be in your list of user repositories, go to the IP Settings dialog and remove it. +INFO: [IP_Flow 19-2313] Loaded Vivado IP repository 'C:/Xilinx/Vivado/2024.2/data/ip'. +WARNING: [IP_Flow 19-4995] The host OS only allows 260 characters in a normal path. The IP cache path is more than 80 characters. If you experience issues with IP caching, please consider changing the IP cache to a location with a shorter path. Alternately consider using the OS subst command to map part of the path to a drive letter. +Current IP cache path is c:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.cache/ip +Command: synth_design -top controlUnit -part xc7a200tsbg484-1 -fanout_limit 400 -fsm_extraction one_hot -keep_equivalent_registers -resource_sharing off -no_lc -shreg_min_size 5 +Starting synth_design +Attempting to get a license for feature 'Synthesis' and/or device 'xc7a200t' +INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7a200t' +INFO: [Device 21-403] Loading part xc7a200tsbg484-1 +INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 2 processes. +INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes +INFO: [Synth 8-7075] Helper process launched with PID 42632 +--------------------------------------------------------------------------------- +Starting RTL Elaboration : Time (s): cpu = 00:00:05 ; elapsed = 00:00:07 . Memory (MB): peak = 1081.090 ; gain = 468.262 +--------------------------------------------------------------------------------- +INFO: [Synth 8-638] synthesizing module 'controlUnit' [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd:22] +WARNING: [Synth 8-614] signal 'SR_filterStage' is read in the process but is not in the sensitivity list [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd:34] +INFO: [Synth 8-256] done synthesizing module 'controlUnit' (0#1) [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd:22] +--------------------------------------------------------------------------------- +Finished RTL Elaboration : Time (s): cpu = 00:00:09 ; elapsed = 00:00:11 . Memory (MB): peak = 1185.668 ; gain = 572.840 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:09 ; elapsed = 00:00:12 . Memory (MB): peak = 1185.668 ; gain = 572.840 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 1 : Time (s): cpu = 00:00:09 ; elapsed = 00:00:12 . Memory (MB): peak = 1185.668 ; gain = 572.840 +--------------------------------------------------------------------------------- +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.001 . Memory (MB): peak = 1185.668 ; gain = 0.000 +INFO: [Project 1-570] Preparing netlist for logic optimization + +Processing XDC Constraints +Initializing timing engine +Parsing XDC File [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc] +WARNING: [Vivado 12-584] No ports matched 'CLK100MHZ'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:8] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:8] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'led3'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:15] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:15] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'led4'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:16] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:16] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'led5'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:17] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:17] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'led6'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:18] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:18] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'led7'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:19] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:19] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'BTNC'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:23] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:23] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'BTND'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:24] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:24] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'BTNL'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:25] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:25] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'BTNR'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:26] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:26] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'BTNU'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:27] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:27] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'rstn'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:28] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:28] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sw'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:32] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:32] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sw3'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:35] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:35] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sw4'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:36] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:36] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sw5'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:37] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:37] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sw6'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:38] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:38] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sw7'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:39] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:39] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'ac_adc_sdata'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:91] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:91] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'ac_bclk'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:92] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:92] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'ac_dac_sdata'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:93] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:93] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'ac_lrclk'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:94] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:94] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'ac_mclk'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:95] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:95] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'scl'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:202] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:202] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sda'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:203] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:203] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +Finished Parsing XDC File [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc] +Completed Processing XDC Constraints + +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1254.090 ; gain = 0.000 +INFO: [Project 1-111] Unisim Transformation Summary: +No Unisim elements were transformed. + +Constraint Validation Runtime : Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.005 . Memory (MB): peak = 1254.090 ; gain = 0.000 +--------------------------------------------------------------------------------- +Finished Constraint Validation : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Loading Part and Timing Information +--------------------------------------------------------------------------------- +Loading part: xc7a200tsbg484-1 +--------------------------------------------------------------------------------- +Finished Loading Part and Timing Information : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying 'set_property' XDC Constraints +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished applying 'set_property' XDC Constraints : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262 +--------------------------------------------------------------------------------- +INFO: [Synth 8-802] inferred FSM for state register 'SR_presentState_reg' in module 'controlUnit' +--------------------------------------------------------------------------------------------------- + State | New Encoding | Previous Encoding +--------------------------------------------------------------------------------------------------- + wait_sample | 0000001 | 000 + store | 0000010 | 001 + processing_loop | 0000100 | 010 + output | 0001000 | 011 + next_filter | 0010000 | 101 + final_output | 0100000 | 110 + wait_end_sample | 1000000 | 100 +--------------------------------------------------------------------------------------------------- +INFO: [Synth 8-3354] encoded FSM with state register 'SR_presentState_reg' using encoding 'one-hot' in module 'controlUnit' +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 2 : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start RTL Component Statistics +--------------------------------------------------------------------------------- +Detailed RTL Component Info : ++---Adders : + 2 Input 2 Bit Adders := 1 ++---Registers : + 2 Bit Registers := 1 ++---Muxes : + 7 Input 7 Bit Muxes := 1 + 2 Input 7 Bit Muxes := 4 + 2 Input 2 Bit Muxes := 1 + 2 Input 1 Bit Muxes := 1 + 7 Input 1 Bit Muxes := 3 +--------------------------------------------------------------------------------- +Finished RTL Component Statistics +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Part Resource Summary +--------------------------------------------------------------------------------- +Part Resources: +DSPs: 740 (col length:100) +BRAMs: 730 (col length: RAMB18 100 RAMB36 50) +--------------------------------------------------------------------------------- +Finished Part Resource Summary +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Cross Boundary and Area Optimization +--------------------------------------------------------------------------------- +WARNING: [Synth 8-7080] Parallel synthesis criteria is not met +--------------------------------------------------------------------------------- +Finished Cross Boundary and Area Optimization : Time (s): cpu = 00:00:32 ; elapsed = 00:00:37 . Memory (MB): peak = 1254.090 ; gain = 641.262 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying XDC Timing Constraints +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Applying XDC Timing Constraints : Time (s): cpu = 00:00:47 ; elapsed = 00:00:54 . Memory (MB): peak = 1386.586 ; gain = 773.758 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Timing Optimization +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Timing Optimization : Time (s): cpu = 00:00:47 ; elapsed = 00:00:54 . Memory (MB): peak = 1386.586 ; gain = 773.758 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Technology Mapping +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Technology Mapping : Time (s): cpu = 00:00:47 ; elapsed = 00:00:54 . Memory (MB): peak = 1396.641 ; gain = 783.812 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Final Netlist Cleanup +--------------------------------------------------------------------------------- +WARNING: synth_design option "-fanout_limit" is deprecated. +--------------------------------------------------------------------------------- +Finished Final Netlist Cleanup +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished IO Insertion : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Instances +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Instances : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Rebuilding User Hierarchy +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Rebuilding User Hierarchy : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Ports +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Ports : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Nets +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Nets : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Writing Synthesis Report +--------------------------------------------------------------------------------- + +Report BlackBoxes: ++-+--------------+----------+ +| |BlackBox name |Instances | ++-+--------------+----------+ ++-+--------------+----------+ + +Report Cell Usage: ++------+-----+------+ +| |Cell |Count | ++------+-----+------+ +|1 |BUFG | 1| +|2 |LUT2 | 6| +|3 |LUT3 | 3| +|4 |LUT4 | 1| +|5 |LUT5 | 2| +|6 |FDCE | 8| +|7 |FDPE | 1| +|8 |IBUF | 4| +|9 |OBUF | 9| ++------+-----+------+ +--------------------------------------------------------------------------------- +Finished Writing Synthesis Report : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +Synthesis finished with 0 errors, 0 critical warnings and 1 warnings. +Synthesis Optimization Runtime : Time (s): cpu = 00:00:42 ; elapsed = 00:00:58 . Memory (MB): peak = 1612.969 ; gain = 931.719 +Synthesis Optimization Complete : Time (s): cpu = 00:00:56 ; elapsed = 00:01:04 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +INFO: [Project 1-571] Translating synthesized netlist +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1612.969 ; gain = 0.000 +INFO: [Project 1-570] Preparing netlist for logic optimization +INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s). +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1612.969 ; gain = 0.000 +INFO: [Project 1-111] Unisim Transformation Summary: +No Unisim elements were transformed. + +Synth Design complete | Checksum: f94b0336 +INFO: [Common 17-83] Releasing license: Synthesis +18 Infos, 29 Warnings, 25 Critical Warnings and 0 Errors encountered. +synth_design completed successfully +synth_design: Time (s): cpu = 00:01:04 ; elapsed = 00:01:13 . Memory (MB): peak = 1612.969 ; gain = 1245.328 +INFO: [runtcl-6] Synthesis results are not added to the cache due to CRITICAL_WARNING +Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.002 . Memory (MB): peak = 1612.969 ; gain = 0.000 +INFO: [Common 17-1381] The checkpoint 'C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1/controlUnit.dcp' has been generated. +INFO: [Common 17-206] Exiting Vivado at Tue Mar 11 23:02:03 2025... diff --git a/proj/AudioProc.runs/synth_1/gen_run.xml b/proj/AudioProc.runs/synth_1/gen_run.xml new file mode 100644 index 0000000000000000000000000000000000000000..1476d2cd16846dac86154e9ea7c591b6c34fc45b --- /dev/null +++ b/proj/AudioProc.runs/synth_1/gen_run.xml @@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="UTF-8"?> +<GenRun Id="synth_1" LaunchPart="xc7a200tsbg484-1" LaunchTime="1741730442"> + <File Type="PA-TCL" Name="controlUnit.tcl"/> + <File Type="REPORTS-TCL" Name="controlUnit_reports.tcl"/> + <File Type="RDS-RDS" Name="controlUnit.vds"/> + <File Type="RDS-DCP" Name="controlUnit.dcp"/> + <FileSet Name="sources" Type="DesignSrcs" RelSrcDir="$PSRCDIR/sources_1" RelGenDir="$PGENDIR/sources_1"> + <Filter Type="Srcs"/> + <File Path="$PPRDIR/../src/hdl/controlUnit.vhd"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/operativeUnit.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/firUnit.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/tb_firUnit.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/ip/clk_wiz_0/clk_wiz_0.xci"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/audio_init.v"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/debounce.v"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/TWICtl.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/fir.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/i2s_ctl.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/audioProc.v"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <Config> + <Option Name="DesignMode" Val="RTL"/> + <Option Name="TopModule" Val="controlUnit"/> + </Config> + </FileSet> + <FileSet Name="constrs_in" Type="Constrs" RelSrcDir="$PSRCDIR/constrs_1" RelGenDir="$PGENDIR/constrs_1"> + <Filter Type="Constrs"/> + <File Path="$PPRDIR/../src/constraints/NexysVideo_Master.xdc"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + </FileInfo> + </File> + <Config> + <Option Name="ConstrsType" Val="XDC"/> + </Config> + </FileSet> + <FileSet Name="utils" Type="Utils" RelSrcDir="$PSRCDIR/utils_1" RelGenDir="$PGENDIR/utils_1"> + <Filter Type="Utils"/> + <Config> + <Option Name="TopAutoSet" Val="TRUE"/> + </Config> + </FileSet> + <Strategy Version="1" Minor="2"> + <StratHandle Name="Flow_PerfOptimized_High" Flow="Vivado Synthesis 2014"/> + <Step Id="synth_design"> + <Option Id="FsmExtraction">1</Option> + <Option Id="KeepEquivalentRegisters">1</Option> + <Option Id="NoCombineLuts">1</Option> + <Option Id="RepFanoutThreshold">400</Option> + <Option Id="ResourceSharing">2</Option> + <Option Id="ShregMinSize">5</Option> + </Step> + </Strategy> +</GenRun> diff --git a/proj/AudioProc.runs/synth_1/htr.txt b/proj/AudioProc.runs/synth_1/htr.txt new file mode 100644 index 0000000000000000000000000000000000000000..ba6b514b5414b8b481c77d27014b59aa08d71b10 --- /dev/null +++ b/proj/AudioProc.runs/synth_1/htr.txt @@ -0,0 +1,10 @@ +REM +REM Vivado(TM) +REM htr.txt: a Vivado-generated description of how-to-repeat the +REM the basic steps of a run. Note that runme.bat/sh needs +REM to be invoked for Vivado to track run status. +REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +REM Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +REM + +vivado -log controlUnit.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source controlUnit.tcl diff --git a/proj/AudioProc.runs/synth_1/project.wdf b/proj/AudioProc.runs/synth_1/project.wdf new file mode 100644 index 0000000000000000000000000000000000000000..f1d3e11ec2e75478cf719203e107d2fe0959b951 --- /dev/null +++ b/proj/AudioProc.runs/synth_1/project.wdf @@ -0,0 +1,31 @@ +version:1 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:737263736574636f756e74:3131:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:636f6e73747261696e74736574636f756e74:31:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:64657369676e6d6f6465:52544c:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:73796e7468657369737374726174656779:466c6f775f506572664f7074696d697a65645f48696768:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:696d706c7374726174656779:56697661646f20496d706c656d656e746174696f6e2044656661756c7473:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:63757272656e7473796e74686573697372756e:73796e74685f31:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:63757272656e74696d706c72756e:696d706c5f31:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:746f74616c73796e74686573697372756e73:31:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:746f74616c696d706c72756e73:31:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:636f72655f636f6e7461696e6572:66616c7365:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:73696d756c61746f725f6c616e6775616765:4d69786564:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:7461726765745f6c616e6775616765:5648444c:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:64656661756c745f6c696272617279:78696c5f64656661756c746c6962:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:7461726765745f73696d756c61746f72:5853696d:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f7873696d:313239:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f6d6f64656c73696d:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f717565737461:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f696573:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f766373:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f72697669657261:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6c61756e63685f73696d756c6174696f6e5f61637469766568646c:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f7873696d:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f6d6f64656c73696d:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f717565737461:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f696573:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f766373:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f72697669657261:30:00:00 +70726f6a656374:76697661646f5f75736167655c70726f6a6563745f64617461:6578706f72745f73696d756c6174696f6e5f61637469766568646c:30:00:00 +5f5f48494444454e5f5f:5f5f48494444454e5f5f:50726f6a65637455554944:3238613064366633653562323462333061616630666633386336303662663433:506172656e742050412070726f6a656374204944:00 +eof:2655913581 diff --git a/proj/AudioProc.runs/synth_1/rundef.js b/proj/AudioProc.runs/synth_1/rundef.js new file mode 100644 index 0000000000000000000000000000000000000000..fadc53b3b547ae025cd4d4bd880abeee9c73db25 --- /dev/null +++ b/proj/AudioProc.runs/synth_1/rundef.js @@ -0,0 +1,37 @@ +// +// Vivado(TM) +// rundef.js: a Vivado-generated Runs Script for WSH 5.1/5.6 +// Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +// Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +// + +var WshShell = new ActiveXObject( "WScript.Shell" ); +var ProcEnv = WshShell.Environment( "Process" ); +var PathVal = ProcEnv("PATH"); +if ( PathVal.length == 0 ) { + PathVal = "C:/Xilinx/Vitis/2024.2/bin;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/bin/nt64;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/lib/nt64;C:/Xilinx/Vivado/2024.2/bin;"; +} else { + PathVal = "C:/Xilinx/Vitis/2024.2/bin;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/bin/nt64;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/lib/nt64;C:/Xilinx/Vivado/2024.2/bin;" + PathVal; +} + +ProcEnv("PATH") = PathVal; + +var RDScrFP = WScript.ScriptFullName; +var RDScrN = WScript.ScriptName; +var RDScrDir = RDScrFP.substr( 0, RDScrFP.length - RDScrN.length - 1 ); +var ISEJScriptLib = RDScrDir + "/ISEWrap.js"; +eval( EAInclude(ISEJScriptLib) ); + + +ISEStep( "vivado", + "-log controlUnit.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source controlUnit.tcl" ); + + + +function EAInclude( EAInclFilename ) { + var EAFso = new ActiveXObject( "Scripting.FileSystemObject" ); + var EAInclFile = EAFso.OpenTextFile( EAInclFilename ); + var EAIFContents = EAInclFile.ReadAll(); + EAInclFile.Close(); + return EAIFContents; +} diff --git a/proj/AudioProc.runs/synth_1/runme.bat b/proj/AudioProc.runs/synth_1/runme.bat new file mode 100644 index 0000000000000000000000000000000000000000..6733dc95958ec9634660abf3a3354885c09aa789 --- /dev/null +++ b/proj/AudioProc.runs/synth_1/runme.bat @@ -0,0 +1,11 @@ +@echo off + +rem Vivado (TM) +rem runme.bat: a Vivado-generated Script +rem Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +rem Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. + + +set HD_SDIR=%~dp0 +cd /d "%HD_SDIR%" +cscript /nologo /E:JScript "%HD_SDIR%\rundef.js" %* diff --git a/proj/AudioProc.runs/synth_1/runme.log b/proj/AudioProc.runs/synth_1/runme.log new file mode 100644 index 0000000000000000000000000000000000000000..1df6445524a411c1ef5c66a787c0f123cfaab556 --- /dev/null +++ b/proj/AudioProc.runs/synth_1/runme.log @@ -0,0 +1,315 @@ + +*** Running vivado + with args -log controlUnit.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source controlUnit.tcl + + + +****** Vivado v2024.2 (64-bit) + **** SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024 + **** IP Build 5239520 on Sun Nov 10 16:12:51 MST 2024 + **** SharedData Build 5239561 on Fri Nov 08 14:39:27 MST 2024 + **** Start of session at: Tue Mar 11 23:00:46 2025 + ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. + ** Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. + +source controlUnit.tcl -notrace +INFO: [IP_Flow 19-234] Refreshing IP repositories +WARNING: [IP_Flow 19-2248] Failed to load user IP repository 'c:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/repo'; Can't find the specified path. +If this directory should no longer be in your list of user repositories, go to the IP Settings dialog and remove it. +INFO: [IP_Flow 19-2313] Loaded Vivado IP repository 'C:/Xilinx/Vivado/2024.2/data/ip'. +WARNING: [IP_Flow 19-4995] The host OS only allows 260 characters in a normal path. The IP cache path is more than 80 characters. If you experience issues with IP caching, please consider changing the IP cache to a location with a shorter path. Alternately consider using the OS subst command to map part of the path to a drive letter. +Current IP cache path is c:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.cache/ip +Command: synth_design -top controlUnit -part xc7a200tsbg484-1 -fanout_limit 400 -fsm_extraction one_hot -keep_equivalent_registers -resource_sharing off -no_lc -shreg_min_size 5 +Starting synth_design +Attempting to get a license for feature 'Synthesis' and/or device 'xc7a200t' +INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xc7a200t' +INFO: [Device 21-403] Loading part xc7a200tsbg484-1 +INFO: [Synth 8-7079] Multithreading enabled for synth_design using a maximum of 2 processes. +INFO: [Synth 8-7078] Launching helper process for spawning children vivado processes +INFO: [Synth 8-7075] Helper process launched with PID 42632 +--------------------------------------------------------------------------------- +Starting RTL Elaboration : Time (s): cpu = 00:00:05 ; elapsed = 00:00:07 . Memory (MB): peak = 1081.090 ; gain = 468.262 +--------------------------------------------------------------------------------- +INFO: [Synth 8-638] synthesizing module 'controlUnit' [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd:22] +WARNING: [Synth 8-614] signal 'SR_filterStage' is read in the process but is not in the sensitivity list [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd:34] +INFO: [Synth 8-256] done synthesizing module 'controlUnit' (0#1) [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd:22] +--------------------------------------------------------------------------------- +Finished RTL Elaboration : Time (s): cpu = 00:00:09 ; elapsed = 00:00:11 . Memory (MB): peak = 1185.668 ; gain = 572.840 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:09 ; elapsed = 00:00:12 . Memory (MB): peak = 1185.668 ; gain = 572.840 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 1 : Time (s): cpu = 00:00:09 ; elapsed = 00:00:12 . Memory (MB): peak = 1185.668 ; gain = 572.840 +--------------------------------------------------------------------------------- +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.001 . Memory (MB): peak = 1185.668 ; gain = 0.000 +INFO: [Project 1-570] Preparing netlist for logic optimization + +Processing XDC Constraints +Initializing timing engine +Parsing XDC File [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc] +WARNING: [Vivado 12-584] No ports matched 'CLK100MHZ'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:8] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:8] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'led3'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:15] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:15] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'led4'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:16] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:16] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'led5'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:17] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:17] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'led6'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:18] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:18] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'led7'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:19] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:19] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'BTNC'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:23] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:23] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'BTND'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:24] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:24] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'BTNL'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:25] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:25] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'BTNR'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:26] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:26] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'BTNU'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:27] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:27] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'rstn'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:28] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:28] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sw'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:32] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:32] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sw3'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:35] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:35] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sw4'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:36] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:36] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sw5'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:37] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:37] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sw6'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:38] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:38] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sw7'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:39] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:39] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'ac_adc_sdata'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:91] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:91] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'ac_bclk'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:92] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:92] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'ac_dac_sdata'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:93] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:93] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'ac_lrclk'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:94] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:94] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'ac_mclk'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:95] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:95] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'scl'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:202] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:202] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +WARNING: [Vivado 12-584] No ports matched 'sda'. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:203] +CRITICAL WARNING: [Common 17-55] 'set_property' expects at least one object. [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc:203] +Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object. +Finished Parsing XDC File [C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/constraints/NexysVideo_Master.xdc] +Completed Processing XDC Constraints + +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1254.090 ; gain = 0.000 +INFO: [Project 1-111] Unisim Transformation Summary: +No Unisim elements were transformed. + +Constraint Validation Runtime : Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.005 . Memory (MB): peak = 1254.090 ; gain = 0.000 +--------------------------------------------------------------------------------- +Finished Constraint Validation : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Loading Part and Timing Information +--------------------------------------------------------------------------------- +Loading part: xc7a200tsbg484-1 +--------------------------------------------------------------------------------- +Finished Loading Part and Timing Information : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying 'set_property' XDC Constraints +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished applying 'set_property' XDC Constraints : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262 +--------------------------------------------------------------------------------- +INFO: [Synth 8-802] inferred FSM for state register 'SR_presentState_reg' in module 'controlUnit' +--------------------------------------------------------------------------------------------------- + State | New Encoding | Previous Encoding +--------------------------------------------------------------------------------------------------- + wait_sample | 0000001 | 000 + store | 0000010 | 001 + processing_loop | 0000100 | 010 + output | 0001000 | 011 + next_filter | 0010000 | 101 + final_output | 0100000 | 110 + wait_end_sample | 1000000 | 100 +--------------------------------------------------------------------------------------------------- +INFO: [Synth 8-3354] encoded FSM with state register 'SR_presentState_reg' using encoding 'one-hot' in module 'controlUnit' +--------------------------------------------------------------------------------- +Finished RTL Optimization Phase 2 : Time (s): cpu = 00:00:28 ; elapsed = 00:00:33 . Memory (MB): peak = 1254.090 ; gain = 641.262 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start RTL Component Statistics +--------------------------------------------------------------------------------- +Detailed RTL Component Info : ++---Adders : + 2 Input 2 Bit Adders := 1 ++---Registers : + 2 Bit Registers := 1 ++---Muxes : + 7 Input 7 Bit Muxes := 1 + 2 Input 7 Bit Muxes := 4 + 2 Input 2 Bit Muxes := 1 + 2 Input 1 Bit Muxes := 1 + 7 Input 1 Bit Muxes := 3 +--------------------------------------------------------------------------------- +Finished RTL Component Statistics +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Part Resource Summary +--------------------------------------------------------------------------------- +Part Resources: +DSPs: 740 (col length:100) +BRAMs: 730 (col length: RAMB18 100 RAMB36 50) +--------------------------------------------------------------------------------- +Finished Part Resource Summary +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Cross Boundary and Area Optimization +--------------------------------------------------------------------------------- +WARNING: [Synth 8-7080] Parallel synthesis criteria is not met +--------------------------------------------------------------------------------- +Finished Cross Boundary and Area Optimization : Time (s): cpu = 00:00:32 ; elapsed = 00:00:37 . Memory (MB): peak = 1254.090 ; gain = 641.262 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Applying XDC Timing Constraints +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Applying XDC Timing Constraints : Time (s): cpu = 00:00:47 ; elapsed = 00:00:54 . Memory (MB): peak = 1386.586 ; gain = 773.758 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Timing Optimization +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Timing Optimization : Time (s): cpu = 00:00:47 ; elapsed = 00:00:54 . Memory (MB): peak = 1386.586 ; gain = 773.758 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Technology Mapping +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Technology Mapping : Time (s): cpu = 00:00:47 ; elapsed = 00:00:54 . Memory (MB): peak = 1396.641 ; gain = 783.812 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Flattening Before IO Insertion +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Final Netlist Cleanup +--------------------------------------------------------------------------------- +WARNING: synth_design option "-fanout_limit" is deprecated. +--------------------------------------------------------------------------------- +Finished Final Netlist Cleanup +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished IO Insertion : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Instances +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Instances : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Rebuilding User Hierarchy +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Rebuilding User Hierarchy : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Ports +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Ports : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Handling Custom Attributes +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Handling Custom Attributes : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Renaming Generated Nets +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Finished Renaming Generated Nets : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +--------------------------------------------------------------------------------- +Start Writing Synthesis Report +--------------------------------------------------------------------------------- + +Report BlackBoxes: ++-+--------------+----------+ +| |BlackBox name |Instances | ++-+--------------+----------+ ++-+--------------+----------+ + +Report Cell Usage: ++------+-----+------+ +| |Cell |Count | ++------+-----+------+ +|1 |BUFG | 1| +|2 |LUT2 | 6| +|3 |LUT3 | 3| +|4 |LUT4 | 1| +|5 |LUT5 | 2| +|6 |FDCE | 8| +|7 |FDPE | 1| +|8 |IBUF | 4| +|9 |OBUF | 9| ++------+-----+------+ +--------------------------------------------------------------------------------- +Finished Writing Synthesis Report : Time (s): cpu = 00:00:56 ; elapsed = 00:01:03 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +--------------------------------------------------------------------------------- +Synthesis finished with 0 errors, 0 critical warnings and 1 warnings. +Synthesis Optimization Runtime : Time (s): cpu = 00:00:42 ; elapsed = 00:00:58 . Memory (MB): peak = 1612.969 ; gain = 931.719 +Synthesis Optimization Complete : Time (s): cpu = 00:00:56 ; elapsed = 00:01:04 . Memory (MB): peak = 1612.969 ; gain = 1000.141 +INFO: [Project 1-571] Translating synthesized netlist +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1612.969 ; gain = 0.000 +INFO: [Project 1-570] Preparing netlist for logic optimization +INFO: [Opt 31-138] Pushed 0 inverter(s) to 0 load pin(s). +Netlist sorting complete. Time (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1612.969 ; gain = 0.000 +INFO: [Project 1-111] Unisim Transformation Summary: +No Unisim elements were transformed. + +Synth Design complete | Checksum: f94b0336 +INFO: [Common 17-83] Releasing license: Synthesis +18 Infos, 29 Warnings, 25 Critical Warnings and 0 Errors encountered. +synth_design completed successfully +synth_design: Time (s): cpu = 00:01:04 ; elapsed = 00:01:13 . Memory (MB): peak = 1612.969 ; gain = 1245.328 +INFO: [runtcl-6] Synthesis results are not added to the cache due to CRITICAL_WARNING +Write ShapeDB Complete: Time (s): cpu = 00:00:00 ; elapsed = 00:00:00.002 . Memory (MB): peak = 1612.969 ; gain = 0.000 +INFO: [Common 17-1381] The checkpoint 'C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1/controlUnit.dcp' has been generated. +INFO: [Common 17-206] Exiting Vivado at Tue Mar 11 23:02:03 2025... diff --git a/proj/AudioProc.runs/synth_1/runme.sh b/proj/AudioProc.runs/synth_1/runme.sh new file mode 100644 index 0000000000000000000000000000000000000000..35b6709732b3f7cc754e688a619e6dc814b04a8e --- /dev/null +++ b/proj/AudioProc.runs/synth_1/runme.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +# +# Vivado(TM) +# runme.sh: a Vivado-generated Runs Script for UNIX +# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +# Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +# + +echo "This script was generated under a different operating system." +echo "Please update the PATH and LD_LIBRARY_PATH variables below, before executing this script" +exit + +if [ -z "$PATH" ]; then + PATH=C:/Xilinx/Vitis/2024.2/bin;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/bin/nt64;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/lib/nt64:C:/Xilinx/Vivado/2024.2/bin +else + PATH=C:/Xilinx/Vitis/2024.2/bin;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/bin/nt64;C:/Xilinx/Vivado/2024.2/ids_lite/ISE/lib/nt64:C:/Xilinx/Vivado/2024.2/bin:$PATH +fi +export PATH + +if [ -z "$LD_LIBRARY_PATH" ]; then + LD_LIBRARY_PATH= +else + LD_LIBRARY_PATH=:$LD_LIBRARY_PATH +fi +export LD_LIBRARY_PATH + +HD_PWD='C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1' +cd "$HD_PWD" + +HD_LOG=runme.log +/bin/touch $HD_LOG + +ISEStep="./ISEWrap.sh" +EAStep() +{ + $ISEStep $HD_LOG "$@" >> $HD_LOG 2>&1 + if [ $? -ne 0 ] + then + exit + fi +} + +EAStep vivado -log controlUnit.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source controlUnit.tcl diff --git a/proj/AudioProc.runs/synth_1/vivado.jou b/proj/AudioProc.runs/synth_1/vivado.jou new file mode 100644 index 0000000000000000000000000000000000000000..16184e75bb52adb0fdd6d52526f9c50d789d2ad1 --- /dev/null +++ b/proj/AudioProc.runs/synth_1/vivado.jou @@ -0,0 +1,24 @@ +#----------------------------------------------------------- +# Vivado v2024.2 (64-bit) +# SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024 +# IP Build 5239520 on Sun Nov 10 16:12:51 MST 2024 +# SharedData Build 5239561 on Fri Nov 08 14:39:27 MST 2024 +# Start of session at: Tue Mar 11 23:00:46 2025 +# Process ID : 26040 +# Current directory : C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1 +# Command line : vivado.exe -log controlUnit.vds -product Vivado -mode batch -messageDb vivado.pb -notrace -source controlUnit.tcl +# Log file : C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1/controlUnit.vds +# Journal file : C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/proj/AudioProc.runs/synth_1\vivado.jou +# Running On : BOOK-IFJRPL7DU0 +# Platform : Windows Server 2016 or Windows 10 +# Operating System : 26100 +# Processor Detail : 13th Gen Intel(R) Core(TM) i7-13700H +# CPU Frequency : 2918 MHz +# CPU Physical cores : 14 +# CPU Logical cores : 20 +# Host memory : 33897 MB +# Swap memory : 2147 MB +# Total Virtual : 36045 MB +# Available Virtual : 12725 MB +#----------------------------------------------------------- +source controlUnit.tcl -notrace diff --git a/proj/AudioProc.runs/synth_1/vivado.pb b/proj/AudioProc.runs/synth_1/vivado.pb new file mode 100644 index 0000000000000000000000000000000000000000..546585ccf9f5b98f92ca3d006660e7d5a85a28a9 Binary files /dev/null and b/proj/AudioProc.runs/synth_1/vivado.pb differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/compile.bat b/proj/AudioProc.sim/sim_1/behav/xsim/compile.bat index 90c0bc044ddae932ac720f74d35007cfaca5d818..882944f8a84e3797afeecc4f0a7e65ed42eafd3c 100644 --- a/proj/AudioProc.sim/sim_1/behav/xsim/compile.bat +++ b/proj/AudioProc.sim/sim_1/behav/xsim/compile.bat @@ -6,7 +6,7 @@ REM Filename : compile.bat REM Simulator : AMD Vivado Simulator REM Description : Script for compiling the simulation design source files REM -REM Generated by Vivado on Sat Mar 08 19:39:29 +0100 2025 +REM Generated by Vivado on Tue Mar 18 22:56:13 +0100 2025 REM SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024 REM REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/compile.log b/proj/AudioProc.sim/sim_1/behav/xsim/compile.log new file mode 100644 index 0000000000000000000000000000000000000000..e9b0a658a9ad9ffd7ded52bc3bfb9964f8ee4ebd --- /dev/null +++ b/proj/AudioProc.sim/sim_1/behav/xsim/compile.log @@ -0,0 +1,8 @@ +INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd" into library xil_defaultlib +INFO: [VRFC 10-3107] analyzing entity 'controlUnit' +INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/operativeUnit.vhd" into library xil_defaultlib +INFO: [VRFC 10-3107] analyzing entity 'operativeUnit' +INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd" into library xil_defaultlib +INFO: [VRFC 10-3107] analyzing entity 'firUnit' +INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/tb_firUnit.vhd" into library xil_defaultlib +INFO: [VRFC 10-3107] analyzing entity 'tb_firUnit' diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.bat b/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.bat index b4dbe4f2c7a84091e711f3a9f5d4f16226ec6a6b..6a296dfee0f4e29aa2a589520c56c3d67cbe1e32 100644 --- a/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.bat +++ b/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.bat @@ -6,7 +6,7 @@ REM Filename : elaborate.bat REM Simulator : AMD Vivado Simulator REM Description : Script for elaborating the compiled design REM -REM Generated by Vivado on Sat Mar 08 19:39:30 +0100 2025 +REM Generated by Vivado on Tue Mar 18 22:56:15 +0100 2025 REM SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024 REM REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.log b/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.log index db78a7cd6b4a54f715aee296dfd14803a60885b1..515bcc85df45d246a077c77bbf3855900426f1eb 100644 --- a/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.log +++ b/proj/AudioProc.sim/sim_1/behav/xsim/elaborate.log @@ -5,4 +5,15 @@ Running: C:/Xilinx/Vivado/2024.2/bin/unwrapped/win64.o/xelab.exe --incr --debug Using 2 slave threads. Starting static elaboration Completed static elaboration -INFO: [XSIM 43-4323] No Change in HDL. Linking previously generated obj files to create kernel +Starting simulation data flow analysis +Completed simulation data flow analysis +Time Resolution for simulation is 1ps +Compiling package std.standard +Compiling package std.textio +Compiling package ieee.std_logic_1164 +Compiling package ieee.numeric_std +Compiling architecture archi_operativeunit of entity xil_defaultlib.controlUnit [controlunit_default] +Compiling architecture arch_operativeunit of entity xil_defaultlib.operativeUnit [operativeunit_default] +Compiling architecture archi_firunit of entity xil_defaultlib.firUnit [firunit_default] +Compiling architecture archi_tb_firunit of entity xil_defaultlib.tb_firunit +Built simulation snapshot tb_firUnit_behav diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/simulate.bat b/proj/AudioProc.sim/sim_1/behav/xsim/simulate.bat index d40839bc1bb190943236a65eadb7fcbe21a80770..75921806cf5780698cb4b6c5acee956140ceded9 100644 --- a/proj/AudioProc.sim/sim_1/behav/xsim/simulate.bat +++ b/proj/AudioProc.sim/sim_1/behav/xsim/simulate.bat @@ -6,7 +6,7 @@ REM Filename : simulate.bat REM Simulator : AMD Vivado Simulator REM Description : Script for simulating the design by launching the simulator REM -REM Generated by Vivado on Sat Mar 08 18:23:47 +0100 2025 +REM Generated by Vivado on Tue Mar 18 22:56:16 +0100 2025 REM SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024 REM REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb b/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb index 92bae6e04f64d3de695bb19e86c20b7dd4aed561..0a124f5b9dca22e3cdb98dbdbdd741af6a74cc7a 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb and b/proj/AudioProc.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xelab.pb b/proj/AudioProc.sim/sim_1/behav/xsim/xelab.pb index 0e76091ce692a7c8ed1f8df69a920743b1957817..cb33821cb848f406541364fbad7d42619dbd4469 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xelab.pb and b/proj/AudioProc.sim/sim_1/behav/xsim/xelab.pb differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_0.win64.obj b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_0.win64.obj index b9ea848c6020f20559f2661c92bd8ee660742b73..51cfd6dc986e82e69f3c0153fd167cb9cad472b3 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_0.win64.obj and b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_0.win64.obj differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c index 2306e5133e5144490821f3251c2e03639b0d8531..39a36f6187d919c27f1ebab4fd557768e1ecc837 100644 --- a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c +++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c @@ -62,11 +62,11 @@ IKI_DLLESPEC extern void execute_32(char*, char *); IKI_DLLESPEC extern void execute_33(char*, char *); IKI_DLLESPEC extern void execute_34(char*, char *); IKI_DLLESPEC extern void execute_35(char*, char *); +IKI_DLLESPEC extern void execute_36(char*, char *); IKI_DLLESPEC extern void execute_37(char*, char *); IKI_DLLESPEC extern void execute_38(char*, char *); IKI_DLLESPEC extern void execute_39(char*, char *); IKI_DLLESPEC extern void execute_40(char*, char *); -IKI_DLLESPEC extern void execute_41(char*, char *); IKI_DLLESPEC extern void execute_42(char*, char *); IKI_DLLESPEC extern void execute_43(char*, char *); IKI_DLLESPEC extern void execute_44(char*, char *); @@ -76,16 +76,19 @@ IKI_DLLESPEC extern void execute_47(char*, char *); IKI_DLLESPEC extern void execute_48(char*, char *); IKI_DLLESPEC extern void execute_49(char*, char *); IKI_DLLESPEC extern void execute_50(char*, char *); +IKI_DLLESPEC extern void execute_51(char*, char *); +IKI_DLLESPEC extern void execute_52(char*, char *); +IKI_DLLESPEC extern void execute_53(char*, char *); IKI_DLLESPEC extern void transaction_0(char*, char*, unsigned, unsigned, unsigned); IKI_DLLESPEC extern void vhdl_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *); -funcp funcTab[24] = {(funcp)execute_26, (funcp)execute_27, (funcp)execute_28, (funcp)execute_29, (funcp)execute_32, (funcp)execute_33, (funcp)execute_34, (funcp)execute_35, (funcp)execute_37, (funcp)execute_38, (funcp)execute_39, (funcp)execute_40, (funcp)execute_41, (funcp)execute_42, (funcp)execute_43, (funcp)execute_44, (funcp)execute_45, (funcp)execute_46, (funcp)execute_47, (funcp)execute_48, (funcp)execute_49, (funcp)execute_50, (funcp)transaction_0, (funcp)vhdl_transfunc_eventcallback}; -const int NumRelocateId= 24; +funcp funcTab[27] = {(funcp)execute_26, (funcp)execute_27, (funcp)execute_28, (funcp)execute_29, (funcp)execute_32, (funcp)execute_33, (funcp)execute_34, (funcp)execute_35, (funcp)execute_36, (funcp)execute_37, (funcp)execute_38, (funcp)execute_39, (funcp)execute_40, (funcp)execute_42, (funcp)execute_43, (funcp)execute_44, (funcp)execute_45, (funcp)execute_46, (funcp)execute_47, (funcp)execute_48, (funcp)execute_49, (funcp)execute_50, (funcp)execute_51, (funcp)execute_52, (funcp)execute_53, (funcp)transaction_0, (funcp)vhdl_transfunc_eventcallback}; +const int NumRelocateId= 27; void relocate(char *dp) { - iki_relocate(dp, "xsim.dir/tb_firUnit_behav/xsim.reloc", (void **)funcTab, 24); - iki_vhdl_file_variable_register(dp + 12632); - iki_vhdl_file_variable_register(dp + 12688); + iki_relocate(dp, "xsim.dir/tb_firUnit_behav/xsim.reloc", (void **)funcTab, 27); + iki_vhdl_file_variable_register(dp + 14376); + iki_vhdl_file_variable_register(dp + 14432); /*Populate the transaction function pointer field in the whole net structure */ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.win64.obj b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.win64.obj index 61e0b5b2725ca1d9831705a809ae010ce5a1a3b9..77d2a211d16e84e8c90bc3f4f0dbbe675d5159d7 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.win64.obj and b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.win64.obj differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.dbg b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.dbg index 996eb5bcef13763a5511bea1d5c6a913b58524e2..977edfdc3b090cc560d422298ee6523588da95bd 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.dbg and b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.dbg differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.mem b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.mem index 65efeaad460ffe4b5fafcbe58c8a61560fcf0589..aadc0cde6f6320e416ef4b953df9c100fb9701e2 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.mem and b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.mem differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.reloc b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.reloc index adfe195c8edf1fc716d345a74120cfdb3008fb21..054fa97f5595f310eb1ad26354c696a980802fca 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.reloc and b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.reloc differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx index 4936ef8d943fdc3bf1ea2cf6f26cc02efefe75f5..baf8869697e8ab2616e6693dc647e35b3a0a8127 100644 --- a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx +++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx @@ -1,6 +1,6 @@ { - crc : 4059207018839603124 , + crc : 7733031991265798486 , ccp_crc : 0 , cmdline : " --incr --debug typical --relax --mt 2 -L xil_defaultlib -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit" , buildDate : "Nov 8 2024" , diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rtti b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rtti index 3ad4fdbf846365595e1473582d996615b48ae1aa..b2ea0ee92f5a93add8fa8cf58e9ae5e1604e3b25 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rtti and b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rtti differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.type b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.type index f056cbb74fb228be3fded5feacc4f575d5932662..0ce4533366d0e0810008bee6c7e196ee59f94239 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.type and b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.type differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg index d1c15a5ceafd65b08a73ec37de2435d34bb35ad9..3393fc6ade93cd18ce6121bd5570d773a856e47a 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg and b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini index a02389c1cd31e07086898c295e189c6d81e6d23a..686fcde19130535a2bc8b8a559404927b1f505b0 100644 --- a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini +++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini @@ -25,11 +25,11 @@ INOUT_PROTOINST_FILTER=true INTERNAL_PROTOINST_FILTER=true CONSTANT_PROTOINST_FILTER=true VARIABLE_PROTOINST_FILTER=true -SCOPE_NAME_COLUMN_WIDTH=365 -SCOPE_DESIGN_UNIT_COLUMN_WIDTH=390 -SCOPE_BLOCK_TYPE_COLUMN_WIDTH=160 -OBJECT_NAME_COLUMN_WIDTH=417 -OBJECT_VALUE_COLUMN_WIDTH=4027 +SCOPE_NAME_COLUMN_WIDTH=220 +SCOPE_DESIGN_UNIT_COLUMN_WIDTH=160 +SCOPE_BLOCK_TYPE_COLUMN_WIDTH=304 +OBJECT_NAME_COLUMN_WIDTH=350 +OBJECT_VALUE_COLUMN_WIDTH=92 OBJECT_DATA_TYPE_COLUMN_WIDTH=140 PROCESS_NAME_COLUMN_WIDTH=75 PROCESS_TYPE_COLUMN_WIDTH=75 diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimk.exe b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimk.exe index 3778ae9c5cfd7da7e5d7413927e85fb94b035c5b..2320308396f9a5dc2e0354164bd94a40633a5047 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimk.exe and b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimk.exe differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log index 8be5a2edc5af081c7d706ed8542e0a27b87d70aa..2c09a02ac940f2c76e5918005c786890a5dc43ce 100644 --- a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log +++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log @@ -1,4 +1,4 @@ -Running: xsim.dir/tb_firUnit_behav/xsimk.exe -simmode gui -wdb tb_firUnit_behav.wdb -simrunnum 0 -socket 63467 +Running: xsim.dir/tb_firUnit_behav/xsimk.exe -simmode gui -wdb tb_firUnit_behav.wdb -simrunnum 0 -socket 51894 Design successfully loaded -Design Loading Memory Usage: 28532 KB (Peak: 28532 KB) -Design Loading CPU Usage: 452 ms +Design Loading Memory Usage: 28580 KB (Peak: 28580 KB) +Design Loading CPU Usage: 468 ms diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/controlunit.vdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/controlunit.vdb index 6270efc5023fbed30bda8aba793c4dca2eea1cef..138ffec8953ffa512b6bced01e5bcf795a5ca2b2 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/controlunit.vdb and b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/controlunit.vdb differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/firunit.vdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/firunit.vdb index 301fc9cde4c58963d1245e7b18212a30db8d8b75..8a2a74eb0d641f71e7ce3f4bc3cf98d2fa275027 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/firunit.vdb and b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/firunit.vdb differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operativeunit.vdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operativeunit.vdb index 2ad2321ac296882d59a7d09147a119061d19de52..09dd06999bcae67a80939e5fa5b29f99e837e20a 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operativeunit.vdb and b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operativeunit.vdb differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_firunit.vdb b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_firunit.vdb index 8131f554c897261ca74f45ff8a7af9ee5e2eb273..d622895935dd9c9719a4168f07ef8608bf438897 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_firunit.vdb and b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_firunit.vdb differ diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx index 18f33e037e14b8168f8f6542350e64e69466a65d..f84a889ce805062041da17655c6e447ba443d7ae 100644 --- a/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx +++ b/proj/AudioProc.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx @@ -2,7 +2,7 @@ 2020.2 Nov 8 2024 22:36:57 -C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd,1741458025,vhdl,C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd,,,controlunit,,,,,,,, +C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd,1742333722,vhdl,C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd,,,controlunit,,,,,,,, C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd,1741454254,vhdl,C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/tb_firUnit.vhd,,,firunit,,,,,,,, -C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/operativeUnit.vhd,1741455408,vhdl,C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd,,,operativeunit,,,,,,,, -C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/tb_firUnit.vhd,1741459119,vhdl,,,,tb_firunit,,,,,,,, +C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/operativeUnit.vhd,1742334967,vhdl,C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd,,,operativeunit,,,,,,,, +C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/tb_firUnit.vhd,1741730766,vhdl,,,,tb_firunit,,,,,,,, diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log b/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e9b0a658a9ad9ffd7ded52bc3bfb9964f8ee4ebd 100644 --- a/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log +++ b/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.log @@ -0,0 +1,8 @@ +INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/controlUnit.vhd" into library xil_defaultlib +INFO: [VRFC 10-3107] analyzing entity 'controlUnit' +INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/operativeUnit.vhd" into library xil_defaultlib +INFO: [VRFC 10-3107] analyzing entity 'operativeUnit' +INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/firUnit.vhd" into library xil_defaultlib +INFO: [VRFC 10-3107] analyzing entity 'firUnit' +INFO: [VRFC 10-163] Analyzing VHDL file "C:/Users/Conta/Documents/GitHub/IMT/tp-ecg-etudiant-a24perei/src/hdl/tb_firUnit.vhd" into library xil_defaultlib +INFO: [VRFC 10-3107] analyzing entity 'tb_firUnit' diff --git a/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.pb b/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.pb index b155e40f06a230303a04d2a77f07560e35c5dc93..6da5d2db73ad6dd87651bc3b4576dfb18c38f281 100644 Binary files a/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.pb and b/proj/AudioProc.sim/sim_1/behav/xsim/xvhdl.pb differ diff --git a/proj/AudioProc.xpr b/proj/AudioProc.xpr index b1f04a76287cb50c2177b923a4dc14d77f1a44a1..c8c23beae3777a53e48e5fc42d32a0044ae14826 100644 --- a/proj/AudioProc.xpr +++ b/proj/AudioProc.xpr @@ -60,7 +60,7 @@ <Option Name="IPUserFilesDir" Val="$PIPUSERFILESDIR"/> <Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/> <Option Name="EnableBDX" Val="FALSE"/> - <Option Name="WTXSimLaunchSim" Val="115"/> + <Option Name="WTXSimLaunchSim" Val="145"/> <Option Name="WTModelSimLaunchSim" Val="0"/> <Option Name="WTQuestaLaunchSim" Val="0"/> <Option Name="WTIesLaunchSim" Val="0"/> @@ -99,24 +99,16 @@ </File> <File Path="$PPRDIR/../src/hdl/operativeUnit.vhd"> <FileInfo> - <Attr Name="AutoDisabled" Val="1"/> <Attr Name="UsedIn" Val="synthesis"/> <Attr Name="UsedIn" Val="simulation"/> </FileInfo> </File> <File Path="$PPRDIR/../src/hdl/firUnit.vhd"> <FileInfo> - <Attr Name="AutoDisabled" Val="1"/> <Attr Name="UsedIn" Val="synthesis"/> <Attr Name="UsedIn" Val="simulation"/> </FileInfo> </File> - <File Path="$PPRDIR/../src/hdl/tb_firUnit.vhd"> - <FileInfo> - <Attr Name="AutoDisabled" Val="1"/> - <Attr Name="UsedIn" Val="simulation"/> - </FileInfo> - </File> <File Path="$PPRDIR/../src/ip/clk_wiz_0/clk_wiz_0.xci"> <FileInfo> <Attr Name="AutoDisabled" Val="1"/> @@ -170,9 +162,15 @@ <Attr Name="UsedIn" Val="simulation"/> </FileInfo> </File> + <File Path="$PPRDIR/../src/hdl/tb_firUnit.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> <Config> <Option Name="DesignMode" Val="RTL"/> - <Option Name="TopModule" Val="controlUnit"/> + <Option Name="TopModule" Val="firUnit"/> </Config> </FileSet> <FileSet Name="constrs_1" Type="Constrs" RelSrcDir="$PSRCDIR/constrs_1" RelGenDir="$PGENDIR/constrs_1"> @@ -232,7 +230,7 @@ </Simulator> </Simulators> <Runs Version="1" Minor="22"> - <Run Id="synth_1" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7a200tsbg484-1" ConstrsSet="constrs_1" Description="Higher performance designs, resource sharing is turned off, the global fanout guide is set to a lower number, FSM extraction forced to one-hot, LUT combining is disabled, equivalent registers are preserved, SRL are inferred with a larger threshold" AutoIncrementalCheckpoint="true" WriteIncrSynthDcp="false" State="current" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/synth_1" ParallelReportGen="true"> + <Run Id="synth_1" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7a200tsbg484-1" ConstrsSet="constrs_1" Description="Higher performance designs, resource sharing is turned off, the global fanout guide is set to a lower number, FSM extraction forced to one-hot, LUT combining is disabled, equivalent registers are preserved, SRL are inferred with a larger threshold" AutoIncrementalCheckpoint="true" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/synth_1" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/synth_1" ParallelReportGen="true"> <Strategy Version="1" Minor="2"> <StratHandle Name="Flow_PerfOptimized_High" Flow="Vivado Synthesis 2014"/> <Step Id="synth_design"> @@ -244,6 +242,7 @@ <Option Id="ShregMinSize">5</Option> </Step> </Strategy> + <GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/> <ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2017"/> <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> <RQSFiles/> diff --git a/src-ref/ECG_raw_3filters-inc.pdf b/src-ref/ECG_raw_3filters-inc.pdf index 355124ca47ee75d8f7d5002187e1919781adbbb8..6bf88846efa5db29fd21993721d3e1a1d19296e7 100644 Binary files a/src-ref/ECG_raw_3filters-inc.pdf and b/src-ref/ECG_raw_3filters-inc.pdf differ diff --git a/src-ref/ECG_raw_3filters.tex b/src-ref/ECG_raw_3filters.tex index 2c2602a667849c8f4598c24563eedf3ec21d5e6f..35ac17bde7ccc5ba7b3c74979e9355199850ee7f 100644 --- a/src-ref/ECG_raw_3filters.tex +++ b/src-ref/ECG_raw_3filters.tex @@ -7,7 +7,7 @@ % Title: Figure 2 % Creator: GL2PS 1.4.2, (C) 1999-2020 C. Geuzaine % For: Octave -% CreationDate: Sat Mar 8 18:00:29 2025 +% CreationDate: Wed Mar 12 08:21:09 2025 \setlength{\unitlength}{1pt} \begin{picture}(0,0) \includegraphics[scale=1]{ECG_raw_3filters-inc} diff --git a/src-ref/coeficientes_vhdl.txt b/src-ref/coeficientes_vhdl.txt index e1d30f9f474ead23d9e0a3cabaebaeabd261c31d..fc894089079ce7fa778c9c3cd4c234cb6fe928dd 100644 --- a/src-ref/coeficientes_vhdl.txt +++ b/src-ref/coeficientes_vhdl.txt @@ -1,134 +1,134 @@ --- Coefficients du filtre Baseline --- -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(64, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(-1, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), -to_signed(0, 8), +to_signed(0.0161398, 8), +to_signed(0.015271, 8), +to_signed(0.0144957, 8), +to_signed(0.0137641, 8), +to_signed(0.0130196, 8), +to_signed(0.0121989, 8), +to_signed(0.0112324, 8), +to_signed(0.0100452, 8), +to_signed(0.00855703, 8), +to_signed(0.00668368, 8), +to_signed(0.00433731, 8), +to_signed(0.00142748, 8), +to_signed(-0.00213802, 8), +to_signed(-0.00645221, 8), +to_signed(-0.011608, 8), +to_signed(-0.017697, 8), +to_signed(-0.0248089, 8), +to_signed(-0.03303, 8), +to_signed(-0.0424426, 8), +to_signed(-0.0531235, 8), +to_signed(-0.0651436, 8), +to_signed(-0.0785665, 8), +to_signed(-0.0934478, 8), +to_signed(-0.109834, 8), +to_signed(-0.127762, 8), +to_signed(-0.147259, 8), +to_signed(-0.16834, 8), +to_signed(-0.191009, 8), +to_signed(-0.215257, 8), +to_signed(-0.241064, 8), +to_signed(-0.268396, 8), +to_signed(-0.297208, 8), +to_signed(-0.327439, 8), +to_signed(-0.359018, 8), +to_signed(-0.391859, 8), +to_signed(-0.425867, 8), +to_signed(-0.460931, 8), +to_signed(-0.496931, 8), +to_signed(-0.533736, 8), +to_signed(-0.571204, 8), +to_signed(-0.609185, 8), +to_signed(-0.64752, 8), +to_signed(-0.686042, 8), +to_signed(-0.72458, 8), +to_signed(-0.762955, 8), +to_signed(-0.800987, 8), +to_signed(-0.838492, 8), +to_signed(-0.875284, 8), +to_signed(-0.91118, 8), +to_signed(-0.945994, 8), +to_signed(-0.979548, 8), +to_signed(-1.01166, 8), +to_signed(-1.04217, 8), +to_signed(-1.0709, 8), +to_signed(-1.09771, 8), +to_signed(-1.12243, 8), +to_signed(-1.14494, 8), +to_signed(-1.16512, 8), +to_signed(-1.18284, 8), +to_signed(-1.19801, 8), +to_signed(-1.21054, 8), +to_signed(-1.22036, 8), +to_signed(-1.22741, 8), +to_signed(-1.23166, 8), +to_signed(63.5859, 8), +to_signed(-1.23166, 8), +to_signed(-1.22741, 8), +to_signed(-1.22036, 8), +to_signed(-1.21054, 8), +to_signed(-1.19801, 8), +to_signed(-1.18284, 8), +to_signed(-1.16512, 8), +to_signed(-1.14494, 8), +to_signed(-1.12243, 8), +to_signed(-1.09771, 8), +to_signed(-1.0709, 8), +to_signed(-1.04217, 8), +to_signed(-1.01166, 8), +to_signed(-0.979548, 8), +to_signed(-0.945994, 8), +to_signed(-0.91118, 8), +to_signed(-0.875284, 8), +to_signed(-0.838492, 8), +to_signed(-0.800987, 8), +to_signed(-0.762955, 8), +to_signed(-0.72458, 8), +to_signed(-0.686042, 8), +to_signed(-0.64752, 8), +to_signed(-0.609185, 8), +to_signed(-0.571204, 8), +to_signed(-0.533736, 8), +to_signed(-0.496931, 8), +to_signed(-0.460931, 8), +to_signed(-0.425867, 8), +to_signed(-0.391859, 8), +to_signed(-0.359018, 8), +to_signed(-0.327439, 8), +to_signed(-0.297208, 8), +to_signed(-0.268396, 8), +to_signed(-0.241064, 8), +to_signed(-0.215257, 8), +to_signed(-0.191009, 8), +to_signed(-0.16834, 8), +to_signed(-0.147259, 8), +to_signed(-0.127762, 8), +to_signed(-0.109834, 8), +to_signed(-0.0934478, 8), +to_signed(-0.0785665, 8), +to_signed(-0.0651436, 8), +to_signed(-0.0531235, 8), +to_signed(-0.0424426, 8), +to_signed(-0.03303, 8), +to_signed(-0.0248089, 8), +to_signed(-0.017697, 8), +to_signed(-0.011608, 8), +to_signed(-0.00645221, 8), +to_signed(-0.00213802, 8), +to_signed(0.00142748, 8), +to_signed(0.00433731, 8), +to_signed(0.00668368, 8), +to_signed(0.00855703, 8), +to_signed(0.0100452, 8), +to_signed(0.0112324, 8), +to_signed(0.0121989, 8), +to_signed(0.0130196, 8), +to_signed(0.0137641, 8), +to_signed(0.0144957, 8), +to_signed(0.015271, 8), +to_signed(0.0161398, 8), --- Coefficients du filtre Notch 50Hz --- to_signed(0, 8), diff --git a/src/hdl/controlUnit.vhd b/src/hdl/controlUnit.vhd index 0c18c926c8a5590ab673b567a25e9003ce43ac1f..19a32368274aac39575fc3f9d0ccd2550c8e66eb 100644 --- a/src/hdl/controlUnit.vhd +++ b/src/hdl/controlUnit.vhd @@ -1,181 +1,135 @@ -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; +-- filepath: c:\Users\Conta\Documents\GitHub\IMT\tp-ecg-etudiant-a24perei\src\hdl\controlUnit.vhd +LIBRARY ieee; +USE ieee.std_logic_1164.ALL; +USE ieee.numeric_std.ALL; -entity controlUnit is - port ( - I_clock : in std_logic; - I_reset : in std_logic; - I_inputSampleValid : in std_logic; - I_processingDone : in std_logic; - O_loadShift : out std_logic; - O_initAddress : out std_logic; - O_incrAddress : out std_logic; - O_initSum : out std_logic; - O_loadSum : out std_logic; - O_loadY : out std_logic; - O_FilteredSampleValid : out std_logic; - O_filterStage : out integer range 0 to 2 -- 🚀 Adicionado para indicar o estágio do filtro - ); -end entity controlUnit; +ENTITY controlUnit IS + PORT ( + I_clock : IN STD_LOGIC; + I_reset : IN STD_LOGIC; + I_inputSampleValid : IN STD_LOGIC; + I_processingDoneA : IN STD_LOGIC; + I_processingDoneB : IN STD_LOGIC; + I_processingDoneBL : IN STD_LOGIC; + I_processingDoneClellan : IN STD_LOGIC; + O_loadShift : OUT STD_LOGIC; + O_initAddress : OUT STD_LOGIC; + O_incrAddress : OUT STD_LOGIC; + O_initSum : OUT STD_LOGIC; + O_loadSum : OUT STD_LOGIC; + O_loadOutA : OUT STD_LOGIC; + O_loadOutBL : OUT STD_LOGIC; + O_loadOutClellan : OUT STD_LOGIC; + O_sel : OUT STD_LOGIC_VECTOR(1 DOWNTO 0); + O_FilteredSampleValid : OUT STD_LOGIC + ); +END ENTITY controlUnit; -architecture archi_operativeUnit of controlUnit is +ARCHITECTURE archi_operativeUnit OF controlUnit IS + TYPE T_state IS (WAIT_SAMPLE, STORE, BASELINE, PROCESS_A, PROCESS_B, CLELLAN, OUTPUT, WAIT_END_SAMPLE); + SIGNAL SR_presentState : T_state := WAIT_SAMPLE; + SIGNAL SR_futurState : T_state := WAIT_SAMPLE; +BEGIN - type T_state is (WAIT_SAMPLE, STORE, PROCESSING_LOOP, OUTPUT, WAIT_END_SAMPLE, NEXT_FILTER, FINAL_OUTPUT); - signal SR_presentState : T_state; - signal SR_futurState : T_state; - - -- Controle do estágio do filtro - signal SR_filterStage : integer range 0 to 2 := 0; + -- State transition process + PROCESS (I_reset, I_clock) + BEGIN + IF I_reset = '1' THEN + SR_presentState <= WAIT_SAMPLE; + ELSIF rising_edge(I_clock) THEN + SR_presentState <= SR_futurState; + END IF; + END PROCESS; -begin + -- Next state logic and output control + PROCESS (SR_presentState, I_inputSampleValid, I_processingDoneBL, I_processingDoneClellan, I_processingDoneA, I_processingDoneB) + BEGIN + -- Default values for outputs + O_sel <= "00"; + O_initAddress <= '0'; + O_initSum <= '0'; - -- Processo para calcular o estado futuro - process (SR_presentState, I_inputSampleValid, I_processingDone) is - begin - case SR_presentState is - when WAIT_SAMPLE => - if I_inputSampleValid = '1' then - SR_futurState <= STORE; - else - SR_futurState <= WAIT_SAMPLE; - end if; - - when STORE => - SR_futurState <= PROCESSING_LOOP; - - when PROCESSING_LOOP => - if I_processingDone = '1' then - SR_futurState <= OUTPUT; - else - SR_futurState <= PROCESSING_LOOP; - end if; - - when OUTPUT => - if SR_filterStage < 2 then - SR_futurState <= NEXT_FILTER; - else - SR_futurState <= FINAL_OUTPUT; -- ✅ Após o último filtro, vai para FINAL_OUTPUT - end if; - - when NEXT_FILTER => - SR_futurState <= STORE; -- ✅ Processa o próximo filtro e volta ao PROCESSING_LOOP - - when FINAL_OUTPUT => - SR_futurState <= WAIT_END_SAMPLE; -- ✅ Estado final antes de esperar um novo input - - when WAIT_END_SAMPLE => - if I_inputSampleValid = '1' then - SR_futurState <= STORE; -- ✅ Só recomeça se um novo input chegar - else - SR_futurState <= WAIT_END_SAMPLE; -- ✅ Mantém a FSM parada se não houver novo input - end if; - - when others => + -- State machine + CASE SR_presentState IS + WHEN WAIT_SAMPLE => + IF I_inputSampleValid = '1' THEN + SR_futurState <= STORE; + ELSE SR_futurState <= WAIT_SAMPLE; - end case; - end process; - - + END IF; - -- Processo para atualizar o estado presente e o estágio do filtro - process (I_clock, I_reset) is - begin - if I_reset = '1' then - SR_presentState <= WAIT_SAMPLE; - SR_filterStage <= 0; -- Reinicia o controle dos filtros - elsif rising_edge(I_clock) then - SR_presentState <= SR_futurState; - - if SR_presentState = OUTPUT and I_processingDone = '1' then - if SR_filterStage < 2 then - SR_filterStage <= SR_filterStage + 1; -- 🚀 Avança para o próximo filtro - end if; - elsif SR_presentState = FINAL_OUTPUT then - SR_filterStage <= 0; -- 🚀 Após os 3 filtros, reinicia para o primeiro - end if; - - end if; - end process; + WHEN STORE => + O_initAddress <= '1'; + O_sel <= "00"; + O_initSum <= '1'; + SR_futurState <= BASELINE; - -- Processo para gerar os sinais de controle - process (SR_presentState) is - begin - case SR_presentState is - when WAIT_SAMPLE => - O_loadShift <= '0'; - O_initAddress <= '0'; - O_incrAddress <= '0'; - O_initSum <= '0'; - O_loadSum <= '0'; - O_loadY <= '0'; - O_FilteredSampleValid <= '0'; - - when STORE => - O_loadShift <= '1'; - O_initAddress <= '1'; - O_incrAddress <= '0'; - O_initSum <= '1'; - O_loadSum <= '0'; - O_loadY <= '0'; - O_FilteredSampleValid <= '0'; - - when PROCESSING_LOOP => - O_loadShift <= '0'; - O_initAddress <= '0'; - O_incrAddress <= '1'; - O_initSum <= '0'; - O_loadSum <= '1'; - O_loadY <= '0'; - O_FilteredSampleValid <= '0'; - - when OUTPUT => - O_loadShift <= '0'; - O_initAddress <= '1'; - O_incrAddress <= '0'; - O_initSum <= '1'; - O_loadSum <= '1'; - O_loadY <= '1'; - O_FilteredSampleValid <= '0'; - - when NEXT_FILTER => - O_loadShift <= '0'; - O_initAddress <= '1'; - O_incrAddress <= '0'; - O_initSum <= '1'; - O_loadSum <= '0'; - O_loadY <= '0'; - O_FilteredSampleValid <= '0'; + WHEN BASELINE => + O_sel <= "00"; + IF I_processingDoneBL = '1' THEN + SR_futurState <= PROCESS_B; + O_initAddress <= '1'; + O_initSum <= '1'; + ELSE + SR_futurState <= BASELINE; + END IF; - when FINAL_OUTPUT => - O_loadShift <= '0'; - O_initAddress <= '0'; - O_incrAddress <= '0'; - O_initSum <= '0'; - O_loadSum <= '0'; - O_loadY <= '1'; - O_FilteredSampleValid <= '0'; + WHEN PROCESS_B => + O_sel <= "01"; + IF I_processingDoneB = '1' THEN + SR_futurState <= PROCESS_A; + O_initAddress <= '1'; + ELSE + SR_futurState <= PROCESS_B; + END IF; - when WAIT_END_SAMPLE => - O_loadShift <= '0'; - O_initAddress <= '0'; - O_incrAddress <= '0'; - O_initSum <= '0'; - O_loadSum <= '0'; - O_loadY <= '0'; - O_FilteredSampleValid <= '1'; + WHEN PROCESS_A => + O_sel <= "10"; + IF I_processingDoneA = '1' THEN + SR_futurState <= CLELLAN; + O_initAddress <= '1'; + O_initSum <= '1'; + ELSE + SR_futurState <= PROCESS_A; + END IF; + + WHEN CLELLAN => + O_sel <= "11"; + IF I_processingDoneClellan = '1' THEN + SR_futurState <= OUTPUT; + ELSE + SR_futurState <= CLELLAN; + END IF; + + WHEN OUTPUT => + SR_futurState <= WAIT_END_SAMPLE; + + WHEN WAIT_END_SAMPLE => + IF I_inputSampleValid = '0' THEN + SR_futurState <= WAIT_SAMPLE; + ELSE + SR_futurState <= WAIT_END_SAMPLE; + END IF; - when others => - O_loadShift <= '0'; - O_initAddress <= '0'; - O_incrAddress <= '0'; - O_initSum <= '0'; - O_loadSum <= '0'; - O_loadY <= '0'; - O_FilteredSampleValid <= '0'; - end case; - end process; + WHEN OTHERS => + SR_futurState <= WAIT_SAMPLE; + END CASE; + END PROCESS; - O_filterStage <= SR_filterStage; + -- Output logic + O_loadShift <= '1' WHEN SR_presentState = STORE ELSE + '0'; + O_incrAddress <= '1' WHEN SR_presentState = BASELINE OR SR_presentState = PROCESS_A OR SR_presentState = PROCESS_B OR SR_presentState = CLELLAN ELSE + '0'; + O_loadSum <= '1' WHEN SR_presentState = BASELINE OR SR_presentState = PROCESS_A OR SR_presentState = PROCESS_B OR SR_presentState = CLELLAN ELSE + '0'; + O_loadOutBL <= '1' WHEN SR_presentState = BASELINE ELSE + '0'; + O_loadOutA <= '1' WHEN SR_presentState = PROCESS_A ELSE + '0'; + O_loadOutClellan <= '1' WHEN SR_presentState = OUTPUT ELSE + '0'; + O_FilteredSampleValid <= '1' WHEN SR_presentState = OUTPUT ELSE + '0'; -end architecture archi_operativeUnit; +END ARCHITECTURE archi_operativeUnit; \ No newline at end of file diff --git a/src/hdl/firUnit.vhd b/src/hdl/firUnit.vhd index 7758c51bf5a4d965d09e0a4aad5ab4e2e613ab3f..7ac25d014af2c2598435ad169a85cec99231ebbf 100644 --- a/src/hdl/firUnit.vhd +++ b/src/hdl/firUnit.vhd @@ -2,15 +2,21 @@ -- Title : firUnit -- Project : ------------------------------------------------------------------------------- --- File : firUnit.vhd +-- File : operativeUnit.vhd -- Author : Jean-Noel BAZIN <jnbazin@pc-disi-026.enst-bretagne.fr> -- Company : -- Created : 2018-04-11 --- Last update: 2025-03-08 (modificado para suportar 3 filtros FIR) +-- Last update: 2018-04-11 -- Platform : -- Standard : VHDL'93/02 ------------------------------------------------------------------------------- --- Description: 8-bit FIR filter with multiple stages +-- Description: 8 bit FIR +------------------------------------------------------------------------------- +-- Copyright (c) 2018 +------------------------------------------------------------------------------- +-- Revisions : +-- Date Version Author Description +-- 2018-04-11 1.0 jnbazin Created ------------------------------------------------------------------------------- library ieee; @@ -22,9 +28,9 @@ entity firUnit is port ( I_clock : in std_logic; -- global clock I_reset : in std_logic; -- asynchronous global reset - I_inputSample : in std_logic_vector(7 downto 0); -- 8-bit input sample + I_inputSample : in std_logic_vector(11 downto 0); -- 8 bit input sample I_inputSampleValid : in std_logic; - O_filteredSample : out std_logic_vector(7 downto 0); -- filtered sample + O_filteredSample : out std_logic_vector(11 downto 0); -- filtered sample O_filteredSampleValid : out std_logic ); @@ -34,67 +40,83 @@ architecture archi_firUnit of firUnit is component controlUnit is port ( - I_clock : in std_logic; - I_reset : in std_logic; - I_inputSampleValid : in std_logic; - I_processingDone : in std_logic; - O_loadShift : out std_logic; - O_initAddress : out std_logic; - O_incrAddress : out std_logic; - O_initSum : out std_logic; - O_loadSum : out std_logic; - O_loadY : out std_logic; - O_FilteredSampleValid : out std_logic; - O_filterStage : out integer range 0 to 2 -- 🚀 Adicionado para indicar o estágio do filtro - ); + I_clock : in std_logic; -- global clock + I_reset : in std_logic; -- asynchronous global reset + I_inputSampleValid : in std_logic; -- Control signal to load the input sample in the sample shift register and shift the register + I_processingDoneA : in std_logic; + I_processingDoneB : in std_logic; + I_processingDoneBL: in std_logic; + I_processingDoneClellan : in std_logic; + O_loadShift : out std_logic; -- filtered sample + O_initAddress : out std_logic; -- Control signal to initialize register read address + O_incrAddress : out std_logic; -- Control signal to increment register read address + O_initSum : out std_logic; -- Control signal to initialize the MAC register + O_loadSum : out std_logic; -- Control signal to load the MAC register; + O_loadOutA : out std_logic; -- Control signal to load Y register + O_loadOutBL : out std_logic; + O_loadOutClellan : out std_logic; + O_sel : out std_logic_vector(1 downto 0); + O_FilteredSampleValid : out std_logic ); end component controlUnit; component operativeUnit is port ( - I_clock : in std_logic; - I_reset : in std_logic; - I_inputSample : in std_logic_vector(7 downto 0); - I_loadShift : in std_logic; - I_initAddress : in std_logic; - I_incrAddress : in std_logic; - I_initSum : in std_logic; - I_loadSum : in std_logic; - I_loadY : in std_logic; - I_filterStage : in integer range 0 to 2; -- 🚀 Adicionado para controlar qual filtro está ativo - O_processingDone : out std_logic; - O_Y : out std_logic_vector(7 downto 0) - ); + I_clock : in std_logic; -- global clock + I_reset : in std_logic; -- asynchronous global reset + I_inputSample : in std_logic_vector(11 downto 0); -- 8 bit input sample + I_loadShift : in std_logic; -- Control signal to load the input sample in the sample shift register and shift the register + I_initAddress : in std_logic; -- Control signal to initialize register read address + I_incrAddress : in std_logic; -- Control signal to increment register read address + I_sel : in std_logic_vector(1 downto 0); -- Control signal to control the type of process + I_initSum : in std_logic; -- Control signal to initialize the MAC register + I_loadSum : in std_logic; -- Control signal to load the MAC register; + I_loadOutA : in std_logic; -- Control signal to load Y register coefficients A + I_loadOutBL : in std_logic; + I_loadOutClellan : in std_logic; + O_processingDoneA : out std_logic; -- Indicate that processing is done + O_processingDoneB : out std_logic; -- Indicate that processing is done + O_processingDoneBL: out std_logic; + O_processingDoneClellan : out std_logic; + O_total : out std_logic_vector(11 downto 0)); + end component operativeUnit; - signal SC_processingDone : std_logic; + signal SC_processingDoneA : std_logic; + signal SC_processingDoneB : std_logic; + signal SC_processingDoneBaseLine: std_logic; + signal SC_processingDoneLissage : std_logic; signal SC_loadShift : std_logic; signal SC_initAddress : std_logic; signal SC_incrAddress : std_logic; signal SC_initSum : std_logic; signal SC_loadSum : std_logic; - signal SC_loadY : std_logic; - signal SC_filterStage : integer range 0 to 2; -- 🚀 Novo sinal para armazenar o estágio do filtro - + signal SC_loadOutA : std_logic; + signal SC_loadOutBaseLine: std_logic; + signal SC_loadOutLissage : std_logic; + signal SC_sel : std_logic_vector(1 downto 0); + begin - -- Instância da unidade de controle controlUnit_1 : entity work.controlUnit port map ( I_clock => I_clock, I_reset => I_reset, I_inputSampleValid => I_inputSampleValid, - I_processingDone => SC_processingDone, + I_processingDoneA => SC_processingDoneA, + I_processingDoneB => SC_processingDoneB, + I_processingDoneBL => SC_processingDoneBaseLine, + I_processingDoneClellan => SC_processingDoneLissage, O_loadShift => SC_loadShift, O_initAddress => SC_initAddress, O_incrAddress => SC_incrAddress, O_initSum => SC_initSum, O_loadSum => SC_loadSum, - O_loadY => SC_loadY, - O_FilteredSampleValid => O_filteredSampleValid, - O_filterStage => SC_filterStage -- 🚀 Agora a unidade de controle define o estágio do filtro - ); + O_loadOutA => SC_loadOutA, + O_loadOutBL => SC_loadOutBaseLine, + O_loadOutClellan => SC_loadOutLissage, + O_sel => SC_sel, + O_FilteredSampleValid => O_FilteredSampleValid); - -- Instância da unidade operativa operativeUnit_1 : entity work.operativeUnit port map ( I_clock => I_clock, @@ -103,12 +125,16 @@ begin I_loadShift => SC_loadShift, I_initAddress => SC_initAddress, I_incrAddress => SC_incrAddress, + I_sel => SC_sel, I_initSum => SC_initSum, I_loadSum => SC_loadSum, - I_loadY => SC_loadY, - I_filterStage => SC_filterStage, -- 🚀 Agora a unidade operativa recebe o estágio do filtro - O_processingDone => SC_processingDone, - O_Y => O_filteredSample - ); + I_loadOutA => SC_loadOutA, + I_loadOutBL => SC_loadOutBaseLine, + I_loadOutClellan => SC_loadOutLissage, + O_processingDoneA => SC_processingDoneA, + O_processingDoneB => SC_processingDoneB, + O_processingDoneBL => SC_processingDoneBaseLine, + O_processingDoneClellan => SC_processingDoneLissage, + O_total => O_filteredSample ); end architecture archi_firUnit; diff --git a/src/hdl/operativeUnit.vhd b/src/hdl/operativeUnit.vhd index ab13e7a0ae45429b7b04c3011f73b6f2c7e761d8..43144195bba5c494936e55343db45b0aa510d6ef 100644 --- a/src/hdl/operativeUnit.vhd +++ b/src/hdl/operativeUnit.vhd @@ -1,404 +1,375 @@ -library ieee; -use ieee.std_logic_1164.all; -use ieee.numeric_std.all; - -entity operativeUnit is - port ( - I_clock : in std_logic; - I_reset : in std_logic; - I_inputSample : in std_logic_vector(7 downto 0); - I_loadShift : in std_logic; - I_initAddress : in std_logic; - I_incrAddress : in std_logic; - I_initSum : in std_logic; - I_loadSum : in std_logic; - I_loadY : in std_logic; - I_filterStage : in integer range 0 to 2; -- Novo: indica qual filtro está sendo aplicado - O_processingDone : out std_logic; - O_Y : out std_logic_vector(7 downto 0) - ); -end entity operativeUnit; +LIBRARY ieee; +USE ieee.std_logic_1164.ALL; +USE ieee.numeric_std.ALL; -architecture arch_operativeUnit of operativeUnit is - -- Tamanho correto de cada filtro - type coefBaselineArray is array(0 to 128) of signed(7 downto 0); - type coefNotch50HzArray is array(0 to 100) of signed(7 downto 0); - type coefLowPassArray is array(0 to 10) of signed(7 downto 0); - - -- Registradores de coeficientes - signal SR_coefBaseline : coefBaselineArray; - signal SR_coefNotch50Hz : coefNotch50HzArray; - signal SR_coefLowPass : coefLowPassArray; - - -- Shift register para armazenar amostras - type shiftRegisterArray is array(0 to 128) of signed(7 downto 0); - signal SR_shiftRegister : shiftRegisterArray; - - signal SC_multOperand1 : signed(7 downto 0); - signal SC_multOperand2 : signed(7 downto 0); - signal SC_MultResult : signed(15 downto 0); - signal SC_addResult : signed(19 downto 0); - signal SR_sum : signed(19 downto 0); - signal SR_Y : signed(7 downto 0); - - -- Contador de leitura para cada filtro - signal SR_readAddress : integer range 0 to 128; - - -- Limite do contador baseado no filtro atual - signal SC_maxAddress : integer range 0 to 128; - -begin - - -- *** Defina os coeficientes de cada filtro aqui *** - -- Baseline Wander Filter (129 coeficientes) - SR_coefBaseline <= ( - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(64, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8) - ); - - -- Notch 50Hz Filter (101 coeficientes) - SR_coefNotch50Hz <= ( - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(-1, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(1, 8), - to_signed(1, 8), - to_signed(1, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(0, 8), - to_signed(1, 8), - to_signed(1, 8), - to_signed(2, 8), - to_signed(2, 8), - to_signed(1, 8), - to_signed(-1, 8), - to_signed(-2, 8), - to_signed(-2, 8), - to_signed(-2, 8), - to_signed(-1, 8), - to_signed(1, 8), - to_signed(2, 8), - to_signed(3, 8), - to_signed(2, 8), - to_signed(1, 8), - to_signed(-1, 8), - to_signed(-2, 8), - to_signed(63, 8), - to_signed(-2, 8), - to_signed(-1, 8), - to_signed(1, 8), - to_signed(2, 8), - to_signed(3, 8), - to_signed(2, 8), - to_signed(1, 8), - to_signed(-1, 8), - to_signed(-2, 8), - to_signed(-2, 8), - to_signed(-2, 8), - to_signed(-1, 8), - to_signed(1, 8), - to_signed(2, 8), - to_signed(2, 8), - to_signed(1, 8), - to_signed(1, 8), - to_signed(0, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(-1, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(1, 8), - to_signed(1, 8), - to_signed(1, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(-1, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8), - to_signed(0, 8) +ENTITY operativeUnit IS + + PORT ( + I_clock : IN STD_LOGIC; + I_reset : IN STD_LOGIC; + I_inputSample : IN STD_LOGIC_VECTOR(11 DOWNTO 0); + I_loadShift : IN STD_LOGIC; + I_initAddress : IN STD_LOGIC; + I_incrAddress : IN STD_LOGIC; + I_sel : IN STD_LOGIC_VECTOR(1 DOWNTO 0); + I_initSum : IN STD_LOGIC; + I_loadSum : IN STD_LOGIC; + I_loadOutA : IN STD_LOGIC; + I_loadOutBL : IN STD_LOGIC; + I_loadOutClellan : IN STD_LOGIC; + O_processingDoneA : OUT STD_LOGIC; + O_processingDoneB : OUT STD_LOGIC; + O_processingDoneBL : OUT STD_LOGIC; + O_processingDoneClellan : OUT STD_LOGIC; + O_total : OUT STD_LOGIC_VECTOR(11 DOWNTO 0) ); - -- Low-Pass Filter (Parks-McClellan) (11 coeficientes) - SR_coefLowPass <= ( - to_signed(-13, 8), - to_signed(13, 8), - to_signed(16, 8), - to_signed(21, 8), - to_signed(25, 8), - to_signed(26, 8), - to_signed(25, 8), - to_signed(21, 8), - to_signed(16, 8), - to_signed(13, 8), - to_signed(-13, 8) - ); - - -- Definição do número de coeficientes para cada filtro - process (I_filterStage) - begin - case I_filterStage is - when 0 => SC_maxAddress <= 128; -- Baseline (129 coeficientes) - when 1 => SC_maxAddress <= 100; -- Notch 50Hz (101 coeficientes) - when 2 => SC_maxAddress <= 10; -- Parks-McClellan (11 coeficientes) - when others => SC_maxAddress <= 128; - end case; - end process; - - -- Shift Register para armazenar amostras de entrada - shift : process (I_reset, I_clock) - begin - if I_reset = '1' then - SR_shiftRegister <= (others => (others => '0')); - elsif rising_edge(I_clock) then - if I_loadShift = '1' then - -- Shift das amostras - for i in SC_maxAddress downto 1 loop - SR_shiftRegister(i) <= SR_shiftRegister(i-1); - end loop; - SR_shiftRegister(0) <= signed(I_inputSample); - end if; - end if; - end process shift; - - -- Incremento do endereço de leitura para os coeficientes - incr_address : process (I_reset, I_clock) - begin - if I_reset = '1' then - SR_readAddress <= 0; - elsif rising_edge(I_clock) then - if I_initAddress = '1' then +END ENTITY operativeUnit; + +ARCHITECTURE arch_operativeUnit OF operativeUnit IS + TYPE registerFileA IS ARRAY(0 TO 1) OF signed(11 DOWNTO 0); + SIGNAL SR_coefRegisterA : registerFileA; + SIGNAL SR_2A : registerFileA; + + TYPE registerFileB IS ARRAY(0 TO 2) OF signed(11 DOWNTO 0); + SIGNAL SR_coefRegisterB : registerFileB; + SIGNAL SR_2 : registerFileB; + + TYPE registerFileBL IS ARRAY(0 TO 94) OF signed(11 DOWNTO 0); + SIGNAL SR_coefRegisterBL : registerFileBL; + SIGNAL SR_1 : registerFileBL; + + TYPE registerFileClellan IS ARRAY(0 TO 10) OF signed(11 DOWNTO 0); + SIGNAL SR_coefRegisterClellan : registerFileClellan; + SIGNAL SR_3 : registerFileClellan; + + SIGNAL SC_multOperand1 : signed(11 DOWNTO 0); + SIGNAL SC_multOperand2 : signed(11 DOWNTO 0); + SIGNAL SC_MultResult : signed(23 DOWNTO 0); + SIGNAL SC_addResult : signed(30 DOWNTO 0); + SIGNAL SR_sum : signed(30 DOWNTO 0); + SIGNAL SR_Y : signed(11 DOWNTO 0); + SIGNAL SR_readAddress : INTEGER RANGE 0 TO 94; + +BEGIN + SR_coefRegisterA <= (to_signed(1554, 12), + to_signed(-897, 12) + ); + + SR_coefRegisterB <= (to_signed(961, 12), + to_signed(-1554, 12), + to_signed(961, 12) + ); + + SR_coefRegisterBL <= (to_signed(-1, 12), + to_signed(-1, 12), + to_signed(-1, 12), + to_signed(-1, 12), + to_signed(-1, 12), + to_signed(-1, 12), + to_signed(-2, 12), + to_signed(-2, 12), + to_signed(-2, 12), + to_signed(-3, 12), + to_signed(-3, 12), + to_signed(-3, 12), + to_signed(-4, 12), + to_signed(-4, 12), + to_signed(-5, 12), + to_signed(-5, 12), + to_signed(-6, 12), + to_signed(-6, 12), + to_signed(-7, 12), + to_signed(-7, 12), + to_signed(-8, 12), + to_signed(-8, 12), + to_signed(-9, 12), + to_signed(-10, 12), + to_signed(-10, 12), + to_signed(-11, 12), + to_signed(-11, 12), + to_signed(-12, 12), + to_signed(-13, 12), + to_signed(-13, 12), + to_signed(-14, 12), + to_signed(-14, 12), + to_signed(-15, 12), + to_signed(-15, 12), + to_signed(-16, 12), + to_signed(-16, 12), + to_signed(-17, 12), + to_signed(-17, 12), + to_signed(-18, 12), + to_signed(-18, 12), + to_signed(-18, 12), + to_signed(-19, 12), + to_signed(-19, 12), + to_signed(-19, 12), + to_signed(-19, 12), + to_signed(-19, 12), + to_signed(-19, 12), + to_signed(1004, 12), + to_signed(-19, 12), + to_signed(-19, 12), + to_signed(-19, 12), + to_signed(-19, 12), + to_signed(-19, 12), + to_signed(-19, 12), + to_signed(-18, 12), + to_signed(-18, 12), + to_signed(-18, 12), + to_signed(-17, 12), + to_signed(-17, 12), + to_signed(-16, 12), + to_signed(-16, 12), + to_signed(-15, 12), + to_signed(-15, 12), + to_signed(-14, 12), + to_signed(-14, 12), + to_signed(-13, 12), + to_signed(-13, 12), + to_signed(-12, 12), + to_signed(-11, 12), + to_signed(-11, 12), + to_signed(-10, 12), + to_signed(-10, 12), + to_signed(-9, 12), + to_signed(-8, 12), + to_signed(-8, 12), + to_signed(-7, 12), + to_signed(-7, 12), + to_signed(-6, 12), + to_signed(-6, 12), + to_signed(-5, 12), + to_signed(-5, 12), + to_signed(-4, 12), + to_signed(-4, 12), + to_signed(-3, 12), + to_signed(-3, 12), + to_signed(-3, 12), + to_signed(-2, 12), + to_signed(-2, 12), + to_signed(-2, 12), + to_signed(-1, 12), + to_signed(-1, 12), + to_signed(-1, 12), + to_signed(-1, 12), + to_signed(-1, 12), + to_signed(-1, 12) + ); + + SR_coefRegisterClellan <= (to_signed(-119, 12), + to_signed(122, 12), + to_signed(149, 12), + to_signed(191, 12), + to_signed(226, 12), + to_signed(239, 12), + to_signed(226, 12), + to_signed(191, 12), + to_signed(149, 12), + to_signed(122, 12), + to_signed(-119, 12) + ); + + shift : PROCESS (I_reset, I_clock) IS + BEGIN + IF I_reset = '1' THEN + SR_1 <= (OTHERS => (OTHERS => '0')); + + ELSIF rising_edge(I_clock) THEN + IF I_loadShift = '1' THEN + IF I_sel = "00" THEN + SR_1(1 TO 94) <= SR_1(0 TO 93); + SR_1(0) <= signed(I_inputSample); + END IF; + END IF; + END IF; + END PROCESS shift; + + incr_address : PROCESS (I_reset, I_clock) IS + BEGIN + IF I_reset = '1' THEN SR_readAddress <= 0; - elsif I_incrAddress = '1' then - if SR_readAddress < SC_maxAddress then - SR_readAddress <= SR_readAddress + 1; - end if; - end if; - end if; - end process incr_address; - - -- Indicação de processamento concluÃdo - O_processingDone <= '1' when SR_readAddress >= SC_maxAddress else '0'; - - -- Multiplicação e acumulação - process (I_filterStage, SR_readAddress) - begin - case I_filterStage is - when 0 => - SC_multOperand1 <= SR_coefBaseline(SR_readAddress); - when 1 => - SC_multOperand1 <= SR_coefNotch50Hz(SR_readAddress); - when 2 => - SC_multOperand1 <= SR_coefLowPass(SR_readAddress); - when others => - SC_multOperand1 <= (others => '0'); - end case; - end process; - - SC_multOperand2 <= SR_shiftRegister(SR_readAddress); - SC_MultResult <= SC_multOperand1 * SC_multOperand2; - SC_addResult <= resize(SC_MultResult, SC_addResult'length) + SR_sum; - - -- Acumulador de soma (MAC) - sum_acc : process (I_reset, I_clock) - begin - if I_reset = '1' then - SR_sum <= (others => '0'); - elsif rising_edge(I_clock) then - if I_initSum = '1' then - SR_sum <= (others => '0'); - elsif I_loadSum = '1' then + + ELSIF rising_edge(I_clock) THEN + IF I_sel = "00" THEN + IF I_initAddress = '1' THEN + SR_readAddress <= 0; + ELSIF I_incrAddress = '1' THEN + IF SR_readAddress = 94 THEN + SR_readAddress <= 0; + ELSE + SR_readAddress <= SR_readAddress + 1; + END IF; + END IF; + + -- Process B + ELSIF I_sel = "01" THEN + IF I_initAddress = '1' THEN + SR_readAddress <= 0; + ELSIF I_incrAddress = '1' THEN + IF SR_readAddress = 2 THEN + SR_readAddress <= 0; + ELSE + SR_readAddress <= SR_readAddress + 1; + END IF; + END IF; + + -- Process A + ELSIF I_sel = "10" THEN + IF I_initAddress = '1' THEN + SR_readAddress <= 0; + ELSIF I_incrAddress = '1' THEN + IF SR_readAddress = 1 THEN + SR_readAddress <= 0; + ELSE + SR_readAddress <= SR_readAddress + 1; + END IF; + END IF; + + -- Process Clellan + ELSIF I_sel = "11" THEN + IF I_initAddress = '1' THEN + SR_readAddress <= 0; + ELSIF I_incrAddress = '1' THEN + IF SR_readAddress = 10 THEN + SR_readAddress <= 0; + ELSE + SR_readAddress <= SR_readAddress + 1; + END IF; + END IF; + END IF; + END IF; + + END PROCESS incr_address; + + mux_operands : PROCESS (SR_readAddress, I_sel, SR_1, SR_coefRegisterBL, + SR_3, SR_coefRegisterClellan, SR_2, + SR_coefRegisterB, SR_2A, SR_coefRegisterA) IS + BEGIN + IF I_sel = "00" THEN + SC_multOperand1 <= SR_1(SR_readAddress); + SC_multOperand2 <= SR_coefRegisterBL(SR_readAddress); + + IF SR_readAddress = 94 THEN + O_processingDoneBL <= '1'; + O_processingDoneA <= '0'; + O_processingDoneB <= '0'; + O_processingDoneClellan <= '0'; + ELSE + O_processingDoneA <= '0'; + O_processingDoneB <= '0'; + O_processingDoneBL <= '0'; + O_processingDoneClellan <= '0'; + END IF; + + ELSIF I_sel = "01" THEN + SC_multOperand1 <= SR_2(SR_readAddress); + SC_multOperand2 <= SR_coefRegisterB(SR_readAddress); + + IF SR_readAddress = 2 THEN + O_processingDoneB <= '1'; + O_processingDoneA <= '0'; + O_processingDoneBL <= '0'; + O_processingDoneClellan <= '0'; + ELSE + O_processingDoneA <= '0'; + O_processingDoneB <= '0'; + O_processingDoneBL <= '0'; + O_processingDoneClellan <= '0'; + END IF; + + ELSIF I_sel = "10" THEN + SC_multOperand1 <= SR_2A(SR_readAddress); + SC_multOperand2 <= SR_coefRegisterA(SR_readAddress); + + IF SR_readAddress = 0 THEN + O_processingDoneA <= '1'; + O_processingDoneB <= '0'; + O_processingDoneBL <= '0'; + O_processingDoneClellan <= '0'; + ELSE + O_processingDoneA <= '0'; + O_processingDoneB <= '0'; + O_processingDoneBL <= '0'; + O_processingDoneClellan <= '0'; + END IF; + + ELSIF I_sel = "11" THEN + SC_multOperand1 <= SR_3(SR_readAddress); + SC_multOperand2 <= SR_coefRegisterClellan(SR_readAddress); + + IF SR_readAddress = 10 THEN + O_processingDoneClellan <= '1'; + O_processingDoneB <= '0'; + O_processingDoneA <= '0'; + O_processingDoneBL <= '0'; + ELSE + O_processingDoneA <= '0'; + O_processingDoneB <= '0'; + O_processingDoneBL <= '0'; + O_processingDoneClellan <= '0'; + END IF; + END IF; + END PROCESS mux_operands; + + SC_MultResult <= SC_multOperand1 * SC_multOperand2; + SC_addResult <= resize(SC_MultResult, SC_addResult'length) + SR_sum; + + sum_acc : PROCESS (I_reset, I_clock) IS + BEGIN + IF I_reset = '1' THEN + SR_sum <= (OTHERS => '0'); + + ELSIF rising_edge(I_clock) THEN + IF I_initSum = '1' THEN + SR_sum <= (OTHERS => '0'); + ELSIF I_loadSum = '1' THEN SR_sum <= SC_addResult; - end if; - end if; - end process sum_acc; - - -- Armazenamento do resultado final - store_result : process (I_reset, I_clock) - begin - if I_reset = '1' then - SR_Y <= (others => '0'); - elsif rising_edge(I_clock) then - if I_loadY = '1' then - if SC_addResult(6) = '1' then - SR_Y <= SC_addResult(14 downto 7) + 1; - else - SR_Y <= SC_addResult(14 downto 7); - end if; - end if; - end if; - end process store_result; - - -- SaÃda final do filtro - O_Y <= std_logic_vector(SR_Y); - -end architecture arch_operativeUnit; + END IF; + + END IF; + END PROCESS sum_acc; + + store_result : PROCESS (I_reset, I_clock) IS + BEGIN + IF I_reset = '1' THEN + SR_Y <= (OTHERS => '0'); + SR_2A <= (OTHERS => (OTHERS => '0')); + SR_2 <= (OTHERS => (OTHERS => '0')); + SR_3 <= (OTHERS => (OTHERS => '0')); + + ELSIF rising_edge(I_clock) THEN + IF I_loadOutBL = '1' THEN + IF SC_addResult(9) = '1' THEN + SR_2(1 TO 2) <= SR_2(0 TO 1); + SR_2(0) <= signed(SC_addResult(21 DOWNTO 10) + 1); + ELSE + SR_2(1 TO 2) <= SR_2(0 TO 1); + SR_2(0) <= signed(SC_addResult(21 DOWNTO 10) + 1); + END IF; + + ELSIF I_loadOutA = '1' THEN + IF SC_addResult(9) = '1' THEN + SR_3(1 TO 10) <= SR_3(0 TO 9); + SR_3(0) <= signed(SC_addResult(21 DOWNTO 10) + 1); + SR_2A(0) <= signed(SC_addResult(21 DOWNTO 10) + 1); + ELSE + SR_3(1 TO 10) <= SR_3(0 TO 9); + SR_3(0) <= signed(SC_addResult(21 DOWNTO 10)); + SR_2A(0) <= signed(SC_addResult(21 DOWNTO 10)); + END IF; + SR_2A(1) <= SR_2A(0); + ELSIF I_loadOutClellan = '1' THEN + IF SC_addResult(9) = '1' THEN + SR_Y <= SC_addResult(21 DOWNTO 10) + 1; + ELSE + SR_Y <= SC_addResult(21 DOWNTO 10); + END IF; + END IF; + END IF; + END PROCESS store_result; + + O_total <= STD_LOGIC_VECTOR(SR_Y); + +END ARCHITECTURE arch_operativeUnit; \ No newline at end of file diff --git a/src/hdl/tb_firUnit.vhd b/src/hdl/tb_firUnit.vhd index cea8698b638c501630064519112a1b10aa4b01d9..6d885f75c8f82eb0bc5944888fba605bdbd9a620 100644 --- a/src/hdl/tb_firUnit.vhd +++ b/src/hdl/tb_firUnit.vhd @@ -33,17 +33,17 @@ architecture archi_tb_firUnit of tb_firUnit is port ( I_clock : in std_logic; I_reset : in std_logic; - I_inputSample : in std_logic_vector(7 downto 0); + I_inputSample : in std_logic_vector(11 downto 0); I_inputSampleValid : in std_logic; - O_filteredSample : out std_logic_vector(7 downto 0); + O_filteredSample : out std_logic_vector(11 downto 0); O_filteredSampleValid : out std_logic); end component firUnit; signal SC_clock : std_logic := '0'; signal SC_reset : std_logic; - signal SC_inputSample : std_logic_vector(7 downto 0); + signal SC_inputSample : std_logic_vector(11 downto 0); signal SC_inputSampleValid : std_logic:='0'; - signal SC_filteredSample : std_logic_vector(7 downto 0); + signal SC_filteredSample : std_logic_vector(11 downto 0); signal SC_filteredSampleValid : std_logic; begin @@ -52,41 +52,21 @@ begin SC_reset <= '0', '1' after 19 ns, '0' after 57 ns; -- Sample period = 20 clk period - SC_inputSampleValid <= '0', - '1' after 401 ns, - '0' after 501 ns, - '1' after 3601 ns, - '0' after 3701 ns, - '1' after 6201 ns, - '0' after 6301 ns, - '1' after 9401 ns, - '0' after 9501 ns, - '1' after 12601 ns, - '0' after 12701 ns, - '1' after 15801 ns, - '0' after 15901 ns, - '1' after 18001 ns, - '0' after 18101 ns, - '1' after 21201 ns, - '0' after 21301 ns, - '1' after 24401 ns, - '0' after 24501 ns, - '1' after 27601 ns, - '0' after 27701 ns; + SC_inputSampleValid <= not SC_inputSampleValid after 1000 ns; -- Null signal followed by a Dirac and then an arbitrary sequence - SC_inputSample <= "00000000", - "01111111" after 401 ns, - "00000000" after 3601 ns, - "00100100" after 6201 ns, - "01100100" after 9401 ns, - "10100010" after 12601 ns, - "11011011" after 15801 ns, - "00001011" after 18001 ns, - "10000000" after 21201 ns, - "01111111" after 24401 ns, - "10111010" after 27601 ns; - + SC_inputSample <= "000000000000", + "001111111111" after 3001 ns, + "000000000000" after 5001 ns, + "000000100100" after 7001 ns, + "000001100100" after 9001 ns, + "000010100010" after 11001 ns, + "000011011011" after 13001 ns, + "000000001011" after 14001 ns, + "000010000000" after 15001 ns, + "000011111111" after 16001 ns, + "000010111010" after 18001 ns; + -- the filter output on 8 bits is a sequence of signed numbers (with the assumption -- of rounding the output, so the accuracy can be slightly different depending