[source]

Architecture rtl of arp_BroadCast_Receiver

Types

Name

Description

T_STATE
T_HARDWARE_ADDRESS_INDEX
T_PROTOCOL_ADDRESS_INDEX

Processes

process @ ( TargetIPAddress_nxt or SenderIPAddress_nxt or SenderMACAddress_nxt or Address_rst or Writer_Counter_us or IsIPv6_r or IsIPv4_r or Is_EOF or Is_SOF or RX_Data or RX_Valid or Clear or State or ) [source]
ST_IDLE ST_IDLE ST_RECEIVE_HARDWARE_type_1 ST_RECEIVE_HARDWARE_type_1 ST_DISCARD_FRAME ST_DISCARD_FRAME ST_ERROR ST_ERROR ST_RECEIVE_PROTOCOL_type_0 ST_RECEIVE_PROTOCOL_type_0 ST_RECEIVE_PROTOCOL_type_1 ST_RECEIVE_PROTOCOL_type_1 ST_RECEIVE_HARDWARE_ADDRESS_LENGTH ST_RECEIVE_HARDWARE_ADDRESS_LENGTH ST_RECEIVE_PROTOCOL_ADDRESS_LENGTH ST_RECEIVE_PROTOCOL_ADDRESS_LENGTH ST_RECEIVE_OPERATION_0 ST_RECEIVE_OPERATION_0 ST_RECEIVE_OPERATION_1 ST_RECEIVE_OPERATION_1 ST_RECEIVE_SENDER_MAC ST_RECEIVE_SENDER_MAC ST_RECEIVE_SENDER_IP ST_RECEIVE_SENDER_IP ST_RECEIVE_TARGET_MAC ST_RECEIVE_TARGET_MAC ST_RECEIVE_TARGET_IP ST_RECEIVE_TARGET_IP ST_DISCARD_ETHERNET_PADDING_BYTES ST_DISCARD_ETHERNET_PADDING_BYTES ST_COMPLETE ST_COMPLETE 1 [((Is_SOF = '1') and (Is_EOF = '0') and (RX_Data = x"00"))] 2 [((Is_SOF = '1') and (Is_EOF = '0') and not (RX_Data = x"00"))] 3 [((Is_SOF = '1') and not (Is_EOF = '0'))] 4 [((RX_Valid = '1') and (Is_EOF = '0') and (RX_Data = x"01"))] 5 [((RX_Valid = '1') and (Is_EOF = '0') and not (RX_Data = x"01"))] 6 [((RX_Valid = '1') and not (Is_EOF = '0'))] 7 [(Is_EOF = '1')] 8 [(Clear = '1')] 10 [((RX_Valid = '1') and (Is_EOF = '0') and not (ALLOWED_PROTOCOL_IPV4 = TRUE and RX_Data = x"08") and not (ALLOWED_PROTOCOL_IPV6 = TRUE and RX_Data = x"86"))] 11 [((RX_Valid = '1') and not (Is_EOF = '0'))] 9 [((RX_Valid = '1') and (Is_EOF = '0') and (ALLOWED_PROTOCOL_IPV4 = TRUE and RX_Data = x"08")), ((RX_Valid = '1') and (Is_EOF = '0') and not (ALLOWED_PROTOCOL_IPV4 = TRUE and RX_Data = x"08") and (ALLOWED_PROTOCOL_IPV6 = TRUE and RX_Data = x"86"))] 13 [((RX_Valid = '1') and (Is_EOF = '0') and not (IsIPv4_r = '1' and RX_Data = x"00") and not (IsIPv6_r = '1' and RX_Data = x"66"))] 14 [((RX_Valid = '1') and not (Is_EOF = '0'))] 12 [((RX_Valid = '1') and (Is_EOF = '0') and (IsIPv4_r = '1' and RX_Data = x"00")), ((RX_Valid = '1') and (Is_EOF = '0') and not (IsIPv4_r = '1' and RX_Data = x"00") and (IsIPv6_r = '1' and RX_Data = x"66"))] 15 [((RX_Valid = '1') and (Is_EOF = '0') and (RX_Data = x"06"))] 16 [((RX_Valid = '1') and (Is_EOF = '0') and not (RX_Data = x"06"))] 17 [((RX_Valid = '1') and not (Is_EOF = '0'))] 19 [((RX_Valid = '1') and (Is_EOF = '0') and not (IsIPv4_r = '1' and RX_Data = x"04") and not (IsIPv6_r = '1' and RX_Data = x"10"))] 20 [((RX_Valid = '1') and not (Is_EOF = '0'))] 18 [((RX_Valid = '1') and (Is_EOF = '0') and (IsIPv4_r = '1' and RX_Data = x"04")), ((RX_Valid = '1') and (Is_EOF = '0') and not (IsIPv4_r = '1' and RX_Data = x"04") and (IsIPv6_r = '1' and RX_Data = x"10"))] 21 [((RX_Valid = '1') and (Is_EOF = '0') and (RX_Data = x"00"))] 22 [((RX_Valid = '1') and (Is_EOF = '0') and not (RX_Data = x"00"))] 23 [((RX_Valid = '1') and not (Is_EOF = '0'))] 24 [((RX_Valid = '1') and (Is_EOF = '0') and (RX_Data = x"01"))] 25 [((RX_Valid = '1') and (Is_EOF = '0') and not (RX_Data = x"01"))] 26 [((RX_Valid = '1') and not (Is_EOF = '0'))] 27 [((RX_Valid = '1') and (Is_EOF = '0') and (Writer_Counter_us = HARDWARE_ADDRESS_LENGTH - 1))] 28 [((RX_Valid = '1') and not (Is_EOF = '0'))] 30 [((RX_Valid = '1') and not (Is_EOF = '0'))] 29 [((RX_Valid = '1') and (Is_EOF = '0') and (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1)), ((RX_Valid = '1') and (Is_EOF = '0') and not (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1) and (IsIPv6_r = '1' and Writer_Counter_us = PROTOCOL_IPV6_ADDRESS_LENGTH - 1))] 31 [((RX_Valid = '1') and (Is_EOF = '0') and (RX_Data = x"00") and (Writer_Counter_us = HARDWARE_ADDRESS_LENGTH - 1))] 32 [((RX_Valid = '1') and (Is_EOF = '0') and not (RX_Data = x"00"))] 33 [((RX_Valid = '1') and not (Is_EOF = '0'))] 36 [((RX_Valid = '1') and not (Is_EOF = '0') and not (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1) and not (IsIPv6_r = '1' and Writer_Counter_us = PROTOCOL_IPV6_ADDRESS_LENGTH - 1))] 34 [((RX_Valid = '1') and (Is_EOF = '0') and (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1)), ((RX_Valid = '1') and (Is_EOF = '0') and not (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1) and (IsIPv6_r = '1' and Writer_Counter_us = PROTOCOL_IPV6_ADDRESS_LENGTH - 1))] 35 [((RX_Valid = '1') and not (Is_EOF = '0') and (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1)), ((RX_Valid = '1') and not (Is_EOF = '0') and not (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1) and (IsIPv6_r = '1' and Writer_Counter_us = PROTOCOL_IPV6_ADDRESS_LENGTH - 1))] 37 [(Is_EOF = '1')] 38 [(Clear = '1')]
FSM Transitions for State

#

Current State

Next State

Condition

1

ST_IDLE

ST_RECEIVE_HARDWARE_type_1

[((Is_SOF = '1') and (Is_EOF = '0') and (RX_Data = x"00"))]

2

ST_IDLE

ST_DISCARD_FRAME

[((Is_SOF = '1') and (Is_EOF = '0') and not (RX_Data = x"00"))]

3

ST_IDLE

ST_ERROR

[((Is_SOF = '1') and not (Is_EOF = '0'))]

4

ST_RECEIVE_HARDWARE_type_1

ST_RECEIVE_PROTOCOL_type_0

[((RX_Valid = '1') and (Is_EOF = '0') and (RX_Data = x"01"))]

5

ST_RECEIVE_HARDWARE_type_1

ST_DISCARD_FRAME

[((RX_Valid = '1') and (Is_EOF = '0') and not (RX_Data = x"01"))]

6

ST_RECEIVE_HARDWARE_type_1

ST_ERROR

[((RX_Valid = '1') and not (Is_EOF = '0'))]

7

ST_DISCARD_FRAME

ST_ERROR

[(Is_EOF = '1')]

8

ST_ERROR

ST_IDLE

[(Clear = '1')]

9

ST_RECEIVE_PROTOCOL_type_0

ST_RECEIVE_PROTOCOL_type_1

[((RX_Valid = '1') and (Is_EOF = '0') and (ALLOWED_PROTOCOL_IPV4 = TRUE and RX_Data = x"08")), ((RX_Valid = '1') and (Is_EOF = '0') and not (ALLOWED_PROTOCOL_IPV4 = TRUE and RX_Data = x"08") and (ALLOWED_PROTOCOL_IPV6 = TRUE and RX_Data = x"86"))]

10

ST_RECEIVE_PROTOCOL_type_0

ST_DISCARD_FRAME

[((RX_Valid = '1') and (Is_EOF = '0') and not (ALLOWED_PROTOCOL_IPV4 = TRUE and RX_Data = x"08") and not (ALLOWED_PROTOCOL_IPV6 = TRUE and RX_Data = x"86"))]

11

ST_RECEIVE_PROTOCOL_type_0

ST_ERROR

[((RX_Valid = '1') and not (Is_EOF = '0'))]

12

ST_RECEIVE_PROTOCOL_type_1

ST_RECEIVE_HARDWARE_ADDRESS_LENGTH

[((RX_Valid = '1') and (Is_EOF = '0') and (IsIPv4_r = '1' and RX_Data = x"00")), ((RX_Valid = '1') and (Is_EOF = '0') and not (IsIPv4_r = '1' and RX_Data = x"00") and (IsIPv6_r = '1' and RX_Data = x"66"))]

13

ST_RECEIVE_PROTOCOL_type_1

ST_DISCARD_FRAME

[((RX_Valid = '1') and (Is_EOF = '0') and not (IsIPv4_r = '1' and RX_Data = x"00") and not (IsIPv6_r = '1' and RX_Data = x"66"))]

14

ST_RECEIVE_PROTOCOL_type_1

ST_ERROR

[((RX_Valid = '1') and not (Is_EOF = '0'))]

15

ST_RECEIVE_HARDWARE_ADDRESS_LENGTH

ST_RECEIVE_PROTOCOL_ADDRESS_LENGTH

[((RX_Valid = '1') and (Is_EOF = '0') and (RX_Data = x"06"))]

16

ST_RECEIVE_HARDWARE_ADDRESS_LENGTH

ST_DISCARD_FRAME

[((RX_Valid = '1') and (Is_EOF = '0') and not (RX_Data = x"06"))]

17

ST_RECEIVE_HARDWARE_ADDRESS_LENGTH

ST_ERROR

[((RX_Valid = '1') and not (Is_EOF = '0'))]

18

ST_RECEIVE_PROTOCOL_ADDRESS_LENGTH

ST_RECEIVE_OPERATION_0

[((RX_Valid = '1') and (Is_EOF = '0') and (IsIPv4_r = '1' and RX_Data = x"04")), ((RX_Valid = '1') and (Is_EOF = '0') and not (IsIPv4_r = '1' and RX_Data = x"04") and (IsIPv6_r = '1' and RX_Data = x"10"))]

19

ST_RECEIVE_PROTOCOL_ADDRESS_LENGTH

ST_DISCARD_FRAME

[((RX_Valid = '1') and (Is_EOF = '0') and not (IsIPv4_r = '1' and RX_Data = x"04") and not (IsIPv6_r = '1' and RX_Data = x"10"))]

20

ST_RECEIVE_PROTOCOL_ADDRESS_LENGTH

ST_ERROR

[((RX_Valid = '1') and not (Is_EOF = '0'))]

21

ST_RECEIVE_OPERATION_0

ST_RECEIVE_OPERATION_1

[((RX_Valid = '1') and (Is_EOF = '0') and (RX_Data = x"00"))]

22

ST_RECEIVE_OPERATION_0

ST_DISCARD_FRAME

[((RX_Valid = '1') and (Is_EOF = '0') and not (RX_Data = x"00"))]

23

ST_RECEIVE_OPERATION_0

ST_ERROR

[((RX_Valid = '1') and not (Is_EOF = '0'))]

24

ST_RECEIVE_OPERATION_1

ST_RECEIVE_SENDER_MAC

[((RX_Valid = '1') and (Is_EOF = '0') and (RX_Data = x"01"))]

25

ST_RECEIVE_OPERATION_1

ST_DISCARD_FRAME

[((RX_Valid = '1') and (Is_EOF = '0') and not (RX_Data = x"01"))]

26

ST_RECEIVE_OPERATION_1

ST_ERROR

[((RX_Valid = '1') and not (Is_EOF = '0'))]

27

ST_RECEIVE_SENDER_MAC

ST_RECEIVE_SENDER_IP

[((RX_Valid = '1') and (Is_EOF = '0') and (Writer_Counter_us = HARDWARE_ADDRESS_LENGTH - 1))]

28

ST_RECEIVE_SENDER_MAC

ST_ERROR

[((RX_Valid = '1') and not (Is_EOF = '0'))]

29

ST_RECEIVE_SENDER_IP

ST_RECEIVE_TARGET_MAC

[((RX_Valid = '1') and (Is_EOF = '0') and (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1)), ((RX_Valid = '1') and (Is_EOF = '0') and not (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1) and (IsIPv6_r = '1' and Writer_Counter_us = PROTOCOL_IPV6_ADDRESS_LENGTH - 1))]

30

ST_RECEIVE_SENDER_IP

ST_ERROR

[((RX_Valid = '1') and not (Is_EOF = '0'))]

31

ST_RECEIVE_TARGET_MAC

ST_RECEIVE_TARGET_IP

[((RX_Valid = '1') and (Is_EOF = '0') and (RX_Data = x"00") and (Writer_Counter_us = HARDWARE_ADDRESS_LENGTH - 1))]

32

ST_RECEIVE_TARGET_MAC

ST_DISCARD_FRAME

[((RX_Valid = '1') and (Is_EOF = '0') and not (RX_Data = x"00"))]

33

ST_RECEIVE_TARGET_MAC

ST_ERROR

[((RX_Valid = '1') and not (Is_EOF = '0'))]

34

ST_RECEIVE_TARGET_IP

ST_DISCARD_ETHERNET_PADDING_BYTES

[((RX_Valid = '1') and (Is_EOF = '0') and (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1)), ((RX_Valid = '1') and (Is_EOF = '0') and not (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1) and (IsIPv6_r = '1' and Writer_Counter_us = PROTOCOL_IPV6_ADDRESS_LENGTH - 1))]

35

ST_RECEIVE_TARGET_IP

ST_COMPLETE

[((RX_Valid = '1') and not (Is_EOF = '0') and (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1)), ((RX_Valid = '1') and not (Is_EOF = '0') and not (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1) and (IsIPv6_r = '1' and Writer_Counter_us = PROTOCOL_IPV6_ADDRESS_LENGTH - 1))]

36

ST_RECEIVE_TARGET_IP

ST_ERROR

[((RX_Valid = '1') and not (Is_EOF = '0') and not (IsIPv4_r = '1' and Writer_Counter_us = PROTOCOL_IPV4_ADDRESS_LENGTH - 1) and not (IsIPv6_r = '1' and Writer_Counter_us = PROTOCOL_IPV6_ADDRESS_LENGTH - 1))]

37

ST_DISCARD_ETHERNET_PADDING_BYTES

ST_COMPLETE

[(Is_EOF = '1')]

38

ST_COMPLETE

ST_IDLE

[(Clear = '1')]