Loading cocotb/x393_cocotb_02.sav +10 −10 Original line number Diff line number Diff line [*] [*] GTKWave Analyzer v3.3.66 (w)1999-2015 BSI [*] Wed Sep 14 19:28:33 2016 [*] Tue Sep 20 04:34:10 2016 [*] [dumpfile] "/home/eyesis/git/x393-neon/simulation/x393_dut-20160914091637595.fst" [dumpfile_mtime] "Wed Sep 14 17:55:04 2016" [dumpfile_size] 377060747 [dumpfile] "/home/eyesis/git/x393-neon/simulation/x393_dut-20160919202856605.fst" [dumpfile_mtime] "Tue Sep 20 04:31:39 2016" [dumpfile_size] 93558968 [savefile] "/home/eyesis/git/x393-neon/cocotb/x393_cocotb_02.sav" [timestart] 43511100 [size] 1814 1171 [pos] 1936 23 *-14.509074 43557388 77654500 77716800 80133500 86987400 89448000 91674200 91801500 95195280 96480090 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 [timestart] 42705000 [size] 1201 767 [pos] 2223 211 *-19.051508 43557388 77654500 77716800 80133500 86987400 89448000 91674200 91801500 95195280 96480090 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 [treeopen] x393_dut. [treeopen] x393_dut.ddr3_i.ddr3_i. [treeopen] x393_dut.simul_axi_master_wdata_i. Loading Loading @@ -73,10 +73,10 @@ [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.genblk1. [treeopen] x393_dut.x393_i.timing393_i. [sst_width] 435 [sst_width] 212 [signals_width] 312 [sst_expanded] 1 [sst_vpaned_height] 642 [sst_vpaned_height] 380 @820 x393_dut.TEST_TITLE[639:0] @800200 Loading cocotb/x393_dut.v +3 −3 Original line number Diff line number Diff line Loading @@ -677,10 +677,10 @@ module x393_dut#( wire [ 9:0] gpio_pins; // inout[9:0] ([6]-synco0,[7]-syncio0,[8]-synco1,[9]-syncio1) wire [ 9:0] gpio_pins; // inout[9:0] ([8]-synco0,[7]-syncio0,[6]-synco1,[9]-syncio1) // Connect trigger outs to triggets in (#10 needed for Icarus) assign #10 gpio_pins[7] = gpio_pins[6]; assign #10 gpio_pins[9] = gpio_pins[8]; assign #10 gpio_pins[7] = gpio_pins[8]; assign #10 gpio_pins[9] = gpio_pins[6]; // DDR3 signals wire SDRST; Loading fpga_version.vh +4 −2 Original line number Diff line number Diff line Loading @@ -35,7 +35,9 @@ * contains all the components and scripts required to completely simulate it * with at least one of the Free Software programs. */ parameter FPGA_VERSION = 32'h039300b7; //parallel, matching histograms Bayer to gamma bayer -0.011/9, 79.92% parameter FPGA_VERSION = 32'h039300b9; //parallel, correcting RTC (it was 25/24 faster) -0.038/29, 79.64% // parameter FPGA_VERSION = 32'h039300b8; //parallel, working on camsync -0.330/99, 80.52% -> -0.143 /40, 79.88% // parameter FPGA_VERSION = 32'h039300b7; //parallel, matching histograms Bayer to gamma bayer -0.011/9, 79.92% // parameter FPGA_VERSION = 32'h039300b6; //parallel, working on histograms odd colors bug -0.207 /58, 79.68% // parameter FPGA_VERSION = 32'h039300b5; //parallel, moving histograms earlier -0.123/30, 79.47 // parameter FPGA_VERSION = 32'h039300b4; //-a parallel, and more - -0.180/33, 80.68 % Loading py393/x393_camsync.py +1 −1 Original line number Diff line number Diff line Loading @@ -142,7 +142,7 @@ class X393Camsync(object): @param sub_chn - sensor channel (0..3) @param delay - delay value in 10 ns steps - max 42.95 sec """ self.x393_axi_tasks.write_control_register(vrlg.CAMSYNC_ADDR + vrlg.CAMSYNC_TRIG_PERIOD, delay) self.x393_axi_tasks.write_control_register(vrlg.CAMSYNC_ADDR + vrlg.CAMSYNC_TRIG_DELAY0+sub_chn, delay) def camsync_setup(self, sensor_mask = None, Loading py393/x393_jpeg.py +126 −1 Original line number Diff line number Diff line Loading @@ -819,7 +819,9 @@ class X393Jpeg(object): if useNextReady: channel = self.x393Cmprs.compressor_interrupt_acknowledge(enabledOnly=True) if channel is None: raise Exception ("No channels have new compressed images ready") # raise Exception ("No channels have new compressed images ready") print ("*********** No channels have new compressed images ready ************") return else: schn="-"+str(channel) if '@' in file_path: Loading Loading @@ -1891,6 +1893,129 @@ jpeg_sim_multi 4 jpeg_sim_multi 4 jpeg_sim_multi 4 ################## Simulate Parallel 9 - external trigger #################### ./py393/test_mcntrl.py @py393/cocoargs --simulated=localhost:7777 measure_all "*DI" setup_all_sensors True None 0xf set_sensor_io_ctl all None None 1 # Set ARO low - check if it is still needed? #just testing set_gpio_ports 1 1 # enable software gpio pins and porta (camsync) set_gpio_pins 0 1 # pin 0 low, pin 1 - high set_camsync_period 31 # set bit duration set_camsync_period 7500 # 75 usec set_camsync_delay 0 0 set_camsync_delay 1 100 set_camsync_delay 2 200 set_camsync_delay 3 300 #set_camsync_inout <is_out> <bit_number> <active_positive> set_camsync_inout 1 8 0 #set_camsync_inout 0 7 0 reset_camsync_inout 0 # start with internal trigger #set_camsync_mode <en=None> <en_snd=None> <en_ts_external=None> <triggered_mode=None> <master_chn=None> <chn_en=None> set_camsync_mode 1 1 1 1 0 0xf set_sensor_histogram_window 0 0 4 4 25 21 set_sensor_histogram_window 1 0 4 4 41 21 set_sensor_histogram_window 2 0 4 4 25 41 set_sensor_histogram_window 3 0 4 4 41 41 r read_control_register 0x430 read_control_register 0x431 write_cmd_frame_sequencer 0 1 2 0x600 0x48 # compressor q page = 1 // too late for frame 2 set_qtables 0 0 80 set_qtables 0 1 70 #irq coming, image not changing - yes write_cmd_frame_sequencer 0 1 1 0x686 0x280005 #save 4 more lines than sensor has write_cmd_frame_sequencer 0 1 1 0x680 0x5507 #enable abort #write_cmd_frame_sequencer 0 1 1 0x6c6 0x300006 #save 4 more lines that compressor has write_cmd_frame_sequencer 0 1 2 0x600 0x5 #stop compressor ` write_cmd_frame_sequencer 0 1 2 0x680 0x5405 # stop sensor memory (+0) // sensor memory should be controlled first, (9 commands write_cmd_frame_sequencer 0 1 2 0x6c0 0x5c49 # stop compressor memory (+0) write_cmd_frame_sequencer 0 1 3 0x686 0x240005 # correct lines write_cmd_frame_sequencer 0 1 3 0x680 0x5507 # run sensor memory (+1) Can not be 0 write_cmd_frame_sequencer 0 1 4 0x686 0x280005 #save 4 more lines than sensor has write_cmd_frame_sequencer 0 1 4 0x6c6 0x300006 #save more lines than compressor needs (sensor provides) write_cmd_frame_sequencer 0 1 4 0x6c0 0x7d4b # run compressor memory (+2) write_cmd_frame_sequencer 0 1 4 0x600 0x7 # run compressor (+0) write_cmd_frame_sequencer 0 1 1 0x600 0x48 # compressor q page = 1 write_cmd_frame_sequencer 0 1 4 0x600 0x40 # compressor q page = 0 read_control_register 0x431 read_control_register 0x430 #testing histograms write_control_register 0x409 0xc0 #sequencer test #ctrl_cmd_frame_sequencer <num_sensor> <reset=False> <start=False> <stop=False> ctrl_cmd_frame_sequencer 0 0 1 0 write_cmd_frame_sequencer 0 1 1 0x700 0x6 write_cmd_frame_sequencer 0 1 1 0x700 0x9 write_cmd_frame_sequencer 0 1 1 0x700 0xa0 write_cmd_frame_sequencer 0 1 1 0x700 0x50 #write_cmd_frame_sequencer 0 0 3 0x700 0xa000 write_cmd_frame_sequencer 0 1 0 0x700 0x90 #write_cmd_frame_sequencer 0 0 2 0x700 0xe00 write_cmd_frame_sequencer 0 0 3 0x700 0xa write_cmd_frame_sequencer 0 0 2 0x700 0x6 write_cmd_frame_sequencer 0 0 2 0x700 0x9 write_cmd_frame_sequencer 0 0 2 0x700 0x60 write_cmd_frame_sequencer 0 0 2 0x700 0x90 #write_cmd_frame_sequencer 0 0 2 0x700 0x600 #write_cmd_frame_sequencer 0 0 2 0x700 0x900 r read_status 0x21 r #set_sensor_io_dly_hispi all 0x48 0x68 0x68 0x68 0x68 #set_sensor_io_ctl all None None None None None 1 None # load all delays? compressor_control all None None None None None 2 compressor_interrupt_control all clr compressor_interrupt_control all en compressor_control all 3 r read_status 0x21 r jpeg_sim_multi 4 r read_status 0x21 r jpeg_sim_multi 3 r read_status 0x21 r write_cmd_frame_sequencer 0 1 1 0x686 0x240005 # correct lines write_cmd_frame_sequencer 0 1 1 0x6c6 0x200006 # correct lines write_cmd_frame_sequencer 0 1 1 0x680 0x5507 # run sensor memory, update frame#, reset buffers write_cmd_frame_sequencer 0 1 1 0x6c0 0x7d4b # run compressor memory write_cmd_frame_sequencer 0 1 1 0x600 0x7 # run compressor jpeg_sim_multi 4 #switch to external (wired) trigger set_camsync_inout 0 7 0 jpeg_sim_multi 4 #set_camsync_mode <en=None> <en_snd=None> <en_ts_external=None> <triggered_mode=None> <master_chn=None> <chn_en=None> set_camsync_mode None None None 0 jpeg_sim_multi 4 jpeg_sim_multi 4 ################## Serial #################### Loading Loading
cocotb/x393_cocotb_02.sav +10 −10 Original line number Diff line number Diff line [*] [*] GTKWave Analyzer v3.3.66 (w)1999-2015 BSI [*] Wed Sep 14 19:28:33 2016 [*] Tue Sep 20 04:34:10 2016 [*] [dumpfile] "/home/eyesis/git/x393-neon/simulation/x393_dut-20160914091637595.fst" [dumpfile_mtime] "Wed Sep 14 17:55:04 2016" [dumpfile_size] 377060747 [dumpfile] "/home/eyesis/git/x393-neon/simulation/x393_dut-20160919202856605.fst" [dumpfile_mtime] "Tue Sep 20 04:31:39 2016" [dumpfile_size] 93558968 [savefile] "/home/eyesis/git/x393-neon/cocotb/x393_cocotb_02.sav" [timestart] 43511100 [size] 1814 1171 [pos] 1936 23 *-14.509074 43557388 77654500 77716800 80133500 86987400 89448000 91674200 91801500 95195280 96480090 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 [timestart] 42705000 [size] 1201 767 [pos] 2223 211 *-19.051508 43557388 77654500 77716800 80133500 86987400 89448000 91674200 91801500 95195280 96480090 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 [treeopen] x393_dut. [treeopen] x393_dut.ddr3_i.ddr3_i. [treeopen] x393_dut.simul_axi_master_wdata_i. Loading Loading @@ -73,10 +73,10 @@ [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.genblk1. [treeopen] x393_dut.x393_i.timing393_i. [sst_width] 435 [sst_width] 212 [signals_width] 312 [sst_expanded] 1 [sst_vpaned_height] 642 [sst_vpaned_height] 380 @820 x393_dut.TEST_TITLE[639:0] @800200 Loading
cocotb/x393_dut.v +3 −3 Original line number Diff line number Diff line Loading @@ -677,10 +677,10 @@ module x393_dut#( wire [ 9:0] gpio_pins; // inout[9:0] ([6]-synco0,[7]-syncio0,[8]-synco1,[9]-syncio1) wire [ 9:0] gpio_pins; // inout[9:0] ([8]-synco0,[7]-syncio0,[6]-synco1,[9]-syncio1) // Connect trigger outs to triggets in (#10 needed for Icarus) assign #10 gpio_pins[7] = gpio_pins[6]; assign #10 gpio_pins[9] = gpio_pins[8]; assign #10 gpio_pins[7] = gpio_pins[8]; assign #10 gpio_pins[9] = gpio_pins[6]; // DDR3 signals wire SDRST; Loading
fpga_version.vh +4 −2 Original line number Diff line number Diff line Loading @@ -35,7 +35,9 @@ * contains all the components and scripts required to completely simulate it * with at least one of the Free Software programs. */ parameter FPGA_VERSION = 32'h039300b7; //parallel, matching histograms Bayer to gamma bayer -0.011/9, 79.92% parameter FPGA_VERSION = 32'h039300b9; //parallel, correcting RTC (it was 25/24 faster) -0.038/29, 79.64% // parameter FPGA_VERSION = 32'h039300b8; //parallel, working on camsync -0.330/99, 80.52% -> -0.143 /40, 79.88% // parameter FPGA_VERSION = 32'h039300b7; //parallel, matching histograms Bayer to gamma bayer -0.011/9, 79.92% // parameter FPGA_VERSION = 32'h039300b6; //parallel, working on histograms odd colors bug -0.207 /58, 79.68% // parameter FPGA_VERSION = 32'h039300b5; //parallel, moving histograms earlier -0.123/30, 79.47 // parameter FPGA_VERSION = 32'h039300b4; //-a parallel, and more - -0.180/33, 80.68 % Loading
py393/x393_camsync.py +1 −1 Original line number Diff line number Diff line Loading @@ -142,7 +142,7 @@ class X393Camsync(object): @param sub_chn - sensor channel (0..3) @param delay - delay value in 10 ns steps - max 42.95 sec """ self.x393_axi_tasks.write_control_register(vrlg.CAMSYNC_ADDR + vrlg.CAMSYNC_TRIG_PERIOD, delay) self.x393_axi_tasks.write_control_register(vrlg.CAMSYNC_ADDR + vrlg.CAMSYNC_TRIG_DELAY0+sub_chn, delay) def camsync_setup(self, sensor_mask = None, Loading
py393/x393_jpeg.py +126 −1 Original line number Diff line number Diff line Loading @@ -819,7 +819,9 @@ class X393Jpeg(object): if useNextReady: channel = self.x393Cmprs.compressor_interrupt_acknowledge(enabledOnly=True) if channel is None: raise Exception ("No channels have new compressed images ready") # raise Exception ("No channels have new compressed images ready") print ("*********** No channels have new compressed images ready ************") return else: schn="-"+str(channel) if '@' in file_path: Loading Loading @@ -1891,6 +1893,129 @@ jpeg_sim_multi 4 jpeg_sim_multi 4 jpeg_sim_multi 4 ################## Simulate Parallel 9 - external trigger #################### ./py393/test_mcntrl.py @py393/cocoargs --simulated=localhost:7777 measure_all "*DI" setup_all_sensors True None 0xf set_sensor_io_ctl all None None 1 # Set ARO low - check if it is still needed? #just testing set_gpio_ports 1 1 # enable software gpio pins and porta (camsync) set_gpio_pins 0 1 # pin 0 low, pin 1 - high set_camsync_period 31 # set bit duration set_camsync_period 7500 # 75 usec set_camsync_delay 0 0 set_camsync_delay 1 100 set_camsync_delay 2 200 set_camsync_delay 3 300 #set_camsync_inout <is_out> <bit_number> <active_positive> set_camsync_inout 1 8 0 #set_camsync_inout 0 7 0 reset_camsync_inout 0 # start with internal trigger #set_camsync_mode <en=None> <en_snd=None> <en_ts_external=None> <triggered_mode=None> <master_chn=None> <chn_en=None> set_camsync_mode 1 1 1 1 0 0xf set_sensor_histogram_window 0 0 4 4 25 21 set_sensor_histogram_window 1 0 4 4 41 21 set_sensor_histogram_window 2 0 4 4 25 41 set_sensor_histogram_window 3 0 4 4 41 41 r read_control_register 0x430 read_control_register 0x431 write_cmd_frame_sequencer 0 1 2 0x600 0x48 # compressor q page = 1 // too late for frame 2 set_qtables 0 0 80 set_qtables 0 1 70 #irq coming, image not changing - yes write_cmd_frame_sequencer 0 1 1 0x686 0x280005 #save 4 more lines than sensor has write_cmd_frame_sequencer 0 1 1 0x680 0x5507 #enable abort #write_cmd_frame_sequencer 0 1 1 0x6c6 0x300006 #save 4 more lines that compressor has write_cmd_frame_sequencer 0 1 2 0x600 0x5 #stop compressor ` write_cmd_frame_sequencer 0 1 2 0x680 0x5405 # stop sensor memory (+0) // sensor memory should be controlled first, (9 commands write_cmd_frame_sequencer 0 1 2 0x6c0 0x5c49 # stop compressor memory (+0) write_cmd_frame_sequencer 0 1 3 0x686 0x240005 # correct lines write_cmd_frame_sequencer 0 1 3 0x680 0x5507 # run sensor memory (+1) Can not be 0 write_cmd_frame_sequencer 0 1 4 0x686 0x280005 #save 4 more lines than sensor has write_cmd_frame_sequencer 0 1 4 0x6c6 0x300006 #save more lines than compressor needs (sensor provides) write_cmd_frame_sequencer 0 1 4 0x6c0 0x7d4b # run compressor memory (+2) write_cmd_frame_sequencer 0 1 4 0x600 0x7 # run compressor (+0) write_cmd_frame_sequencer 0 1 1 0x600 0x48 # compressor q page = 1 write_cmd_frame_sequencer 0 1 4 0x600 0x40 # compressor q page = 0 read_control_register 0x431 read_control_register 0x430 #testing histograms write_control_register 0x409 0xc0 #sequencer test #ctrl_cmd_frame_sequencer <num_sensor> <reset=False> <start=False> <stop=False> ctrl_cmd_frame_sequencer 0 0 1 0 write_cmd_frame_sequencer 0 1 1 0x700 0x6 write_cmd_frame_sequencer 0 1 1 0x700 0x9 write_cmd_frame_sequencer 0 1 1 0x700 0xa0 write_cmd_frame_sequencer 0 1 1 0x700 0x50 #write_cmd_frame_sequencer 0 0 3 0x700 0xa000 write_cmd_frame_sequencer 0 1 0 0x700 0x90 #write_cmd_frame_sequencer 0 0 2 0x700 0xe00 write_cmd_frame_sequencer 0 0 3 0x700 0xa write_cmd_frame_sequencer 0 0 2 0x700 0x6 write_cmd_frame_sequencer 0 0 2 0x700 0x9 write_cmd_frame_sequencer 0 0 2 0x700 0x60 write_cmd_frame_sequencer 0 0 2 0x700 0x90 #write_cmd_frame_sequencer 0 0 2 0x700 0x600 #write_cmd_frame_sequencer 0 0 2 0x700 0x900 r read_status 0x21 r #set_sensor_io_dly_hispi all 0x48 0x68 0x68 0x68 0x68 #set_sensor_io_ctl all None None None None None 1 None # load all delays? compressor_control all None None None None None 2 compressor_interrupt_control all clr compressor_interrupt_control all en compressor_control all 3 r read_status 0x21 r jpeg_sim_multi 4 r read_status 0x21 r jpeg_sim_multi 3 r read_status 0x21 r write_cmd_frame_sequencer 0 1 1 0x686 0x240005 # correct lines write_cmd_frame_sequencer 0 1 1 0x6c6 0x200006 # correct lines write_cmd_frame_sequencer 0 1 1 0x680 0x5507 # run sensor memory, update frame#, reset buffers write_cmd_frame_sequencer 0 1 1 0x6c0 0x7d4b # run compressor memory write_cmd_frame_sequencer 0 1 1 0x600 0x7 # run compressor jpeg_sim_multi 4 #switch to external (wired) trigger set_camsync_inout 0 7 0 jpeg_sim_multi 4 #set_camsync_mode <en=None> <en_snd=None> <en_ts_external=None> <triggered_mode=None> <master_chn=None> <chn_en=None> set_camsync_mode None None None 0 jpeg_sim_multi 4 jpeg_sim_multi 4 ################## Serial #################### Loading