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

📄 ttile.h

📁 noxim系统的软件实现
💻 H
字号:
/*****************************************************************************  TTile.h -- Tile definition *****************************************************************************//* Copyright 2005-2007      Fabrizio Fazzino <fabrizio.fazzino@diit.unict.it>    Maurizio Palesi <mpalesi@diit.unict.it>    Davide Patti <dpatti@diit.unict.it> *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */#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 + -