From 191f7940b346884275670516c5d57cca59527b04 Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Tue, 3 Mar 2026 12:05:35 -0800 Subject: [PATCH] cndm_proto: Use SV enums for state machines Signed-off-by: Alex Forencich --- src/cndm_proto/rtl/cndm_proto_cpl_wr.sv | 11 ++++++----- src/cndm_proto/rtl/cndm_proto_desc_rd.sv | 13 +++++++------ src/cndm_proto/rtl/cndm_proto_rx.sv | 13 +++++++------ src/cndm_proto/rtl/cndm_proto_tx.sv | 13 +++++++------ 4 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/cndm_proto/rtl/cndm_proto_cpl_wr.sv b/src/cndm_proto/rtl/cndm_proto_cpl_wr.sv index 3eb4c2d..d358ccb 100644 --- a/src/cndm_proto/rtl/cndm_proto_cpl_wr.sv +++ b/src/cndm_proto/rtl/cndm_proto_cpl_wr.sv @@ -66,12 +66,13 @@ taxi_axis_if #( ) cpl_comb(); // Completion write control state machine -localparam [2:0] - STATE_IDLE = 0, - STATE_RX_CPL = 1, - STATE_WRITE_DATA = 2; +typedef enum logic [1:0] { + STATE_IDLE, + STATE_RX_CPL, + STATE_WRITE_DATA +} state_t; -logic [2:0] state_reg = STATE_IDLE; +state_t state_reg = STATE_IDLE; logic [15:0] txcq_prod_ptr_reg = '0; logic [15:0] rxcq_prod_ptr_reg = '0; diff --git a/src/cndm_proto/rtl/cndm_proto_desc_rd.sv b/src/cndm_proto/rtl/cndm_proto_desc_rd.sv index 9d908e8..250e24b 100644 --- a/src/cndm_proto/rtl/cndm_proto_desc_rd.sv +++ b/src/cndm_proto/rtl/cndm_proto_desc_rd.sv @@ -69,13 +69,14 @@ taxi_dma_desc_if #( ) dma_desc(); // Descriptor read control state machine -localparam [2:0] - STATE_IDLE = 0, - STATE_READ_DESC = 1, - STATE_READ_DATA = 2, - STATE_TX_DESC = 3; +typedef enum logic [1:0] { + STATE_IDLE, + STATE_READ_DESC, + STATE_READ_DATA, + STATE_TX_DESC +} state_t; -logic [2:0] state_reg = STATE_IDLE; +state_t state_reg = STATE_IDLE; logic [1:0] desc_req_reg = '0; diff --git a/src/cndm_proto/rtl/cndm_proto_rx.sv b/src/cndm_proto/rtl/cndm_proto_rx.sv index ff9a6fa..cdbd28e 100644 --- a/src/cndm_proto/rtl/cndm_proto_rx.sv +++ b/src/cndm_proto/rtl/cndm_proto_rx.sv @@ -64,13 +64,14 @@ taxi_dma_desc_if #( ) dma_desc(); // Receive datapath control state machine -localparam [2:0] - STATE_IDLE = 0, - STATE_RX_DATA = 1, - STATE_READ_DESC = 2, - STATE_WRITE_DATA = 3; +typedef enum logic [1:0] { + STATE_IDLE, + STATE_RX_DATA, + STATE_READ_DESC, + STATE_WRITE_DATA +} state_t; -logic [2:0] state_reg = STATE_IDLE; +state_t state_reg = STATE_IDLE; logic desc_req_reg = 1'b0; diff --git a/src/cndm_proto/rtl/cndm_proto_tx.sv b/src/cndm_proto/rtl/cndm_proto_tx.sv index c526a59..f7d8133 100644 --- a/src/cndm_proto/rtl/cndm_proto_tx.sv +++ b/src/cndm_proto/rtl/cndm_proto_tx.sv @@ -64,13 +64,14 @@ taxi_dma_desc_if #( ) dma_desc(); // Transmit datapath control state machine -localparam [2:0] - STATE_IDLE = 0, - STATE_READ_DESC = 1, - STATE_READ_DATA = 2, - STATE_TX_DATA = 3; +typedef enum logic [1:0] { + STATE_IDLE, + STATE_READ_DESC, + STATE_READ_DATA, + STATE_TX_DATA +} state_t; -logic [2:0] state_reg = STATE_IDLE; +state_t state_reg = STATE_IDLE; logic desc_req_reg = 1'b0;