亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? select_initiator.cpp

?? SystemC Transaction Level Modelling. 是基于SystemC之上的總線互聯(lián)協(xié)議
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*****************************************************************************  The following code is derived, directly or indirectly, from the SystemC  source code Copyright (c) 1996-2008 by all Contributors.  All Rights reserved.  The contents of this file are subject to the restrictions and limitations  set forth in the SystemC Open Source License Version 3.0 (the "License");  You may not use this file except in compliance with such restrictions and  limitations. You may obtain instructions on how to receive a copy of the  License at http://www.systemc.org/. Software distributed by Contributors  under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF  ANY KIND, either express or implied. See the License for the specific  language governing rights and limitations under the License. *****************************************************************************/ //=============================================================================///  @file select_initiator.cpp///  @Details Implements a AT non blocking initiator ////=============================================================================//  Original Authors://    Bill Bunton, ESLX//    Charles Wilson, ESLX//    Anna Keist, ESLX//=============================================================================#include "reporting.h"                                // Reporting convenience macros#include "select_initiator.h"                         // Our header#include "tlm.h"                                      // TLM headersusing namespace sc_core;static const char *filename = "select_initiator.cpp";  ///  filename for reporting//=============================================================================///Constructorselect_initiator::select_initiator                  // constructor( sc_module_name name                               // module name, const unsigned int ID                             // initiator ID, sc_core::sc_time end_rsp_delay                    // delay): sc_module           (name)                        /// init module name, initiator_socket    ("initiator_socket")          /// init socket name, m_send_end_rsp_PEQ  ("send_end_rsp_PEQ")          /// init PEQ name  , m_ID            (ID)                              /// init initiator ID, m_end_rsp_delay (end_rsp_delay)                   /// init end response delay{  m_enable_target_tracking = true;   /// init style tracking mode????  // bind initiator to the export  initiator_socket (*this);                       // register thread process  SC_THREAD(initiator_thread);                    // register method process  SC_METHOD(send_end_rsp_method)                  sensitive << m_send_end_rsp_PEQ.get_event();    dont_initialize();  }//=============================================================================////  Initiator thread////=============================================================================void select_initiator::initiator_thread(void)   // initiator thread{    tlm::tlm_generic_payload *transaction_ptr;    // transaction pointer  std::ostringstream       msg;                 // log message  while (true)   {//=============================================================================// Read FIFO to Get new transaction GP from the traffic generator //=============================================================================    transaction_ptr = request_in_port->read();  // get request from input fifo      tlm::tlm_phase phase  = tlm::BEGIN_REQ;     // Create phase objects     sc_time delay         = SC_ZERO_TIME;       // Create delay objects     std::ostringstream  msg;                    // log message        msg.str("");    msg << "Initiator: " << m_ID         << " starting new transaction"         << endl << "      "         << "Initiator: " << m_ID                       << " nb_transport_fw (GP, "         << report::print(phase) << ", "        << delay << ")";    REPORT_INFO(filename,  __FUNCTION__, msg.str());//-----------------------------------------------------------------------------// Make the non-blocking call and decode returned status (tlm_sync_enum) //-----------------------------------------------------------------------------    tlm::tlm_sync_enum     return_value = initiator_socket->nb_transport_fw(*transaction_ptr, phase, delay);        msg.str("");    msg << "Initiator: " << m_ID      << " " << report::print(return_value) <<  " (GP, "      << report::print(phase) << ", "      << delay << ")" << endl;     switch (return_value)     {//-----------------------------------------------------------------------------//  The target returned COMPLETED this is a single phase transaction //    Wait the annotated delay//    Return the transaction to the traffic generator //-----------------------------------------------------------------------------      case tlm::TLM_COMPLETED:       {        wait(delay + m_end_rsp_delay);              // wait the annotated delay         msg << "      "          << "Initiator: " << m_ID          << " target returned COMPLETED with annotated time ";        REPORT_INFO (filename, __FUNCTION__, msg.str() );        response_out_port->write(transaction_ptr);  // return txn to traffic gen        break;      }// end case TLM_COMPLETED//-----------------------------------------------------------------------------// Target returned UPDATED this will be 2 phase transaction //    Add the transaction pointer to the waiting backward path map  //    Set tracking enum to Rcved_UPDATED //    Wait the annotated delay//-----------------------------------------------------------------------------      case tlm::TLM_UPDATED:       {        if( phase == tlm::END_REQ) {          if (m_enable_target_tracking) {            m_waiting_bw_path_map.insert(make_pair(transaction_ptr                                                  ,Rcved_UPDATED_enum                                                  ));                    }          else {            m_waiting_bw_path_map.insert(make_pair(transaction_ptr                                                  ,Rcved_END_REQ_enum                                                  ));           }            wait(delay);                    // wait the annotated delay                         msg << "      "              << "Initiator: " << m_ID              << " transaction waiting begin-response on backward path";             REPORT_INFO (filename, __FUNCTION__, msg.str() );        }        else if( phase == tlm::BEGIN_RESP) {        // ?????        }        else {          msg << "      "          << "Initiator: " << m_ID          << " Unexpected phase for UPDATED return from target ";          REPORT_FATAL (filename, __FUNCTION__, msg.str() );        }        break;      } // end case TLM_UPDATED//-----------------------------------------------------------------------------//  Target returned ACCEPTED this will be 4 phase transaction //    Add the transaction pointer to the waiting backward path map  //    Set tracking enum to Rcved_END_REQ //    When the END REQUEST RULE is active wait for the target to response//-----------------------------------------------------------------------------      case tlm::TLM_ACCEPTED:      {        msg << "      "        << "Initiator: " << m_ID         << " transaction waiting end-request on backward-path ";        REPORT_INFO (filename, __FUNCTION__, msg.str() );                //  use map to track transaction including current state information         m_waiting_bw_path_map.insert (make_pair (transaction_ptr                                                ,Rcved_ACCEPTED_enum                                                ));                                                          wait (m_enable_next_request_event);                                                   break;              } // end case TLM_ACCEPTED//-----------------------------------------------------------------------------// All case covered default //-----------------------------------------------------------------------------      default:      {        msg << "      "        << "Initiator: " << m_ID         << " Unexpected response to BEGIN_REQ ";        REPORT_FATAL (filename, __FUNCTION__, msg.str() );        break;      }    } // end case  } // end while true} // end initiator_thread //=============================================================================///  @fn select_initiator::nb_transport_bw/////  @brief non-blocking transport from targets////=============================================================================tlm::tlm_sync_enum    select_initiator::nb_transport_bw                       // inbound nb_transport_bw( tlm::tlm_generic_payload&  transaction_ref            // generic payload , tlm::tlm_phase&            phase                     // tlm phase , sc_time&                   delay                     // delay ){  tlm::tlm_sync_enum        status = tlm::TLM_COMPLETED;  // return status reject by default  std::ostringstream        msg;                          // log message  //=============================================================================// Check waiting backward path map of valid transaction  //=============================================================================  waiting_bw_path_map::iterator transaction_pair ;        // create interator for map  transaction_pair  = m_waiting_bw_path_map.find(&transaction_ref);     if (transaction_pair == m_waiting_bw_path_map.end() ) {               //=============================================================================//  The transaction pointer used by the backward path call does not belong //  to this initiator, this is a major error //=============================================================================    msg << "      "    << "Initiator: " << m_ID     << " Received invalid transaction pointer";    REPORT_FATAL (filename, __FUNCTION__, msg.str() );  }//=============================================================================//  Normal operation  //    Decode backward path phase 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人久久精品77777最新版本| 欧美三级韩国三级日本一级| 99精品欧美一区二区三区小说| 欧美日韩高清不卡| 国产精品久久久久久久浪潮网站| 日韩高清电影一区| 91福利在线观看| 国产日产欧美一区| 久久精品国产网站| 欧美日韩一区三区四区| 亚洲色图欧美偷拍| 成人免费观看视频| 欧美激情在线一区二区| 日韩精品乱码免费| 欧美美女激情18p| 亚洲影院在线观看| 色婷婷久久99综合精品jk白丝| 国产农村妇女毛片精品久久麻豆| 麻豆久久久久久久| 日韩免费观看高清完整版在线观看| 亚洲国产精品一区二区www在线| 99久久久久免费精品国产| 欧美国产一区视频在线观看| 黄网站免费久久| 久久夜色精品国产噜噜av | 一区二区三区四区在线播放| 成人免费的视频| 国产精品国产三级国产aⅴ中文| 国产精品一区二区在线观看网站 | 国产欧美一区二区三区在线看蜜臀 | 一本大道久久精品懂色aⅴ| 国产色一区二区| 丁香天五香天堂综合| 日本一区二区三区四区 | 91香蕉视频在线| 亚洲视频香蕉人妖| 91免费精品国自产拍在线不卡| 中文字幕一区二区三区精华液| 成人性视频免费网站| 亚洲欧美一区二区在线观看| 色又黄又爽网站www久久| 一区二区三区在线免费| 欧美日韩黄色影视| 免费一区二区视频| 久久久www成人免费毛片麻豆| 国产福利视频一区二区三区| 国产精品成人一区二区艾草| 91黄视频在线| 日本免费在线视频不卡一不卡二| 日韩美女视频在线| 成人国产精品免费观看视频| 亚洲精品乱码久久久久久久久 | 欧美va日韩va| 成人亚洲一区二区一| 亚洲激情中文1区| 欧美一区二区二区| 国产高清视频一区| 亚洲精品国产品国语在线app| 欧美日韩国产小视频在线观看| 免费看精品久久片| 中文无字幕一区二区三区| 日本韩国欧美在线| 国模娜娜一区二区三区| 日韩美女啊v在线免费观看| 欧美三级三级三级| 国产高清在线观看免费不卡| 一区二区国产视频| 国产午夜精品在线观看| 91九色最新地址| 国产精品正在播放| 亚洲一区二区精品久久av| 久久综合色综合88| 欧美伊人久久大香线蕉综合69| 国内偷窥港台综合视频在线播放| 亚洲色图在线播放| 久久蜜臀精品av| 欧美人妇做爰xxxⅹ性高电影| 成人永久看片免费视频天堂| 日韩av午夜在线观看| 国产精品第五页| 久久亚洲综合色| 日韩一区国产二区欧美三区| 99精品久久只有精品| 国产精品一区二区久久不卡| 午夜精品一区二区三区电影天堂| 国产精品色哟哟网站| 日韩美女一区二区三区四区| 欧美日韩一区二区三区四区五区| 国产精品综合二区| 蜜臀久久99精品久久久久宅男 | 中文文精品字幕一区二区| 日韩欧美在线观看一区二区三区| 在线中文字幕一区二区| 国产成人午夜99999| 美日韩黄色大片| 日韩成人av影视| 亚洲国产一区二区三区青草影视 | 99re免费视频精品全部| 国产一二精品视频| 久久99热狠狠色一区二区| 亚洲电影第三页| 一区二区视频免费在线观看| 国产嫩草影院久久久久| 国产欧美日韩久久| 久久精品在这里| 久久久99久久| 久久久国产综合精品女国产盗摄| 日韩免费看的电影| 欧美成人女星排行榜| 精品嫩草影院久久| 精品国产91久久久久久久妲己| 欧美一区二区黄| 日韩精品一区二区三区四区视频| 91精品国产色综合久久不卡电影 | 日本韩国一区二区三区| 色老综合老女人久久久| 色婷婷一区二区| 欧美日韩一区二区三区免费看| 91精品办公室少妇高潮对白| 色屁屁一区二区| 欧美日高清视频| 欧美一区二区三区婷婷月色| 日韩精品一区二区三区在线 | 欧美男同性恋视频网站| 欧美一级片在线| 精品国产乱码久久久久久蜜臀| 欧美大片在线观看| 国产色产综合色产在线视频 | 视频一区二区国产| 老司机午夜精品| 岛国av在线一区| 在线观看一区二区视频| 欧美日韩性生活| 精品国产百合女同互慰| 日本一二三不卡| 亚洲日本青草视频在线怡红院| 亚洲黄色av一区| 美女视频一区在线观看| 国产成人在线色| 欧美性猛片xxxx免费看久爱| 制服视频三区第一页精品| 欧美成人一区二区三区| 国产精品网曝门| 亚洲一区二区三区中文字幕| 美女看a上一区| heyzo一本久久综合| 在线播放视频一区| 国产日本欧洲亚洲| 亚洲成人三级小说| 国产凹凸在线观看一区二区| 在线观看不卡一区| 久久亚洲综合色一区二区三区| 中文字幕av一区二区三区| 国产精品福利影院| 亚洲欧美综合网| 免费一级片91| 99re这里都是精品| 91精品国产综合久久国产大片| 久久亚洲精品小早川怜子| 亚洲另类色综合网站| 另类的小说在线视频另类成人小视频在线 | 欧美色涩在线第一页| www国产精品av| 三级影片在线观看欧美日韩一区二区| 国产九色精品成人porny| 欧美日韩亚洲另类| 国产精品福利av| 国产尤物一区二区| 制服丝袜亚洲网站| 亚洲一区自拍偷拍| 99精品久久只有精品| 久久看人人爽人人| 日本亚洲最大的色成网站www| 色女孩综合影院| 国产精品丝袜久久久久久app| 男女男精品网站| 欧美日韩成人综合| 亚洲综合免费观看高清完整版在线 | 91欧美一区二区| 久久精品亚洲精品国产欧美| 日本成人在线一区| 欧美日韩中文字幕一区二区| 亚洲欧美成人一区二区三区| 成人一区二区在线观看| 精品成人私密视频| 青草国产精品久久久久久| 欧美网站一区二区| 亚洲自拍偷拍九九九| av一区二区三区四区| 欧美高清在线一区| 国产成人日日夜夜| 欧美国产日韩精品免费观看| 国产精品一区一区三区| 精品久久久久99| 国产一区二区视频在线播放| 精品国产sm最大网站免费看| 国内精品自线一区二区三区视频| 在线成人高清不卡| 日韩中文字幕1| 日韩一区二区在线看|