outputaxird_selected,// axird_rdata contains valid data from this module
outputaxird_selected,// axird_rdata contains valid data from this module
// sensor subsystem interface
// sensor subsystem interface
input[3:0]sens_sof,// // single mclk pulse, start of frame (early)
output[3:0]sens_rpage_set,// (), // input
output[3:0]sens_rpage_set,// (), // input
output[3:0]sens_rpage_next,// (), // input
output[3:0]sens_rpage_next,// output to control memory side of the buffer during write to memory
output[3:0]sens_buf_rd,// (), // input
output[3:0]sens_buf_rd,// (), // input
input[255:0]sens_buf_dout,// (), // output[63:0]
input[255:0]sens_buf_dout,// (), // output[63:0]
input[3:0]sens_page_written,// single mclk pulse: buffer page (full or partial) is written to the memory buffer
// compressor subsystem interface
// compressor subsystem interface
// Buffer interfaces, combined for 4 channels
// Buffer interfaces, combined for 4 channels
output[3:0]cmprs_xfer_reset_page_rd,// from mcntrl_tiled_rw (
output[3:0]cmprs_xfer_reset_page_rd,// from mcntrl_tiled_rw (
...
@@ -287,17 +289,17 @@ module mcntrl393 #(
...
@@ -287,17 +289,17 @@ module mcntrl393 #(
// master (sensor) with slave (compressor) synchronization I/Os
// master (sensor) with slave (compressor) synchronization I/Os
input[3:0]cmprs_frame_start_dst,// @mclk - trigger receive (tiledc) memory channel (it will take care of single/repetitive
input[3:0]cmprs_frame_start_dst,// @mclk - trigger receive (tiledc) memory channel (it will take care of single/repetitive
// these output either follows vsync_late (reclocks it) or generated in non-bonded mode
// these output either follows vsync_late (reclocks it) or generated in non-bonded mode
// (compress from memory)
// (compress from memory)
output[4*FRAME_HEIGHT_BITS-1:0]cmprs_line_unfinished_src,// number of the current (unfinished ) line, in the source (sensor) channel (RELATIVE TO FRAME, NOT WINDOW?)
output[4*FRAME_HEIGHT_BITS-1:0]cmprs_line_unfinished_src,// number of the current (unfinished ) line, in the source (sensor) channel (RELATIVE TO FRAME, NOT WINDOW?)
output[4*LAST_FRAME_BITS-1:0]cmprs_frame_number_src,// current frame number (for multi-frame ranges) in the source (sensor) channel
output[4*LAST_FRAME_BITS-1:0]cmprs_frame_number_src,// current frame number (for multi-frame ranges) in the source (sensor) channel
output[3:0]cmprs_frame_done_src,// single-cycle pulse when the full frame (window) was transferred to/from DDR3 memory
output[3:0]cmprs_frame_done_src,// single-cycle pulse when the full frame (window) was transferred to/from DDR3 memory
// frame_done_src is later than line_unfinished_src/ frame_number_src changes
// frame_done_src is later than line_unfinished_src/ frame_number_src changes
// Used withe a single-frame buffers
// Used withe a single-frame buffers
output[4*FRAME_HEIGHT_BITS-1:0]cmprs_line_unfinished_dst,// number of the current (unfinished ) line in this (compressor) channel
output[4*FRAME_HEIGHT_BITS-1:0]cmprs_line_unfinished_dst,// number of the current (unfinished ) line in this (compressor) channel
output[4*LAST_FRAME_BITS-1:0]cmprs_frame_number_dst,// current frame number (for multi-frame ranges) in this (compressor channel
output[4*LAST_FRAME_BITS-1:0]cmprs_frame_number_dst,// current frame number (for multi-frame ranges) in this (compressor channel
output[3:0]cmprs_frame_done_dst,// single-cycle pulse when the full frame (window) was transferred to/from DDR3 memory
output[3:0]cmprs_frame_done_dst,// single-cycle pulse when the full frame (window) was transferred to/from DDR3 memory
// use as 'eot_real' in 353
// use as 'eot_real' in 353
input[3:0]cmprs_suspend,// suspend reading data for this channel - waiting for the source data
input[3:0]cmprs_suspend,// suspend reading data for this channel - waiting for the source data
// TODO: move line_unfinished and suspend to internals of this module (and control comparator modes)
// TODO: move line_unfinished and suspend to internals of this module (and control comparator modes)
...
@@ -383,6 +385,7 @@ module mcntrl393 #(
...
@@ -383,6 +385,7 @@ module mcntrl393 #(
);
);
localparamCOL_WDTH=COLADDR_NUMBER-3;// number of column address bits in bursts
localparamCOL_WDTH=COLADDR_NUMBER-3;// number of column address bits in bursts
localparamFRAME_WBP1=FRAME_WIDTH_BITS+1;
localparamFRAME_WBP1=FRAME_WIDTH_BITS+1;
wirerst=rst_in;
wirerst=rst_in;
wireaxi_rst=rst_in;
wireaxi_rst=rst_in;
...
@@ -537,7 +540,7 @@ module mcntrl393 #(
...
@@ -537,7 +540,7 @@ module mcntrl393 #(
wire[4*COL_WDTH-1:0]sens_col;// output[6:0]
wire[4*COL_WDTH-1:0]sens_col;// output[6:0]
wire[4*6-1:0]sens_num128;// output[5:0]
wire[4*6-1:0]sens_num128;// output[5:0]
wire[3:0]sens_partial;// output
wire[3:0]sens_partial;// output
wire[3:0]sens_done;// input : sequence over
wire[3:0]sens_seq_done;// input : sequence over
wire[3:0]cmprs_channel_pgm_en;
wire[3:0]cmprs_channel_pgm_en;
wire[3:0]cmprs_start_rd16;
wire[3:0]cmprs_start_rd16;
...
@@ -550,8 +553,8 @@ module mcntrl393 #(
...
@@ -550,8 +553,8 @@ module mcntrl393 #(
wire[4*MAX_TILE_HEIGHT-1:0]cmprs_num_cols_m1;// number of 128-bit words to transfer (8*16 bits) - full bursts of 8 ( 0 - maximal length, 64)
wire[4*MAX_TILE_HEIGHT-1:0]cmprs_num_cols_m1;// number of 128-bit words to transfer (8*16 bits) - full bursts of 8 ( 0 - maximal length, 64)