From c86c47f278168b27e0027f78b31b1d2362443958 Mon Sep 17 00:00:00 2001 From: Ahmed ABOULKACEM <a23aboul@fl-tp-br-104.imta.fr> Date: Tue, 25 Mar 2025 17:57:14 +0100 Subject: [PATCH] erratum 25 mars Ahmed --- proj/proj.xpr | 4 +- src/hdl/ecgUnit.vhd | 111 +++++++++++++++++++++++++++++++++++++++++++ src/hdl/ecgUnit.vhdl | 0 3 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 src/hdl/ecgUnit.vhd delete mode 100644 src/hdl/ecgUnit.vhdl diff --git a/proj/proj.xpr b/proj/proj.xpr index 57a5670..d4b890f 100644 --- a/proj/proj.xpr +++ b/proj/proj.xpr @@ -103,10 +103,8 @@ <Attr Name="UsedIn" Val="simulation"/> </FileInfo> </File> - <File Path="$PSRCDIR/sources_1/imports/hdl/ecgUnit.vhdl"> + <File Path="$PPRDIR/../src/hdl/ecgUnit.vhd"> <FileInfo> - <Attr Name="ImportPath" Val="$PPRDIR/../src/hdl/ecgUnit.vhdl"/> - <Attr Name="ImportTime" Val="1742920067"/> <Attr Name="UsedIn" Val="synthesis"/> <Attr Name="UsedIn" Val="simulation"/> </FileInfo> diff --git a/src/hdl/ecgUnit.vhd b/src/hdl/ecgUnit.vhd new file mode 100644 index 0000000..c6f723c --- /dev/null +++ b/src/hdl/ecgUnit.vhd @@ -0,0 +1,111 @@ +------------------------------------------------------------------------------- +-- Title : ecgUnit +-- Project : +------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity ecgUnit is + + port ( + I_clock : in std_logic; -- global clock + I_reset : in std_logic; -- asynchronous global reset + I_inputSample : in std_logic_vector(7 downto 0); -- 8 bit input sample + I_inputSampleValid : in std_logic; + O_filteredSample : out std_logic_vector(7 downto 0); -- filtered sample + O_filteredSampleValid : out std_logic + ); + +end entity ecgUnit; + +architecture archi_ecgUnit of ecgUnit is + + component controlUnit is + port ( + I_clock : in std_logic; -- global clock + I_reset : in std_logic; -- asynchronous global reset + I_inputSampleValid : in std_logic; -- Control signal to load the input sample in the sample shift register and shift the register + I_processingDone : in std_logic; + O_loadShift1 : out std_logic; -- filtered sample + O_loadShift2 : out std_logic; -- filtered sample + O_loadShift3 : out std_logic; -- filtered sample + O_initAddress : out std_logic; -- Control signal to initialize register read address + O_incrAddress : out std_logic; -- Control signal to increment register read address + O_initSum : out std_logic; -- Control signal to initialize the MAC register + O_cntrMux : out std_logic_vector(1 downto 0); + O_loadSum : out std_logic; -- Control signal to load the MAC register; + O_loadY : out std_logic; -- Control signal to load Y register + O_FilteredSampleValid : out std_logic -- Data valid signal for filtered sample + ); + end component controlUnit; + + component operativeUnit is + port ( + I_clock : in std_logic; -- global clock + I_reset : in std_logic; -- asynchronous global reset + I_inputSample : in std_logic_vector(7 downto 0); -- 8 bit input sample + I_loadShift1 : in std_logic; -- Control signal to load the input sample in the sample shift register and shift the register + I_loadShift2 : in std_logic; + I_loadShift3 : in std_logic; + I_initAddress : in std_logic; -- Control signal to initialize register read address + I_incrAddress : in std_logic; -- Control signal to increment register read address + I_initSum : in std_logic; -- Control signal to initialize the MAC register + I_loadSum : in std_logic; -- Control signal to load the MAC register; + I_cntrMux : in std_logic_vector(1 downto 0); + I_loadY : in std_logic; -- Control signal to load Y register + O_processingDone : out std_logic; -- Indicate that processing is done + O_Y : out std_logic_vector(7 downto 0) -- filtered sample + ); + end component operativeUnit; + + signal SC_processingDone : std_logic; + signal SC_loadShift1 : std_logic; + signal SC_loadShift2 : std_logic; + signal SC_loadShift3 : std_logic; + signal SC_initAddress : std_logic; + signal SC_incrAddress : std_logic; + signal SC_initSum : std_logic; + signal SC_cntrMux : std_logic_vector(1 downto 0); + signal SC_loadSum : std_logic; + signal SC_loadY : std_logic; + +begin + + controlUnit_1 : entity work.controlUnit + port map ( + I_clock => I_clock, + I_reset => I_reset, + I_inputSampleValid => I_inputSampleValid, + I_processingDone => SC_processingDone, + O_loadShift1 => SC_loadShift1, + O_loadShift2 => SC_loadShift2, + O_loadShift3 => SC_loadShift3, + O_initAddress => SC_initAddress, + O_incrAddress => SC_incrAddress, + O_initSum => SC_initSum, + O_cntrMux => SC_cntrMux, + O_loadSum => SC_loadSum, + O_loadY => SC_loadY, + O_FilteredSampleValid => O_FilteredSampleValid); + + operativeUnit_1 : entity work.operativeUnit + port map ( + I_clock => I_clock, + I_reset => I_reset, + I_inputSample => I_inputSample, + I_loadShift1 => SC_loadShift1, + I_loadShift2 => SC_loadShift2, + I_loadShift3 => SC_loadShift3, + I_initAddress => SC_initAddress, + I_incrAddress => SC_incrAddress, + I_initSum => SC_initSum, + I_cntrMux => SC_cntrMux, + I_loadSum => SC_loadSum, + I_loadY => SC_loadY, + O_processingDone => SC_processingDone, + O_Y => O_filteredSample); + + +end architecture archi_ecgUnit; diff --git a/src/hdl/ecgUnit.vhdl b/src/hdl/ecgUnit.vhdl deleted file mode 100644 index e69de29..0000000 -- GitLab