亚洲欧美第一页_禁久久精品乱码_粉嫩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 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品乱人伦小说| 国产精品电影一区二区三区| 欧美精品一区二区三区蜜桃| 国产精品色婷婷| 日本成人中文字幕在线视频| 国产成人在线免费观看| 欧美亚洲高清一区| 欧美国产乱子伦 | 777xxx欧美| 最新国产の精品合集bt伙计| 国产一区二区三区精品欧美日韩一区二区三区| 99精品久久只有精品| 久久人人爽人人爽| 三级久久三级久久| 在线免费观看成人短视频| 国产日产欧美一区二区三区| 久久国产精品99精品国产 | 国产白丝精品91爽爽久久| 欧美日韩精品福利| 亚洲欧美另类久久久精品| 免费观看91视频大全| 91视频观看免费| 国产精品久久久爽爽爽麻豆色哟哟 | 综合久久久久久| 国内精品伊人久久久久av一坑| 欧美特级限制片免费在线观看| 久久久蜜桃精品| 日韩高清欧美激情| 国产成人亚洲综合a∨婷婷图片 | 国产精品全国免费观看高清| 舔着乳尖日韩一区| 国产成人精品在线看| 日韩视频国产视频| 婷婷丁香久久五月婷婷| 在线亚洲高清视频| 最新国产の精品合集bt伙计| 丁香六月久久综合狠狠色| 精品剧情v国产在线观看在线| 亚洲午夜久久久久久久久久久 | 欧美日韩久久久| 亚洲色图欧美激情| www.色综合.com| 国产亚洲成av人在线观看导航 | 国产91丝袜在线播放| 日韩精品专区在线影院观看| 亚洲v日本v欧美v久久精品| 一本色道久久综合亚洲91| 中文字幕日韩欧美一区二区三区| 国产精品中文字幕欧美| 欧美三级视频在线| 亚洲日本免费电影| 成人激情校园春色| 中文字幕av一区二区三区高| 91在线一区二区| 中文字幕一区二区三区四区不卡| 成人免费毛片a| 欧美国产精品中文字幕| 成人免费视频视频在线观看免费| 国产清纯美女被跳蛋高潮一区二区久久w | 成人黄色一级视频| 中文字幕乱码一区二区免费| 国产乱码精品一区二区三区av | 欧美日韩亚洲国产综合| 亚洲五码中文字幕| 91色视频在线| 日韩精品1区2区3区| 欧美在线视频你懂得| 激情图区综合网| 国产色产综合产在线视频| caoporn国产一区二区| 最新国产成人在线观看| 欧美日韩精品欧美日韩精品| 麻豆精品在线播放| 国产精品视频第一区| 欧美三日本三级三级在线播放| 亚洲国产aⅴ成人精品无吗| 日韩一区二区三区在线| 成人免费视频一区二区| 亚洲一区二区精品视频| 精品少妇一区二区三区日产乱码 | 日韩视频一区二区三区| 激情av综合网| 亚洲欧洲av在线| 制服丝袜成人动漫| 成人综合激情网| 一区二区三区四区精品在线视频| 91精品国产免费| 丁香一区二区三区| 亚洲福利视频三区| 精品国一区二区三区| 成人v精品蜜桃久久一区| 午夜精品久久久久久久久| 国产亚洲一二三区| 欧美精品乱码久久久久久按摩| 国产成人在线观看| 日韩精品色哟哟| 国产精品欧美一级免费| 91精品国产一区二区三区| 国产99久久久国产精品潘金网站| 亚洲国产精品一区二区www | 国产乱子伦视频一区二区三区| 亚洲精品网站在线观看| 久久综合狠狠综合| 欧美人伦禁忌dvd放荡欲情| 91在线国内视频| 国产麻豆精品久久一二三| 日韩二区三区在线观看| 亚洲精品乱码久久久久久黑人| 精品剧情在线观看| 91精品国产综合久久精品app| 99国产精品国产精品久久| 麻豆国产精品777777在线| 亚洲电影在线免费观看| 国产精品久久久99| 久久久久久亚洲综合影院红桃 | 久久尤物电影视频在线观看| 欧美精品自拍偷拍动漫精品| 国产高清精品久久久久| 日韩国产一二三区| 亚洲精品欧美专区| 亚洲图片自拍偷拍| 一区二区三区蜜桃| 亚洲欧美日韩在线| 国产精品白丝在线| 国产精品久久福利| 国产精品不卡一区二区三区| 国产欧美一区二区精品性色超碰| 日韩欧美一级二级三级久久久| 欧美久久一二区| 欧美午夜精品久久久久久孕妇| 91网站在线播放| 欧洲人成人精品| 欧美性大战xxxxx久久久| 91小视频免费看| 91精彩视频在线| 日本国产一区二区| 一区二区视频免费在线观看| 欧美日韩国产中文| 欧美剧在线免费观看网站| 欧美女孩性生活视频| 欧美日韩国产高清一区| 欧美人与z0zoxxxx视频| 欧美另类变人与禽xxxxx| 欧美精品久久一区二区三区| 色丁香久综合在线久综合在线观看| 成人影视亚洲图片在线| 成人高清视频在线观看| 99久精品国产| 在线观看国产日韩| 欧美另类一区二区三区| 日韩欧美在线123| 精品国产1区二区| 国产欧美综合色| 亚洲乱码国产乱码精品精小说| 亚洲亚洲人成综合网络| 日本va欧美va欧美va精品| 精品一区二区在线观看| 成人午夜精品一区二区三区| jvid福利写真一区二区三区| 91久久精品网| 337p亚洲精品色噜噜| 国产色一区二区| 一二三区精品视频| 日韩电影免费在线| 激情国产一区二区| www.亚洲精品| 精品视频1区2区| 精品久久久久一区| 亚洲免费在线播放| 麻豆国产精品官网| 97久久精品人人爽人人爽蜜臀| 欧美中文一区二区三区| 久久综合九色综合欧美亚洲| 亚洲欧美激情一区二区| 久久激情五月婷婷| 91在线视频网址| 欧美r级在线观看| 亚洲日本欧美天堂| 久久99国内精品| 欧美在线一二三四区| 久久综合999| 五月天中文字幕一区二区| 国产毛片精品视频| 欧美一卡二卡在线观看| 国产精品久久久久久久久晋中 | 国产精品久久久久久久久晋中| 首页亚洲欧美制服丝腿| 成人av电影在线| 精品美女一区二区| 一个色妞综合视频在线观看| 精品一区二区三区在线观看| 色视频一区二区| 久久麻豆一区二区| 天天影视网天天综合色在线播放| www.成人网.com| 久久精品亚洲精品国产欧美kt∨ | 97se亚洲国产综合自在线不卡| 欧美亚洲自拍偷拍| 久久久欧美精品sm网站| 亚洲欧美日韩国产手机在线 |