From 0ab7538e24401d5623c512571871244bd514f4c1 Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Tue, 3 Mar 2026 12:05:14 -0800 Subject: [PATCH] cndm: Use SV enums for state machines Signed-off-by: Alex Forencich --- src/cndm/rtl/cndm_micro_cpl_wr.sv | 11 ++++++----- src/cndm/rtl/cndm_micro_desc_rd.sv | 13 +++++++------ src/cndm/rtl/cndm_micro_rx.sv | 13 +++++++------ src/cndm/rtl/cndm_micro_tx.sv | 13 +++++++------ 4 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/cndm/rtl/cndm_micro_cpl_wr.sv b/src/cndm/rtl/cndm_micro_cpl_wr.sv index 5d5cd46..ba73edf 100644 --- a/src/cndm/rtl/cndm_micro_cpl_wr.sv +++ b/src/cndm/rtl/cndm_micro_cpl_wr.sv @@ -54,12 +54,13 @@ taxi_axis_if #( .USER_W(axis_cpl[0].USER_W) ) cpl_comb(); -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/rtl/cndm_micro_desc_rd.sv b/src/cndm/rtl/cndm_micro_desc_rd.sv index fac25d4..1b2f0d9 100644 --- a/src/cndm/rtl/cndm_micro_desc_rd.sv +++ b/src/cndm/rtl/cndm_micro_desc_rd.sv @@ -61,13 +61,14 @@ taxi_dma_desc_if #( .USER_W(1) ) dma_desc(); -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/rtl/cndm_micro_rx.sv b/src/cndm/rtl/cndm_micro_rx.sv index 2f68269..2755d69 100644 --- a/src/cndm/rtl/cndm_micro_rx.sv +++ b/src/cndm/rtl/cndm_micro_rx.sv @@ -61,13 +61,14 @@ taxi_dma_desc_if #( .USER_W(rx_data.USER_W) ) dma_desc(); -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/rtl/cndm_micro_tx.sv b/src/cndm/rtl/cndm_micro_tx.sv index bed6d07..6c8cf52 100644 --- a/src/cndm/rtl/cndm_micro_tx.sv +++ b/src/cndm/rtl/cndm_micro_tx.sv @@ -62,13 +62,14 @@ taxi_dma_desc_if #( .USER_W(1) ) dma_desc(); -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;