Index: /branches/reconfiguration/platforms/tsar_generic_iob/top.cpp
===================================================================
--- /branches/reconfiguration/platforms/tsar_generic_iob/top.cpp	(revision 940)
+++ /branches/reconfiguration/platforms/tsar_generic_iob/top.cpp	(revision 941)
@@ -129,4 +129,5 @@
 #include "vci_multi_tty.h"
 #include "vci_multi_nic.h"
+#include "vci_target_error.h"
 #include "vci_simple_rom.h"
 #include "vci_block_device_tsar.h"
@@ -186,4 +187,6 @@
 
 #include "hard_config.h"
+
+#define USE_NIC               0
 
 ////////////////////////////////////////////////////////////
@@ -974,5 +977,7 @@
 
    // Network Controller
+#if USE_NIC
    VciMultiNic<vci_param_ext>*  mnic;
+   int nicMode = VciMultiNic<vci_param_ext>::NIC_MODE_SYNTHESIS;
    mnic = new VciMultiNic<vci_param_ext>( "mnic",
                                           IntTab(0, IOX_MNIC_TGT_ID),
@@ -981,5 +986,23 @@
                                           0,                // mac_4 address
                                           0,                // mac_2 address
-                                          1 );              // NIC_MODE_SYNTHESIS
+                                          nicMode );
+
+   // Chained Buffer DMA controller
+   VciChbufDma<vci_param_ext>*  cdma;
+   cdma = new VciChbufDma<vci_param_ext>( "cdma",
+                                          maptab_iox,
+                                          IntTab(0, CDMA_LOCAL_SRCID),
+                                          IntTab(0, IOX_CDMA_TGT_ID),
+                                          64,          // burst size (bytes)
+                                          2*NB_NIC_CHANNELS );
+#else
+   VciTargetError<vci_param_ext> merror_nic( "merror_nic",
+                                             IntTab(0, IOX_MNIC_TGT_ID),
+                                             maptab_iox );
+
+   VciTargetError<vci_param_ext> merror_dma( "merror_dma",
+                                             IntTab(0, IOX_CDMA_TGT_ID),
+                                             maptab_iox );
+#endif
 
    // Frame Buffer
@@ -1004,12 +1027,4 @@
                                                   0 );        // disk latency
 
-   // Chained Buffer DMA controller
-   VciChbufDma<vci_param_ext>*  cdma;
-   cdma = new VciChbufDma<vci_param_ext>( "cdma",
-                                          maptab_iox,
-                                          IntTab(0, CDMA_LOCAL_SRCID),
-                                          IntTab(0, IOX_CDMA_TGT_ID),
-                                          64,          // burst size (bytes)
-                                          2*NB_NIC_CHANNELS );
    // Multi-TTY controller
    std::vector<std::string> vect_names;
@@ -1252,4 +1267,5 @@
     std::cout << "  - FBUF connected" << std::endl;
 
+#if USE_NIC
     // MNIC connexion
     mnic->p_clk                                          (signal_clk);
@@ -1261,6 +1277,26 @@
          mnic->p_tx_irq[i]                               (signal_irq_mnic_tx[i]);
     }
-
     std::cout << "  - MNIC connected" << std::endl;
+
+    // CDMA connexion
+    cdma->p_clk                                          (signal_clk);
+    cdma->p_resetn                                       (signal_resetn);
+    cdma->p_vci_target                                   (signal_vci_tgt_cdma);
+    cdma->p_vci_initiator                                (signal_vci_ini_cdma);
+    for ( size_t i=0 ; i<(NB_NIC_CHANNELS*2) ; i++)
+    {
+        cdma->p_irq[i]                                   (signal_irq_cdma[i]);
+    }
+    std::cout << "  - CDMA connected" << std::endl;
+
+#else
+    merror_nic.p_clk                                     (signal_clk);
+    merror_nic.p_resetn                                  (signal_resetn);
+    merror_nic.p_vci                                     (signal_vci_tgt_mnic);
+
+    merror_dma.p_clk                                     (signal_clk);
+    merror_dma.p_resetn                                  (signal_resetn);
+    merror_dma.p_vci                                     (signal_vci_tgt_cdma);
+#endif
 
     // MTTY connexion
@@ -1273,16 +1309,4 @@
     }
     std::cout << "  - MTTY connected" << std::endl;
-
-    // CDMA connexion
-    cdma->p_clk                                          (signal_clk);
-    cdma->p_resetn                                       (signal_resetn);
-    cdma->p_vci_target                                   (signal_vci_tgt_cdma);
-    cdma->p_vci_initiator                                (signal_vci_ini_cdma);
-    for ( size_t i=0 ; i<(NB_NIC_CHANNELS*2) ; i++)
-    {
-        cdma->p_irq[i]                                   (signal_irq_cdma[i]);
-    }
-
-    std::cout << "  - CDMA connected" << std::endl;
 
     // IOPI connexion
@@ -1522,4 +1546,19 @@
    }
 
+#if USE_NIC == 0
+   for (int i = 0; i < NB_NIC_CHANNELS; i++)
+   {
+       signal_irq_mnic_rx[i].write(false);
+       signal_irq_mnic_tx[i].write(false);
+   }
+
+   signal_vci_ini_cdma.cmdval.write(false);
+   signal_vci_ini_cdma.rspack.write(true);
+   for (int i = 0; i < (NB_NIC_CHANNELS*2); i++)
+   {
+       signal_irq_cdma[i].write(false);
+   }
+#endif
+
    sc_start(sc_core::sc_time(1, SC_NS));
    signal_resetn = true;
@@ -1653,10 +1692,6 @@
             signal_vci_tgt_iob0.print_trace("[SIG]IOB0_IOX_TGT");
 
-            //              cdma->print_trace();
-            //              signal_vci_tgt_cdma.print_trace("[SIG]IOX_CDMA_TGT");
-            //              signal_vci_ini_cdma.print_trace("[SIG]IOX_CDMA_INI");
-
-            //              mtty->print_trace();
-            //              signal_vci_tgt_mtty.print_trace("[SIG]IOX_MTTY_TGT");
+            // mtty->print_trace();
+            // signal_vci_tgt_mtty.print_trace("[SIG]IOX_MTTY_TGT");
 
             bdev->print_trace();
@@ -1664,9 +1699,13 @@
             signal_vci_ini_bdev.print_trace("[SIG]BDEV_INI");
 
-            mnic->print_trace();
-            signal_vci_tgt_mnic.print_trace("[SIG]MNIC_TGT");
-
-            //              fbuf->print_trace();
-            //              signal_vci_tgt_fbuf.print_trace("[SIG]FBUF");
+            // mnic->print_trace();
+            // signal_vci_tgt_mnic.print_trace("[SIG]MNIC_TGT");
+
+            // cdma->print_trace();
+            // signal_vci_tgt_cdma.print_trace("[SIG]IOX_CDMA_TGT");
+            // signal_vci_ini_cdma.print_trace("[SIG]IOX_CDMA_INI");
+
+            // fbuf->print_trace();
+            // signal_vci_tgt_fbuf.print_trace("[SIG]FBUF");
 
             iopi->print_trace();
Index: /branches/reconfiguration/platforms/tsar_generic_iob/top.desc
===================================================================
--- /branches/reconfiguration/platforms/tsar_generic_iob/top.desc	(revision 940)
+++ /branches/reconfiguration/platforms/tsar_generic_iob/top.desc	(revision 941)
@@ -52,4 +52,8 @@
                   cell_size = vci_cell_size_ext),
 
+            # ERROR
+            Uses('caba:vci_target_error',
+                  cell_size = vci_cell_size_ext),
+
             # Chained DMA
             Uses('caba:vci_chbuf_dma',
