Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/config-size.cfg
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/config-size.cfg	(revision 62)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/config-size.cfg	(revision 62)
@@ -0,0 +1,9 @@
+RegisterFile_Multi_Banked
+11	11	*2	# nb_port_read
+5	5	*2	# nb_port_write
+1  	32    	*2	# nb_word
+32	32	*2	# size_word
+1	1	*2	# nb_bank
+3	3 	*2	# nb_port_read_by_bank
+2	2	*2	# nb_port_write_by_bank
+0	1	+1	# crossbar
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp	(revision 62)
@@ -80,4 +80,5 @@
       (*(_RegisterFile_Multi_Banked-> in_READ_VAL      [i]))        (READ_VAL      [i]);
       (*(_RegisterFile_Multi_Banked->out_READ_ACK      [i]))        (READ_ACK      [i]);
+      if (_param->_have_port_address==true)
       (*(_RegisterFile_Multi_Banked-> in_READ_ADDRESS  [i]))        (READ_ADDRESS  [i]);
       (*(_RegisterFile_Multi_Banked->out_READ_DATA     [i]))        (READ_DATA     [i]);
@@ -88,4 +89,5 @@
       (*(_RegisterFile_Multi_Banked-> in_WRITE_VAL     [i]))        (WRITE_VAL     [i]);
       (*(_RegisterFile_Multi_Banked->out_WRITE_ACK     [i]))        (WRITE_ACK     [i]);
+      if (_param->_have_port_address==true)
       (*(_RegisterFile_Multi_Banked-> in_WRITE_ADDRESS [i]))        (WRITE_ADDRESS [i]);
       (*(_RegisterFile_Multi_Banked-> in_WRITE_DATA    [i]))        (WRITE_DATA    [i]);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/include/Parameters.h	(revision 62)
@@ -71,4 +71,7 @@
   public : const uint32_t    _nb_word_by_bank      ;
 
+  public : const bool        _have_port_address     ;
+  public : const bool        _have_bank_port_address;
+
     // A lot of table to the partial crossbar
   public :       uint32_t  * _link_port_read_to_bank_read  ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/Parameters.cpp	(revision 62)
@@ -42,5 +42,7 @@
     _num_reg_shift         (0),
     _num_reg_mask          (gen_mask<Taddress_t>(_size_address_by_bank)),
-    _nb_word_by_bank       (_nb_word / _nb_bank)
+    _nb_word_by_bank       (_nb_word / _nb_bank),
+    _have_port_address     (_size_address         != 0),
+    _have_bank_port_address(_size_address_by_bank != 0)
   {
     log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters","Begin");
@@ -48,5 +50,5 @@
     if (_crossbar == PARTIAL_CROSSBAR)
       {
-	log_printf(NONE,RegisterFile_Multi_Banked,"Parameters","Case : _crossbar == PARTIAL_CROSSBAR");
+	log_printf(TRACE,RegisterFile_Multi_Banked,"Parameters","Case : _crossbar == PARTIAL_CROSSBAR");
 
 	// All port_src is connected with one port_dest on each bank
@@ -68,15 +70,13 @@
 
 
-	log_printf(NONE,RegisterFile_Multi_Banked,"Parameters"," * _link_port_read_to_bank_read");
+	log_printf(TRACE,RegisterFile_Multi_Banked,"Parameters"," * _link_port_read_to_bank_read");
 	for (uint32_t i=0; i<_nb_port_read         ;i++)
 	  {
-	  log_printf(NONE,RegisterFile_Multi_Banked,"Parameters","   * Read  in  [%d] to out    [%d]",i,_link_port_read_to_bank_read          [i]);
-	  printf("   * Read  in  [%d] to out    [%d]\n",i,_link_port_read_to_bank_read          [i]);
+	    log_printf(TRACE,RegisterFile_Multi_Banked,"Parameters","   * Read  in  [%d] to out    [%d]",i,_link_port_read_to_bank_read          [i]);
 	  }
-	log_printf(NONE,RegisterFile_Multi_Banked,"Parameters"," * _link_port_write_to_bank_write");
+	log_printf(TRACE,RegisterFile_Multi_Banked,"Parameters"," * _link_port_write_to_bank_write");
 	for (uint32_t i=0; i<_nb_port_write        ;i++)
 	  {
-	    log_printf(NONE,RegisterFile_Multi_Banked,"Parameters","   * Write in  [%d] to out    [%d]",i,_link_port_write_to_bank_write          [i]);
-	    printf("   * Write in  [%d] to out    [%d]\n",i,_link_port_write_to_bank_write          [i]);
+	    log_printf(TRACE,RegisterFile_Multi_Banked,"Parameters","   * Write in  [%d] to out    [%d]",i,_link_port_write_to_bank_write          [i]);
 	  }
       }
@@ -102,5 +102,7 @@
     _num_reg_shift         (param._num_reg_shift        ),
     _num_reg_mask          (param._num_reg_mask         ),
-    _nb_word_by_bank       (param._nb_word_by_bank      )
+    _nb_word_by_bank       (param._nb_word_by_bank      ),
+    _have_port_address     (param._have_port_address     ),
+    _have_bank_port_address(param._have_bank_port_address)
   {
     log_printf(FUNC,RegisterFile_Multi_Banked,"Parameters (copy)","Begin");
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked.cpp	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked.cpp	(revision 62)
@@ -85,6 +85,9 @@
     sensitive_neg << *(in_CLOCK);
     for (uint32_t i=0; i<_param->_nb_port_read; i++)
-      sensitive << *( in_READ_VAL     [i])
-		<< *( in_READ_ADDRESS [i]);
+      {
+	sensitive << *( in_READ_VAL     [i]);
+	if (_param->_have_port_address == true)
+	  sensitive << *( in_READ_ADDRESS [i]);
+      }
 
 #ifdef SYSTEMCASS_SPECIFIC
@@ -93,6 +96,8 @@
       {
 	(*(out_READ_ACK  [i])) (*( in_READ_VAL     [i]));
+	if (_param->_have_port_address == true)
 	(*(out_READ_ACK  [i])) (*( in_READ_ADDRESS [i]));
 	(*(out_READ_DATA [i])) (*( in_READ_VAL     [i]));
+	if (_param->_have_port_address == true)
 	(*(out_READ_DATA [i])) (*( in_READ_ADDRESS [i]));
       }
@@ -109,7 +114,10 @@
     sensitive_neg << *(in_CLOCK);
     for (uint32_t i=0; i<_param->_nb_port_write; i++)
-      sensitive << *( in_WRITE_VAL     [i])
-		<< *( in_WRITE_ADDRESS [i])
-		<< *( in_WRITE_DATA    [i]);
+      {
+	sensitive << *( in_WRITE_VAL     [i])
+		  << *( in_WRITE_DATA    [i]);
+	if (_param->_have_port_address == true)
+	  sensitive << *( in_WRITE_ADDRESS [i]);
+      }
 
 #ifdef SYSTEMCASS_SPECIFIC
@@ -118,4 +126,5 @@
       {
 	(*(out_WRITE_ACK  [i])) (*( in_WRITE_VAL     [i]));
+	if (_param->_have_port_address == true)
 	(*(out_WRITE_ACK  [i])) (*( in_WRITE_ADDRESS [i]));
 	(*(out_WRITE_ACK  [i])) (*( in_WRITE_DATA    [i]));
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_allocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_allocation.cpp	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_allocation.cpp	(revision 62)
@@ -50,4 +50,5 @@
      in_READ_VAL         = new SC_IN (Tcontrol_t) * [_param->_nb_port_read];
     out_READ_ACK         = new SC_OUT(Tcontrol_t) * [_param->_nb_port_read];
+    if (_param->_have_port_address == true)
      in_READ_ADDRESS     = new SC_IN (Taddress_t) * [_param->_nb_port_read];
     out_READ_DATA        = new SC_OUT(Tdata_t   ) * [_param->_nb_port_read];
@@ -65,4 +66,5 @@
 	 in_READ_VAL     [i]  = interface->set_signal_valack_in        ("val"    , VAL);
 	out_READ_ACK     [i]  = interface->set_signal_valack_out       ("ack"    , ACK);
+	if (_param->_have_port_address == true)
 	 in_READ_ADDRESS [i]  = interface->set_signal_in  <Taddress_t> ("address", static_cast<uint32_t>(log2(_param->_nb_word)));
 	out_READ_DATA    [i]  = interface->set_signal_out <Tdata_t   > ("data"   , _param->_size_word);
@@ -73,4 +75,5 @@
      in_WRITE_VAL        = new SC_IN (Tcontrol_t) * [_param->_nb_port_write];
     out_WRITE_ACK        = new SC_OUT(Tcontrol_t) * [_param->_nb_port_write];
+    if (_param->_have_port_address == true)
      in_WRITE_ADDRESS    = new SC_IN (Taddress_t) * [_param->_nb_port_write];
      in_WRITE_DATA       = new SC_IN (Tdata_t   ) * [_param->_nb_port_write];
@@ -88,4 +91,5 @@
 	 in_WRITE_VAL     [i]  = interface->set_signal_valack_in        ("val"    , VAL);
 	out_WRITE_ACK     [i]  = interface->set_signal_valack_out       ("ack"    , ACK);
+	if (_param->_have_port_address == true)
 	 in_WRITE_ADDRESS [i]  = interface->set_signal_in  <Taddress_t> ("address", static_cast<uint32_t>(log2(_param->_nb_word)));
 	 in_WRITE_DATA    [i]  = interface->set_signal_in  <Tdata_t   > ("data"   , _param->_size_word);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_deallocation.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_deallocation.cpp	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_deallocation.cpp	(revision 62)
@@ -26,4 +26,5 @@
     delete []  in_READ_VAL    ;
     delete [] out_READ_ACK    ;
+    if (_param->_have_port_address == true)
     delete []  in_READ_ADDRESS;
     delete [] out_READ_DATA   ;
@@ -32,4 +33,5 @@
     delete []  in_WRITE_VAL    ;
     delete [] out_WRITE_ACK    ;
+    if (_param->_have_port_address == true)
     delete []  in_WRITE_ADDRESS;
     delete []  in_WRITE_DATA   ;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_read.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_read.cpp	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_read.cpp	(revision 62)
@@ -37,5 +37,10 @@
 	  {
 	    // Compute the adress of the bank
-	    Taddress_t address = PORT_READ(in_READ_ADDRESS[i]);
+	    Taddress_t address;
+	    if (_param->_have_port_address == true)
+	      address = PORT_READ(in_READ_ADDRESS[i]);
+	    else
+	      address = 0;
+
 	    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * address   : %d",address);
 	    Taddress_t bank    = address_bank    (address);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_write.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_write.cpp	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_full_crossbar_genMealy_write.cpp	(revision 62)
@@ -38,5 +38,9 @@
 	    val                = false;
 	    // Compute the adress of the bank
-	    Taddress_t address = PORT_READ(in_WRITE_ADDRESS[i]);
+	    Taddress_t address;
+	    if (_param->_have_port_address == true)
+	      address = PORT_READ(in_WRITE_ADDRESS[i]);
+	    else
+	      address = 0;
 	    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_write"," * address   : %d",address);
 	    Taddress_t bank    = address_bank    (address);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_read.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_read.cpp	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_read.cpp	(revision 62)
@@ -37,5 +37,9 @@
 	  {
 	    // Compute the adress of the bank
-	    Taddress_t address = PORT_READ(in_READ_ADDRESS[i]);
+	    Taddress_t address;
+	    if (_param->_have_port_address == true)
+	      address = PORT_READ(in_READ_ADDRESS[i]);
+	    else
+	      address = 0;
 	    log_printf(TRACE,RegisterFile_Multi_Banked,"full_crossbar_genMealy_read"," * address   : %d",address);
 	    Taddress_t bank    = address_bank    (address);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_write.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_write.cpp	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_partial_crossbar_genMealy_write.cpp	(revision 62)
@@ -37,5 +37,9 @@
 	    val                = false;
 	    // Compute the adress of the bank
-	    Taddress_t address = PORT_READ(in_WRITE_ADDRESS[i]);
+	    Taddress_t address;
+	    if (_param->_have_port_address == true)
+	      address = PORT_READ(in_WRITE_ADDRESS[i]);
+	    else
+	      address = 0;
 	    log_printf(TRACE,RegisterFile_Multi_Banked,"partial_crossbar_genMealy_write"," * address   : %d",address);
 	    Taddress_t bank    = address_bank    (address);
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_body.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_body.cpp	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_body.cpp	(revision 62)
@@ -51,4 +51,5 @@
 	    vhdl->set_body("\t, in_READ_"+toString(j)+"_VAL     \t=>\tinternal_BANK_READ_"+toString(i)+"_"+toString(j)+"_VAL");
 	    vhdl->set_body("\t,out_READ_"+toString(j)+"_ACK     \t=>\tinternal_BANK_READ_"+toString(i)+"_"+toString(j)+"_ACK");
+	    if (_param->_have_bank_port_address == true)
 	    vhdl->set_body("\t, in_READ_"+toString(j)+"_ADDRESS \t=>\tinternal_BANK_READ_"+toString(i)+"_"+toString(j)+"_ADDRESS");
 	    vhdl->set_body("\t,out_READ_"+toString(j)+"_DATA    \t=>\tinternal_BANK_READ_"+toString(i)+"_"+toString(j)+"_DATA");
@@ -58,4 +59,5 @@
 	    vhdl->set_body("\t, in_WRITE_"+toString(j)+"_VAL     \t=>\tinternal_BANK_WRITE_"+toString(i)+"_"+toString(j)+"_VAL");
 	    vhdl->set_body("\t,out_WRITE_"+toString(j)+"_ACK     \t=>\tinternal_BANK_WRITE_"+toString(i)+"_"+toString(j)+"_ACK");
+	    if (_param->_have_bank_port_address == true)
 	    vhdl->set_body("\t, in_WRITE_"+toString(j)+"_ADDRESS \t=>\tinternal_BANK_WRITE_"+toString(i)+"_"+toString(j)+"_ADDRESS");
 	    vhdl->set_body("\t, in_WRITE_"+toString(j)+"_DATA    \t=>\tinternal_BANK_WRITE_"+toString(i)+"_"+toString(j)+"_DATA");
@@ -154,4 +156,6 @@
     vhdl->set_body("-----------------------------------");
     vhdl->set_body("");
+
+    if (_param->_have_bank_port_address == true)
     for (uint32_t i=0; i<_param->_nb_bank; i++)
       {
@@ -221,12 +225,23 @@
 	for (uint32_t j=0; j<_param->_nb_port_read; j ++)
 	  {
-	    string address = (_param->_nb_bank==1)?"":("and (in_READ_"+toString(j)+"_ADDRESS"+std_logic_range(_param->_size_address-1,_param->_size_address_by_bank)+"="+std_logic_conv( _param->_size_address-_param->_size_address_by_bank,i)+") ");
-
-	    vhdl->set_body("internal_READ_"+toString(i)+"_"+toString(j)+"_VAL  <= '1' when (in_READ_"+toString(j)+"_VAL ='1') "+address+"else '0';");
+	    string str_address;
+
+	    if (_param->_have_bank_port_address == true)
+	      str_address = (_param->_nb_bank==1)?"":("and (in_READ_"+toString(j)+"_ADDRESS"+std_logic_range(_param->_size_address-1,_param->_size_address_by_bank)+"="+std_logic_conv( _param->_size_address-_param->_size_address_by_bank,i)+") ");
+	    else
+	      str_address = "";
+
+	    vhdl->set_body("internal_READ_"+toString(i)+"_"+toString(j)+"_VAL  <= '1' when (in_READ_"+toString(j)+"_VAL ='1') "+str_address+"else '0';");
 	  }
 	for (uint32_t j=0; j<_param->_nb_port_write; j ++)
 	  {
-	    string address = (_param->_nb_bank==1)?"":("and (in_WRITE_"+toString(j)+"_ADDRESS"+std_logic_range(_param->_size_address-1,_param->_size_address_by_bank)+"="+std_logic_conv( _param->_size_address-_param->_size_address_by_bank,i)+") ");
-	    vhdl->set_body("internal_WRITE_"+toString(i)+"_"+toString(j)+"_VAL <= '1' when (in_WRITE_"+toString(j)+"_VAL='1') "+address+"else '0';");
+	    string str_address;
+
+	    if (_param->_have_port_address == true)
+	      str_address = (_param->_nb_bank==1)?"":("and (in_WRITE_"+toString(j)+"_ADDRESS"+std_logic_range(_param->_size_address-1,_param->_size_address_by_bank)+"="+std_logic_conv( _param->_size_address-_param->_size_address_by_bank,i)+") ");
+	    else
+	      str_address = "";
+
+	    vhdl->set_body("internal_WRITE_"+toString(i)+"_"+toString(j)+"_VAL <= '1' when (in_WRITE_"+toString(j)+"_VAL='1') "+str_address+"else '0';");
 	  }
       }
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_declaration.cpp
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_declaration.cpp	(revision 59)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/src/RegisterFile_Multi_Banked_vhdl_declaration.cpp	(revision 62)
@@ -41,4 +41,5 @@
 	    vhdl->set_signal ("internal_BANK_READ_"+toString(i)+"_"+toString(j)+"_VAL" ,1);
 	    vhdl->set_signal ("internal_BANK_READ_"+toString(i)+"_"+toString(j)+"_ACK"    ,1);
+	    if (_param->_have_bank_port_address == true)
 	    vhdl->set_signal ("internal_BANK_READ_"+toString(i)+"_"+toString(j)+"_ADDRESS",_param->_size_address_by_bank);
 	    vhdl->set_signal ("internal_BANK_READ_"+toString(i)+"_"+toString(j)+"_DATA"   ,_param->_size_word);
@@ -64,4 +65,5 @@
 	    vhdl->set_signal ("internal_BANK_WRITE_"+toString(i)+"_"+toString(j)+"_VAL"    ,1);
 	    vhdl->set_signal ("internal_BANK_WRITE_"+toString(i)+"_"+toString(j)+"_ACK"    ,1);
+	    if (_param->_have_bank_port_address == true)
 	    vhdl->set_signal ("internal_BANK_WRITE_"+toString(i)+"_"+toString(j)+"_ADDRESS",_param->_size_address_by_bank);
 	    vhdl->set_signal ("internal_BANK_WRITE_"+toString(i)+"_"+toString(j)+"_DATA"   ,_param->_size_word);
