cndm: Set TBUF_CYC in board control logic

Signed-off-by: Alex Forencich <alex@alexforencich.com>
This commit is contained in:
Alex Forencich
2026-03-18 12:33:33 -07:00
parent 4b90b35b4c
commit d3f6e4e76c
3 changed files with 11 additions and 4 deletions

View File

@@ -415,6 +415,7 @@ localparam logic [DEV_CNT-1:0][31:0] DEV_ADDR_CFG = {32'h00_00_0000, 32'h00_00_0
localparam logic [DEV_CNT-1:0][MUX_CNT-1:0][7:0] DEV_MUX_MASK = {{8'h00, 8'h01}, {8'h07, 8'h00}, {8'h00, 8'h08}, {8'h00, 8'h04}};
localparam I2C_PRESCALE = SIM ? 2 : 250000/(400*4);
localparam I2C_TBUF_CYC = SIM ? 10 : 1000;
taxi_axis_if #(
.DATA_W(32),
@@ -455,7 +456,8 @@ cndm_brd_ctrl_i2c #(
.DEV_ADDR_CFG(DEV_ADDR_CFG),
.DEV_MUX_MASK(DEV_MUX_MASK),
.I2C_PRESCALE(I2C_PRESCALE)
.I2C_PRESCALE(I2C_PRESCALE),
.I2C_TBUF_CYC(I2C_TBUF_CYC)
)
board_ctrl_i2c_ch_inst (
.clk(pcie_clk),

View File

@@ -74,7 +74,9 @@ module cndm_brd_ctrl_i2c #
parameter logic [DEV_CNT-1:0][MUX_CNT-1:0][7:0] DEV_MUX_MASK = '0,
// Prescaler for I2C master
parameter I2C_PRESCALE = 125000/(400*4)
parameter I2C_PRESCALE = 125000/(400*4),
// tBUF in I2C clock cycles
parameter I2C_TBUF_CYC = 10
)
(
input wire logic clk,
@@ -243,6 +245,7 @@ i2c_master_inst (
* Configuration
*/
.prescale(16'(I2C_PRESCALE)),
.tbuf_cyc(16'(I2C_TBUF_CYC)),
.stop_on_idle(1'b0)
);

View File

@@ -47,7 +47,8 @@ module test_cndm_brd_ctrl_i2c #
parameter logic [DEV_CNT-1:0][31:0] DEV_ADDR_CFG = {32'h00_00_0000, 32'h00_00_0040, 32'h7e_7f_0070, 32'h7e_7f_0070},
parameter logic [DEV_CNT-1:0][MUX_CNT-1:0][7:0] DEV_MUX_MASK = {{8'h00, 8'h01}, {8'h07, 8'h00}, {8'h00, 8'h08}, {8'h00, 8'h04}},
parameter I2C_PRESCALE = 2
parameter I2C_PRESCALE = 2,
parameter I2C_TBUF_CYC = 10
/* verilator lint_on WIDTHTRUNC */
)
();
@@ -102,7 +103,8 @@ cndm_brd_ctrl_i2c #(
.DEV_ADDR_CFG(DEV_ADDR_CFG),
.DEV_MUX_MASK(DEV_MUX_MASK),
.I2C_PRESCALE(I2C_PRESCALE)
.I2C_PRESCALE(I2C_PRESCALE),
.I2C_TBUF_CYC(I2C_TBUF_CYC)
)
uut (
.clk(clk),