Ignore:
Timestamp:
Dec 11, 2012, 6:19:35 PM (11 years ago)
Author:
joannou
Message:

Updated of the vci trdid/rtrdid and pktid/rpktid fields for the direct network.
The pktid values are commented in the components'headers that use them.

  • In the vci_vdspin_*_wrapper components
    • added the transmission of the pktid/rpktid field
  • In the vci_cc_vcache_wrapper_v4
    • updated gen_moore() to transmit a valid pktid
    • updated transition(), RSP_FSM now checks the rpktid
  • In the vci_mem_cache_v4
    • transition(), tests originally performed on trdid now use pktid
    • gen_moore() transmit rpktid
    • !!! THE L1_MULTI_CACHE MECHANISM IS NO LONGER COMPATIBLE !!!
  • In vci_block_device_tsar_v4
    • updated gen_moore function to transmit a valid pktid

Also renamed the "SC" states in "CAS" states in the concerned FSMs on the vci_cc_vcache_wrapper_v4 and the vci_mem_cache_v4

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/vci_vdspin_target_wrapper/caba/source/src/vci_vdspin_target_wrapper.cpp

    r185 r284  
    55  *
    66  * SOCLIB_LGPL_HEADER_BEGIN
    7   * 
     7  *
    88  * This file is part of SoCLib, GNU LGPLv2.1.
    9   * 
     9  *
    1010  * SoCLib is free software; you can redistribute it and/or modify it
    1111  * under the terms of the GNU Lesser General Public License as published
    1212  * by the Free Software Foundation; version 2.1 of the License.
    13   * 
     13  *
    1414  * SoCLib is distributed in the hope that it will be useful, but
    1515  * WITHOUT ANY WARRANTY; without even the implied warranty of
    1616  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    1717  * Lesser General Public License for more details.
    18   * 
     18  *
    1919  * You should have received a copy of the GNU Lesser General Public
    2020  * License along with SoCLib; if not, write to the Free Software
    2121  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    2222  * 02110-1301 USA
    23   * 
     23  *
    2424  * SOCLIB_LGPL_HEADER_END
    2525  */
     
    3434
    3535//////////////////////////////////////////////////////////:////////////////////////////////
    36 tmpl(/**/)::VciVdspinTargetWrapper(sc_module_name                       name,
    37                                    size_t                               cmd_fifo_depth,
    38                                    size_t                               rsp_fifo_depth)
    39                : soclib::caba::BaseModule(name),
     36tmpl(/**/)::VciVdspinTargetWrapper(sc_module_name             name,
     37                        size_t                cmd_fifo_depth,
     38                   size_t                rsp_fifo_depth)
     39           : soclib::caba::BaseModule(name),
    4040                 p_clk("p_clk"),
    4141                 p_resetn("p_resetn"),
     
    4545                 r_cmd_fsm("r_cmd_fsm"),
    4646                 r_rsp_fsm("r_rsp_fsm"),
    47                  r_fifo_cmd("r_fifo_cmd", cmd_fifo_depth),
    48                  r_fifo_rsp("r_fifo_rsp", rsp_fifo_depth)
     47             r_fifo_cmd("r_fifo_cmd", cmd_fifo_depth),
     48             r_fifo_rsp("r_fifo_rsp", rsp_fifo_depth)
    4949    {
    50         SC_METHOD (transition);
    51         dont_initialize();
    52         sensitive << p_clk.pos();
    53         SC_METHOD (genMoore);
    54         dont_initialize();
    55         sensitive  << p_clk.neg();
     50    SC_METHOD (transition);
     51    dont_initialize();
     52    sensitive << p_clk.pos();
     53    SC_METHOD (genMoore);
     54    dont_initialize();
     55    sensitive  << p_clk.neg();
    5656
    5757        assert( (dspin_cmd_width == 40) && "The DSPIN CMD flit width must have 40 bits");
    5858        assert( (dspin_rsp_width == 33) && "The DSPIN RSP flit width must have 33 bits");
    59         assert( (vci_param::N    <= 40) && "The VCI ADDRESS field cannot have more than 40 bits"); 
     59        assert( (vci_param::N    <= 40) && "The VCI ADDRESS field cannot have more than 40 bits");
    6060        assert( (vci_param::B    == 4) && "The VCI DATA filds must have 32 bits");
    6161        assert( (vci_param::K    == 8) && "The VCI PLEN field cannot have more than 8 bits");
     
    6969tmpl(void)::transition()
    7070{
    71         sc_uint<dspin_cmd_width>                cmd_fifo_data;
    72         bool                                    cmd_fifo_write;
    73         bool                                    cmd_fifo_read;
    74 
    75         sc_uint<dspin_rsp_width>                rsp_fifo_data;
    76         bool                                    rsp_fifo_write;
    77         bool                                    rsp_fifo_read;
    78 
    79         if (p_resetn == false)
    80         {
    81             r_fifo_cmd.init();
    82             r_fifo_rsp.init();
    83             r_cmd_fsm = CMD_IDLE;
    84             r_rsp_fsm = RSP_IDLE;
    85             return;
    86         } // end reset
    87 
    88         /////////////////////////////////////////////////////////////
    89         // VCI response packet to DSPIN response packet.
    90         // The VCI packet is analysed, translated,
    91         // and the DSPIN packet is stored in the fifo_rsp
    92         /////////////////////////////////////////////////////////////
    93         // - A single flit VCI write response packet is translated
    94         //   to a single flit DSPIN response.
    95         // - A N flits VCI read response packet is translated
    96         //   to a N+1 flits DSPIN response
    97         // In the RSP_IDLE state, the first DSPIN flit is written
    98         // in fifo_rsp , but no VCI flit is consumed. The VCI flits
    99         // are consumed in the RSP_READ or RSP_WRITE states.
    100         //////////////////////////////////////////////////////////////
    101 
    102         // rsp_fifo_read
    103         rsp_fifo_read = p_dspin_out.read.read();
    104 
    105         // r_rsp_fsm, rsp_fifo_write and rsp_fifo_data
    106         rsp_fifo_write = false;         // default value
    107 
    108         switch(r_rsp_fsm) {
    109             case RSP_IDLE:              // write first DSPIN flit into rsp_fifo
    110             {
    111                 if( p_vci.rspval && r_fifo_rsp.wok() )
     71    sc_uint<dspin_cmd_width>        cmd_fifo_data;
     72    bool                    cmd_fifo_write;
     73    bool                    cmd_fifo_read;
     74
     75    sc_uint<dspin_rsp_width>        rsp_fifo_data;
     76    bool                    rsp_fifo_write;
     77    bool                    rsp_fifo_read;
     78
     79    if (p_resetn == false)
     80        {
     81        r_fifo_cmd.init();
     82        r_fifo_rsp.init();
     83        r_cmd_fsm = CMD_IDLE;
     84        r_rsp_fsm = RSP_IDLE;
     85        return;
     86    } // end reset
     87
     88    /////////////////////////////////////////////////////////////
     89    // VCI response packet to DSPIN response packet.
     90    // The VCI packet is analysed, translated,
     91    // and the DSPIN packet is stored in the fifo_rsp
     92    /////////////////////////////////////////////////////////////
     93    // - A single flit VCI write response packet is translated
     94    //   to a single flit DSPIN response.
     95    // - A N flits VCI read response packet is translated
     96    //   to a N+1 flits DSPIN response
     97    // In the RSP_IDLE state, the first DSPIN flit is written
     98    // in fifo_rsp , but no VCI flit is consumed. The VCI flits
     99    // are consumed in the RSP_READ or RSP_WRITE states.
     100    //////////////////////////////////////////////////////////////
     101
     102    // rsp_fifo_read
     103    rsp_fifo_read = p_dspin_out.read.read();
     104
     105    // r_rsp_fsm, rsp_fifo_write and rsp_fifo_data
     106        rsp_fifo_write = false;        // default value
     107
     108    switch(r_rsp_fsm) {
     109        case RSP_IDLE:        // write first DSPIN flit into rsp_fifo
     110            {
     111                if( p_vci.rspval && r_fifo_rsp.wok() )
    112112                {
    113113                    bool is_read = ( (p_vci.rerror.read() & 0x2) == 0);
    114114
    115                     rsp_fifo_write = true;
     115                    rsp_fifo_write = true;
    116116                    rsp_fifo_data = (((sc_uint<dspin_rsp_width>)p_vci.rsrcid.read()) << 18) |
    117117                                    (((sc_uint<dspin_rsp_width>)p_vci.rerror.read()) << 16) |
    118                                     (((sc_uint<dspin_rsp_width>)p_vci.rtrdid.read()) << 8);
    119                     if ( is_read )
     118                                    (((sc_uint<dspin_rsp_width>)p_vci.rtrdid.read()) << 12) |
     119                                    (((sc_uint<dspin_rsp_width>)p_vci.rpktid.read()) << 8);
     120                    if ( is_read )
    120121                    {
    121122                        r_rsp_fsm = RSP_READ;
     
    126127                        r_rsp_fsm = RSP_WRITE;
    127128                    }
    128                 }
    129                 break;
    130             }
    131             case RSP_READ:              // write DSPIN data flit in case of read
    132             {   
     129                }
     130                break;
     131            }
     132        case RSP_READ:        // write DSPIN data flit in case of read
     133            {
    133134                if( p_vci.rspval && r_fifo_rsp.wok() )
    134135                {
    135136                    rsp_fifo_write   = true;
    136137                    rsp_fifo_data = ((sc_uint<dspin_rsp_width>)p_vci.rdata.read());
    137                     if ( p_vci.reop ) 
     138                    if ( p_vci.reop )
    138139                    {
    139140                        rsp_fifo_data = rsp_fifo_data | 0x100000000LL;
     
    149150                break;
    150151            }
    151         } // end switch r_cmd_fsm
    152        
    153         // fifo_rsp
    154         if((rsp_fifo_write == true)  && (rsp_fifo_read == false)) { r_fifo_rsp.simple_put(rsp_fifo_data); }
    155         if((rsp_fifo_write == true)  && (rsp_fifo_read == true))  { r_fifo_rsp.put_and_get(rsp_fifo_data); }
    156         if((rsp_fifo_write == false) && (rsp_fifo_read == true))  { r_fifo_rsp.simple_get(); }
     152    } // end switch r_cmd_fsm
     153
     154    // fifo_rsp
     155    if((rsp_fifo_write == true)  && (rsp_fifo_read == false)) { r_fifo_rsp.simple_put(rsp_fifo_data); }
     156    if((rsp_fifo_write == true)  && (rsp_fifo_read == true))  { r_fifo_rsp.put_and_get(rsp_fifo_data); }
     157    if((rsp_fifo_write == false) && (rsp_fifo_read == true))  { r_fifo_rsp.simple_get(); }
    157158
    158159        //////////////////////////////////////////////////////////////
    159         // DSPIN command packet to VCI command packet
    160         // The DSPIN packet is stored in the fifo_rsp
    161         // The FIFO output is analysed and translated to a VCI packet
     160    // DSPIN command packet to VCI command packet
     161    // The DSPIN packet is stored in the fifo_rsp
     162    // The FIFO output is analysed and translated to a VCI packet
    162163        //////////////////////////////////////////////////////////////
    163164        // - A 2 flits DSPIN broadcast command is translated
     
    166167        //   to a 1 flit VCI read command.
    167168        // - A N+2 flits DSPIN write command is translated
    168         //   to a N flits VCI write command. 
    169         // The VCI flits are sent in the CMD_READ, CMD_WDATA 
    170         // & CMD_BROADCAST states. 
     169        //   to a N flits VCI write command.
     170        // The VCI flits are sent in the CMD_READ, CMD_WDATA
     171        // & CMD_BROADCAST states.
    171172        // The r_cmd_buf0 et r_cmd_buf1 buffers are used to store
    172173        // the two first DSPIN flits (in case of write).
    173174        //////////////////////////////////////////////////////////////
    174175
    175         // cmd_fifo_write, cmd_fifo_data
    176         cmd_fifo_write = p_dspin_in.write.read();
    177         cmd_fifo_data  = p_dspin_in.data.read();
    178 
    179         // r_cmd_fsm, cmd_fifo_read
    180         cmd_fifo_read = false;          // default value
    181 
    182         switch(r_cmd_fsm) {
    183             case CMD_IDLE:
    184             {
    185                 if( r_fifo_cmd.rok() )
     176    // cmd_fifo_write, cmd_fifo_data
     177    cmd_fifo_write = p_dspin_in.write.read();
     178    cmd_fifo_data  = p_dspin_in.data.read();
     179
     180    // r_cmd_fsm, cmd_fifo_read
     181        cmd_fifo_read = false;         // default value
     182
     183    switch(r_cmd_fsm) {
     184        case CMD_IDLE:
     185            {
     186        if( r_fifo_cmd.rok() )
    186187                {
    187188                    bool is_broadcast = ( (r_fifo_cmd.read() & 0x1) == 0x1);
    188189
    189                     cmd_fifo_read = true;
    190                     r_cmd_buf0    = r_fifo_cmd.read();          // save address
     190            cmd_fifo_read = true;
     191                    r_cmd_buf0    = r_fifo_cmd.read();         // save address
    191192                    if ( is_broadcast ) r_cmd_fsm = CMD_BROADCAST;
    192                     else                r_cmd_fsm = CMD_RW;
    193                 }
    194                 break;
    195             }
    196             case CMD_BROADCAST:
    197             {
    198                 if( r_fifo_cmd.rok() && p_vci.cmdack )
     193                    else        r_cmd_fsm = CMD_RW;
     194        }
     195        break;
     196            }
     197        case CMD_BROADCAST:
     198        {
     199        if( r_fifo_cmd.rok() && p_vci.cmdack )
    199200                {
    200201                    cmd_fifo_read = true;
     
    205206            case CMD_RW:
    206207            {
    207                 if( r_fifo_cmd.rok() )
    208                 {
    209                     cmd_fifo_read = true;
    210                     r_cmd_buf1 = r_fifo_cmd.read();             // save command parameters
     208        if( r_fifo_cmd.rok() )
     209                {
     210                    cmd_fifo_read = true;
     211                    r_cmd_buf1 = r_fifo_cmd.read();        // save command parameters
    211212                    // read command if EOP
    212213                    if ( (r_fifo_cmd.read() & 0x8000000000LL) )   r_cmd_fsm = CMD_READ;
    213                     else                                          r_cmd_fsm = CMD_WDATA;
     214                    else                      r_cmd_fsm = CMD_WDATA;
    214215                    r_flit_count = 0;
    215                 }
    216                 break;
     216        }
     217        break;
    217218            }
    218219            case CMD_READ:
     
    223224            case CMD_WDATA:
    224225            {
    225                 if( r_fifo_cmd.rok() && p_vci.cmdack.read() )
    226                 {
    227                     if ( (r_cmd_buf1.read() & 0x0000200000LL) == 0 )    r_flit_count = r_flit_count + 1;
    228                     cmd_fifo_read = true;
    229                     if ( (r_fifo_cmd.read() & 0x8000000000LL) )         r_cmd_fsm = CMD_IDLE;
    230                 }
    231                 break;
    232             }
    233         } // end switch r_cmd_fsm
    234 
    235         // fifo_cmd
    236         if((cmd_fifo_write == true)  && (cmd_fifo_read == false)) { r_fifo_cmd.simple_put(cmd_fifo_data); }
    237         if((cmd_fifo_write == true)  && (cmd_fifo_read == true))  { r_fifo_cmd.put_and_get(cmd_fifo_data); }
    238         if((cmd_fifo_write == false) && (cmd_fifo_read == true))  { r_fifo_cmd.simple_get(); }
     226        if( r_fifo_cmd.rok() && p_vci.cmdack.read() )
     227                {
     228                    if ( (r_cmd_buf1.read() & 0x0000200000LL) == 0 )     r_flit_count = r_flit_count + 1;
     229                    cmd_fifo_read = true;
     230                    if ( (r_fifo_cmd.read() & 0x8000000000LL) )     r_cmd_fsm = CMD_IDLE;
     231        }
     232                break;
     233            }
     234    } // end switch r_cmd_fsm
     235
     236    // fifo_cmd
     237    if((cmd_fifo_write == true)  && (cmd_fifo_read == false)) { r_fifo_cmd.simple_put(cmd_fifo_data); }
     238    if((cmd_fifo_write == true)  && (cmd_fifo_read == true))  { r_fifo_cmd.put_and_get(cmd_fifo_data); }
     239    if((cmd_fifo_write == false) && (cmd_fifo_read == true))  { r_fifo_cmd.simple_get(); }
    239240
    240241}; // end transition
     
    243244tmpl(void)::genMoore()
    244245{
    245         // VCI RSP interface
    246         if ( r_rsp_fsm.read() == RSP_IDLE )     p_vci.rspack = false;
    247         else                                    p_vci.rspack = r_fifo_rsp.wok();
    248 
    249         // VCI CMD interface
    250         if ( (r_cmd_fsm.read() == CMD_IDLE) || (r_cmd_fsm.read() == CMD_RW) )
     246    // VCI RSP interface
     247        if ( r_rsp_fsm.read() == RSP_IDLE )    p_vci.rspack = false;
     248    else                                       p_vci.rspack = r_fifo_rsp.wok();
     249
     250    // VCI CMD interface
     251    if ( (r_cmd_fsm.read() == CMD_IDLE) || (r_cmd_fsm.read() == CMD_RW) )
    251252        {
    252253            p_vci.cmdval = false;
    253254        }
    254         else if ( r_cmd_fsm.read() == CMD_BROADCAST )   // VCI CMD broadcast
     255        else if ( r_cmd_fsm.read() == CMD_BROADCAST )    // VCI CMD broadcast
    255256        {
    256257            if ( r_fifo_cmd.rok() )
     
    258259                sc_uint<dspin_cmd_width>  minmax = r_cmd_buf0.read() & 0x7FFFF80000LL;
    259260                if ( vci_param::N == 40 ) minmax = (minmax << 1);
    260                 else                      minmax = (minmax >> (39 - vci_param::N) );
     261                else              minmax = (minmax >> (39 - vci_param::N) );
    261262                p_vci.cmdval  = true;
    262                 p_vci.address = (sc_uint<vci_param::N>)minmax | 0x3;
     263                p_vci.address = (sc_uint<vci_param::N>)minmax | 0x3;
    263264                p_vci.cmd     = vci_param::CMD_WRITE;
    264265                p_vci.wdata   = (sc_uint<8*vci_param::B>)(r_fifo_cmd.read() & 0x00FFFFFFFFLL);
     
    266267                p_vci.srcid   = (sc_uint<vci_param::S>)((r_cmd_buf0.read()  & 0x000007FFE0LL) >> 5);
    267268                p_vci.trdid   = (sc_uint<vci_param::T>)((r_cmd_buf0.read()  & 0x000000001ELL) >> 1);
    268                 p_vci.pktid   = 0;
     269                p_vci.pktid   = 0;
    269270                p_vci.plen    = vci_param::B;
    270271                p_vci.contig  = true;
     
    274275            else
    275276            {
    276                 p_vci.cmdval = false;
    277             }
    278         }
    279         else if ( r_cmd_fsm.read() == CMD_READ )        // VCI CMD read
    280         {           
     277                p_vci.cmdval = false;
     278            }
     279        }
     280        else if ( r_cmd_fsm.read() == CMD_READ )    // VCI CMD read
     281        {
    281282            sc_uint<vci_param::N> address;
    282283            if ( vci_param::N == 40 ) address = (r_cmd_buf0.read() << 1);
    283             else                      address = (r_cmd_buf0.read() >> (39 - vci_param::N) ); 
     284            else                      address = (r_cmd_buf0.read() >> (39 - vci_param::N) );
    284285            p_vci.cmdval  = true;
    285             p_vci.address = address;
     286            p_vci.address = address;
    286287            p_vci.cmd     = (sc_uint<2>)((r_cmd_buf1.read()            & 0x0001800000LL) >> 23);
    287             p_vci.wdata   = 0;
     288            p_vci.wdata   = 0;
    288289            p_vci.be      = (sc_uint<vci_param::B>)((r_cmd_buf1.read() & 0x000000001ELL) >> 1);
    289290            p_vci.srcid   = (sc_uint<vci_param::S>)((r_cmd_buf1.read() & 0x7FFE000000LL) >> 25);
    290             p_vci.trdid   = (sc_uint<vci_param::T>)((r_cmd_buf1.read() & 0x0000001FE0LL) >> 5);
    291             p_vci.pktid   = 0;
     291            p_vci.pktid   = (sc_uint<vci_param::P>)((r_cmd_buf1.read() & 0x00000001E0LL) >> 5);
     292            p_vci.trdid   = (sc_uint<vci_param::T>)((r_cmd_buf1.read() & 0x0000001E00LL) >> 9);
    292293            p_vci.plen    = (sc_uint<vci_param::K>)((r_cmd_buf1.read() & 0x00001FE000LL) >> 13);
    293294            p_vci.contig  = ((r_cmd_buf1.read() & 0x0000400000LL) != 0);
    294295            p_vci.cons    = ((r_cmd_buf1.read() & 0x0000200000LL) != 0);
    295296            p_vci.eop     = true;
    296         }
    297         else if ( r_cmd_fsm.read() == CMD_WDATA )       // VCI write command
    298         {
    299             if ( r_fifo_cmd.rok() ) 
     297    }
     298        else if ( r_cmd_fsm.read() == CMD_WDATA )    // VCI write command
     299        {
     300            if ( r_fifo_cmd.rok() )
    300301            {
    301302                sc_uint<vci_param::N> address;
    302303                if ( vci_param::N == 40 ) address = (r_cmd_buf0.read() << 1);
    303                 else                      address = (r_cmd_buf0.read() >> (39 - vci_param::N) ); 
     304                else                      address = (r_cmd_buf0.read() >> (39 - vci_param::N) );
    304305                p_vci.cmdval  = true;
    305                 p_vci.address = address + (r_flit_count.read()*vci_param::B);
    306                 p_vci.cmd     = (sc_uint<2>)((r_cmd_buf1.read()              & 0x0001800000LL) >> 23);
    307                 p_vci.wdata   = (sc_uint<8*vci_param::B>)(r_fifo_cmd.read() & 0x00FFFFFFFFLL);
    308                 p_vci.be      = (sc_uint<vci_param::B>)((r_fifo_cmd.read()   & 0x0F00000000LL) >> 32);
    309                 p_vci.srcid   = (sc_uint<vci_param::S>)((r_cmd_buf1.read()   & 0x7FFE000000LL) >> 25);
    310                 p_vci.trdid   = (sc_uint<vci_param::T>)((r_cmd_buf1.read()   & 0x0000001FE0LL) >> 5);
    311                 p_vci.pktid   = 0;
    312                 p_vci.plen    = (sc_uint<vci_param::K>)((r_cmd_buf1.read() & 0x00001FE000LL) >> 13);
     306                p_vci.address = address + (r_flit_count.read()*vci_param::B);
     307                p_vci.cmd     = (sc_uint<2>)((r_cmd_buf1.read()             & 0x0001800000LL) >> 23);
     308                p_vci.wdata   = (sc_uint<8*vci_param::B>)(r_fifo_cmd.read() & 0x00FFFFFFFFLL);
     309                p_vci.be      = (sc_uint<vci_param::B>)((r_fifo_cmd.read()  & 0x0F00000000LL) >> 32);
     310                p_vci.srcid   = (sc_uint<vci_param::S>)((r_cmd_buf1.read()  & 0x7FFE000000LL) >> 25);
     311                p_vci.pktid   = (sc_uint<vci_param::P>)((r_cmd_buf1.read()  & 0x00000001E0LL) >> 5);
     312                p_vci.trdid   = (sc_uint<vci_param::T>)((r_cmd_buf1.read()  & 0x0000001E00LL) >> 9);
     313                p_vci.plen    = (sc_uint<vci_param::K>)((r_cmd_buf1.read()  & 0x00001FE000LL) >> 13);
    313314                p_vci.contig  = ((r_cmd_buf1.read() & 0x0000400000LL) != 0);
    314315                p_vci.cons    = ((r_cmd_buf1.read() & 0x0000200000LL) != 0);
    315                 p_vci.eop     = ((r_fifo_cmd.read() & 0x8000000000LL) == 0x8000000000LL);
     316                p_vci.eop     = ((r_fifo_cmd.read() & 0x8000000000LL) == 0x8000000000LL);
    316317            }
    317318            else
    318319            {
    319                 p_vci.cmdval = false;
    320             }
    321         }
    322 
    323         // DSPIN_OUT interface
    324         p_dspin_out.write = r_fifo_rsp.rok();
    325         p_dspin_out.data  = r_fifo_rsp.read();
    326 
    327         // DSPIN_IN interface
    328         p_dspin_in.read = r_fifo_cmd.wok();
     320                p_vci.cmdval = false;
     321            }
     322        }
     323
     324    // DSPIN_OUT interface
     325    p_dspin_out.write = r_fifo_rsp.rok();
     326    p_dspin_out.data  = r_fifo_rsp.read();
     327
     328    // DSPIN_IN interface
     329    p_dspin_in.read = r_fifo_cmd.wok();
    329330
    330331}; // end genMoore
     
    346347    };
    347348    std::cout << name() << " : " << cmd_str[r_cmd_fsm.read()]
    348                         << " | " << rsp_str[r_rsp_fsm.read()] 
     349                        << " | " << rsp_str[r_rsp_fsm.read()]
    349350                        << " | fifo_cmd = " << r_fifo_cmd.filled_status()
    350351                        << " | fifo_rsp = " << r_fifo_rsp.filled_status()
    351                         << std::endl;
     352                        << std::endl;
    352353}
    353354
Note: See TracChangeset for help on using the changeset viewer.