Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

VCAllocator< num_ip > Struct Template Reference

Module to represent a Virtual channel allocator. More...

#include <VCAllocator.h>

Inheritance diagram for VCAllocator< num_ip >:

sc_module List of all members.

Public Member Functions

 SC_CTOR (VCAllocator)
 Constructor.
void allocate_VC ()
 process sensitive to VC request
void update_credit ()
void setTileID (UI tileID, UI portN, UI portS, UI portE, UI portW)
 sets tile ID and id corresponding to port directions
sc_uint< VCS_BITSIZE+1 > getNextVCID (int, int)
 allocates vcid in the requested channel

Public Attributes

sc_in< bool > switch_cntrl
 input clock port
sc_in< bool > vcRequest [num_ip]
 input ports for request signals from ICs
sc_in< sc_uint< 2 > > opRequest [num_ip]
 input ports to recieve output channel requested from ICs
sc_out< sc_uint< VCS_BITSIZE+1 > > nextVCID [num_ip]
 output ports to send next VCID to ICs
sc_out< bool > vcReady [num_ip]
 output ports to send ready signal to ICs
sc_in< creditLineIcredit [num_ip][NUM_VCS]
 input ports to recieve credit info (buffer status) from ICs
bool vcFree [num_ip][NUM_VCS]
 status registers to store credit info (buffer status)
UI tileID
 TileID.
UI portN
 port number representing North direction
UI portS
 port number representing South direction
UI portE
 port number representing East direction
UI portW
 port number representing West direction

Detailed Description

template<UI num_ip = NUM_IC>
struct VCAllocator< num_ip >

Module to represent a Virtual channel allocator.

This module defines a Virtual channel allocator (VCA) in a network tile


Member Function Documentation

template<UI num_ip>
void VCAllocator< num_ip >::allocate_VC  ) 
 

process sensitive to VC request

Process sensitive to incoming request for virtual channel allocation

  • reads request
  • allocates virtual channel in the requested channel on neighbor tile
  • returns allocated vcid and ready signal

template<UI num_ip>
sc_uint< VCS_BITSIZE+1 > VCAllocator< num_ip >::getNextVCID int  dir,
int  dir_from
 

allocates vcid in the requested channel

Method that implements virtual channel allocation Parameters:

  • o/p direction (neighbor tile) in which virtual channel is requested
  • i/p direction (IC) from which request is recieved
return allocated VC id

template<UI num_ip = NUM_IC>
VCAllocator< num_ip >::SC_CTOR VCAllocator< num_ip >   ) 
 

Constructor.

template<UI num_ip>
void VCAllocator< num_ip >::setTileID UI  id,
UI  port_N,
UI  port_S,
UI  port_E,
UI  port_W
 

sets tile ID and id corresponding to port directions

Method to assign tile IDs and port IDs

template<UI num_ip>
void VCAllocator< num_ip >::update_credit  ) 
 

process sensitive to credit input, updates credit (buffer status)


Member Data Documentation

template<UI num_ip = NUM_IC>
sc_in<creditLine> VCAllocator< num_ip >::Icredit[num_ip][NUM_VCS]
 

input ports to recieve credit info (buffer status) from ICs

template<UI num_ip = NUM_IC>
sc_out<sc_uint<VCS_BITSIZE+1> > VCAllocator< num_ip >::nextVCID[num_ip]
 

output ports to send next VCID to ICs

template<UI num_ip = NUM_IC>
sc_in<sc_uint<2> > VCAllocator< num_ip >::opRequest[num_ip]
 

input ports to recieve output channel requested from ICs

template<UI num_ip = NUM_IC>
UI VCAllocator< num_ip >::portE
 

port number representing East direction

template<UI num_ip = NUM_IC>
UI VCAllocator< num_ip >::portN
 

port number representing North direction

template<UI num_ip = NUM_IC>
UI VCAllocator< num_ip >::portS
 

port number representing South direction

template<UI num_ip = NUM_IC>
UI VCAllocator< num_ip >::portW
 

port number representing West direction

template<UI num_ip = NUM_IC>
sc_in<bool> VCAllocator< num_ip >::switch_cntrl
 

input clock port

template<UI num_ip = NUM_IC>
UI VCAllocator< num_ip >::tileID
 

TileID.

template<UI num_ip = NUM_IC>
bool VCAllocator< num_ip >::vcFree[num_ip][NUM_VCS]
 

status registers to store credit info (buffer status)

template<UI num_ip = NUM_IC>
sc_out<bool> VCAllocator< num_ip >::vcReady[num_ip]
 

output ports to send ready signal to ICs

template<UI num_ip = NUM_IC>
sc_in<bool> VCAllocator< num_ip >::vcRequest[num_ip]
 

input ports for request signals from ICs


Generated on Mon May 7 19:03:19 2007 for NIRGAM by  doxygen 1.3.9.1