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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? traffic_generator.cpp

?? SystemC Transaction Level Modelling. 是基于SystemC之上的總線互聯協議
?? CPP
字號:
/**********************************************************************    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 traffic_generator.cpp// /// @brief traffic generation routines////=====================================================================//  Authors://    Bill Bunton, ESLX//    Jack Donovan, ESLX//    Charles Wilson, ESLX//====================================================================#include "reporting.h"               	        // reporting macros#include "traffic_generator.h"                // traffic generator declarations#ifdef USING_EXTENSION_OPTIONAL#include "extension_initiator_id.h"           // initiator ID extension#endif  /* USING_EXTENSION_OPTIONAL */using namespace std;static const char *filename = "traffic_generator.cpp";  ///< filename for reporting/// ConstructorSC_HAS_PROCESS(traffic_generator);//-----------------------------------------------------------------------------//traffic_generator::traffic_generator            // @todo keep me, lose other constructor( sc_core::sc_module_name name                  // instance name, const unsigned int    ID                      // initiator ID, sc_dt::uint64         base_address_1          // first base address, sc_dt::uint64         base_address_2          // second base address, unsigned int          active_txn_count        // Max number of active transactions ): sc_module           ( name              )     /// instance name, m_ID                ( ID                )     /// initiator ID, m_base_address_1    ( base_address_1    )     /// first base address, m_base_address_2    ( base_address_2    )     /// second base address, m_active_txn_count  ( active_txn_count  )     /// Max number of active transactions , m_check_all         ( true              ){   SC_THREAD(traffic_generator_thread);}/// SystemC thread for generation of GP trafficvoidtraffic_generator::traffic_generator_thread   ( void){  std::ostringstream  msg;                      ///< log message    msg.str ("");  msg << "Initiator: " << m_ID << " Starting Traffic";  REPORT_INFO(filename, __FUNCTION__, msg.str());    tlm::tlm_generic_payload  *transaction_ptr;   ///< transaction pointer  unsigned char             *data_buffer_ptr;   ///< data buffer pointer    // build transaction pool   for (unsigned int i = 0; i < m_active_txn_count; i++ )  {    m_transaction_queue.enqueue ();  }    // outer loop of a simple memory test generate addresses  sc_dt::uint64 base_address;     for (unsigned int i = 0; i < 2; i++ )  {    base_address = i ? m_base_address_2 : m_base_address_1;     sc_dt::uint64 mem_address = base_address;     // write loop         for (unsigned int j = 0; j < 16; j++ )    {      if(!m_transaction_queue.is_empty())      {        transaction_ptr = m_transaction_queue.dequeue ();                data_buffer_ptr = transaction_ptr->get_data_ptr();        unsigned int w_data = (unsigned int)mem_address;                // invert data on second pass        if (i==1)        {          w_data = ~w_data;        }              // convert address of write data to an 32-bit value        *reinterpret_cast<unsigned int*>(data_buffer_ptr) = w_data;                transaction_ptr->set_command          ( tlm::TLM_WRITE_COMMAND       );        transaction_ptr->set_address          ( mem_address                  );        transaction_ptr->set_data_length      ( m_txn_data_size              );        transaction_ptr->set_streaming_width  ( m_txn_data_size              );        transaction_ptr->set_response_status  ( tlm::TLM_INCOMPLETE_RESPONSE );                #if (  defined ( USING_EXTENSION_OPTIONAL  ) )        // set the extension                extension_initiator_id  *extension_pointer;   // extension pointer        std::ostringstream       initiator_id;        // initiator ID string                initiator_id << "'Initiator ID: " << m_ID << "'";        extension_pointer                 = new extension_initiator_id;        extension_pointer->m_initiator_id = initiator_id.str();                // register the extension        transaction_ptr->set_extension ( extension_pointer );         #endif  /* USING_EXTENSION_OPTIONAL */                // increment memory address        mem_address += m_txn_data_size;                // send write request        request_out_port->write (transaction_ptr);      }            check_complete();       }        check_all_complete();        // read loop       mem_address = base_address;        for (unsigned int i = 0; i < 16; i++ )    {      if(!m_transaction_queue.is_empty())      {        transaction_ptr = m_transaction_queue.dequeue ();                                   transaction_ptr->set_command          ( tlm::TLM_READ_COMMAND        );        transaction_ptr->set_address          ( mem_address                  );        transaction_ptr->set_data_length      ( m_txn_data_size              );        transaction_ptr->set_streaming_width  ( m_txn_data_size              );        transaction_ptr->set_response_status  ( tlm::TLM_INCOMPLETE_RESPONSE );        #if (  defined ( USING_EXTENSION_OPTIONAL  ) )        // set the extension                extension_initiator_id  *extension_pointer;   // extension pointer        std::ostringstream       initiator_id;        // initiator ID string                initiator_id << "'Initiator ID: " << m_ID << "'";        extension_pointer                 = new extension_initiator_id;        extension_pointer->m_initiator_id = initiator_id.str();                // register the extension        transaction_ptr->set_extension ( extension_pointer );         #endif  /* USING_EXTENSION_OPTIONAL */                // increment memory address        mem_address += m_txn_data_size;                 // send write request        request_out_port->write (transaction_ptr);       }              check_complete();    } // end read loop       check_all_complete();  }  msg.str ("");  msg << "Traffic Generator : " << m_ID << endl   << "=========================================================" << endl   << "            ####  Traffic Generator Complete  #### ";  REPORT_INFO(filename, __FUNCTION__, msg.str());} // end traffic_generator_thread//-----------------------------------------------------------------------------//  Check Complete methodvoid traffic_generator::check_complete (void){  std::ostringstream        msg;     tlm::tlm_generic_payload  *transaction_ptr;      if (   m_transaction_queue.is_empty()       || m_check_all       || ( response_in_port->num_available() > 0 ) )  {    response_in_port->read(transaction_ptr);        if (transaction_ptr ->get_response_status() != tlm::TLM_OK_RESPONSE)    {      msg.str ("");      msg << m_ID << "Transaction ERROR";      REPORT_FATAL(filename, __FUNCTION__, msg.str());     }        if (  transaction_ptr->get_command() == tlm::TLM_READ_COMMAND)    {      unsigned int    expected_data   = (unsigned int)transaction_ptr->get_address();      unsigned char*  data_buffer_ptr = transaction_ptr->get_data_ptr();      unsigned int    read_data       = *reinterpret_cast<unsigned int*>(data_buffer_ptr);          //-----------------------------------------------------------------------------      // The address for the 揼p

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性极品少妇| 亚洲欧美在线观看| 国产日韩欧美制服另类| 亚洲宅男天堂在线观看无病毒| 国产一区高清在线| 色域天天综合网| 国产三级一区二区| 午夜视黄欧洲亚洲| 91亚洲大成网污www| 日韩欧美一区二区三区在线| 亚洲人妖av一区二区| 国产精品一区二区男女羞羞无遮挡 | 91香蕉视频黄| 2017欧美狠狠色| 日韩国产一二三区| 日本电影欧美片| 中文字幕一区二区三区精华液| 精品一区二区免费视频| 欧美日韩视频在线一区二区| 亚洲婷婷综合久久一本伊一区| 国产又粗又猛又爽又黄91精品| 91精品午夜视频| 午夜精品视频一区| 欧美色网站导航| 一区二区三区加勒比av| 成人三级伦理片| 国产色综合久久| 国产成都精品91一区二区三| 久久久www免费人成精品| 国产美女精品一区二区三区| 精品理论电影在线观看| 韩国欧美国产一区| 欧美喷潮久久久xxxxx| 狠狠色丁香久久婷婷综合_中| 欧美精品黑人性xxxx| 婷婷综合另类小说色区| 欧美电影在线免费观看| 亚洲超丰满肉感bbw| 欧美日韩精品一区二区三区 | 欧美精品亚洲一区二区在线播放| 亚洲欧美日韩国产成人精品影院 | 亚洲欧美激情插| 色丁香久综合在线久综合在线观看| **欧美大码日韩| 色婷婷综合视频在线观看| 中文字幕日韩av资源站| 色哟哟日韩精品| 无吗不卡中文字幕| 精品久久久久久无| 不卡的电影网站| 亚洲自拍偷拍网站| 日韩一区二区免费电影| 激情小说欧美图片| 国产精品久久久久一区二区三区| 91高清视频免费看| 久久国产综合精品| 国产精品久久久久久久久晋中 | 国产精品一品二品| 亚洲精品国久久99热| 欧美二区在线观看| 国产91清纯白嫩初高中在线观看| 亚洲欧美日韩国产手机在线| 91精品国产欧美日韩| 国产成人在线视频播放| 亚洲精品五月天| 日韩三级av在线播放| 99精品视频一区| 蜜臀av性久久久久蜜臀aⅴ| 国产欧美一区在线| 欧美日韩国产免费一区二区| 国产真实乱子伦精品视频| 综合精品久久久| 日韩欧美的一区| 色呦呦国产精品| 国内精品写真在线观看| 夜夜嗨av一区二区三区网页| 欧美成人video| 欧美伊人久久久久久午夜久久久久| 另类欧美日韩国产在线| 亚洲黄色av一区| 久久色视频免费观看| 欧美视频一区二区在线观看| 国产成人综合自拍| 日本不卡一二三区黄网| 日韩一区日韩二区| 久久久精品影视| 制服.丝袜.亚洲.中文.综合| 色欲综合视频天天天| 国产成人啪午夜精品网站男同| 天使萌一区二区三区免费观看| 国产精品久久久久久亚洲毛片 | 狠狠色综合色综合网络| 亚洲制服丝袜在线| 日韩美女精品在线| 国产免费观看久久| 久久夜色精品国产噜噜av| 欧美久久久久久蜜桃| 欧美系列在线观看| 91国产福利在线| 波多野结衣视频一区| 国产一区二区精品久久99| 日韩精品国产欧美| 偷拍自拍另类欧美| 午夜视频在线观看一区| 亚洲愉拍自拍另类高清精品| 亚洲私人黄色宅男| 亚洲欧美日韩国产手机在线| 中文字幕一区二区三区在线不卡 | www.欧美.com| av在线一区二区| 白白色 亚洲乱淫| youjizz久久| 94色蜜桃网一区二区三区| 成人精品高清在线| 成人91在线观看| 91免费在线看| 日本国产一区二区| 欧美日韩免费一区二区三区| 欧美猛男超大videosgay| 欧美性大战久久久| 欧美日韩国产精选| 日韩欧美精品在线| 久久亚洲综合av| 日本一区二区三区视频视频| 国产日韩欧美高清在线| 亚洲视频在线一区| 亚洲激情图片小说视频| 亚洲国产色一区| 欧美a级理论片| 国产高清不卡二三区| 成人av资源在线| 欧美午夜精品一区二区三区| 69堂国产成人免费视频| 日韩欧美激情一区| 中文av一区二区| 亚洲毛片av在线| 日韩精品电影在线观看| 国产福利91精品一区二区三区| 福利一区二区在线观看| 欧美优质美女网站| 日韩午夜在线观看| 中日韩av电影| 亚洲韩国精品一区| 国内外成人在线| 色偷偷成人一区二区三区91| 日韩一区二区三区电影| 国产精品美女久久久久久久| 亚洲午夜在线电影| 韩国av一区二区三区| 91亚洲精品一区二区乱码| 欧美精品1区2区3区| 久久久久国产免费免费| 亚洲一区二区三区免费视频| 久久成人免费网站| 91麻豆精品在线观看| 日韩精品一区二区三区老鸭窝| 国产精品久久久久四虎| 蜜臀精品一区二区三区在线观看 | 麻豆精品国产传媒mv男同| 成人a区在线观看| 日韩一区二区在线免费观看| 国产欧美一二三区| 日韩高清不卡一区二区| caoporn国产精品| 精品国产123| 日韩精品一区第一页| 色综合久久久久综合体桃花网| 26uuu国产电影一区二区| 亚洲电影一级黄| 91欧美一区二区| 欧美韩国日本综合| 九一九一国产精品| 337p亚洲精品色噜噜| 亚洲精品视频自拍| 高清在线成人网| 日韩精品一区二区三区三区免费| 亚洲国产美女搞黄色| 91色.com| 国产精品久久久久桃色tv| 国产精品一区二区三区乱码| 日韩一级精品视频在线观看| 亚洲一区在线看| 91啪亚洲精品| 亚洲欧美日韩综合aⅴ视频| 国产成人精品免费| 久久久久国产精品麻豆ai换脸| 美腿丝袜亚洲一区| 欧美性高清videossexo| 一区二区三区日韩精品视频| 91啪亚洲精品| 自拍偷拍国产精品| thepron国产精品| 欧美高清在线视频| 成人黄色网址在线观看| 欧美激情综合在线| 国产宾馆实践打屁股91| 日本一二三不卡| 99视频超级精品| 国产精品大尺度| 在线视频亚洲一区|