[wiki:Component SocLib Components General Index] = !VirtualDspinRouter = == 1) Functional Description == This is the elementary node of a Virtual Dspin Array. The Virtual Dspin Router is a component which connects up to five input (one local, four for the adjacent Virtual Dspin Router) to five output (idem) for each virtual channel. Both channels share the same bus for routing. Thus, each input has a time multiplexing register, to decide == 2) Component definition & usage == source:trunk/soclib/soclib/module/network_component/virtual_dspin_router/caba/metadata/virtual_dspin_router.sd == 3) CABA implementation == === CABA sources === || interface || source:trunk/soclib/soclib/module/network_component/virtual_dspin_router/caba/source/include/virtual_dspin_router.h || || implementation || source:trunk/soclib/soclib/module/network_component/virtual_dspin_router/caba/source/src/virtual_dspin_router.cpp || === CABA Internal registers === || sc_signal || r_output_index || for each channel & each output, input index (INFSM) || sc_signal || r_tdm || for each input, Time Multiplexing || sc_signal > || r_buf || for each channel & each input, fifo extension || sc_signal || r_infsm || for each channel & each input FSM state === CABA Template parameters === || int data_size || Size of flit || || int io_mask_offset || Emplacement of IO checking || || int io_mask_size || Size of IO checking || || int io_number_offset || Emplacement of IO index in IO table || || int io_number_size || Size of IO index || || int x_addressing_offset || Emplacement of target x in first flit || || int x_addressing_size || Size of target x || || int y_addressing_offset || Emplacement of target y in first flit || || int y_addressing_size || Size of target y || || int eop_offset || Emplacement of eop checking || || int broadcast_offset || Emplacement of broadcast checking || || int in_fifo_size || Size of input fifos || || int out_fifo_size || Size of output fifos || || int x_min_offset || Emplacement of x_min for broadcast confinement || || int x_max_offset || Emplacement of x_max for broadcast confinement || || int y_min_offset || Emplacement of y_min for broadcast confinement || || int y_max_offset || Emplacement of y_max for broadcast confinement || === CABA Constructor parameters === || sc_module_name insname || instance name || || int x || x position in the network || || int y || y position in the network || || bool n || North connexion enabled || || bool s || South connexion enabled || || bool e || East connexion enabled || || bool w || West connexion enabled || || bool broadcast0 || Broadcast activated for channel 0 || || bool broadcast1 || Broadcast activated for channel 1 || || bool io0 || IO enable for channel 0 || || bool io1 || IO enable for channel 1 || || clusterCoordinates * aIO_table || list of IO Clusters || === CABA ports === || sc_in || p_clk || Global system clock || || sc_in || p_resetn || Global system reset || || !DspinOutput || ** p_out || For each output and each virtual channel || || !DspinInput || ** p_in || For each input and each virtual channel || == 4) TLMT implementation == The TLM-T implementation is not available yet.