mirror of
https://github.com/fpganinja/taxi.git
synced 2026-04-07 04:38:42 -07:00
zircon: Use SV enums in zircon
Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
@@ -69,7 +69,7 @@ if (META_W != 64)
|
|||||||
if (m_axis_meta.KEEP_W * 8 != META_W)
|
if (m_axis_meta.KEEP_W * 8 != META_W)
|
||||||
$fatal(0, "Error: Interface requires byte (8-bit) granularity (instance %m)");
|
$fatal(0, "Error: Interface requires byte (8-bit) granularity (instance %m)");
|
||||||
|
|
||||||
localparam [15:0]
|
typedef enum logic [15:0] {
|
||||||
ETHERTYPE_IPV4 = 16'h0800,
|
ETHERTYPE_IPV4 = 16'h0800,
|
||||||
ETHERTYPE_ARP = 16'h0806,
|
ETHERTYPE_ARP = 16'h0806,
|
||||||
ETHERTYPE_VLAN_C = 16'h8100,
|
ETHERTYPE_VLAN_C = 16'h8100,
|
||||||
@@ -77,9 +77,10 @@ localparam [15:0]
|
|||||||
ETHERTYPE_IPV6 = 16'h86DD,
|
ETHERTYPE_IPV6 = 16'h86DD,
|
||||||
ETHERTYPE_PBB = 16'h88E7,
|
ETHERTYPE_PBB = 16'h88E7,
|
||||||
ETHERTYPE_PTP = 16'h88F7,
|
ETHERTYPE_PTP = 16'h88F7,
|
||||||
ETHERTYPE_ROCE = 16'h8915;
|
ETHERTYPE_ROCE = 16'h8915
|
||||||
|
} ethertype_t;
|
||||||
|
|
||||||
localparam [7:0]
|
typedef enum logic [7:0] {
|
||||||
PROTO_IPV6_HOPOPT = 8'd0,
|
PROTO_IPV6_HOPOPT = 8'd0,
|
||||||
PROTO_ICMP = 8'd1,
|
PROTO_ICMP = 8'd1,
|
||||||
PROTO_IGMP = 8'd2,
|
PROTO_IGMP = 8'd2,
|
||||||
@@ -98,7 +99,8 @@ localparam [7:0]
|
|||||||
PROTO_HIP = 8'd139,
|
PROTO_HIP = 8'd139,
|
||||||
PROTO_SHIM6 = 8'd140,
|
PROTO_SHIM6 = 8'd140,
|
||||||
PROTO_253 = 8'd253,
|
PROTO_253 = 8'd253,
|
||||||
PROTO_254 = 8'd254;
|
PROTO_254 = 8'd254
|
||||||
|
} proto_t;
|
||||||
|
|
||||||
localparam
|
localparam
|
||||||
FLG_VLAN_S = 1,
|
FLG_VLAN_S = 1,
|
||||||
@@ -118,41 +120,42 @@ localparam
|
|||||||
FLG_L4_BAD_LEN = 25,
|
FLG_L4_BAD_LEN = 25,
|
||||||
FLG_PARSE_DONE = 31;
|
FLG_PARSE_DONE = 31;
|
||||||
|
|
||||||
localparam [4:0]
|
typedef enum logic [4:0] {
|
||||||
STATE_IDLE = 5'd0,
|
STATE_IDLE,
|
||||||
STATE_ETH_1 = 5'd1,
|
STATE_ETH_1,
|
||||||
STATE_ETH_2 = 5'd2,
|
STATE_ETH_2,
|
||||||
STATE_ETH_3 = 5'd3,
|
STATE_ETH_3,
|
||||||
STATE_VLAN_1 = 5'd4,
|
STATE_VLAN_1,
|
||||||
STATE_VLAN_2 = 5'd5,
|
STATE_VLAN_2,
|
||||||
STATE_IPV4_1 = 5'd6,
|
STATE_IPV4_1,
|
||||||
STATE_IPV4_2 = 5'd7,
|
STATE_IPV4_2,
|
||||||
STATE_IPV4_3 = 5'd8,
|
STATE_IPV4_3,
|
||||||
STATE_IPV4_4 = 5'd9,
|
STATE_IPV4_4,
|
||||||
STATE_IPV4_5 = 5'd10,
|
STATE_IPV4_5,
|
||||||
STATE_IPV4_6 = 5'd11,
|
STATE_IPV4_6,
|
||||||
STATE_IPV6_1 = 5'd12,
|
STATE_IPV6_1,
|
||||||
STATE_IPV6_2 = 5'd13,
|
STATE_IPV6_2,
|
||||||
STATE_IPV6_3 = 5'd14,
|
STATE_IPV6_3,
|
||||||
STATE_IPV6_4 = 5'd15,
|
STATE_IPV6_4,
|
||||||
STATE_IPV6_5 = 5'd16,
|
STATE_IPV6_5,
|
||||||
STATE_IPV6_6 = 5'd17,
|
STATE_IPV6_6,
|
||||||
STATE_IPV6_7 = 5'd18,
|
STATE_IPV6_7,
|
||||||
STATE_IPV6_8 = 5'd19,
|
STATE_IPV6_8,
|
||||||
STATE_IPV6_9 = 5'd20,
|
STATE_IPV6_9,
|
||||||
STATE_IPV6_10 = 5'd21,
|
STATE_IPV6_10,
|
||||||
STATE_EXT_HDR_1 = 5'd22,
|
STATE_EXT_HDR_1,
|
||||||
STATE_TCP_1 = 5'd23,
|
STATE_TCP_1,
|
||||||
STATE_TCP_2 = 5'd24,
|
STATE_TCP_2,
|
||||||
STATE_TCP_3 = 5'd25,
|
STATE_TCP_3,
|
||||||
STATE_TCP_4 = 5'd26,
|
STATE_TCP_4,
|
||||||
STATE_TCP_5 = 5'd27,
|
STATE_TCP_5,
|
||||||
STATE_UDP_1 = 5'd28,
|
STATE_UDP_1,
|
||||||
STATE_UDP_2 = 5'd29,
|
STATE_UDP_2,
|
||||||
STATE_FINISH_1 = 5'd30,
|
STATE_FINISH_1,
|
||||||
STATE_FINISH_2 = 5'd31;
|
STATE_FINISH_2
|
||||||
|
} state_t;
|
||||||
|
|
||||||
logic [4:0] state_reg = STATE_IDLE, state_next;
|
state_t state_reg = STATE_IDLE, state_next;
|
||||||
|
|
||||||
logic frame_reg = 1'b0, frame_next;
|
logic frame_reg = 1'b0, frame_next;
|
||||||
logic run_reg = 1'b0, run_next;
|
logic run_reg = 1'b0, run_next;
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ function [31:0] swab32(input [31:0] data);
|
|||||||
end
|
end
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
localparam [15:0]
|
typedef enum logic [15:0] {
|
||||||
ETHERTYPE_IPV4 = 16'h0800,
|
ETHERTYPE_IPV4 = 16'h0800,
|
||||||
ETHERTYPE_ARP = 16'h0806,
|
ETHERTYPE_ARP = 16'h0806,
|
||||||
ETHERTYPE_VLAN_C = 16'h8100,
|
ETHERTYPE_VLAN_C = 16'h8100,
|
||||||
@@ -94,9 +94,10 @@ localparam [15:0]
|
|||||||
ETHERTYPE_IPV6 = 16'h86DD,
|
ETHERTYPE_IPV6 = 16'h86DD,
|
||||||
ETHERTYPE_PBB = 16'h88E7,
|
ETHERTYPE_PBB = 16'h88E7,
|
||||||
ETHERTYPE_PTP = 16'h88F7,
|
ETHERTYPE_PTP = 16'h88F7,
|
||||||
ETHERTYPE_ROCE = 16'h8915;
|
ETHERTYPE_ROCE = 16'h8915
|
||||||
|
} ethertype_t;
|
||||||
|
|
||||||
localparam [7:0]
|
typedef enum logic [7:0] {
|
||||||
PROTO_IPV6_HOPOPT = 8'd0,
|
PROTO_IPV6_HOPOPT = 8'd0,
|
||||||
PROTO_ICMP = 8'd1,
|
PROTO_ICMP = 8'd1,
|
||||||
PROTO_IGMP = 8'd2,
|
PROTO_IGMP = 8'd2,
|
||||||
@@ -115,7 +116,8 @@ localparam [7:0]
|
|||||||
PROTO_HIP = 8'd139,
|
PROTO_HIP = 8'd139,
|
||||||
PROTO_SHIM6 = 8'd140,
|
PROTO_SHIM6 = 8'd140,
|
||||||
PROTO_253 = 8'd253,
|
PROTO_253 = 8'd253,
|
||||||
PROTO_254 = 8'd254;
|
PROTO_254 = 8'd254
|
||||||
|
} proto_t;
|
||||||
|
|
||||||
localparam
|
localparam
|
||||||
FLG_VLAN_S = 1,
|
FLG_VLAN_S = 1,
|
||||||
@@ -130,39 +132,40 @@ localparam
|
|||||||
FLG_ESP = 11,
|
FLG_ESP = 11,
|
||||||
FLG_EN = 31;
|
FLG_EN = 31;
|
||||||
|
|
||||||
localparam [4:0]
|
typedef enum logic [4:0] {
|
||||||
PKT_STATE_IDLE = 5'd0,
|
PKT_STATE_IDLE,
|
||||||
PKT_STATE_ETH_1 = 5'd1,
|
PKT_STATE_ETH_1,
|
||||||
PKT_STATE_ETH_2 = 5'd2,
|
PKT_STATE_ETH_2,
|
||||||
PKT_STATE_ETH_3 = 5'd3,
|
PKT_STATE_ETH_3,
|
||||||
PKT_STATE_VLAN_1 = 5'd4,
|
PKT_STATE_VLAN_1,
|
||||||
PKT_STATE_VLAN_2 = 5'd5,
|
PKT_STATE_VLAN_2,
|
||||||
PKT_STATE_IPV4_1 = 5'd6,
|
PKT_STATE_IPV4_1,
|
||||||
PKT_STATE_IPV4_2 = 5'd7,
|
PKT_STATE_IPV4_2,
|
||||||
PKT_STATE_IPV4_3 = 5'd8,
|
PKT_STATE_IPV4_3,
|
||||||
PKT_STATE_IPV4_4 = 5'd9,
|
PKT_STATE_IPV4_4,
|
||||||
PKT_STATE_IPV4_5 = 5'd10,
|
PKT_STATE_IPV4_5,
|
||||||
PKT_STATE_IPV4_6 = 5'd11,
|
PKT_STATE_IPV4_6,
|
||||||
PKT_STATE_IPV6_1 = 5'd12,
|
PKT_STATE_IPV6_1,
|
||||||
PKT_STATE_IPV6_2 = 5'd13,
|
PKT_STATE_IPV6_2,
|
||||||
PKT_STATE_IPV6_3 = 5'd14,
|
PKT_STATE_IPV6_3,
|
||||||
PKT_STATE_IPV6_4 = 5'd15,
|
PKT_STATE_IPV6_4,
|
||||||
PKT_STATE_IPV6_5 = 5'd16,
|
PKT_STATE_IPV6_5,
|
||||||
PKT_STATE_IPV6_6 = 5'd17,
|
PKT_STATE_IPV6_6,
|
||||||
PKT_STATE_IPV6_7 = 5'd18,
|
PKT_STATE_IPV6_7,
|
||||||
PKT_STATE_IPV6_8 = 5'd19,
|
PKT_STATE_IPV6_8,
|
||||||
PKT_STATE_IPV6_9 = 5'd20,
|
PKT_STATE_IPV6_9,
|
||||||
PKT_STATE_IPV6_10 = 5'd21,
|
PKT_STATE_IPV6_10,
|
||||||
PKT_STATE_TCP_1 = 5'd23,
|
PKT_STATE_TCP_1,
|
||||||
PKT_STATE_TCP_2 = 5'd24,
|
PKT_STATE_TCP_2,
|
||||||
PKT_STATE_TCP_3 = 5'd25,
|
PKT_STATE_TCP_3,
|
||||||
PKT_STATE_TCP_4 = 5'd26,
|
PKT_STATE_TCP_4,
|
||||||
PKT_STATE_TCP_5 = 5'd27,
|
PKT_STATE_TCP_5,
|
||||||
PKT_STATE_UDP_1 = 5'd28,
|
PKT_STATE_UDP_1,
|
||||||
PKT_STATE_UDP_2 = 5'd29,
|
PKT_STATE_UDP_2,
|
||||||
PKT_STATE_FINISH_1 = 5'd30;
|
PKT_STATE_FINISH_1
|
||||||
|
} pkt_state_t;
|
||||||
|
|
||||||
logic [4:0] pkt_state_reg = PKT_STATE_IDLE, pkt_state_next;
|
pkt_state_t pkt_state_reg = PKT_STATE_IDLE, pkt_state_next;
|
||||||
|
|
||||||
logic [31:0] meta_flag_reg = '0, meta_flag_next;
|
logic [31:0] meta_flag_reg = '0, meta_flag_next;
|
||||||
logic [15:0] meta_payload_len_reg = '0, meta_payload_len_next;
|
logic [15:0] meta_payload_len_reg = '0, meta_payload_len_next;
|
||||||
|
|||||||
Reference in New Issue
Block a user