From 1e4e71bcc3a982b4ec6f7076c5371eee86032d8a Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Wed, 18 Mar 2026 16:59:27 -0700 Subject: [PATCH] cndm: Do not change select lines while I2C master is running Signed-off-by: Alex Forencich --- src/cndm/rtl/cndm_brd_ctrl_i2c.sv | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/cndm/rtl/cndm_brd_ctrl_i2c.sv b/src/cndm/rtl/cndm_brd_ctrl_i2c.sv index 07897fe..7904b97 100644 --- a/src/cndm/rtl/cndm_brd_ctrl_i2c.sv +++ b/src/cndm/rtl/cndm_brd_ctrl_i2c.sv @@ -213,6 +213,9 @@ taxi_axis_if #(.DATA_W(12), .KEEP_W(1)) axis_i2c_cmd(); taxi_axis_if #(.DATA_W(8)) axis_i2c_tx(); taxi_axis_if #(.DATA_W(8)) axis_i2c_rx(); +wire i2c_busy; +wire i2c_bus_control; + localparam logic [11:0] I2C_CMD_START = 12'h080, I2C_CMD_READ = 12'h100, @@ -243,8 +246,8 @@ i2c_master_inst ( /* * Status */ - .busy(), - .bus_control(), + .busy(i2c_busy), + .bus_control(i2c_bus_control), .bus_active(), .missed_ack(), @@ -419,9 +422,11 @@ always_comb begin case (state_reg) STATE_IDLE: begin - dev_sel_next = '0; + if (!(i2c_busy || i2c_bus_control)) begin + dev_sel_next = '0; + end + s_axis_cmd_tready_next = !m_axis_rsp_tvalid_reg && !rsp_frame_reg && !(i2c_busy || i2c_bus_control); - s_axis_cmd_tready_next = !m_axis_rsp_tvalid_reg && !rsp_frame_reg; cmd_ram_wr_data = s_axis_cmd.tdata; cmd_ram_wr_strb = '1;