⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ttile.h

📁 片上网络的noxim仿真平台
💻 H
字号:
/*****************************************************************************  TTile.h -- Tile definition *****************************************************************************/#ifndef __TTILE_H__#define __TTILE_H__//---------------------------------------------------------------------------#include <systemc.h>#include "TRouter.h"#include "TProcessingElement.h"SC_MODULE(TTile){  // I/O Ports  sc_in_clk           clock;        // The input clock for the tile  sc_in<bool>         reset;        // The reset signal for the tile  sc_in<TFlit>        flit_rx[DIRECTIONS];   // The input channels  sc_in<bool>         req_rx[DIRECTIONS];    // The requests associated with the input channels  sc_out<bool>        ack_rx[DIRECTIONS];    // The outgoing ack signals associated with the input channels  sc_out<TFlit>       flit_tx[DIRECTIONS];   // The output channels  sc_out<bool>        req_tx[DIRECTIONS];    // The requests associated with the output channels  sc_in<bool>         ack_tx[DIRECTIONS];    // The outgoing ack signals associated with the output channels  sc_out<int>        free_slots[DIRECTIONS];  sc_in<int>         free_slots_neighbor[DIRECTIONS];  // NoP related I/O  sc_out<TNoP_data>        NoP_data_out[DIRECTIONS];  sc_in<TNoP_data>         NoP_data_in[DIRECTIONS];  // Signals  sc_signal<TFlit>    flit_rx_local;   // The input channels  sc_signal<bool>     req_rx_local;    // The requests associated with the input channels  sc_signal<bool>     ack_rx_local;    // The outgoing ack signals associated with the input channels  sc_signal<TFlit>    flit_tx_local;   // The output channels  sc_signal<bool>     req_tx_local;    // The requests associated with the output channels  sc_signal<bool>     ack_tx_local;    // The outgoing ack signals associated with the output channels    sc_signal<int>     free_slots_local;  sc_signal<int>     free_slots_neighbor_local;  // Instances  TRouter*            r;               // Router instance  TProcessingElement* pe;              // Processing Element instance  // Constructor  SC_CTOR(TTile)  {    // Router pin assignments    r = new TRouter("Router");    r->clock(clock);    r->reset(reset);    for(int i=0; i<DIRECTIONS; i++)    {      r->flit_rx[i](flit_rx[i]);      r->req_rx[i](req_rx[i]);      r->ack_rx[i](ack_rx[i]);      r->flit_tx[i](flit_tx[i]);      r->req_tx[i](req_tx[i]);      r->ack_tx[i](ack_tx[i]);      r->free_slots[i](free_slots[i]);      r->free_slots_neighbor[i](free_slots_neighbor[i]);      // NoP       r->NoP_data_out[i](NoP_data_out[i]);      r->NoP_data_in[i](NoP_data_in[i]);    }    r->flit_rx[DIRECTION_LOCAL](flit_tx_local);    r->req_rx[DIRECTION_LOCAL](req_tx_local);    r->ack_rx[DIRECTION_LOCAL](ack_tx_local);    r->flit_tx[DIRECTION_LOCAL](flit_rx_local);    r->req_tx[DIRECTION_LOCAL](req_rx_local);    r->ack_tx[DIRECTION_LOCAL](ack_rx_local);    r->free_slots[DIRECTION_LOCAL](free_slots_local);    r->free_slots_neighbor[DIRECTION_LOCAL](free_slots_neighbor_local);    // Processing Element pin assignments    pe = new TProcessingElement("ProcessingElement");    pe->clock(clock);    pe->reset(reset);    pe->flit_rx(flit_rx_local);    pe->req_rx(req_rx_local);    pe->ack_rx(ack_rx_local);    pe->flit_tx(flit_tx_local);    pe->req_tx(req_tx_local);    pe->ack_tx(ack_tx_local);    pe->free_slots(free_slots_local);    pe->free_slots_neighbor(free_slots_neighbor_local);  }};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -