From d394c0ad24f5a0f95ac8377bdd46bd972bff727f Mon Sep 17 00:00:00 2001 From: Jorge Marques Date: Tue, 5 Nov 2024 18:34:33 -0300 Subject: [PATCH] V3: Update MAX_NUM_FRAMES to MAX_NUM_FRAMES_WIDTH To match requested changed from HDL review. Signed-off-by: Jorge Marques --- library/drivers/dmac/dma_trans.sv | 4 ++-- library/drivers/dmac/dmac_api.sv | 4 ++-- library/utilities/utils.svh | 2 +- testbenches/ip/dma_flock/cfgs/cfg1.tcl | 8 ++++---- testbenches/ip/dma_flock/cfgs/cfg2_fsync.tcl | 8 ++++---- testbenches/ip/dma_flock/cfgs/cfg3_fsync_autorun.tcl | 8 ++++---- testbenches/ip/dma_flock/tests/test_program.sv | 8 +++----- .../ip/dma_flock/tests/test_program_frame_delay.sv | 12 +++++------- 8 files changed, 25 insertions(+), 29 deletions(-) diff --git a/library/drivers/dmac/dma_trans.sv b/library/drivers/dmac/dma_trans.sv index ba12dcec..9918d8b1 100644 --- a/library/drivers/dmac/dma_trans.sv +++ b/library/drivers/dmac/dma_trans.sv @@ -50,7 +50,7 @@ package dma_trans_pkg; int DMA_LENGTH_ALIGN; int MAX_BYTES_PER_BURST; int FRAMELOCK; - int MAX_NUM_FRAMES; + int MAX_NUM_FRAMES_WIDTH; int USE_EXT_SYNC; int HAS_AUTORUN; } axi_dmac_params_t; @@ -430,7 +430,7 @@ package dma_trans_pkg; ds.flock_wait_writer = flock_wait_writer; endfunction - constraint c_buf_num {flock_framenum < p.MAX_NUM_FRAMES;}; + constraint c_buf_num {flock_framenum < (p.MAX_NUM_FRAMES_WIDTH-1)**2;}; constraint c_frm_dist {flock_distance < flock_framenum;}; virtual function void print(); diff --git a/library/drivers/dmac/dmac_api.sv b/library/drivers/dmac/dmac_api.sv index e8b27fb2..9fe258e4 100644 --- a/library/drivers/dmac/dmac_api.sv +++ b/library/drivers/dmac/dmac_api.sv @@ -75,7 +75,7 @@ package dmac_api_pkg; bpb_width_log2 = `GET_DMAC_INTERFACE_DESCRIPTION_1_BYTES_PER_BURST_WIDTH(val); p.MAX_BYTES_PER_BURST = 2**bpb_width_log2; p.DMA_2D_TLAST_MODE = `GET_DMAC_INTERFACE_DESCRIPTION_1_DMA_2D_TLAST_MODE(val); - p.MAX_NUM_FRAMES = `GET_DMAC_INTERFACE_DESCRIPTION_1_MAX_NUM_FRAMES(val); + p.MAX_NUM_FRAMES_WIDTH = $clog2(`GET_DMAC_INTERFACE_DESCRIPTION_1_MAX_NUM_FRAMES(val))+1; p.USE_EXT_SYNC = `GET_DMAC_INTERFACE_DESCRIPTION_1_USE_EXT_SYNC(val); p.HAS_AUTORUN = `GET_DMAC_INTERFACE_DESCRIPTION_1_HAS_AUTORUN(val); if (!p.HAS_AUTORUN) begin @@ -344,7 +344,7 @@ package dmac_api_pkg; `SET_DMAC_FRAMELOCK_CONFIG_MODE(t_fl_2d.flock_mode) | `SET_DMAC_FRAMELOCK_CONFIG_WAIT_WRITER(t_fl_2d.flock_wait_writer ) | `SET_DMAC_FRAMELOCK_CONFIG_FRAMENUM(t_fl_2d.flock_framenum) | - `SET_DMAC_FRAMELOCK_CONFIG_DISTANCE(t_fl_2d.flock_distance-1)); + `SET_DMAC_FRAMELOCK_CONFIG_DISTANCE(t_fl_2d.flock_distance)); this.axi_write(GetAddrs(DMAC_FRAMELOCK_STRIDE), `SET_DMAC_FRAMELOCK_STRIDE_STRIDE(t_fl_2d.flock_stride)); end diff --git a/library/utilities/utils.svh b/library/utilities/utils.svh index 02478ba9..8186ad2d 100644 --- a/library/utilities/utils.svh +++ b/library/utilities/utils.svh @@ -73,7 +73,7 @@ th``_``vip``_0_DISABLE_DEBUG_REGISTERS, \ th``_``vip``_0_ENABLE_DIAGNOSTICS_IF, \ th``_``vip``_0_ENABLE_FRAME_LOCK, \ - th``_``vip``_0_MAX_NUM_FRAMES, \ + th``_``vip``_0_MAX_NUM_FRAMES_WIDTH, \ th``_``vip``_0_USE_EXT_SYNC, \ th``_``vip``_0_HAS_AUTORUN diff --git a/testbenches/ip/dma_flock/cfgs/cfg1.tcl b/testbenches/ip/dma_flock/cfgs/cfg1.tcl index f29bf30a..0142b379 100644 --- a/testbenches/ip/dma_flock/cfgs/cfg1.tcl +++ b/testbenches/ip/dma_flock/cfgs/cfg1.tcl @@ -1,9 +1,9 @@ -set MAX_NUM_FRAMES 8 +set MAX_NUM_FRAMES_WIDTH 4 set AUTORUN 0 set USE_EXT_SYNC 0 set TDATA_NUM_BYTES 8 -set ad_project_params(M_DMA_CFG_MAX_NUM_FRAMES) $MAX_NUM_FRAMES +set ad_project_params(M_DMA_CFG_MAX_NUM_FRAMES) $MAX_NUM_FRAMES_WIDTH set ad_project_params(M_DMA_CFG_AUTORUN) $AUTORUN set ad_project_params(S_DMA_CFG_AUTORUN) $AUTORUN set ad_project_params(M_DMA_CFG_USE_EXT_SYNC) $USE_EXT_SYNC @@ -19,7 +19,7 @@ set m_dma_cfg [list \ AXIS_TUSER_SYNC 0 \ CYCLIC 1 \ FRAMELOCK 1 \ - MAX_NUM_FRAMES $MAX_NUM_FRAMES \ + MAX_NUM_FRAMES_WIDTH $MAX_NUM_FRAMES_WIDTH \ USE_EXT_SYNC $USE_EXT_SYNC \ DMA_2D_TLAST_MODE 1 \ ] @@ -32,7 +32,7 @@ set s_dma_cfg [list \ AXIS_TUSER_SYNC 0 \ CYCLIC 1 \ FRAMELOCK 1 \ - MAX_NUM_FRAMES $MAX_NUM_FRAMES \ + MAX_NUM_FRAMES_WIDTH $MAX_NUM_FRAMES_WIDTH \ USE_EXT_SYNC $USE_EXT_SYNC \ DMA_2D_TLAST_MODE 1 \ ] diff --git a/testbenches/ip/dma_flock/cfgs/cfg2_fsync.tcl b/testbenches/ip/dma_flock/cfgs/cfg2_fsync.tcl index 5eea6283..2d4365ea 100644 --- a/testbenches/ip/dma_flock/cfgs/cfg2_fsync.tcl +++ b/testbenches/ip/dma_flock/cfgs/cfg2_fsync.tcl @@ -1,10 +1,10 @@ -set MAX_NUM_FRAMES 8 +set MAX_NUM_FRAMES_WIDTH 4 set AUTORUN 0 set M_USE_EXT_SYNC 0 set S_USE_EXT_SYNC 1 set TDATA_NUM_BYTES 8 -set ad_project_params(M_DMA_CFG_MAX_NUM_FRAMES) $MAX_NUM_FRAMES +set ad_project_params(M_DMA_CFG_MAX_NUM_FRAMES) $MAX_NUM_FRAMES_WIDTH set ad_project_params(M_DMA_CFG_AUTORUN) $AUTORUN set ad_project_params(S_DMA_CFG_AUTORUN) $AUTORUN set ad_project_params(M_DMA_CFG_USE_EXT_SYNC) $M_USE_EXT_SYNC @@ -20,7 +20,7 @@ set m_dma_cfg [list \ AXIS_TUSER_SYNC 0 \ CYCLIC 1 \ FRAMELOCK 1 \ - MAX_NUM_FRAMES $MAX_NUM_FRAMES \ + MAX_NUM_FRAMES_WIDTH $MAX_NUM_FRAMES_WIDTH \ USE_EXT_SYNC $M_USE_EXT_SYNC \ SYNC_TRANSFER_START 1 \ DMA_2D_TLAST_MODE 1 \ @@ -34,7 +34,7 @@ set s_dma_cfg [list \ AXIS_TUSER_SYNC 0 \ CYCLIC 1 \ FRAMELOCK 1 \ - MAX_NUM_FRAMES $MAX_NUM_FRAMES \ + MAX_NUM_FRAMES_WIDTH $MAX_NUM_FRAMES_WIDTH \ USE_EXT_SYNC $S_USE_EXT_SYNC \ DMA_2D_TLAST_MODE 1 \ ] diff --git a/testbenches/ip/dma_flock/cfgs/cfg3_fsync_autorun.tcl b/testbenches/ip/dma_flock/cfgs/cfg3_fsync_autorun.tcl index 0da1d5a4..7e0ee90b 100644 --- a/testbenches/ip/dma_flock/cfgs/cfg3_fsync_autorun.tcl +++ b/testbenches/ip/dma_flock/cfgs/cfg3_fsync_autorun.tcl @@ -1,10 +1,10 @@ -set MAX_NUM_FRAMES 8 +set MAX_NUM_FRAMES_WIDTH 4 set AUTORUN 1 set M_USE_EXT_SYNC 0 set S_USE_EXT_SYNC 1 set TDATA_NUM_BYTES 8 -set ad_project_params(M_DMA_CFG_MAX_NUM_FRAMES) $MAX_NUM_FRAMES +set ad_project_params(M_DMA_CFG_MAX_NUM_FRAMES) $MAX_NUM_FRAMES_WIDTH set ad_project_params(M_DMA_CFG_AUTORUN) $AUTORUN set ad_project_params(S_DMA_CFG_AUTORUN) $AUTORUN set ad_project_params(M_DMA_CFG_USE_EXT_SYNC) $M_USE_EXT_SYNC @@ -20,7 +20,7 @@ set m_dma_cfg [list \ AXIS_TUSER_SYNC 0 \ CYCLIC 1 \ FRAMELOCK 1 \ - MAX_NUM_FRAMES $MAX_NUM_FRAMES \ + MAX_NUM_FRAMES_WIDTH $MAX_NUM_FRAMES_WIDTH \ USE_EXT_SYNC $M_USE_EXT_SYNC \ SYNC_TRANSFER_START 1 \ DMA_2D_TLAST_MODE {1} \ @@ -45,7 +45,7 @@ set s_dma_cfg [list \ AXIS_TUSER_SYNC 0 \ CYCLIC 1 \ FRAMELOCK 1 \ - MAX_NUM_FRAMES $MAX_NUM_FRAMES \ + MAX_NUM_FRAMES_WIDTH $MAX_NUM_FRAMES_WIDTH \ USE_EXT_SYNC $S_USE_EXT_SYNC \ DMA_2D_TLAST_MODE {1} \ \ diff --git a/testbenches/ip/dma_flock/tests/test_program.sv b/testbenches/ip/dma_flock/tests/test_program.sv index 9aa3666a..7988d1eb 100644 --- a/testbenches/ip/dma_flock/tests/test_program.sv +++ b/testbenches/ip/dma_flock/tests/test_program.sv @@ -52,7 +52,6 @@ program test_program; dmac_api s_dmac_api; int frame_count; - int max_frames; int has_sfsync; int has_dfsync; int sync_gen_en; @@ -71,7 +70,6 @@ program test_program; #2ps; - max_frames = `M_DMA_CFG_MAX_NUM_FRAMES; has_sfsync = `M_DMA_CFG_USE_EXT_SYNC; has_dfsync = `S_DMA_CFG_USE_EXT_SYNC; @@ -93,7 +91,7 @@ program test_program; singleTest( .frame_num(10), .flock_framenum(3), - .flock_distance(1), + .flock_distance(0), .src_clk(250000000), .dst_clk(250000000) ); @@ -102,7 +100,7 @@ program test_program; singleTest( .frame_num(5), .flock_framenum(3), - .flock_distance(1), + .flock_distance(0), .src_clk( 50000000), .dst_clk(250000000) ); @@ -111,7 +109,7 @@ program test_program; singleTest( .frame_num(10), .flock_framenum(3), - .flock_distance(1), + .flock_distance(0), .src_clk(250000000), .dst_clk( 50000000) ); diff --git a/testbenches/ip/dma_flock/tests/test_program_frame_delay.sv b/testbenches/ip/dma_flock/tests/test_program_frame_delay.sv index 9eded5ab..3e16f9f3 100644 --- a/testbenches/ip/dma_flock/tests/test_program_frame_delay.sv +++ b/testbenches/ip/dma_flock/tests/test_program_frame_delay.sv @@ -52,7 +52,6 @@ program test_program_frame_delay; dmac_api s_dmac_api; int frame_count; - int max_frames; int has_sfsync; int has_dfsync; int has_s_autorun; @@ -73,7 +72,6 @@ program test_program_frame_delay; #2ps; - max_frames = `M_DMA_CFG_MAX_NUM_FRAMES; has_sfsync = `M_DMA_CFG_USE_EXT_SYNC; has_dfsync = `S_DMA_CFG_USE_EXT_SYNC; has_m_autorun = `M_DMA_CFG_AUTORUN; @@ -101,23 +99,23 @@ program test_program_frame_delay; singleTest( .frame_num(10), .flock_framenum(3), - .flock_distance(1), + .flock_distance(0), .src_clk(250000000), .dst_clk(250000000) ); singleTest( .frame_num(10), - .flock_framenum(5), - .flock_distance(3), + .flock_framenum(3), + .flock_distance(0), .src_clk(250000000), .dst_clk(250000000) ); singleTest( .frame_num(10), - .flock_framenum(8), - .flock_distance(7), + .flock_framenum(3), + .flock_distance(0), .src_clk(250000000), .dst_clk(250000000) );