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

📄 switch.h

📁 基于4个mips核的noc设计
💻 H
字号:
/* *  TU Eindhoven *  Eindhoven, The Netherlands * *  Name            :   switch.h * *  Author          :   A.S.Slusarczyk@tue.nl * *  Date            :   13-09-2003 * *  Function        :   Crossbar switch with e-cube router * Based on requested address forwards data_in_x, req_in_x and * ack_in_x from input to output.  * Note that while data and req travel from "left" to "right", ack goes from  * right to left * arbitration - if two inputs request the same output, the one with * smaller number wins * */#ifndef SWITCH_H_INCLUDED#define SWITCH_H_INCLUDED#include <systemc.h>#include "net_dim.h"SC_MODULE(CROSSBAR3x3){  sc_in<bool> clk;    sc_in< sc_uint<2> > addr_0, addr_1, addr_2;  sc_in< bool > conn_0, conn_1, conn_2;  sc_in< sc_bv<FLIT_LEN> > data_in_0, data_in_1, data_in_2;  sc_in< bool > req_in_0, req_in_1, req_in_2;  sc_in< bool > ack_in_0, ack_in_1, ack_in_2;  sc_out< sc_bv<FLIT_LEN> > data_out_0, data_out_1, data_out_2;  sc_out< bool > req_out_0, req_out_1, req_out_2;  sc_out< bool > ack_out_0, ack_out_1, ack_out_2;  // grantX - which input has output X  // 0-none, 1,2,3 - x0, x1, d  sc_signal< sc_uint<2> > grant0, grant1, grant2;  // round-robin arbitration - the requester with the number equal   // to round_robin has priority  sc_signal< sc_uint<2> > round_robin;  // increase round_robin  sc_signal< bool > rr_inc;    void crossbar_process();  void arbiter_process();  void round_robin_process();    SC_CTOR(CROSSBAR3x3){	// simple multiplexing based on current grants	SC_METHOD(crossbar_process);	sensitive << data_in_0 << data_in_1 << data_in_2			  << req_in_0 << req_in_1 << req_in_2			  << ack_in_0 << ack_in_1 << ack_in_2 			  << grant0 << grant1 << grant2;		// arbitration	SC_METHOD(arbiter_process);	sensitive_pos << clk;		// round-robin counter	SC_METHOD(round_robin_process);	sensitive_pos << clk;  }};#endif

⌨️ 快捷键说明

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