outputstatus_rq,// input request to send status downstream
outputstatus_rq,// input request to send status downstream
inputstatus_start,// Acknowledge of the first status packet byte (address)
inputstatus_start,// Acknowledge of the first status packet byte (address)
// Buffer interfaces
// Buffer interfaces, combined for 4 channels
inputxfer_reset_page_rd_chn0,// from mcntrl_tiled_rw (
input[3:0]xfer_reset_page_rd,// from mcntrl_tiled_rw (
inputbuf_wpage_nxt_chn0,// advance to next page memory interface writes to
input[3:0]buf_wpage_nxt,// advance to next page memory interface writes to
inputbuf_we_chn0,// @!mclk write buffer from memory, increment write
input[3:0]buf_we,// @!mclk write buffer from memory, increment write
input[63:0]buf_din_chn0,// data out
input[255:0]buf_din,// data out
inputpage_ready_chn0,// single mclk (posedge)
input[3:0]page_ready,// single mclk (posedge)
outputnext_page_chn0,// single mclk (posedge): Done with the page in the buffer, memory controller may read more data
output[3:0]next_page,// single mclk (posedge): Done with the page in the buffer, memory controller may read more data
inputxfer_reset_page_rd_chn1,// from mcntrl_tiled_rw (
// master (sensor) with slave (compressor) synchronization I/Os
inputbuf_wpage_nxt_chn1,// advance to next page memory interface writes to
output[3:0]frame_start_dst,// @mclk - trigger receive (tiledc) memory channel (it will take care of single/repetitive
inputbuf_we_chn1,// @!mclk write buffer from memory, increment write
// these output either follows vsync_late (reclocks it) or generated in non-bonded mode
input[63:0]buf_din_chn1,// data out
// (compress from memory)
inputpage_ready_chn1,// single mclk (posedge)
input[4*FRAME_HEIGHT_BITS-1:0]line_unfinished_src,// number of the current (unfinished ) line, in the source (sensor) channel (RELATIVE TO FRAME, NOT WINDOW?)
outputnext_page_chn1,// single mclk (posedge): Done with the page in the buffer, memory controller may read more data
input[4*LAST_FRAME_BITS-1:0]frame_number_src,// current frame number (for multi-frame ranges) in the source (sensor) channel
input[3:0]frame_done_src,// single-cycle pulse when the full frame (window) was transferred to/from DDR3 memory
inputxfer_reset_page_rd_chn2,// from mcntrl_tiled_rw (
// frame_done_src is later than line_unfinished_src/ frame_number_src changes
inputbuf_wpage_nxt_chn2,// advance to next page memory interface writes to
// Used withe a single-frame buffers
inputbuf_we_chn2,// @!mclk write buffer from memory, increment write
input[4*FRAME_HEIGHT_BITS-1:0]line_unfinished_dst,// number of the current (unfinished ) line in this (compressor) channel
input[63:0]buf_din_chn2,// data out
input[4*LAST_FRAME_BITS-1:0]frame_number_dst,// current frame number (for multi-frame ranges) in this (compressor channel
inputpage_ready_chn2,// single mclk (posedge)
input[3:0]frame_done_dst,// single-cycle pulse when the full frame (window) was transferred to/from DDR3 memory
outputnext_page_chn2,// single mclk (posedge): Done with the page in the buffer, memory controller may read more data
// use as 'eot_real' in 353
output[3:0]suspend,// suspend reading data for this channel - waiting for the source data
inputxfer_reset_page_rd_chn3,// from mcntrl_tiled_rw (
inputbuf_wpage_nxt_chn3,// advance to next page memory interface writes to
inputbuf_we_chn3,// @!mclk write buffer from memory, increment write
input[63:0]buf_din_chn3,// data out
inputpage_ready_chn3,// single mclk (posedge)
outputnext_page_chn3,// single mclk (posedge): Done with the page in the buffer, memory controller may read more data
// statistics data was not used in late nc353
// statistics data was not used in late nc353
// input dccout, //enable output of DC and HF components for brightness/color/focus adjustments
// input dccout, //enable output of DC and HF components for brightness/color/focus adjustments
@@ -161,80 +155,18 @@ module compressor393 # (
// output [15:0] statistics_do,
// output [15:0] statistics_do,
// Timestamp messages (@mclk) - combine to a single ts_data?
// Timestamp messages (@mclk) - combine to a single ts_data?
inputts_pre_stb_chn0,// @mclk - 1 cycle before receiving 8 bytes of timestamp data
input[3:0]ts_pre_stb,// @mclk - 1 cycle before receiving 8 bytes of timestamp data
input[7:0]ts_data_chn0,// timestamp data (s0,s1,s2,s3,us0,us1,us2,us3==0)
input[31:0]ts_data,// timestamp data (s0,s1,s2,s3,us0,us1,us2,us3==0)
inputts_pre_stb_chn1,// @mclk - 1 cycle before receiving 8 bytes of timestamp data
input[7:0]ts_data_chn1,// timestamp data (s0,s1,s2,s3,us0,us1,us2,us3==0)
inputts_pre_stb_chn2,// @mclk - 1 cycle before receiving 8 bytes of timestamp data
input[7:0]ts_data_chn2,// timestamp data (s0,s1,s2,s3,us0,us1,us2,us3==0)
inputts_pre_stb_chn3,// @mclk - 1 cycle before receiving 8 bytes of timestamp data
input[7:0]ts_data_chn3,// timestamp data (s0,s1,s2,s3,us0,us1,us2,us3==0)
// Outputs for interrupts generation
// Outputs for interrupts generation
outputeof_written_mclk_chn0,
output[3:0]eof_written_mclk,
outputstuffer_done_mclk_chn0,
output[3:0]stuffer_done_mclk,
outputeof_written_mclk_chn1,
outputstuffer_done_mclk_chn1,
outputeof_written_mclk_chn2,
outputstuffer_done_mclk_chn2,
outputeof_written_mclk_chn3,
outputstuffer_done_mclk_chn3,
// frame input synchronization
// frame input synchronization
inputvsync_late_chn0,// delayed start of frame, @xclk. In 353 it was 16 lines after VACT active
input[3:0]vsync_late,// delayed start of frame, @xclk. In 353 it was 16 lines after VACT active
// source channel should already start, some delay give time for sequencer commands
// source channel should already start, some delay give time for sequencer commands
// that should arrive before it
// that should arrive before it
inputvsync_late_chn1,
inputvsync_late_chn2,
inputvsync_late_chn3,
// master (sensor) with slave (compressor) synchronization I/Os
outputframe_start_dst_chn0,// @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
// (compress from memory)
input[FRAME_HEIGHT_BITS-1:0]line_unfinished_src_chn0,// number of the current (unfinished ) line, in the source (sensor) channel (RELATIVE TO FRAME, NOT WINDOW?)
input[LAST_FRAME_BITS-1:0]frame_number_src_chn0,// current frame number (for multi-frame ranges) in the source (sensor) channel
inputframe_done_src_chn0,// 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
// Used withe a single-frame buffers
input[FRAME_HEIGHT_BITS-1:0]line_unfinished_dst_chn0,// number of the current (unfinished ) line in this (compressor) channel
input[LAST_FRAME_BITS-1:0]frame_number_dst_chn0,// current frame number (for multi-frame ranges) in this (compressor channel
inputframe_done_dst_chn0,// single-cycle pulse when the full frame (window) was transferred to/from DDR3 memory
// use as 'eot_real' in 353
outputsuspend_chn0,// suspend reading data for this channel - waiting for the source data
outputframe_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
// (compress from memory)
input[FRAME_HEIGHT_BITS-1:0]line_unfinished_src,// number of the current (unfinished ) line, in the source (sensor) channel (RELATIVE TO FRAME, NOT WINDOW?)
input[LAST_FRAME_BITS-1:0]frame_number_src,// current frame number (for multi-frame ranges) in the source (sensor) channel
inputframe_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
// Used withe a single-frame buffers
input[FRAME_HEIGHT_BITS-1:0]line_unfinished_dst,// number of the current (unfinished ) line in this (compressor) channel
input[LAST_FRAME_BITS-1:0]frame_number_dst,// current frame number (for multi-frame ranges) in this (compressor channel
inputframe_done_dst,// single-cycle pulse when the full frame (window) was transferred to/from DDR3 memory
// use as 'eot_real' in 353
outputsuspend,// suspend reading data for this channel - waiting for the source data
// statistics data was not used in late nc353
// statistics data was not used in late nc353
inputdccout,//enable output of DC and HF components for brightness/color/focus adjustments
inputdccout,//enable output of DC and HF components for brightness/color/focus adjustments
input[2:0]hfc_sel,// [2:0] (for autofocus) only components with both spacial frequencies higher than specified will be added
input[2:0]hfc_sel,// [2:0] (for autofocus) only components with both spacial frequencies higher than specified will be added
@@ -139,20 +155,6 @@ module jp_channel#(
inputvsync_late,// delayed start of frame, @xclk. In 353 it was 16 lines after VACT active
inputvsync_late,// delayed start of frame, @xclk. In 353 it was 16 lines after VACT active
// source channel should already start, some delay give time for sequencer commands
// source channel should already start, some delay give time for sequencer commands
// that should arrive before it
// that should arrive before it
outputframe_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
// (compress from memory)
input[FRAME_HEIGHT_BITS-1:0]line_unfinished_src,// number of the current (unfinished ) line, in the source (sensor) channel (RELATIVE TO FRAME, NOT WINDOW?)
input[LAST_FRAME_BITS-1:0]frame_number_src,// current frame number (for multi-frame ranges) in the source (sensor) channel
inputframe_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
// Used withe a single-frame buffers
input[FRAME_HEIGHT_BITS-1:0]line_unfinished_dst,// number of the current (unfinished ) line in this (compressor) channel
input[LAST_FRAME_BITS-1:0]frame_number_dst,// current frame number (for multi-frame ranges) in this (compressor channel
inputframe_done_dst,// single-cycle pulse when the full frame (window) was transferred to/from DDR3 memory
// use as 'eot_real' in 353
outputsuspend,// suspend reading data for this channel - waiting for the source data