Commit d189269a authored by Andrey Filippov's avatar Andrey Filippov

Updated simulation code

parent c270adff
[*]
[*] GTKWave Analyzer v3.3.78 (w)1999-2016 BSI
[*] Sat Mar 30 21:44:35 2019
[*] Thu Apr 4 15:14:53 2019
[*]
[dumpfile] "/data_ssd/nc393/elphel393/fpga-elphel/x393/simulation/x393_dut-20190330003307254.fst"
[dumpfile_mtime] "Sat Mar 30 08:20:05 2019"
[dumpfile_size] 828570003
[dumpfile] "/data_ssd/nc393/elphel393/fpga-elphel/x393/simulation/x393_dut-20190403200123296.fst"
[dumpfile_mtime] "Thu Apr 4 02:19:11 2019"
[dumpfile_size] 92419986
[savefile] "/data_ssd/nc393/elphel393/fpga-elphel/x393/cocotb/x393_cocotb_03.sav"
[timestart] 389800000
[timestart] 71920000
[size] 1804 1171
[pos] -1 -1
*-24.894814 449301250 447727388 448849888 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
*-23.676386 109647388 447727388 448849888 102260291 102291500 102322774 102354054 3061832388 143392388 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
[treeopen] x393_dut.
[treeopen] x393_dut.simul_lwir160x120_vospi_i.
[treeopen] x393_dut.simul_sensor12bits_2_i.
[treeopen] x393_dut.simul_sensor12bits_3_i.
[treeopen] x393_dut.simul_sensor12bits_4_i.
[treeopen] x393_dut.simul_sensor12bits_i.
[treeopen] x393_dut.x393_i.
[treeopen] x393_dut.x393_i.compressor393_i.
......@@ -23,12 +25,16 @@
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.cmprs_raw_buf_iface_i.
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[1].
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[1].jp_channel_i.
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[1].jp_channel_i.cmprs_frame_sync_i.
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[1].jp_channel_i.huffman_stuffer_meta_i.
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].jp_channel_i.
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].jp_channel_i.cmprs_frame_sync_i.
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].jp_channel_i.huffman_stuffer_meta_i.
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_27_32_i.
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[3].
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[3].jp_channel_i.
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[3].jp_channel_i.cmprs_frame_sync_i.
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[3].jp_channel_i.huffman_stuffer_meta_i.
......@@ -44,39 +50,153 @@
[treeopen] x393_dut.x393_i.frame_sequencer_block[0].cmd_frame_sequencer_i.
[treeopen] x393_dut.x393_i.mcntrl393_i.
[treeopen] x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.
[treeopen] x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.
[treeopen] x393_dut.x393_i.mcntrl393_i.cmd_encod_tiled_32_rw_i.
[treeopen] x393_dut.x393_i.mcntrl393_i.cmd_encod_tiled_32_rw_i.cmd_encod_tiled_rd_i.
[treeopen] x393_dut.x393_i.mcntrl393_i.memctrl16_i.
[treeopen] x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.
[treeopen] x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].
[treeopen] x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_linear_wr_sensor_i.
[treeopen] x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.
[treeopen] x393_dut.x393_i.mcntrl393_i.sens_comp_block[1].
[treeopen] x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].
[treeopen] x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_linear_wr_sensor_i.
[treeopen] x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_tiled_rd_compressor_i.
[treeopen] x393_dut.x393_i.mcntrl393_i.sens_comp_block[3].
[treeopen] x393_dut.x393_i.mcntrl393_i.sens_comp_block[3].mcntrl_tiled_rd_compressor_i.
[treeopen] x393_dut.x393_i.mult_saxi_wr_i.mult_saxi_wr_pointers_i.
[treeopen] x393_dut.x393_i.sensors393_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[0].
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.genblk1.sens_histogram_0_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.lens_flat393_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sens_histogram_mux_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sens_sync_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sensor_i2c_io_i.sensor_i2c_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_membuf_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_membuf_i.chn1wr_buf_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[1].
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_channel_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_channel_i.lens_flat393_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_channel_i.sens_sync_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[2].
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[2].sensor_channel_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[2].sensor_channel_i.genblk1.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[2].sensor_channel_i.genblk1.sens_histogram_0_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[2].sensor_channel_i.lens_flat393_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[2].sensor_channel_i.sens_sync_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[3].
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[3].sensor_channel_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[3].sensor_channel_i.lens_flat393_i.
[treeopen] x393_dut.x393_i.sensors393_i.sensor_channel_block[3].sensor_channel_i.sens_sync_i.
[treeopen] x393_dut.x393_i.timing393_i.camsync393_i.
[treeopen] x393_dut.x393_i.timing393_i.camsync393_i.i_frsync_pclk0.
[sst_width] 580
[signals_width] 275
[sst_width] 351
[signals_width] 322
[sst_expanded] 1
[sst_vpaned_height] 486
[sst_vpaned_height] 727
@820
x393_dut.TEST_TITLE[639:0]
@c00200
-LWIR0
@28
x393_dut.simul_lwir160x120_vospi_i.mclk
x393_dut.simul_lwir160x120_vospi_i.miso
x393_dut.simul_lwir160x120_vospi_i.ncs
x393_dut.simul_lwir160x120_vospi_i.nrst
x393_dut.simul_lwir160x120_vospi_i.sck
@22
x393_dut.simul_lwir160x120_vospi_i.copy_packet[7:0]
@28
x393_dut.simul_lwir160x120_vospi_i.frame_start
x393_dut.simul_lwir160x120_vospi_i.copy_run
x393_dut.simul_lwir160x120_vospi_i.copy_page
x393_dut.simul_lwir160x120_vospi_i.copy_done
x393_dut.simul_lwir160x120_vospi_i.copy_crc
@8022
x393_dut.simul_lwir160x120_vospi_i.copy_packet[7:0]
@c08022
x393_dut.simul_lwir160x120_vospi_i.copy_word[6:0]
@28
(0)x393_dut.simul_lwir160x120_vospi_i.copy_word[6:0]
(1)x393_dut.simul_lwir160x120_vospi_i.copy_word[6:0]
(2)x393_dut.simul_lwir160x120_vospi_i.copy_word[6:0]
(3)x393_dut.simul_lwir160x120_vospi_i.copy_word[6:0]
(4)x393_dut.simul_lwir160x120_vospi_i.copy_word[6:0]
(5)x393_dut.simul_lwir160x120_vospi_i.copy_word[6:0]
(6)x393_dut.simul_lwir160x120_vospi_i.copy_word[6:0]
@1401200
-group_end
@22
x393_dut.simul_lwir160x120_vospi_i.copy_packet_full[7:0]
x393_dut.simul_lwir160x120_vospi_i.copy_packet_indx[11:0]
x393_dut.simul_lwir160x120_vospi_i.copy_packet_segment[7:0]
@c00022
x393_dut.simul_lwir160x120_vospi_i.copy_packet_ttt[7:0]
@28
(0)x393_dut.simul_lwir160x120_vospi_i.copy_packet_ttt[7:0]
(1)x393_dut.simul_lwir160x120_vospi_i.copy_packet_ttt[7:0]
(2)x393_dut.simul_lwir160x120_vospi_i.copy_packet_ttt[7:0]
(3)x393_dut.simul_lwir160x120_vospi_i.copy_packet_ttt[7:0]
(4)x393_dut.simul_lwir160x120_vospi_i.copy_packet_ttt[7:0]
(5)x393_dut.simul_lwir160x120_vospi_i.copy_packet_ttt[7:0]
(6)x393_dut.simul_lwir160x120_vospi_i.copy_packet_ttt[7:0]
(7)x393_dut.simul_lwir160x120_vospi_i.copy_packet_ttt[7:0]
@1401200
-group_end
@28
x393_dut.simul_lwir160x120_vospi_i.copy_pix_only
x393_dut.simul_lwir160x120_vospi_i.copy_pix_or_tel
x393_dut.simul_lwir160x120_vospi_i.copy_pixels_pix
@22
x393_dut.simul_lwir160x120_vospi_i.copy_pxd[15:0]
x393_dut.simul_lwir160x120_vospi_i.copy_d[15:0]
x393_dut.simul_lwir160x120_vospi_i.copy_din[15:0]
@8022
x393_dut.simul_lwir160x120_vospi_i.copy_wa[6:0]
x393_dut.simul_lwir160x120_vospi_i.copy_wa_full[15:0]
@28
x393_dut.simul_lwir160x120_vospi_i.copy_run
x393_dut.simul_lwir160x120_vospi_i.copy_tel_only
@22
x393_dut.simul_lwir160x120_vospi_i.copy_telemetry_d[15:0]
@c00022
x393_dut.simul_lwir160x120_vospi_i.copy_telemetry_packet[7:0]
@28
(0)x393_dut.simul_lwir160x120_vospi_i.copy_telemetry_packet[7:0]
(1)x393_dut.simul_lwir160x120_vospi_i.copy_telemetry_packet[7:0]
(2)x393_dut.simul_lwir160x120_vospi_i.copy_telemetry_packet[7:0]
(3)x393_dut.simul_lwir160x120_vospi_i.copy_telemetry_packet[7:0]
(4)x393_dut.simul_lwir160x120_vospi_i.copy_telemetry_packet[7:0]
(5)x393_dut.simul_lwir160x120_vospi_i.copy_telemetry_packet[7:0]
(6)x393_dut.simul_lwir160x120_vospi_i.copy_telemetry_packet[7:0]
(7)x393_dut.simul_lwir160x120_vospi_i.copy_telemetry_packet[7:0]
@1401200
-group_end
@22
x393_dut.simul_lwir160x120_vospi_i.copy_wa[6:0]
x393_dut.simul_lwir160x120_vospi_i.copy_wa_full[15:0]
x393_dut.simul_lwir160x120_vospi_i.copy_word[6:0]
x393_dut.simul_lwir160x120_vospi_i.crc_in[15:0]
x393_dut.simul_lwir160x120_vospi_i.crc_out[15:0]
@28
x393_dut.simul_lwir160x120_vospi_i.en_avg
@22
x393_dut.simul_lwir160x120_vospi_i.frame_average32[31:0]
x393_dut.simul_lwir160x120_vospi_i.frame_average[15:0]
@8022
x393_dut.simul_lwir160x120_vospi_i.frame_dly_cntr[19:0]
@22
x393_dut.simul_lwir160x120_vospi_i.frame_sum[30:0]
@8022
x393_dut.simul_lwir160x120_vospi_i.ms_cntr[31:0]
x393_dut.simul_lwir160x120_vospi_i.time_ms[31:0]
@28
x393_dut.simul_lwir160x120_vospi_i.mclk
x393_dut.simul_lwir160x120_vospi_i.mrst
x393_dut.simul_lwir160x120_vospi_i.nrst
@200
-
@1401200
-LWIR0
@800200
-SENSOR0
@28
......@@ -103,6 +223,7 @@ x393_dut.simul_sensor12bits_i.ivact
@22
x393_dut.simul_sensor12bits_i.state[3:0]
x393_dut.simul_sensor12bits_i.stated[3:0]
x393_dut.simul_sensor12bits_i.cntrd[15:0]
@8022
x393_dut.simul_sensor12bits_i.cntr[15:0]
@1000200
......@@ -118,6 +239,8 @@ x393_dut.simul_sensor12bits_2_i.D[11:0]
x393_dut.simul_sensor12bits_2_i.VACT
x393_dut.simul_sensor12bits_2_i.HACT
x393_dut.simul_sensor12bits_2_i.stopped
@22
x393_dut.simul_sensor12bits_2_i.cntr[15:0]
@1401200
-SENSOR1
@c00200
......@@ -148,7 +271,7 @@ x393_dut.simul_sensor12bits_3_i.stated[3:0]
x393_dut.simul_sensor12bits_3_i.cntr[15:0]
@1401200
-SENSOR2
@c00200
@800200
-SENSOR3
@28
x393_dut.simul_sensor12bits_4_i.ARO
......@@ -159,7 +282,9 @@ x393_dut.simul_sensor12bits_4_i.D[11:0]
x393_dut.simul_sensor12bits_4_i.VACT
x393_dut.simul_sensor12bits_4_i.HACT
x393_dut.simul_sensor12bits_4_i.stopped
@1401200
@22
x393_dut.simul_sensor12bits_4_i.cntr[15:0]
@1000200
-SENSOR3
@c00200
-ARO
......@@ -2779,7 +2904,7 @@ x393_dut.IMU_SDA
x393_dut.IMU_TAPS[5:1]
@1401200
-IMU_
@800200
@c00200
-debuf_frame_sync_x
@28
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sens_sync_i.prst
......@@ -2851,7 +2976,7 @@ x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.want
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.xfer_want
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.xfer_grant
(2)x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.xfer_start_r[2:0]
@1000200
@1401200
-debuf_frame_sync_x
@c00200
-camsync_ext_int
......@@ -3001,6 +3126,7 @@ x393_dut.x393_i.timing393_i.camsync393_i.restart_cntr[31:0]
@28
x393_dut.x393_i.frame_sequencer_block[0].cmd_frame_sequencer_i.frame_sync
@22
[color] 2
x393_dut.x393_i.frame_sequencer_block[0].cmd_frame_sequencer_i.frame_no[3:0]
@1000200
-cmd_frame_seq0
......@@ -3027,10 +3153,18 @@ x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sensor_i2c
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sensor_i2c_io_i.sensor_i2c_i.use_eof
@1401200
-i2c_seq_0
@c00200
@800200
-sensor_channel0
@28
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.bit16
@22
x393_dut.PX1_D[11:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sens_parallel12_i.pxd[11:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sens_parallel12_i.pxd_out[11:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.pxd[11:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.lens_flat393_i.pxd_in[15:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.lens_flat393_i.pxd_in[15:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.lens_flat393_i.pxd_out[15:0]
@800200
-buf
@28
......@@ -3080,9 +3214,50 @@ x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sens_sync_
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sens_sync_i.sof_out_pclk
@1000200
-sesns_sync
@1401200
-sensor_channel0
@800200
-sensor_channel1
@22
x393_dut.PX2_D[11:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_channel_i.sens_parallel12_i.pxd[11:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_channel_i.pxd[11:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_channel_i.lens_flat393_i.pxd_in[15:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_channel_i.lens_flat393_i.pxd_out[15:0]
@800200
-buf
@28
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_membuf_i.px_valid
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_membuf_i.wpage[1:0]
@22
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_membuf_i.waddr[8:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_membuf_i.px_data[15:0]
@28
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_membuf_i.mclk
@22
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_membuf_i.buf_dout[63:0]
@28
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_membuf_i.buf_rd
@1000200
-buf
-sensor_channel1
@800200
-sensor_channel2
@22
x393_dut.PX3_D[11:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[2].sensor_channel_i.lens_flat393_i.pxd_in[15:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[2].sensor_channel_i.lens_flat393_i.pxd_out[15:0]
@200
-
@1000200
-sensor_channel2
@800200
-sensor_channel3
@22
x393_dut.PX4_D[11:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[3].sensor_channel_i.lens_flat393_i.pxd_in[15:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[3].sensor_channel_i.lens_flat393_i.pxd_out[15:0]
@1000200
-sensor_channel3
-sequencers_0
@22
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_linear_wr_sensor_i.window_height[16:0]
......@@ -3135,18 +3310,22 @@ x393_dut.x393_i.sof_out_mclk[3:0]
(3)x393_dut.x393_i.sof_out_mclk[3:0]
@1401200
-group_end
@28
x393_dut.x393_i.compressor393_i.cmprs_channel_block[3].jp_channel_i.buf_we
@22
x393_dut.x393_i.compressor393_i.cmprs_channel_block[3].jp_channel_i.buf_din[63:0]
@c00200
-jpeg3
@800200
-memsensor3
@22
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_linear_wr_sensor_i.window_height[16:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_linear_wr_sensor_i.window_width[13:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[3].mcntrl_linear_wr_sensor_i.window_height[16:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[3].mcntrl_linear_wr_sensor_i.window_width[13:0]
@1000200
-memsensor3
@22
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_tiled_rd_compressor_i.window_height[16:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_tiled_rd_compressor_i.window_width[13:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[3].mcntrl_tiled_rd_compressor_i.window_height[16:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[3].mcntrl_tiled_rd_compressor_i.window_width[13:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_tiled_rd_compressor_i.tile_rows[6:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_tiled_rd_compressor_i.tile_vstep[6:0]
@28
......@@ -3282,8 +3461,21 @@ x393_dut.x393_i.compressor393_i.cmprs_channel_block[3].jp_channel_i.huffman_stuf
@1401200
-bit_stuffer_27_32
-jpeg3
@c00200
@800200
-jpeg2
-memsensor2
@22
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_linear_wr_sensor_i.window_height[16:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_linear_wr_sensor_i.window_width[13:0]
@1000200
-memsensor2
@22
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_tiled_rd_compressor_i.window_height[16:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_tiled_rd_compressor_i.window_width[13:0]
@28
x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].jp_channel_i.buf_we
@22
x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].jp_channel_i.buf_din[63:0]
@28
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_tiled_rd_compressor_i.chn_en
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_tiled_rd_compressor_i.chn_rst
......@@ -3328,6 +3520,9 @@ x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].jp_channel_i.huffman_stuf
@28
x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].jp_channel_i.huffman_stuffer_meta_i.stuffer_bytes[1:0]
x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].jp_channel_i.huffman_stuffer_meta_i.stuffer_dv
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_tiled_rd_compressor_i.xfer_start32_rd
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_tiled_rd_compressor_i.xfer_start_rd
x393_dut.x393_i.mcntrl393_i.sens_comp_block[2].mcntrl_tiled_rd_compressor_i.xfer_start_lin_rd
@c00200
-bit_stuffer
@28
......@@ -3393,9 +3588,23 @@ x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].jp_channel_i.huffman_stuf
-
@1401200
-bit_stuffer
@1000200
-jpeg2
@c00200
@800200
-jpeg1
-memsensor1
@22
x393_dut.x393_i.mcntrl393_i.sens_comp_block[1].mcntrl_linear_wr_sensor_i.window_height[16:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[1].mcntrl_linear_wr_sensor_i.window_width[13:0]
@1000200
-memsensor1
@22
x393_dut.x393_i.mcntrl393_i.sens_comp_block[1].mcntrl_tiled_rd_compressor_i.window_height[16:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[1].mcntrl_tiled_rd_compressor_i.window_width[13:0]
@28
x393_dut.x393_i.compressor393_i.cmprs_channel_block[1].jp_channel_i.buf_we
@22
x393_dut.x393_i.compressor393_i.cmprs_channel_block[1].jp_channel_i.buf_din[63:0]
@28
x393_dut.x393_i.mcntrl393_i.sens_comp_block[1].mcntrl_tiled_rd_compressor_i.chn_en
x393_dut.x393_i.mcntrl393_i.sens_comp_block[1].mcntrl_tiled_rd_compressor_i.chn_rst
......@@ -3440,7 +3649,11 @@ x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].jp_channel_i.huffman_stuf
@28
x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].jp_channel_i.huffman_stuffer_meta_i.stuffer_bytes[1:0]
x393_dut.x393_i.compressor393_i.cmprs_channel_block[2].jp_channel_i.huffman_stuffer_meta_i.stuffer_dv
@1401200
@200
-
@22
x393_dut.x393_i.compressor393_i.cmprs_channel_block[1].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
@1000200
-jpeg1
@c00200
-debug_raw_x
......@@ -3581,6 +3794,7 @@ x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.cmprs_run_mc
@800200
-debug_interference_raw0
@28
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.xfer_need
[color] 3
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.xfer_want
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.xfer_grant
......@@ -3597,6 +3811,9 @@ x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.chn_rd_buf_i
@28
x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_wr_i.enc_done
x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_wr_i.enc_wr
@22
x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
@28
x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_wr_i.gen_run
@22
x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_wr_i.num128[6:0]
......@@ -3620,6 +3837,9 @@ x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.start
-encode_tiled_rd
@28
x393_dut.x393_i.mcntrl393_i.cmd_encod_tiled_32_rw_i.cmd_encod_tiled_rd_i.enc_wr
@22
x393_dut.x393_i.mcntrl393_i.cmd_encod_tiled_32_rw_i.cmd_encod_tiled_rd_i.enc_cmd[31:0]
@28
x393_dut.x393_i.mcntrl393_i.cmd_encod_tiled_32_rw_i.cmd_encod_tiled_rd_i.enc_done
x393_dut.x393_i.mcntrl393_i.cmd_encod_tiled_32_rw_i.cmd_encod_tiled_rd_i.gen_run
x393_dut.x393_i.mcntrl393_i.cmd_encod_tiled_32_rw_i.cmd_encod_tiled_rd_i.pre_act
......@@ -3628,7 +3848,7 @@ x393_dut.x393_i.mcntrl393_i.cmd_encod_tiled_32_rw_i.cmd_encod_tiled_rd_i.pre_don
x393_dut.x393_i.mcntrl393_i.cmd_encod_tiled_32_rw_i.cmd_encod_tiled_rd_i.start
@1000200
-encode_tiled_rd
@800200
@c00200
-mcntrl_sheduler
@c00022
x393_dut.x393_i.mcntrl393_i.memctrl16_i.scheduler16_i.want_conf[15:0]
......@@ -3658,9 +3878,9 @@ x393_dut.x393_i.mcntrl393_i.memctrl16_i.scheduler16_i.grant_r
@22
x393_dut.x393_i.mcntrl393_i.memctrl16_i.scheduler16_i.grant_chn[3:0]
x393_dut.x393_i.mcntrl393_i.memctrl16_i.scheduler16_i.grant_chn_r[3:0]
@1000200
@1401200
-mcntrl_sheduler
@800200
@c00200
-mcntrl_sequencer
@28
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.ext_buf_rd
......@@ -3704,10 +3924,11 @@ x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.buf_rdata[63:0]
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.buf_wr
@22
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.buf_wdata[63:0]
@1000200
@1401200
-mcntrl_sequencer
@1000200
-debug_interference_raw0
@800200
@c00200
-raw_0
@28
x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.raw_be16
......@@ -3946,7 +4167,6 @@ x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.mem_
-
@1401200
-mcntrl_tiled_linear
@1000200
-raw_0
@c00200
-cmprs_raw_buf_iface_i
......@@ -4066,6 +4286,19 @@ x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.cmprs_raw_bu
-cmprs_raw_buf_iface_i
@800200
-jpeg0
-memsensor0
@22
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_linear_wr_sensor_i.window_height[16:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_linear_wr_sensor_i.window_width[13:0]
@1000200
-memsensor0
@22
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.window_height[16:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.window_width[13:0]
@28
x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.buf_we
@22
x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.buf_din[63:0]
@c00200
-raw_dbg
@28
......@@ -4121,7 +4354,7 @@ x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuf
-
@1401200
-raw_dbg
@c00200
@800200
-stuffer_raw0
@28
x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.raw_prefb
......@@ -4148,6 +4381,204 @@ x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.chn_
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.frame_en
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.frame_start
x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.cmprs_frame_sync_i.frames_numbers_differ
@800200
-mem
@22
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.window_width[13:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.window_height[16:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.next_y[16:0]
@28
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.last_row_w
@8028
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.last_in_row_w
@22
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.curr_x[12:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.row_left[13:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.recalc_r[8:0]
[color] 3
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.line_unfinished_relw_r[15:0]
[color] 3
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.line_unfinished_r[15:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.row_left[13:0]
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.row_col_r[21:0]
@28
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.frame_done
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.frame_finished
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.busy_r
@8022
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.pending_xfers[1:0]
@28
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.xfer_limited_by_mem_page_r
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.start_not_partial
[color] 2
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.next_page
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.xfer_want
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.xfer_grant
@22
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.page_cntr[2:0]
@8028
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.xfer_start_r[2:0]
@28
x393_dut.x393_i.mcntrl393_i.sens_comp_block[0].mcntrl_tiled_rd_compressor_i.xfer_page_done
@1000200
-mem
@800200
-encode_lin_rd
@28
x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.start
@22
x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.bank[2:0]
x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.row[14:0]
x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.start_col[6:0]
x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.num128_in[5:0]
@c00022
x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
@28
(0)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(1)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(2)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(3)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(4)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(5)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(6)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(7)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(8)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(9)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(10)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(11)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(12)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(13)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(14)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(15)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(16)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(17)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(18)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(19)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(20)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(21)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(22)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(23)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(24)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(25)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(26)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(27)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(28)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(29)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(30)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
(31)x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_cmd[31:0]
@1401200
-group_end
@28
x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_wr
x393_dut.x393_i.mcntrl393_i.cmd_encod_linear_rw_i.cmd_encod_linear_rd_i.enc_done
@1000200
-encode_lin_rd
@800200
-encode_tiled_rd
@28
x393_dut.x393_i.mcntrl393_i.cmd_encod_tiled_32_rw_i.cmd_encod_tiled_rd_i.start
@22
x393_dut.x393_i.mcntrl393_i.cmd_encod_tiled_32_rw_i.cmd_encod_tiled_rd_i.bank[2:0]
@200
-
@1000200
-encode_tiled_rd
@800200
-mseq
@22
x393_dut.x393_i.mcntrl393_i.memctrl16_i.seq_data[31:0]
@28
x393_dut.x393_i.mcntrl393_i.memctrl16_i.seq_wr
x393_dut.x393_i.mcntrl393_i.memctrl16_i.seq_set
x393_dut.x393_i.mcntrl393_i.memctrl16_i.grant_r
@22
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.cmd1_addr[9:0]
@28
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.cmd1_we
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.ren1
@22
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.cmd_addr[9:0]
@c00022
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
@28
(0)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(1)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(2)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(3)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(4)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(5)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(6)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(7)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(8)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(9)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(10)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(11)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(12)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(13)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(14)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(15)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(16)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(17)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(18)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(19)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(20)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(21)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(22)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(23)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(24)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(25)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(26)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(27)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(28)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(29)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(30)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
(31)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_word[31:0]
@1401200
-group_end
@28
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.cmd_fetch
[color] 2
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_nop
@22
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.pause_len[9:0]
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.pause_cntr[9:0]
@28
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.pause
@800200
-phy_cmd
@22
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_i.pause_len[9:0]
@28
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_i.sequence_done
@22
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_i.phy_addr_in[14:0]
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_i.phy_bank_in[2:0]
@800028
[color] 3
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_i.phy_rcw_pos[2:0]
@28
[color] 3
(0)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_i.phy_rcw_pos[2:0]
[color] 3
(1)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_i.phy_rcw_pos[2:0]
[color] 3
(2)x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_i.phy_rcw_pos[2:0]
@1001200
-group_end
@28
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_i.phy_odt_in
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_i.phy_cke_dis
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_i.add_pause
@200
-
@1000200
-phy_cmd
@22
x393_dut.x393_i.mcntrl393_i.memctrl16_i.mcontr_sequencer_i.phy_cmd_i.phy_addr_in[14:0]
@200
-
@1000200
-mseq
@22
[color] 6
x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.cmprs_frame_sync_i.line_unfinished_src[15:0]
......@@ -4204,11 +4635,36 @@ x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuf
x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.stuffer_dv
@28
x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.trailer
@22
@c00022
x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
@28
(0)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(1)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(2)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(3)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(4)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(5)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(6)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(7)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(8)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(9)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(10)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(11)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(12)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(13)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(14)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(15)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(16)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(17)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(18)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(19)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(20)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
(21)x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.imgsz4[21:0]
@1401200
-group_end
@1000200
-stuffer_raw0
@c00200
@800200
-bit_stuffer
@22
x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_27_32_i.xclk
......@@ -4237,9 +4693,8 @@ x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuf
x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_27_32_i.stage[1:0]
@200
-
@1401200
-bit_stuffer
@1000200
-bit_stuffer
-jpeg0
[pattern_trace] 1
[pattern_trace] 0
......@@ -418,14 +418,16 @@ module x393_dut#(
parameter PF_STRIPES=WOI_HEIGHT/PF_HEIGHT;
`else
parameter PF_HEIGHT=0; // SuppressThisWarning VEditor - not used
parameter FULL_HEIGHT=WOI_HEIGHT+4;
parameter PF_STRIPES=0; // SuppressThisWarning VEditor - not used
`endif
parameter WOI_MARGINS = 0; // 4;
parameter VIRTUAL_WIDTH= FULL_WIDTH + HBLANK;
parameter VIRTUAL_HEIGHT= FULL_HEIGHT + BLANK_ROWS_BEFORE + BLANK_ROWS_AFTER; //SuppressThisWarning Veditor UNUSED
parameter TRIG_INTERFRAME= 100; /// extra 100 clock cycles between frames //SuppressThisWarning Veditor UNUSED
parameter TRIG_DELAY= 200; /// delay in sensor clock cycles // SuppressThisWarning VEditor - not used
parameter FULL_WIDTH= WOI_WIDTH+4;
parameter FULL_WIDTH= WOI_WIDTH + WOI_MARGINS;
parameter FULL_HEIGHT= WOI_HEIGHT + WOI_MARGINS;
// localparam SENSOR_MEMORY_WIDTH_BURSTS = (FULL_WIDTH + 15) >> 4;
// localparam SENSOR_MEMORY_MASK = (1 << (FRAME_WIDTH_ROUND_BITS-4)) -1;
// localparam SENSOR_MEMORY_FULL_WIDTH_BURSTS = (SENSOR_MEMORY_WIDTH_BURSTS + SENSOR_MEMORY_MASK) & (~SENSOR_MEMORY_MASK);
......@@ -670,22 +672,35 @@ module x393_dut#(
`else
//connect parallel12 sensor to sensor port 2 (all data rotated left by 1 bit)
assign sns2_dp[6:1] = {PX2_D[9], PX2_D[7], PX2_D[5], PX2_D[3], PX2_D[1], PX2_HACT};
assign sns2_dn[6:0] = {PX2_D[10], PX2_D[8], PX2_D[6], PX2_D[4], PX2_D[2], PX2_VACT, PX2_DCLK};
assign sns2_clkn = PX2_D[11]; // inout CNVSYNC/TDI
assign sns2_clkp = PX2_D[0]; // CNVCLK/TDO
/// assign sns2_dp[6:1] = {PX2_D[9], PX2_D[7], PX2_D[5], PX2_D[3], PX2_D[1], PX2_HACT};
/// assign sns2_dn[6:0] = {PX2_D[10], PX2_D[8], PX2_D[6], PX2_D[4], PX2_D[2], PX2_VACT, PX2_DCLK};
/// assign sns2_clkn = PX2_D[11]; // inout CNVSYNC/TDI
/// assign sns2_clkp = PX2_D[0]; // CNVCLK/TDO
assign sns2_dp[6:1] = {PX2_D[10], PX2_D[8], PX2_D[6], PX2_D[4], PX2_D[2], PX2_HACT};
assign sns2_dn[6:0] = {PX2_D[11], PX2_D[9], PX2_D[7], PX2_D[5], PX2_D[3], PX2_VACT, PX2_DCLK};
assign sns2_clkn = PX2_D[0]; // inout CNVSYNC/TDI
assign sns2_clkp = PX2_D[1]; // CNVCLK/TDO
//connect parallel12 sensor to sensor port 3 (all data rotated left by 2 bits
assign sns3_dp[6:1] = {PX3_D[8], PX3_D[6], PX3_D[4], PX3_D[2], PX3_D[0], PX3_HACT};
assign sns3_dn[6:0] = {PX3_D[9], PX3_D[7], PX3_D[5], PX3_D[3], PX3_D[1], PX3_VACT, PX3_DCLK};
assign sns3_clkn = PX3_D[10]; // inout CNVSYNC/TDI
assign sns3_clkp = PX3_D[11]; // CNVCLK/TDO
/// assign sns3_dp[6:1] = {PX3_D[8], PX3_D[6], PX3_D[4], PX3_D[2], PX3_D[0], PX3_HACT};
/// assign sns3_dn[6:0] = {PX3_D[9], PX3_D[7], PX3_D[5], PX3_D[3], PX3_D[1], PX3_VACT, PX3_DCLK};
/// assign sns3_clkn = PX3_D[10]; // inout CNVSYNC/TDI
/// assign sns3_clkp = PX3_D[11]; // CNVCLK/TDO
assign sns3_dp[6:1] = {PX3_D[10], PX3_D[8], PX3_D[6], PX3_D[4], PX3_D[2], PX3_HACT};
assign sns3_dn[6:0] = {PX3_D[11], PX3_D[9], PX3_D[7], PX3_D[5], PX3_D[3], PX3_VACT, PX3_DCLK};
assign sns3_clkn = PX3_D[0]; // inout CNVSYNC/TDI
assign sns3_clkp = PX3_D[1]; // CNVCLK/TDO
//connect parallel12 sensor to sensor port 4 (all data rotated left by 3 bits
assign sns4_dp[6:1] = {PX4_D[5], PX4_D[3], PX4_D[1], PX4_D[11], PX4_D[9], PX4_HACT};
assign sns4_dn[6:0] = {PX4_D[6], PX4_D[4], PX4_D[2], PX4_D[0], PX4_D[10], PX4_VACT, PX4_DCLK};
assign sns4_clkn = PX4_D[7]; // inout CNVSYNC/TDI
assign sns4_clkp = PX4_D[8]; // CNVCLK/TDO
/// assign sns4_dp[6:1] = {PX4_D[5], PX4_D[3], PX4_D[1], PX4_D[11], PX4_D[9], PX4_HACT};
/// assign sns4_dn[6:0] = {PX4_D[6], PX4_D[4], PX4_D[2], PX4_D[0], PX4_D[10], PX4_VACT, PX4_DCLK};
/// assign sns4_clkn = PX4_D[7]; // inout CNVSYNC/TDI
/// assign sns4_clkp = PX4_D[8]; // CNVCLK/TDO
assign sns4_dp[6:1] = {PX4_D[10], PX4_D[8], PX4_D[6], PX4_D[4], PX4_D[2], PX4_HACT};
assign sns4_dn[6:0] = {PX4_D[11], PX4_D[9], PX4_D[7], PX4_D[5], PX4_D[3], PX4_VACT, PX4_DCLK};
assign sns4_clkn = PX4_D[0]; // inout CNVSYNC/TDI
assign sns4_clkp = PX4_D[1]; // CNVCLK/TDO
`endif
`endif
......@@ -1552,6 +1567,40 @@ simul_axi_hp_wr #(
.clk_out (PX4_MCLK) // output
);
/* Instance template for module simul_lwir160x120_vospi */
wire lwir1_miso;
simul_lwir160x120_vospi #(
.DATA_FILE ("/data_ssd/nc393/elphel393/fpga-elphel/x393/input_data/pattern_160_120_14.dat"),
.WINDOW_WIDTH (160),
.WINDOW_HEIGHT (120),
.TELEMETRY (2), // 1),
.FRAME_PERIOD (946969),
.FRAME_DELAY (100),
.MS_PERIOD (25) // 1us instead of 1 ms
) simul_lwir160x120_vospi_i (
.mclk (x393_i.ps7_i.SAXIHP0ACLK), // PX1_MCLK), // input temporarily made faster
.nrst ( PX1_MRST), // input
.sck ( 1'b0), // input
.ncs ( 1'b0), // inout
.miso ( lwir1_miso), // output
.telemetry_rev ( 16'h7654), // input[15:0]
.telemetry_status ( 32'h137f1248), // input[31:0]
.telemetry_srev (64'h0123456789abcdef), // input[63:0]
.telemetry_temp_counts ( 16'd59000), // input[15:0]
.telemetry_temp_kelvin ( 16'd29500), // input[15:0]
.telemetry_temp_last_kelvin ( 16'd29300), // input[15:0]
.telemetry_time_last_ms ( 32'h12345678), // input[31:0]
.telemetry_agc_roi_top ( 16'd0), // input[15:0]
.telemetry_agc_roi_left ( 16'd0), // input[15:0]
.telemetry_agc_roi_bottom ( 16'd119), // input[15:0]
.telemetry_agc_roi_right ( 16'd159), // input[15:0]
.telemetry_agc_high (16'd19200), // input[15:0]
.telemetry_agc_low ( 16'd200), // input[15:0]
.telemetry_video_format (32'haaaa5555) // input[31:0]
);
simul_sensor12bits #(
.SENSOR_IMAGE_TYPE (SENSOR_IMAGE_TYPE0),
.lline (VIRTUAL_WIDTH), // SENSOR12BITS_LLINE),
......@@ -1572,7 +1621,8 @@ simul_axi_hp_wr #(
.tDDO1 (SENSOR12BITS_TDDO1),
.trigdly (TRIG_LINES), // SENSOR12BITS_TRIGDLY),
.ramp (0), //SENSOR12BITS_RAMP),
.new_bayer (0) // was 1 SENSOR12BITS_NEW_BAYER)
.new_bayer (0), // was 1 SENSOR12BITS_NEW_BAYER)
.EXTRA_PERIOD(0)
) simul_sensor12bits_i (
.MCLK (PX1_MCLK), // input
.MRST (PX1_MRST), // input
......@@ -1611,7 +1661,9 @@ simul_axi_hp_wr #(
.tDDO1 (SENSOR12BITS_TDDO1),
.trigdly (TRIG_LINES), // SENSOR12BITS_TRIGDLY),
.ramp (0), //SENSOR12BITS_RAMP),
.new_bayer (0) //SENSOR12BITS_NEW_BAYER) was 1
.new_bayer (0), //SENSOR12BITS_NEW_BAYER) was 1
.EXTRA_PERIOD (50)
) simul_sensor12bits_2_i (
.MCLK (PX2_MCLK), // input
`ifdef DISABLE_SENSOR_2
......@@ -1653,7 +1705,8 @@ simul_axi_hp_wr #(
.tDDO1 (SENSOR12BITS_TDDO1),
.trigdly (TRIG_LINES), // SENSOR12BITS_TRIGDLY),
.ramp (0), // SENSOR12BITS_RAMP),
.new_bayer (0) // was 1SENSOR12BITS_NEW_BAYER)
.new_bayer (0), // was 1SENSOR12BITS_NEW_BAYER)
.EXTRA_PERIOD(100)
) simul_sensor12bits_3_i (
.MCLK (PX3_MCLK), // input
.MRST (PX3_MRST), // input
......@@ -1691,7 +1744,8 @@ simul_axi_hp_wr #(
.tDDO1 (SENSOR12BITS_TDDO1),
.trigdly (TRIG_LINES), // SENSOR12BITS_TRIGDLY),
.ramp (0),// SENSOR12BITS_RAMP),
.new_bayer (0) // was 1SENSOR12BITS_NEW_BAYER)
.new_bayer (0), // was 1SENSOR12BITS_NEW_BAYER)
.EXTRA_PERIOD(120)
) simul_sensor12bits_4_i (
.MCLK (PX4_MCLK), // input
.MRST (PX4_MRST), // input
......
......@@ -79,17 +79,43 @@
// parameter SENSOR_IMAGE_TYPE2 = "NORM11", // 4",
// parameter SENSOR_IMAGE_TYPE3 = "NORM12",
parameter SENSOR_IMAGE_TYPE0 = "TEST01-1044X36", // "NORM13",
parameter SENSOR_IMAGE_TYPE1 = "TEST01-1044X36", // "NORM13",
parameter SENSOR_IMAGE_TYPE2 = "TEST01-1044X36", // "NORM14", // 4",
parameter SENSOR_IMAGE_TYPE3 = "TEST01-1044X36", // "NORM15",
parameter SIMULATE_CMPRS_CMODE0 = CMPRS_CBIT_CMODE_JPEG18,
parameter SIMULATE_CMPRS_CMODE1 = CMPRS_CBIT_CMODE_JPEG18,
parameter SIMULATE_CMPRS_CMODE2 = CMPRS_CBIT_CMODE_JP4,
parameter SIMULATE_CMPRS_CMODE3 = CMPRS_CBIT_CMODE_JP4,
// parameter SENSOR_IMAGE_TYPE0 = "TEST01-1044X36", // "NORM13",
// parameter SENSOR_IMAGE_TYPE1 = "TEST01-1044X36", // "NORM13",
// parameter SENSOR_IMAGE_TYPE2 = "TEST01-1044X36", // "NORM14", // 4",
// parameter SENSOR_IMAGE_TYPE3 = "TEST01-1044X36", // "NORM15",
// parameter SENSOR_IMAGE_TYPE0 = "TEST01-260X36", // "NORM13",
// parameter SENSOR_IMAGE_TYPE1 = "TEST01-260X36", // "NORM13",
// parameter SENSOR_IMAGE_TYPE2 = "TEST01-260X36", // "NORM14", // 4",
// parameter SENSOR_IMAGE_TYPE3 = "TEST01-260X36", // "NORM15",
// parameter SENSOR_IMAGE_TYPE0 = "TEST01-260X68", // "NORM13",
// parameter SENSOR_IMAGE_TYPE1 = "TEST01-260X68", // "NORM13",
// parameter SENSOR_IMAGE_TYPE2 = "TEST01-260X68", // "NORM14", // 4",
// parameter SENSOR_IMAGE_TYPE3 = "TEST01-260X68", // "NORM15",
// parameter SENSOR_IMAGE_TYPE0 = "260X260A", // "NORM13",
// parameter SENSOR_IMAGE_TYPE1 = "260X260A", // "NORM13",
// parameter SENSOR_IMAGE_TYPE2 = "260X260A", // "NORM14", // 4",
// parameter SENSOR_IMAGE_TYPE3 = "260X260A", // "NORM15",
parameter SENSOR_IMAGE_TYPE0 = "256X256A", // "NORM13",
parameter SENSOR_IMAGE_TYPE1 = "256X256A", // "NORM13",
parameter SENSOR_IMAGE_TYPE2 = "256X256A", // "NORM14", // 4",
parameter SENSOR_IMAGE_TYPE3 = "256X256A", // "NORM15",
// parameter SENSOR_IMAGE_TYPE0 = "512X512A", // "NORM13",
// parameter SENSOR_IMAGE_TYPE1 = "512X512A", // "NORM13",
// parameter SENSOR_IMAGE_TYPE2 = "512X512A", // "NORM14", // 4",
// parameter SENSOR_IMAGE_TYPE3 = "512X512A", // "NORM15",
//
parameter SIMULATE_CMPRS_CMODE0 = CMPRS_CBIT_CMODE_JP4, // CMPRS_CBIT_CMODE_JPEG18,
parameter SIMULATE_CMPRS_CMODE1 = CMPRS_CBIT_CMODE_JP4, // CMPRS_CBIT_CMODE_JPEG18,
parameter SIMULATE_CMPRS_CMODE2 = CMPRS_CBIT_CMODE_JP4, // CMPRS_CBIT_CMODE_JPEG18, // CMPRS_CBIT_CMODE_JP4,
parameter SIMULATE_CMPRS_CMODE3 = CMPRS_CBIT_CMODE_JP4, // CMPRS_CBIT_CMODE_JPEG18, // CMPRS_CBIT_CMODE_JP4,
// parameter SIMULATE_CMPRS_CMODE2 = CMPRS_CBIT_CMODE_JPEG18,
// parameter SIMULATE_CMPRS_CMODE3 = CMPRS_CBIT_CMODE_JPEG18,
// CMPRS_CBIT_CMODE_JPEG18, //input [31:0] cmode; // [13:9] color mode:
......@@ -134,8 +160,8 @@
parameter HISTOGRAM_START_PAGE = 20'h12345,
parameter FRAME_WIDTH_ROUND_BITS = 9, // multiple of 512 pixels (32 16-byte bursts) (11 - ful SDRAM page)
parameter WOI_WIDTH= 1040, // 64,
parameter WOI_HEIGHT= 32,
parameter WOI_WIDTH= 256, // 512, // 256, //1040, // 64,
parameter WOI_HEIGHT= 256, // 512, // 256, // 64, // 32,
parameter QUADRANTS_PXD_HACT_VACT = 6'h01, // 2 bits each: data-0, hact - 1, vact - 2
// 90-degree shifts for data [1:0], hact [3:2] and vact [5:4]
......
......@@ -155,7 +155,7 @@ class X393SensCmprs(object):
x393Rtc = None
x393Membridge = None
def __init__(self, debug_mode=1,dry_mode=True, saveFileName=None):
def __init__(self, debug_mode=1,dry_mode=True, saveFileName=None, nomargins = True): # False):
# global BUFFER_ADDRESS, BUFFER_LEN
global BUFFER_ADDRESS, BUFFER_LEN, COMMAND_ADDRESS, DATAIN_ADDRESS, DATAOUT_ADDRESS
global BUFFER_ADDRESS_H2D, BUFFER_LEN_H2D, BUFFER_ADDRESS_D2H, BUFFER_LEN_D2H, BUFFER_ADDRESS_BIDIR, BUFFER_LEN_BIDIR
......@@ -173,6 +173,13 @@ class X393SensCmprs(object):
SENSOR_DEFAULTS[x393_sensor.SENSOR_INTERFACE_HISPI]["height"]= vrlg.WOI_HEIGHT + 4
SENSOR_DEFAULTS[x393_sensor.SENSOR_INTERFACE_HISPI]["top"]= 0
SENSOR_DEFAULTS[x393_sensor.SENSOR_INTERFACE_HISPI]["left"]= 0
if nomargins:
SENSOR_DEFAULTS[x393_sensor.SENSOR_INTERFACE_PARALLEL]["width"]= vrlg.WOI_WIDTH + 0 # 4
SENSOR_DEFAULTS[x393_sensor.SENSOR_INTERFACE_PARALLEL]["height"]= vrlg.WOI_HEIGHT + 0
SENSOR_DEFAULTS[x393_sensor.SENSOR_INTERFACE_HISPI]["width"]= vrlg.WOI_WIDTH + 0 #4
SENSOR_DEFAULTS[x393_sensor.SENSOR_INTERFACE_HISPI]["height"]= vrlg.WOI_HEIGHT + 0
print ("Using simulation size sensor defaults ",SENSOR_DEFAULTS)
except:
......@@ -628,12 +635,15 @@ class X393SensCmprs(object):
# moved before camsync to have a valid timestamo w/o special waiting
if verbose >0 :
print ("===================== MEMORY_SENSOR =========================")
print ("===================== MEMORY_SENSOR =========================, mode= %d"%(cmode))
window_height_memory = window_height
if cmode==vrlg.CMPRS_CBIT_CMODE_JP4:
if (cmode==vrlg.CMPRS_CBIT_CMODE_JP4) or (cmode==15): # vrlg.CMPRS_CBIT_CMODE_RAW):
window_height_memory &= 0xfff0 # do not need extra margins
num_burst_in_line &= 0xfffe # make even (assuming left=0)
print ("===================== Mode is JP4 or raw =========================")
else:
print ("===================== Mode is neither JP4 nor raw =========================")
self.x393Sensor.setup_sensor_memory (
num_sensor = num_sensor, # input [1:0] num_sensor;
......
#!/usr/bin/env python
# encoding: utf-8
from __future__ import division
from __future__ import print_function
......@@ -47,7 +49,7 @@ except:
try:
outname = sys.argv[3]
except IndexError:
outname = fname.replace(".tiff",".vh")
outname = fname.replace(".tiff",".dat")
tif = Image.open(fname)
......
/*!
* <b>Module:</b> simul_lwir160x120_telemetry
* @file simul_lwir160x120_telemetry.v
* @date 2019-04-01
* @author Andrey Filippov
*
* @brief Combine telemetry data into vospi packet payload
*
* @copyright Copyright (c) 2019 Elphel, Inc.
*
* <b>License </b>
*
* simul_lwir160x120_telemetry.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* simul_lwir160x120_telemetry.v is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/> .
*
* Additional permission under GNU GPL version 3 section 7:
* If you modify this Program, or any covered work, by linking or combining it
* with independent modules provided by the FPGA vendor only (this permission
* does not extend to any 3-rd party modules, "soft cores" or macros) under
* different license terms solely for the purpose of generating binary "bitstream"
* files and/or simulating the code, the copyright holders of this Program give
* you the right to distribute the covered work without those independent modules
* as long as the source code for them is available from the FPGA vendor free of
* charge, and there is no dependence on any encrypted modules for simulating of
* the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
*/
`timescale 1ns/1ps
module simul_lwir160x120_telemetry(
input clk,
input en, // write all telemetry, but average
input en_avg, // write frame average (may be simultaneous)
// telemetry data
input [15:0] telemetry_rev,
input [31:0] telemetry_time,
input [31:0] telemetry_status,
input [63:0] telemetry_srev,
input [31:0] telemetry_frame,
input [15:0] telemetry_mean,
input [15:0] telemetry_temp_counts,
input [15:0] telemetry_temp_kelvin,
input [15:0] telemetry_temp_last_kelvin,
input [31:0] telemetry_time_last_ms,
input [15:0] telemetry_agc_roi_top,
input [15:0] telemetry_agc_roi_left,
input [15:0] telemetry_agc_roi_bottom,
input [15:0] telemetry_agc_roi_right,
input [15:0] telemetry_agc_high,
input [15:0] telemetry_agc_low,
input [31:0] telemetry_video_format, //???
output reg [160*16-1:0] telemetry_a,
output reg [160*16-1:0] telemetry_b
);
always @(posedge clk) if (en) begin
telemetry_a <= {
telemetry_rev [15:0], // word 0
telemetry_time [31:0], // words 1.. 2
telemetry_status [31:0], // words 3.. 4
{8{16'b0}}, // words 5..12
telemetry_srev [63:0], // words 13..16
{3{16'b0}}, // words 17..19
telemetry_frame [31:0], // words 20..21
en_avg?telemetry_mean[15:0]:telemetry_a[(159-22)*16 +: 16], // words 22
telemetry_temp_counts [15:0], // words 23
telemetry_temp_kelvin [15:0], // words 24
{4{16'b0}}, // words 25..28
telemetry_temp_last_kelvin[15:0], // words 29
telemetry_time_last_ms [31:0], // words 30..31
{2{16'b0}}, // words 32..33
telemetry_agc_roi_top [15:0], // words 34
telemetry_agc_roi_left [15:0], // words 35
telemetry_agc_roi_bottom [15:0], // words 36
telemetry_agc_roi_right [15:0], // words 37
telemetry_agc_high [15:0], // words 38
telemetry_agc_low [15:0], // words 39
{32{16'b0}}, // words 40..71
telemetry_video_format [31:0], // words 72..73
{86{16'b0}} // words 74..159
};
telemetry_b <= 0;
end else if (en_avg) begin
telemetry_a[(159-22)*16 +: 16] <= telemetry_mean[15:0];
end
endmodule
/*!
* <b>Module:</b> simul_lwir160x120_vospi
* @file simul_lwir160x120_vospi.v
* @date 2019-03-30
* @author Andrey FIlippov
*
* @brief simulates FLIR Lepton 3.0 output over VoSPI
*
* @copyright Copyright (c) 2019 Elphel, Inc .
*
* <b>License </b>
*
* simul_lwir160x120_vospi.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* simul_lwir160x120_vospi.v is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/> .
*
* Additional permission under GNU GPL version 3 section 7:
* If you modify this Program, or any covered work, by linking or combining it
* with independent modules provided by the FPGA vendor only (this permission
* does not extend to any 3-rd party modules, "soft cores" or macros) under
* different license terms solely for the purpose of generating binary "bitstream"
* files and/or simulating the code, the copyright holders of this Program give
* you the right to distribute the covered work without those independent modules
* as long as the source code for them is available from the FPGA vendor free of
* charge, and there is no dependence on any encrypted modules for simulating of
* the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
*/
`timescale 1ns/1ps
module simul_lwir160x120_vospi # (
parameter DATA_FILE = "/data_ssd/nc393/elphel393/fpga-elphel/x393/input_data/pattern_160_120_14.dat", //
parameter WINDOW_WIDTH = 160, //
parameter WINDOW_HEIGHT = 120, //
parameter TELEMETRY = 1, // 0 - disabled, 1 - as header, 2 - as footer
parameter FRAME_PERIOD = 946969, // 26.4 fps @25 MHz
parameter FRAME_DELAY = 100, // mclk period to start first frame 1
parameter MS_PERIOD = 25 // ahould actually be 25000
)(
input mclk,
input nrst,
input sck,
input ncs,
output miso,
// telemetry data
input [15:0] telemetry_rev,
input [31:0] telemetry_status,
input [63:0] telemetry_srev,
input [15:0] telemetry_temp_counts,
input [15:0] telemetry_temp_kelvin,
input [15:0] telemetry_temp_last_kelvin,
input [31:0] telemetry_time_last_ms,
input [15:0] telemetry_agc_roi_top,
input [15:0] telemetry_agc_roi_left,
input [15:0] telemetry_agc_roi_bottom,
input [15:0] telemetry_agc_roi_right,
input [15:0] telemetry_agc_high,
input [15:0] telemetry_agc_low,
input [31:0] telemetry_video_format //???
);
localparam OUT_BITS = 16;
localparam PACKET_PIXELS = 80;
localparam PACKET_HEADER = 2;
localparam PACKET_WORDS = PACKET_PIXELS + PACKET_HEADER;
localparam SEGMENT_PACKETS = 60; // w/o telemetry
localparam SEGMENT_PACKETS_TELEMETRY = SEGMENT_PACKETS + ((TELEMETRY > 0)? 1 : 0);
localparam FRAME_SEGMENTS = 4;
localparam FRAME_PACKETS = SEGMENT_PACKETS * FRAME_SEGMENTS;
localparam FRAME_PACKETS_FULL = FRAME_PACKETS + ((TELEMETRY==0) ? 0 : 4);
localparam FRAMES = 2; // 2 frames in a ping-pong buffer
localparam FRAME_WORDS = FRAME_SEGMENTS * (SEGMENT_PACKETS + ((TELEMETRY>0)?1 : 0)) * PACKET_WORDS;
wire mrst = !nrst;
reg [OUT_BITS-1:0] sensor_data[0 : WINDOW_WIDTH * WINDOW_HEIGHT - 1]; // SuppressThisWarning VEditor - Will be assigned by $readmem
reg [OUT_BITS-1:0] packed_data[0: FRAMES * FRAME_WORDS -1];
wire [160*16-1:0] telemetry_a;
wire [160*16-1:0] telemetry_b;
// registers for copiing data to packet array
//'0xe7319'
reg [19:0] frame_dly_cntr; // delay till next frame start
reg frame_start;
reg copy_page;
reg copy_run;
wire copy_done;
// reg [2:0] copy_segment; // 4 - copy average and telemetry
reg [7:0] copy_packet; // 240 image packets, then telemetry
reg [6:0] copy_word; // word number to copy in a packet (0..82), last one copies CRC to word 1
reg copy_crc;
wire [7:0] copy_packet_full;
wire [7:0] copy_telemetry_packet; // only 2 LSB
wire [7:0] copy_packet_segment;
wire [11:0] copy_packet_indx; // high bits are always 0
wire [7:0] copy_packet_ttt;
reg [15:0] copy_pxd;
reg [30:0] frame_sum;
wire [31:0] frame_average32;
wire [15:0] frame_average;
reg [15:0] copy_telemetry_d;
reg [15:0] copy_d;
wire copy_pix_or_tel;
wire copy_pix_only;
wire copy_tel_only;
// reg copy_pixels_r;
reg copy_pixels_pix;
// reg copy_pixels_tel;
wire [15:0] copy_din;
wire [ 6:0] copy_wa; // address in a packet where to write data
wire [15:0] copy_wa_full;
wire [15:0] crc_in;
wire [15:0] crc_out;
reg en_avg; // write frame average value to telemetry
reg [31:0] frame_num;
reg [31:0] time_ms;
reg [31:0] ms_cntr;
// wire [ 2:0] copy_segment;
//946,969 '0xe7319'
// assign copy_done = copy_run && copy_crc &&((TELEMETRY==0) ? (copy_packet== (FRAME_PACKETS -1)) : (FRAME_PACKETS + 3));
assign copy_done = copy_run && copy_crc && (copy_packet== (FRAME_PACKETS_FULL -1));
assign copy_packet_full = (copy_packet < FRAME_PACKETS)?(copy_packet + ((TELEMETRY == 1) ? 4 : 0)):(copy_packet - ((TELEMETRY == 1)?FRAME_PACKETS: 0)) ;
assign copy_telemetry_packet = copy_packet - FRAME_PACKETS;
assign copy_pix_or_tel = copy_run && (copy_word < PACKET_PIXELS); // && (copy_packet < FRAME_PACKETS);
assign copy_pix_only = copy_pix_or_tel && (copy_packet < FRAME_PACKETS);
assign copy_tel_only = copy_pix_or_tel && (copy_packet >= FRAME_PACKETS);
assign copy_packet_segment = copy_packet_full / SEGMENT_PACKETS_TELEMETRY;
assign copy_packet_indx = copy_packet_full % SEGMENT_PACKETS_TELEMETRY;
assign copy_packet_ttt = (copy_packet_indx == 20) ? (copy_packet_segment + 1): 8'b0;
assign crc_in = (copy_word == 0) ? {4'b0,copy_packet_indx[11:0]}:(
(copy_word == 1) ?16'b0:copy_d[15:0]);
assign copy_din = (copy_word == 0) ? {1'b0,copy_packet_ttt[2:0], copy_packet_indx[11:0]}:(
(copy_word == 1) ?16'bxx:(copy_crc? (crc_out): copy_d[15:0]));
assign copy_wa = copy_crc? 7'h01 : copy_word;
assign copy_wa_full = copy_wa + (PACKET_WORDS * copy_packet_full) + (FRAME_WORDS * copy_page);
assign frame_average32 = (frame_sum / (WINDOW_WIDTH * WINDOW_HEIGHT));
assign frame_average = frame_average32[15:0];
`ifndef ROOTPATH
`include "IVERILOG_INCLUDE.v"// SuppressThisWarning VEditor - maybe not used
`ifndef ROOTPATH
`define ROOTPATH "."
`endif
`endif
initial begin
// $readmemh({`ROOTPATH,"/input_data/sensor_16.dat"},sensor_data);
$readmemh(DATA_FILE,sensor_data,0);
end
always @ (posedge mclk) begin
if (mrst || (ms_cntr == 0)) ms_cntr <= MS_PERIOD -1;
else ms_cntr <= ms_cntr - 1;
if (mrst) time_ms <= 0;
else if ((ms_cntr == 0)) time_ms <= time_ms + 1;
//restarting frames
if (mrst) frame_dly_cntr <= FRAME_DELAY;
else if (frame_start) frame_dly_cntr <= FRAME_PERIOD;
else frame_dly_cntr <= frame_dly_cntr - 1;
frame_start <= !mrst && (frame_dly_cntr == 0);
if (mrst) frame_num <= 0;
else if (frame_start) frame_num <= frame_num + 1;
if (mrst) copy_page <= 0;
else if (frame_start) copy_page <= !copy_page;
if (mrst || copy_done) copy_run <= 0;
else if (frame_start) copy_run <= 1;
copy_crc <= copy_word == (PACKET_WORDS - 1);
if (!copy_run || copy_crc) copy_word <= 0;
else copy_word <= copy_word + 1;
if (!copy_run) copy_packet <= 0;
else if (copy_crc) copy_packet <= copy_packet + 1;
if (copy_pix_only) copy_pxd <= sensor_data[copy_packet * PACKET_PIXELS + copy_word];
else copy_pxd <= 'bx;
if (copy_tel_only) copy_telemetry_d <= copy_telemetry_packet[1]?
telemetry_b[(PACKET_PIXELS * (2 - copy_telemetry_packet[0])-copy_word - 1)*16 +: 16]:
telemetry_a[(PACKET_PIXELS * (2 - copy_telemetry_packet[0])-copy_word - 1)*16 +: 16];
else copy_telemetry_d <= 'bx;
copy_d <= (copy_packet < FRAME_PACKETS) ? copy_pxd : copy_telemetry_d;
// copy_pixels_r <= copy_pix_or_tel;
copy_pixels_pix <= copy_pix_or_tel && (copy_packet < FRAME_PACKETS);
// copy_pixels_tel <= copy_pix_or_tel && (copy_packet >= FRAME_PACKETS);
if (frame_start) frame_sum <= 0;
else if (copy_pixels_pix) frame_sum <= frame_sum + copy_pxd;
if (copy_run) packed_data[copy_wa_full] <= copy_din; // copy_d;
en_avg <= copy_crc && (copy_packet == (FRAME_PACKETS - 1)); // 1 cycle after last pixel written
end
/* Instance template for module crc16_x16x12x5x0 */
crc16_x16x12x5x0 crc16_x16x12x5x0_i (
.clk (mclk), // input
.srst (!copy_run || copy_crc), // input
.en (1'b1), // input
.din (crc_in), // input[15:0]
.dout (crc_out) // output[15:0]
);
/* Instance template for module simul_lwir160x120_telemetry */
simul_lwir160x120_telemetry simul_lwir160x120_telemetry_i (
.clk (mclk), // input
.en (frame_start), // input
.en_avg (en_avg), // input
.telemetry_rev (telemetry_rev), // input[15:0]
.telemetry_time (time_ms), // input[31:0]
.telemetry_status (telemetry_status), // input[31:0]
.telemetry_srev (telemetry_srev), // input[63:0]
.telemetry_frame (frame_num), // input[31:0]
.telemetry_mean (frame_average), // input[15:0]
.telemetry_temp_counts (telemetry_temp_counts), // input[15:0]
.telemetry_temp_kelvin (telemetry_temp_kelvin), // input[15:0]
.telemetry_temp_last_kelvin(telemetry_temp_last_kelvin), // input[15:0]
.telemetry_time_last_ms (telemetry_time_last_ms), // input[31:0]
.telemetry_agc_roi_top (telemetry_agc_roi_top), // input[15:0]
.telemetry_agc_roi_left (telemetry_agc_roi_left), // input[15:0]
.telemetry_agc_roi_bottom (telemetry_agc_roi_bottom), // input[15:0]
.telemetry_agc_roi_right (telemetry_agc_roi_right), // input[15:0]
.telemetry_agc_high (telemetry_agc_high), // input[15:0]
.telemetry_agc_low (telemetry_agc_low), // input[15:0]
.telemetry_video_format (telemetry_video_format), // input[31:0]
.telemetry_a (telemetry_a), // output[2559:0] reg
.telemetry_b (telemetry_b) // output[2559:0] reg
);
endmodule
/*
// Most significant bit first (big-endian)
// x^16+x^12+x^5+1 = (1) 0001 0000 0010 0001 = 0x1021
function crc(byte array string[1..len], int len) {
rem := 0
// A popular variant complements rem here
for i from 1 to len {
rem := rem xor (string[i] leftShift (n-8)) // n = 16 in this example
for j from 1 to 8 { // Assuming 8 bits per byte
if rem and 0x8000 { // if leftmost (most significant) bit is set
rem := (rem leftShift 1) xor 0x1021
} else {
rem := rem leftShift 1
}
rem := rem and 0xffff // Trim remainder to 16 bits
}
}
// A popular variant complements rem here
return rem
}
*/
......@@ -55,7 +55,8 @@ module simul_sensor12bits # (
parameter tDDO1 = 5, //
parameter trigdly = 8, // delay between trigger input and start of output (VACT) in lines
parameter ramp = 1, // 1 - ramp, 0 - random (now - sensor.dat)
parameter new_bayer = 0 // 0 - old (16x16), 1 - new (18x18)
parameter new_bayer = 0, // 0 - old (16x16), 1 - new (18x18)
parameter EXTRA_PERIOD = 0 // add these clockc before VACT
) (
input MCLK, // Master clock
input MRST, // Master Reset - active low
......@@ -83,7 +84,7 @@ module simul_sensor12bits # (
localparam s_lastline= 7;
localparam s_frame_done=8;
localparam t_preVACT= lline* trigdly;
localparam t_preVACT= lline* trigdly + EXTRA_PERIOD;
localparam t_firstline=nrowb*lline+1; // 1664
localparam t_BPF= nbpf; // 16
localparam t_preHACT= ngp1; // 8
......@@ -92,7 +93,9 @@ module simul_sensor12bits # (
localparam t_lastline= nrowa*lline+1; // 1664
//reg [15:0] sensor_data[0:4095]; // up to 64 x 64 pixels // SuppressThisWarning VEditor - Will be assigned by $readmem
reg [15:0] sensor_data[0:65535]; // up to 1024 x 64 pixels // SuppressThisWarning VEditor - Will be assigned by $readmem
///reg [15:0] sensor_data[0:65535]; // up to 1024 x 64 pixels // SuppressThisWarning VEditor - Will be assigned by $readmem
reg [15:0] sensor_data[0: nrows * ncols -1]; // up to 1024 x 64 pixels // SuppressThisWarning VEditor - Will be assigned by $readmem
// $readmemh("sensor.dat",sensor_data);
......@@ -192,6 +195,11 @@ initial begin
else if (SENSOR_IMAGE_TYPE == "NORM15") $readmemh({`ROOTPATH,"/input_data/sensor_15.dat"},sensor_data);
else if (SENSOR_IMAGE_TYPE == "NORM16") $readmemh({`ROOTPATH,"/input_data/sensor_16.dat"},sensor_data);
else if (SENSOR_IMAGE_TYPE == "TEST01-1044X36") $readmemh({`ROOTPATH,"/input_data/test01-1044x36.dat"},sensor_data);
else if (SENSOR_IMAGE_TYPE == "TEST01-260X36") $readmemh({`ROOTPATH,"/input_data/marching1_12b_260x36.dat"},sensor_data);
else if (SENSOR_IMAGE_TYPE == "TEST01-260X68") $readmemh({`ROOTPATH,"/input_data/marching1_12b_260x68.dat"},sensor_data);
else if (SENSOR_IMAGE_TYPE == "260X260A") $readmemh({`ROOTPATH,"/input_data/img260x260x12b.dat"},sensor_data);
else if (SENSOR_IMAGE_TYPE == "256X256A") $readmemh({`ROOTPATH,"/input_data/img256x256-12b.dat"},sensor_data);
else if (SENSOR_IMAGE_TYPE == "512X512A") $readmemh({`ROOTPATH,"/input_data/img516x516-12b.dat"},sensor_data);
else begin
$display ("WARNING: Unrecognized sensor image :'%s', using default 'NORM': input_data/sensor.dat",SENSOR_IMAGE_TYPE);
$readmemh({`ROOTPATH,"/input_data/sensor.dat"},sensor_data);
......
/*!
* <b>Module:</b> vospi
* @file vospi.v
* @date 2019-03-31
* @author Andrey Filippov
*
* @brief single packet ;processing with a ping-pong buffer
*
* @copyright Copyright (c) 2019 Elphel, Inc.
*
* <b>License </b>
*
* vospi.v is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* vospi.v is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/> .
*
* Additional permission under GNU GPL version 3 section 7:
* If you modify this Program, or any covered work, by linking or combining it
* with independent modules provided by the FPGA vendor only (this permission
* does not extend to any 3-rd party modules, "soft cores" or macros) under
* different license terms solely for the purpose of generating binary "bitstream"
* files and/or simulating the code, the copyright holders of this Program give
* you the right to distribute the covered work without those independent modules
* as long as the source code for them is available from the FPGA vendor free of
* charge, and there is no dependence on any encrypted modules for simulating of
* the combined code. This permission applies to you if the distributed code
* contains all the components and scripts required to completely simulate it
* with at least one of the Free Software programs.
*/
`timescale 1ns/1ps
module vospi(
input clk,
input srst,
input [15:0] data_in,
output packet_rdy, // @clk
input sck, // SPI clk
input ncs, // SPI active-low CS
output miso // SPI data out
);
endmodule
......@@ -64,7 +64,7 @@
`define PRELOAD_BRAMS
`define DISPLAY_COMPRESSED_DATA
// if HISPI is not defined, parallel sensor interface is used for all channels
// `define HISPI /*************** CHANGE here and x393_hispi/x393_parallel in bitstream tool settings ****************/
`define HISPI /*************** CHANGE here and x393_hispi/x393_parallel in bitstream tool settings ****************/
`define MON_HISPI // Measure HISPI timing
// `define USE_OLD_XDCT393
// `define USE_PCLK2X
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment