Entity: UdpEngineRx
- File: UdpEngineRx.vhd
Diagram
Description
Company : SLAC National Accelerator Laboratory
Description: UDP RX Engine Module
Note: UDP checksum checked in EthMac core
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 | Simulation Generics |
DHCP_G | boolean | false | UDP General Generic |
SERVER_EN_G | boolean | true | UDP Server Generics |
SERVER_SIZE_G | positive | 1 | |
SERVER_PORTS_G | PositiveArray | (0 => 8192) | |
CLIENT_EN_G | boolean | true | UDP Client Generics |
CLIENT_SIZE_G | positive | 1 | |
CLIENT_PORTS_G | PositiveArray | (0 => 8193) |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
localIp | in | slv(31 downto 0) | big-Endian configuration |
broadcastIp | in | slv(31 downto 0) | big-Endian configuration |
ibUdpMaster | in | AxiStreamMasterType | Interface to IPV4 Engine |
ibUdpSlave | out | AxiStreamSlaveType | |
serverRemotePort | out | Slv16Array(SERVER_SIZE_G-1 downto 0) | Interface to UDP Server engine(s) |
serverRemoteIp | out | Slv32Array(SERVER_SIZE_G-1 downto 0) | |
serverRemoteMac | out | Slv48Array(SERVER_SIZE_G-1 downto 0) | |
obServerMasters | out | AxiStreamMasterArray(SERVER_SIZE_G-1 downto 0) | |
obServerSlaves | in | AxiStreamSlaveArray(SERVER_SIZE_G-1 downto 0) | |
clientRemoteDet | out | slv(CLIENT_SIZE_G-1 downto 0) | Interface to UDP Client engine(s) |
obClientMasters | out | AxiStreamMasterArray(CLIENT_SIZE_G-1 downto 0) | |
obClientSlaves | in | AxiStreamSlaveArray(CLIENT_SIZE_G-1 downto 0) | |
ibDhcpMaster | out | AxiStreamMasterType | Interface to DHCP Engine |
ibDhcpSlave | in | AxiStreamSlaveType | |
clk | in | sl | Clock and Reset |
rst | in | sl |
Signals
Name | Type | Description |
---|---|---|
r | RegType | |
rin | RegType | |
rxMaster | AxiStreamMasterType | |
rxSlave | AxiStreamSlaveType | |
serverSlave | AxiStreamSlaveType | |
clientSlave | AxiStreamSlaveType | |
dhcpSlave | AxiStreamSlaveType |
Constants
Name | Type | Value | Description |
---|---|---|---|
SERVER_PORTS_C | Slv16Array(SERVER_SIZE_G-1 downto 0) | EthPortArrayBigEndian(SERVER_PORTS_G, SERVER_SIZE_G) |
|
CLIENT_PORTS_C | Slv16Array(CLIENT_SIZE_G-1 downto 0) | EthPortArrayBigEndian(CLIENT_PORTS_G, CLIENT_SIZE_G) |
|
REG_INIT_C | RegType | ( tDestServer => (others => '0'), tDestClient => (others => '0'), serverRemotePort => (others => (others => '0')), serverRemoteIp => (others => (others => '0')), serverRemoteMac => (others => (others => '0')), clientRemoteDet => (others => '0'), byteCnt => (others => '0'), tData => (others => '0'), sof => '1', localHost => '0', route => NULL_S, rxSlave => AXI_STREAM_SLAVE_INIT_C, dhcpMaster => AXI_STREAM_MASTER_INIT_C, serverMaster => AXI_STREAM_MASTER_INIT_C, clientMaster => AXI_STREAM_MASTER_INIT_C, state => IDLE_S) |
Types
Name | Type | Description |
---|---|---|
RouteType | ( NULL_S, SERVER_S, CLIENT_S, DHCP_S) |
|
StateType | ( IDLE_S, CHECK_PORT_S, MOVE_S, LAST_S) |
|
RegType |
Processes
- comb: ( broadcastIp, clientSlave, dhcpSlave, localIp, r, rst,
rxMaster, serverSlave )
- seq: ( clk )
Instantiations
- U_RxPipeline: surf.AxiStreamPipeline
- U_Servers: surf.AxiStreamDeMux
- U_Clients: surf.AxiStreamDeMux
- U_Dhcp: surf.AxiStreamPipeline