Entity: RssiConnFsm
- File: RssiConnFsm.vhd
Diagram
Description
Title : RSSI Protocol: https://confluence.slac.stanford.edu/x/1IyfD
Company : SLAC National Accelerator Laboratory
Description: Connection establishment mechanism: - Connection open/close request, - Parameter negotiation,
- Server-client mode (More comments below).
This file is part of 'SLAC Firmware Standard Library'. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of 'SLAC Firmware Standard Library', including this file, may be copied, modified, propagated, or distributed except according to
the terms contained in the LICENSE.txt file.
Generics
| Generic name | Type | Value | Description |
|---|---|---|---|
| TPD_G | time | 1 ns | |
| SERVER_G | boolean | true | |
| TIMEOUT_UNIT_G | real | 1.0E-6 | us |
| CLK_FREQUENCY_G | real | 100.0E6 | |
| RETRANS_TOUT_G | positive | 50 | Time the module waits for the response until it retransmits SYN segment |
| MAX_RETRANS_CNT_G | positive | 2 | |
| WINDOW_ADDR_SIZE_G | positive | 3 | |
| SEGMENT_ADDR_SIZE_G | positive | 7 | 2^SEGMENT_ADDR_SIZE_G = Number of 64 bit wide data words |
Ports
| Port name | Direction | Type | Description |
|---|---|---|---|
| clk_i | in | sl | |
| rst_i | in | sl | |
| connRq_i | in | sl | Connection request (open/close) |
| closeRq_i | in | sl | |
| rxRssiParam_i | in | RssiParamType | Parameters received from peer (Server) |
| appRssiParam_i | in | RssiParamType | Parameters set by high level App or generic (Client) |
| rssiParam_o | out | RssiParamType | Negotiated parameters |
| rxFlags_i | in | FlagsType | Flags from Rx module |
| rxValid_i | in | sl | Valid received packet |
| synHeadSt_i | in | sl | |
| ackHeadSt_i | in | sl | |
| rstHeadSt_i | in | sl | |
| connActive_o | out | sl | Connection FSM indicating active connection |
| closed_o | out | sl | FSM in closed state (indicating when to initialize seqN) |
| sndSyn_o | out | sl | |
| sndAck_o | out | sl | |
| sndRst_o | out | sl | |
| txAckF_o | out | sl | |
| rxBufferSize_o | out | integer range 1 to 2 ** (SEGMENT_ADDR_SIZE_G) | Window size and buffer size different for Rx and Tx |
| rxWindowSize_o | out | integer range 1 to 2 ** (WINDOW_ADDR_SIZE_G) | |
| txBufferSize_o | out | integer range 1 to 2 ** (SEGMENT_ADDR_SIZE_G) | |
| txWindowSize_o | out | integer range 1 to 2 ** (WINDOW_ADDR_SIZE_G) | |
| peerTout_o | out | sl | Status signals |
| paramReject_o | out | sl |
Signals
| Name | Type | Description |
|---|---|---|
| r | RegType | |
| rin | RegType |
Constants
| Name | Type | Value | Description |
|---|---|---|---|
| SAMPLES_PER_TIME_C | integer | integer(TIMEOUT_UNIT_G * CLK_FREQUENCY_G) | |
| REG_INIT_C | RegType | ( connActive => '0', closed => '1', sndSyn => '0', sndAck => '0', sndRst => '0', txAckF => '0', peerTout => '0', paramReject => '0', rssiParam => RSSI_PARAM_INIT_C, timeoutCntr => 0, resendCntr => 0, -- txBufferSize=> 1, txWindowSize=> 1, --- state => CLOSED_S ) |
Types
| Name | Type | Description |
|---|---|---|
| StateType | ( CLOSED_S, SEND_SYN_S, WAIT_SYN_S, LISTEN_S, SEND_ACK_S, SEND_SYN_ACK_S, WAIT_ACK_S, SEND_RST_S, OPEN_S ) |
|
| RegType |
Processes
- comb: ( r, rst_i, connRq_i, rxRssiParam_i, synHeadSt_i, rxFlags_i,
ackHeadSt_i, rstHeadSt_i, appRssiParam_i, rxValid_i, closeRq_i )
- seq: ( clk_i )