diff --git a/ModNEF_Sources/modules/uart/uart_1step.vhd b/ModNEF_Sources/modules/uart/uart_1step.vhd
deleted file mode 100644
index 50ecbe828baaa98cfa3d61176d11c04d9a3b0244..0000000000000000000000000000000000000000
--- a/ModNEF_Sources/modules/uart/uart_1step.vhd
+++ /dev/null
@@ -1,390 +0,0 @@
-----------------------------------------------------------------------------------
---
--- Project : ModNEF
--- Component name : uart_1step
--- Depencies : uart_controller
---
--- Authors : Aurelie Saulquin
--- Email : aurelie.saulquin@univ-lille.fr
---
--- Version : 1.0
--- Version comment : stable version 
---
--- Licenses : cern-ohl-s-2.0
---
--- Description : 
--- UART component where one data transmission is use for one emulation step
--- Component will receive data, send all data to network and receive data 
--- from network and transmit it to computer
--- 
-----------------------------------------------------------------------------------
-
-library IEEE;
-use IEEE.std_logic_1164.all;
-use work.math.all;
-
-entity uart_1Step is
-  generic(
-    clk_freq          : integer := 100_000_000;
-    baud_rate         : integer := 115_200;
-
-    queue_read_depth  : integer := 32;
-    queue_read_type   : string := "fifo";
-
-    queue_write_type  : string := "fifo";
-
-    input_layer_size  : integer := 8;
-    output_layer_size : integer := 8
-  );
-  port (
-    i_clk             : in  std_logic;
-    i_en              : in  std_logic;
-
-    i_tx              : in  std_logic;
-    o_rx              : out std_logic;
-
-    i_emu_ready       : in  std_logic;
-    o_start_emu       : out std_logic;
-    o_reset_membrane  : out std_logic;
-
-    i_req             : in  std_logic;
-    o_ack             : out std_logic;
-    i_emu_busy        : in  std_logic;
-    i_spike_flag      : in  std_logic;
-    i_aer             : in  std_logic_vector(log_b(output_layer_size, 2)-1 downto 0);
-
-    o_req             : out std_logic;
-    i_ack             : in  std_logic;
-    o_emu_busy        : out std_logic;
-    o_spike_flag      : out std_logic;
-    o_aer             : out std_logic_vector(log_b(input_layer_size, 2)-1 downto 0)
-  );
-end uart_1Step;
-
-architecture Behavioral of uart_1Step is
-
-  component uart_controller is
-    generic(
-      clk_freq          : integer := 100_000_000;
-      baud_rate         : integer := 115_200;
-      oversamp_rate     : integer := 16;
-      
-      queue_read_depth  : integer := 64;
-      queue_read_width  : integer := 1;
-      queue_read_type   : string  := "fifo";
-
-      queue_write_depth : integer := 16;
-      queue_write_width : integer := 1;
-      queue_write_type  : string := "fifo"   -- fifo or lifo
-    );
-    port(
-      i_clk                 : in  std_logic;
-      i_en                  : in  std_logic;
-      o_busy                : out std_logic;
-      o_reset_detected      : out std_logic;
-
-      -- UART pins
-      i_tx                  : in  std_logic;
-      o_rx                  : out std_logic;
-      o_uart_busy           : out std_logic;       
-      
-      -- read I/O
-      o_read_data           : out std_logic_vector(queue_read_width*8-1 downto 0);
-      i_read_pop            : in  std_logic;
-      o_read_busy           : out std_logic;
-      o_read_queue_empty    : out std_logic;
-      o_read_queue_full     : out std_logic;
-
-      -- write I/O
-      i_start_transmission  : in  std_logic;
-      i_write_data          : in  std_logic_vector(queue_write_width*8-1 downto 0);
-      i_write_push          : in  std_logic;
-      o_write_busy          : out std_logic;
-      o_write_queue_empty   : out std_logic;
-      o_write_queue_full    : out std_logic
-        
-    );
-  end component;
-  
-  -- type definition
-  type emu_state_t              is (idle, wait_data, check_emu, emulate, wait_out_aer, send_aer, wait_transmission);
-  type uart_to_network_state_t  is (idle, check_emu, request, accept, transfert);
-  type network_to_uart_state_t  is (idle, wait_request, accept, wait_aer);
-
-  -- queue constant definition
-  --constant queue_read_depth : integer := 255;
-  constant queue_read_width : integer := log_b(queue_read_depth, 256);
-
-  constant queue_write_depth : integer := output_layer_size;
-  constant queue_write_width : integer := log_b(output_layer_size, 256);
-
-  -- read queue signals
-  signal read_data  : std_logic_vector(queue_read_width*8-1 downto 0) := (others=>'0');
-  signal read_pop   : std_logic := '0';
-  signal read_busy  : std_logic;
-  signal read_empty : std_logic;
-
-  -- write queue signals
-  signal write_data : std_logic_vector(queue_write_width*8-1 downto 0) := (others=>'0');
-  signal write_push : std_logic := '0';
-  signal write_busy : std_logic;
-  
-  -- uart signals
-  signal start_uart_transmission : std_logic := '0';
-
-  -- emulation signals
-  signal emu_state : emu_state_t := idle;
-  signal start_emu : std_logic;
-
-  -- membrane reset signals
-  signal reset_detected       : std_logic := '0';
-  signal reset_membrane       : std_logic := '0';
-
-  -- uart to network signals
-  signal uart_to_network_state  : uart_to_network_state_t := idle; 
-  signal uart_to_network_busy   : std_logic := '0';
-
-  -- network to uart signals
-  signal network_to_uart_state  : network_to_uart_state_t := idle;
-  signal network_to_uart_busy   : std_logic := '0';
-
-begin
-
-  o_start_emu <= start_emu;
-
-  o_reset_membrane <= reset_membrane;
-
-  -- controller FSM
-  process(i_clk, i_en)
-  begin
-    if rising_edge(i_clk) then
-      if i_en = '0' then
-        emu_state <= idle;
-        start_emu <= '0';
-        start_uart_transmission <= '0';
-      else
-        case emu_state is
-          when idle => 
-            start_emu <= '0';
-            start_uart_transmission <= '0';
-            reset_membrane <= '0';
-            if read_busy = '1' then
-              emu_state <= wait_data;
-            else
-              emu_state <= idle;
-            end if;
-
-          when wait_data =>
-            if read_busy = '0' then
-              emu_state <= check_emu;
-            else
-              emu_state <= wait_data;
-            end if;
-
-          when check_emu =>
-            if i_emu_ready = '1' then
-              emu_state <= emulate;
-              start_emu <= '1';
-            else
-              emu_state <= check_emu;
-            end if;
-
-          when emulate =>
-            start_emu <= '0';
-            if network_to_uart_busy = '1' then
-              emu_state <= wait_out_aer;
-            else
-              emu_state <= emulate;
-            end if;
-
-          when wait_out_aer =>
-            if i_emu_ready = '1' then
-              emu_state <= send_aer;
-              start_uart_transmission <= '1';
-              reset_membrane <= reset_detected;
-            else
-              emu_state <= wait_out_aer;
-            end if;
-
-          when send_aer =>
-            start_uart_transmission <= '0';
-            reset_membrane <= '0';
-            if  write_busy = '1' then
-              emu_state <= wait_transmission;
-            else
-              emu_state <= send_aer;
-            end if;
-
-          when wait_transmission =>
-            if write_busy = '0' then
-              emu_state <= idle;
-            else
-              emu_state <= wait_transmission;
-            end if;
-        end case;
-      end if;
-    end if;
-  end process;
-
-  -- Controller to network FSM
-  o_aer <= read_data(log_b(input_layer_size, 2)-1 downto 0) when uart_to_network_state = transfert else (others=>'0');
-  process(i_clk, i_en)
-  begin
-    if rising_edge(i_clk) then
-      if i_en = '0' then
-        o_req <= '0';
-        o_spike_flag <= '0';
-        o_emu_busy <= '0';
-        read_pop <= '0';
-        uart_to_network_busy <= '0';
-        uart_to_network_state <= idle;
-      else
-        case uart_to_network_state is
-          when idle =>
-            o_req <= '0';
-            o_spike_flag <= '0';
-            read_pop <= '0';
-            if start_emu = '1' then
-              uart_to_network_state <= check_emu;
-              o_emu_busy <= '1';
-              uart_to_network_busy <= '1';
-            else
-              uart_to_network_state <= idle;
-              o_emu_busy <= '0';
-              uart_to_network_busy <= '0';
-            end if;
-
-          when check_emu =>
-            if read_empty = '1' then
-              uart_to_network_state <= idle;
-              o_emu_busy <= '0';
-              uart_to_network_busy <= '0';
-            else
-              uart_to_network_state <= request;
-              o_req <= '1';
-            end if;
-
-          when request =>
-            if i_ack = '1' then
-              uart_to_network_state <= accept;
-              o_req <= '0';
-            else
-              uart_to_network_state <= request;
-              o_req <= '1';
-            end if;
-
-          when accept =>
-            if i_ack = '0' then
-              uart_to_network_state <= transfert;
-              read_pop <= '1';
-            else
-              uart_to_network_state <= accept;
-            end if;
-
-          when transfert =>
-            if read_empty = '1' then
-              uart_to_network_state <= idle;
-              o_emu_busy <= '0';
-              read_pop <= '0';
-              o_spike_flag <= '0';
-              uart_to_network_busy <= '0';
-            else
-              uart_to_network_state <= transfert;
-              read_pop <= '1';
-              o_spike_flag <= '1';
-            end if;
-        end case;
-      end if;
-    end if;
-  end process;
-  
-
-  write_data(log_b(output_layer_size, 2)-1 downto 0) <= i_aer when network_to_uart_state = wait_aer else (others=>'0');
-  write_push <= i_spike_flag when network_to_uart_state = wait_aer else '0';
-
-  -- Network to Controller FSM
-  process(i_clk, i_en)
-  begin
-    if i_en = '0' then
-      network_to_uart_state <= idle;
-      network_to_uart_busy <= '0';
-      o_ack <= '0';
-    else
-      if rising_edge(i_clk) then
-        case network_to_uart_state is
-          when idle =>
-            o_ack <= '0';
-            if i_emu_busy = '1' then
-              network_to_uart_state <= wait_request;
-              network_to_uart_busy <= '1';
-            else
-              network_to_uart_state <= idle;
-              network_to_uart_busy <= '0';
-            end if;
-
-          when wait_request =>
-            if i_emu_busy = '0' then
-              network_to_uart_state <= idle;
-              network_to_uart_busy <= '0';
-            elsif i_req = '1' then
-              o_ack <= '1';
-              network_to_uart_state <= accept;
-            else
-              network_to_uart_state <= wait_request;
-            end if;
-
-          when accept =>
-            if i_req = '0' then
-              network_to_uart_state <= wait_aer;
-              o_ack <= '0';
-            else
-              network_to_uart_state <= accept;
-              o_ack <= '1';
-            end if;
-
-          when wait_aer => 
-            if i_emu_busy = '0' then
-              network_to_uart_state <= idle;
-              network_to_uart_busy <= '0';
-            else 
-              network_to_uart_state <= wait_aer;
-            end if;
-        end case;
-      end if;
-    end if;
-  end process;
-
-  c_uart_controller : uart_controller generic map(
-    clk_freq => clk_freq,
-    baud_rate => baud_rate,
-    oversamp_rate => 16,
-
-    queue_read_depth => queue_read_depth,
-    queue_read_width => queue_read_width,
-    queue_read_type => queue_read_type,
-
-    queue_write_depth => queue_write_depth,
-    queue_write_width => queue_write_width,
-    queue_write_type => queue_write_type
-  ) port map(
-    i_clk => i_clk,
-    i_en => i_en,
-    o_busy => open,
-    o_reset_detected => reset_detected,
-    i_tx => i_tx,
-    o_rx => o_rx,
-    o_uart_busy => open,
-    o_read_data => read_data,
-    i_read_pop => read_pop,
-    o_read_busy => read_busy,
-    o_read_queue_empty => read_empty,
-    o_read_queue_full => open,
-    i_start_transmission => start_uart_transmission,
-    i_write_data => write_data,
-    i_write_push => write_push,
-    o_write_busy => write_busy,
-    o_write_queue_empty => open,
-    o_write_queue_full => open
-  );
-
-end Behavioral;
diff --git a/modneflib/modnef/arch_builder/modules/UART/uart_1step.py b/modneflib/modnef/arch_builder/modules/UART/uart_1step.py
deleted file mode 100644
index 8fca341159282e2fb727e8025a2cde2f7b33fbc4..0000000000000000000000000000000000000000
--- a/modneflib/modnef/arch_builder/modules/UART/uart_1step.py
+++ /dev/null
@@ -1,242 +0,0 @@
-"""
-File name: uart_1step
-Author: Aurélie Saulquin  
-Version: 2.0.0
-License: GPL-3.0-or-later
-Contact: aurelie.saulquin@univ-lille.fr
-Dependencies: io_arch, yaml
-Descriptions: UART_1Step ModNEF archbuilder module
-"""
-
-from ..io_arch import IOArch
-import yaml
-
-_UART_1STEP_DEFINITION = """
-  component uart_1Step is
-    generic(
-      clk_freq          : integer := 100_000_000;
-      baud_rate         : integer := 115_200;
-
-      queue_read_depth  : integer := 32;
-      queue_read_type   : string  := "fifo";
-
-      queue_write_type  : string  := "fifo";
-
-      input_layer_size  : integer := 8;
-      output_layer_size : integer := 8
-    );
-    port(
-      i_clk             : in  std_logic;
-      i_en              : in  std_logic;
-
-      i_tx              : in  std_logic;
-      o_rx              : out std_logic;
-
-      i_emu_ready       : in  std_logic;
-      o_start_emu       : out std_logic;
-      o_reset_membrane  : out std_logic;
-
-      i_req             : in  std_logic;
-      o_ack             : out std_logic;
-      i_emu_busy        : in  std_logic;
-      i_spike_flag      : in  std_logic;
-      i_aer             : in  std_logic_vector(log_b(output_layer_size, 2)-1 downto 0);
-
-      o_req             : out std_logic;
-      i_ack             : in  std_logic;
-      o_emu_busy        : out std_logic;
-      o_spike_flag      : out std_logic;
-      o_aer             : out std_logic_vector(log_b(input_layer_size, 2)-1 downto 0)
-    );
-  end component;
-"""
-
-class Uart_1Step(IOArch):
-  """
-  Uart_1Step module class
-  Each UART transmission correspond to an emulation step
-
-  Attributes
-  ----------
-  name : str
-    name of module
-  input_layer_size : int
-    size in neurons of input layer
-  output_layer_size : int
-    size in neurons of output layer
-  clk_freq : int
-    board clock frequency
-  baud_rate : int
-    data baud rate
-  queue_read_type : int
-    type of reaad queue
-  queue_write_type : int
-    type of write queue
-  tx_name : str
-    name of tx signal
-  rx_name : str
-    name of rx signal
-
-  Methods
-  -------
-  vhdl_component_name()
-    return component name
-  vhdl_component_definition()
-    return vhdl component definition
-  to_vhdl(vhdl_file, pred, suc, clock_name):
-    write vhdl component instanciation 
-  to_yaml(file):
-    generate yaml configuration file for driver
-  write_io(vhdl_file):
-    write signals into entity definition section
-  """
-
-  def __init__(self, 
-               name: str,
-               input_layer_size: int, 
-               output_layer_size: int,
-               clk_freq: int, 
-               baud_rate: int, 
-               tx_name: str, 
-               rx_name: str, 
-               queue_read_depth : int,
-               queue_read_type: str = "fifo", 
-               queue_write_type: str = "fifo"
-              ):
-    """
-    Initialize attributes
-
-    Parameters
-    ----------
-    name : str
-      name of module
-    clk_freq : int
-      board clock frequency
-    baud_rate : int
-      data baud rate
-    tx_name : str
-      name of tx signal
-    rx_name : str
-      name of rx signal
-    input_layer_size : int = -1
-      size in neurons of input layer
-    output_layer_size : int = -1
-      size in neurons of output layer
-    queue_read_type : str = "fifo"
-      read queue type : "fifo" or "lifo"
-    queue_write_type : str = "fifo"
-      write queue type : "fifo" or "lifo"
-    """
-
-    self.name = name
-    
-    self.input_neuron = output_layer_size
-    self.output_neuron = input_layer_size
-
-    self.input_layer_size = input_layer_size
-    self.output_layer_size = output_layer_size
-
-    self.clk_freq = clk_freq
-    self.baud_rate = baud_rate
-
-    self.queue_read_type = queue_read_type
-    self.queue_read_depth = queue_read_depth
-    self.queue_write_type = queue_write_type
-
-    self.tx_name = tx_name
-    self.rx_name = rx_name
-  
-  def vhdl_component_name(self):
-    """
-    Module identifier use during component definition
-
-    Returns
-    -------
-    str
-    """
-
-    return "Uart_1_Step"
-
-  
-  def vhdl_component_definition(self):
-    """
-    VHDL component definition
-
-    Returns
-    -------
-    str
-    """
-
-    return _UART_1STEP_DEFINITION
-
-  def to_vhdl(self, vhdl_file, pred, suc, clock_name):
-    """
-    Write vhdl componenent 
-
-    Parameters
-    ----------
-    vhdl_file : TextIOWrapper
-      vhdl file 
-    pred : List of ModNEFArchMod 
-      list of predecessor module (1 pred for this module)
-    suc : List of ModNEFArchMod
-      list of successor module (1 suc for this module)
-    clock_name : str
-      clock signal name
-    """
-
-    vhdl_file.write(f"\t{self.name} : uart_1step generic map(\n")
-    vhdl_file.write(f"\t\tclk_freq => {self.clk_freq},\n")
-    vhdl_file.write(f"\t\tbaud_rate => {self.baud_rate},\n")
-    vhdl_file.write(f"\t\tqueue_read_depth => {self.queue_read_depth},\n")
-    vhdl_file.write(f"\t\tqueue_read_type => \"{self.queue_read_type}\",\n")
-    vhdl_file.write(f"\t\tqueue_write_type => \"{self.queue_write_type}\",\n")
-    vhdl_file.write(f"\t\tinput_layer_size => {self.input_layer_size},\n")
-    vhdl_file.write(f"\t\toutput_layer_size => {self.output_layer_size}\n")
-    vhdl_file.write(f"\t) port map(\n")
-    vhdl_file.write(f"\t\ti_clk => {clock_name},\n")
-    vhdl_file.write("\t\ti_en => '1',\n")
-    vhdl_file.write(f"\t\ti_tx => {self.tx_name},\n")
-    vhdl_file.write(f"\t\to_rx => {self.rx_name},\n")
-    vhdl_file.write("\t\ti_emu_ready => emu_ready,\n")
-    vhdl_file.write("\t\to_start_emu => start_emu,\n")
-    vhdl_file.write("\t\to_reset_membrane => reset_membrane,\n")
-    self._write_port_map(vhdl_file, pred[0].name, self.name, "in", "", False)
-    self._write_port_map(vhdl_file, self.name, suc[0].name, "out", "", True)
-    vhdl_file.write("\t);\n")
-  
-  def to_yaml(self, file):
-    """
-    Generate yaml driver description file
-
-    Parameters
-    ----------
-    file : str
-      configuration file name
-    """
-    d = {}
-
-    
-
-    d["module"] = "1Step"
-    d["input_layer_size"] = self.input_layer_size
-    d["output_layer_size"] = self.output_layer_size
-    d["baud_rate"] = self.baud_rate
-    d["queue_read_depth"] = self.queue_read_depth
-    d["queue_write_depth"] = self.output_layer_size
-
-    with open(file, 'w') as f:
-      yaml.dump(d, f)
-
-  def write_io(self, vhdl_file):
-    """
-    Write port IO in entity definition section
-
-    Parameters
-    ----------
-    vhdl_file : TextIOWrapper
-      vhdl file
-    """
-
-    vhdl_file.write(f"\t\t{self.tx_name} : in std_logic;\n")
-    vhdl_file.write(f"\t\t{self.rx_name} : out std_logic\n")
diff --git a/modneflib/modnef/modnef_driver/drivers/single_step_driver.py b/modneflib/modnef/modnef_driver/drivers/single_step_driver.py
deleted file mode 100644
index 0feba5e3733e4253d7314b02497c62b89c23a3af..0000000000000000000000000000000000000000
--- a/modneflib/modnef/modnef_driver/drivers/single_step_driver.py
+++ /dev/null
@@ -1,136 +0,0 @@
-"""
-File name: single_step_driver
-Author: Aurélie Saulquin  
-Version: 2.0.0
-License: GPL-3.0-or-later
-Contact: aurelie.saulquin@univ-lille.fr
-Dependencies: default_driver, yaml
-Descriptions: Driver class for UART_1Step uart module
-"""
-
-from .default_driver import default_transformation
-from .default_driver import ModNEF_Driver, ClosedDriverError
-import yaml
-
-class SingleStep_Driver(ModNEF_Driver):
-  """
-  Driver of Uart_SingleStep module
-
-  Attributes
-  ----------
-  board_path : str
-    fpga driver board path
-  baud_rate : int
-    data baud rate
-  input_layer_size : int
-    number of neuron in input layer
-  output_layer_size : int
-    number of neuron in output layer
-  queue_read_depth : int
-    number of word of read queue
-  queue_write_depth : int
-    number of word of write queue
-
-  Methods
-  -------
-  from_yaml(yaml_file, board_path) : classmethod
-    create driver from yaml configuration file
-  run_sample(input_sample, transformation, reset_membrane):
-    run data communication to run a data sample
-  """
-
-  def __init__(self, board_path, baud_rate, input_layer_size, output_layer_size, queue_read_depth, queue_write_depth):
-    """
-    Constructor
-
-    Parameters
-    ----------
-    board_path : str
-      fpga driver board path
-    baud_rate : int
-      data baud rate
-    input_layer_size : int
-      number of neuron in input layer
-    output_layer_size : int
-      number of neuron in output layer
-    queue_read_depth : int
-      number of word of read queue
-    queue_write_depth : int
-      number of word of write queue
-    """
-
-    
-
-    super().__init__(board_path, baud_rate, input_layer_size, output_layer_size, queue_read_depth, queue_write_depth)
-
-  @classmethod
-  def from_yaml(cls, yaml_file, board_path):
-    """
-    classmethod
-
-    create driver from driver configuration file
-
-    Parameters
-    ----------
-    yaml_file : str
-      configuration file
-    board_path : str
-      path to board driver
-    """
-
-    
-    
-    with open(yaml_file, 'r') as f:
-      config = yaml.safe_load(f)
-
-    print("coucou")
-
-    d = cls(board_path = board_path,
-      baud_rate = config["baud_rate"],
-      input_layer_size = config["input_layer_size"],
-      output_layer_size = config["output_layer_size"],
-      queue_read_depth = config["queue_read_depth"],
-      queue_write_depth = config["queue_write_depth"]
-    )
-    return d
-  
-
-  def run_sample(self, input_sample, transformation = default_transformation, reset_membrane=False, extra_step = 0):
-    """
-    Run an entire data sample by using run_step function (for more details see run_step)
-
-    Parameters
-    ----------
-    input_sample : list
-      list of spikes of sample
-    transformation : function
-      function call to tranform input spikes to AER representation
-    reset_membrane : bool
-      set to true if reset voltage membrane after sample transmission
-
-    Returns
-    -------
-    list of list of int:
-      list of list of output AER data for all emulation step
-    """
-
-    if self._is_close:
-      raise ClosedDriverError()
-
-    sample_res = [0 for _ in range(self.output_layer_size)]
-
-    sample_aer = [transformation(s) for s in input_sample]
-
-    for es in range(extra_step):
-      sample_aer.append([])
-
-    for step in range(len(input_sample)):
-      step_spikes = sample_aer[step]      
-      if step == len(input_sample)-1:
-        step_res = self.rust_driver.data_transmission(step_spikes, reset_membrane)
-      else:
-        step_res = self.rust_driver.data_transmission(step_spikes, False)
-      for s in step_res:
-        sample_res[s] += 1
-
-    return sample_res