Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
X
x393
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
x393
Commits
158be190
Commit
158be190
authored
Oct 23, 2016
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
working on event logger
parent
d925932c
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1239 additions
and
113 deletions
+1239
-113
com.elphel.vdt.cocotb.prefs
.settings/com.elphel.vdt.cocotb.prefs
+1
-1
x393_cocotb_03.sav
cocotb/x393_cocotb_03.sav
+791
-33
x393_dut.v
cocotb/x393_dut.v
+214
-2
event_logger.v
logger/event_logger.v
+46
-24
imu_exttime393.v
logger/imu_exttime393.v
+34
-16
imu_message393.v
logger/imu_message393.v
+2
-2
imu_spi393.v
logger/imu_spi393.v
+24
-25
logger_arbiter393.v
logger/logger_arbiter393.v
+5
-5
nmea_decoder393.v
logger/nmea_decoder393.v
+4
-4
test_mcntrl.py
py393/test_mcntrl.py
+4
-0
x393_jpeg.py
py393/x393_jpeg.py
+112
-0
x393.v
x393.v
+2
-1
No files found.
.settings/com.elphel.vdt.cocotb.prefs
View file @
158be190
...
...
@@ -4,7 +4,7 @@ cocotb_@_CocotbExtraFiles=glbl.v<-@\#\#@->
cocotb_@_CocotbIncludeDir=${verilog_project_loc}/includes<-@\#\#@->${verilog_project_loc}/ddr3<-@\#\#@->${verilog_project_loc}/x393_sata<-@\#\#@->${verilog_project_loc}/x393_sata/host<-@\#\#@->
cocotb_@_CocotbMODULE=x393_cocotb_server<-@\#\#@->
cocotb_@_CocotbTESTCASE=run_test<-@\#\#@->
cocotb_@_GTKWaveSavFile=x393_cocotb_0
2
.sav
cocotb_@_GTKWaveSavFile=x393_cocotb_0
3
.sav
cocotb_@_GrepFindErr=error|ERROR
cocotb_@_GrepFindErrWarn=error|warning|ERROR|WARNING
cocotb_@_PatternInfo=.*[\\s.](\\w*\\.py)\:([0-9]+)\\s*\\S*\\s*\\S*\\s*(.*)
...
...
cocotb/x393_cocotb_03.sav
View file @
158be190
[*]
[*] GTKWave Analyzer v3.3.66 (w)1999-2015 BSI
[*]
Thu Sep 29 06:48:24
2016
[*]
Sun Oct 23 15:34:21
2016
[*]
[dumpfile] "/home/eyesis/git/x393-neon/simulation/x393_dut-2016
0928204209937
.fst"
[dumpfile_mtime] "
Thu Sep 29 04:17:10
2016"
[dumpfile_size] 4
06908202
[dumpfile] "/home/eyesis/git/x393-neon/simulation/x393_dut-2016
1023002450549
.fst"
[dumpfile_mtime] "
Sun Oct 23 07:43:15
2016"
[dumpfile_size] 4
21314821
[savefile] "/home/eyesis/git/x393-neon/cocotb/x393_cocotb_03.sav"
[timestart]
28245200
0
[timestart] 0
[size] 1814 1171
[pos] 1920 0
*-
18.670311 283500000 271290000 271540000 118460000
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
*-
26.672018 548510000 53094051 136169617 216213845
-1 -1 -1 -1 -1 -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_sensor12bits_2_i.
[treeopen] x393_dut.simul_sensor12bits_3_i.
[treeopen] x393_dut.simul_sensor12bits_i.
[treeopen] x393_dut.x393_i.
[treeopen] x393_dut.x393_i.compressor393_i.
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].
[treeopen] x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_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.sensors393_i.
[treeopen] x393_dut.x393_i.event_logger_i.
[treeopen] x393_dut.x393_i.event_logger_i.i_imu_exttime.
[treeopen] x393_dut.x393_i.event_logger_i.i_imu_exttime.timestamp_fifo_chn0_i.
[treeopen] x393_dut.x393_i.event_logger_i.i_imu_spi.
[treeopen] x393_dut.x393_i.event_logger_i.i_logger_arbiter.
[treeopen] x393_dut.x393_i.event_logger_i.i_nmea_decoder.
[treeopen] x393_dut.x393_i.event_logger_i.i_rs232_rcv.
[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.sensor_i2c_io_i.
...
...
@@ -34,15 +39,14 @@
[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.sens_parallel12_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.
[treeopen] x393_dut.x393_i.timing393_i.camsync393_i.
[sst_width]
461
[signals_width] 2
9
9
[sst_width]
380
[signals_width] 2
5
9
[sst_expanded] 1
[sst_vpaned_height] 487
@820
x393_dut.TEST_TITLE[639:0]
@
8
00200
@
c
00200
-SENSOR0
@28
x393_dut.simul_sensor12bits_i.MRST
...
...
@@ -70,7 +74,7 @@ x393_dut.simul_sensor12bits_i.state[3:0]
x393_dut.simul_sensor12bits_i.stated[3:0]
@8022
x393_dut.simul_sensor12bits_i.cntr[15:0]
@1
000
200
@1
401
200
-SENSOR0
@c00200
-SENSOR1
...
...
@@ -85,7 +89,7 @@ x393_dut.simul_sensor12bits_2_i.HACT
x393_dut.simul_sensor12bits_2_i.stopped
@1401200
-SENSOR1
@
8
00200
@
c
00200
-SENSOR2
@28
x393_dut.simul_sensor12bits_3_i.arst1
...
...
@@ -111,7 +115,7 @@ x393_dut.simul_sensor12bits_3_i.state[3:0]
x393_dut.simul_sensor12bits_3_i.stated[3:0]
@8022
x393_dut.simul_sensor12bits_3_i.cntr[15:0]
@1
000
200
@1
401
200
-SENSOR2
@c00200
-SENSOR3
...
...
@@ -126,7 +130,7 @@ x393_dut.simul_sensor12bits_4_i.HACT
x393_dut.simul_sensor12bits_4_i.stopped
@1401200
-SENSOR3
@
8
00200
@
c
00200
-ARO
@c00022
x393_dut.x393_i.sensors393_i.sns_ctl[3:0]
...
...
@@ -137,7 +141,7 @@ x393_dut.x393_i.sensors393_i.sns_ctl[3:0]
(3)x393_dut.x393_i.sensors393_i.sns_ctl[3:0]
@1401200
-group_end
@
8
00200
@
c
00200
-chn0
@28
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sens_parallel12_i.aro
...
...
@@ -153,9 +157,9 @@ x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sens_paral
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sens_parallel12_i.pclk
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sens_parallel12_i.ibpf
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sens_parallel12_i.bpf
@1
000
200
@1
401
200
-chn0
@
8
00200
@
c
00200
-chn1
@28
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_channel_i.sens_parallel12_i.aro
...
...
@@ -166,9 +170,9 @@ x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_channel_i.sens_sync_
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_channel_i.sens_sync_i.sof_in
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_channel_i.vact_to_fifo
x393_dut.x393_i.sensors393_i.sensor_channel_block[1].sensor_channel_i.sens_parallel12_i.vact
@1
000
200
@1
401
200
-chn1
@
8
00200
@
c
00200
-chn2
@28
x393_dut.x393_i.sensors393_i.sensor_channel_block[2].sensor_channel_i.sens_parallel12_i.aro
...
...
@@ -186,9 +190,9 @@ x393_dut.x393_i.sensors393_i.sensor_channel_block[2].sensor_channel_i.sens_paral
x393_dut.x393_i.sensors393_i.sensor_channel_block[2].sensor_channel_i.sens_parallel12_i.pclk
x393_dut.x393_i.sensors393_i.sensor_channel_block[2].sensor_channel_i.sens_parallel12_i.ibpf
x393_dut.x393_i.sensors393_i.sensor_channel_block[2].sensor_channel_i.sens_parallel12_i.bpf
@1
000
200
@1
401
200
-chn2
@
8
00200
@
c
00200
-chn3
@28
x393_dut.x393_i.sensors393_i.sensor_channel_block[3].sensor_channel_i.sens_parallel12_i.aro
...
...
@@ -200,7 +204,7 @@ x393_dut.x393_i.sensors393_i.sensor_channel_block[3].sensor_channel_i.sens_sync_
x393_dut.x393_i.sensors393_i.sensor_channel_block[3].sensor_channel_i.sens_sync_i.eof_in
x393_dut.x393_i.sensors393_i.sensor_channel_block[3].sensor_channel_i.vact_to_fifo
x393_dut.x393_i.sensors393_i.sensor_channel_block[3].sensor_channel_i.sens_parallel12_i.vact
@1
000
200
@1
401
200
-chn3
@800200
-sens_sync
...
...
@@ -208,8 +212,9 @@ x393_dut.x393_i.sensors393_i.sensor_channel_block[3].sensor_channel_i.sens_paral
-
@1000200
-sens_sync
@1401200
-ARO
@
8
00200
@
c
00200
-clocks
@28
x393_dut.x393_i.pclk
...
...
@@ -245,8 +250,9 @@ x393_dut.x393_i.timing393_i.rtc393_i.refclk2x_mclk
-
@1000200
-rtc
@1401200
-clocks
@
8
00200
@
c
00200
-synchronization
@28
x393_dut.x393_i.timing393_i.camsync393_i.cmd_we
...
...
@@ -704,7 +710,6 @@ x393_dut.x393_i.timing393_i.camsync393_i.pre_rcv_error
x393_dut.x393_i.timing393_i.camsync393_i.pclk
@22
x393_dut.x393_i.timing393_i.camsync393_i.bit_length_plus1[7:0]
@23
x393_dut.x393_i.timing393_i.camsync393_i.bit_snd_counter[5:0]
@200
-ts_compressor
...
...
@@ -718,9 +723,9 @@ x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.ts_pre_stb
x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.ts_rstb
@22
x393_dut.x393_i.compressor393_i.cmprs_channel_block[0].jp_channel_i.huffman_stuffer_meta_i.bit_stuffer_metadata_i.ts_dout[7:0]
@1
000
200
@1
401
200
-synchronization
@
8
00200
@
c
00200
-interrupts
@800022
x393_dut.x393_i.cmprs_irq[3:0]
...
...
@@ -743,9 +748,9 @@ x393_dut.x393_i.sata_irq
-other_irqs
@200
-
@1
000
200
@1
401
200
-interrupts
@
8
00200
@
c
00200
- cmd
@22
x393_dut.x393_i.cmd_root_ad[7:0]
...
...
@@ -763,7 +768,7 @@ x393_dut.x393_i.axiwr_waddr[13:0]
x393_dut.x393_i.axiwr_wen
@22
x393_dut.x393_i.axiwr_wdata[31:0]
@1
000
200
@1
401
200
- cmd
@800200
-i2c
...
...
@@ -771,9 +776,762 @@ x393_dut.x393_i.axiwr_wdata[31:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sensor_i2c_io_i.sensor_i2c_i.rpointer[5:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sensor_i2c_io_i.sensor_i2c_i.wpage0[3:0]
x393_dut.x393_i.sensors393_i.sensor_channel_block[0].sensor_channel_i.sensor_i2c_io_i.sensor_i2c_i.page_r[3:0]
@1000200
-i2c
@c00200
-gpio
@800022
x393_dut.x393_i.gpio393_i.io_pins[9:0]
@28
(0)x393_dut.x393_i.gpio393_i.io_pins[9:0]
(1)x393_dut.x393_i.gpio393_i.io_pins[9:0]
(2)x393_dut.x393_i.gpio393_i.io_pins[9:0]
(3)x393_dut.x393_i.gpio393_i.io_pins[9:0]
(4)x393_dut.x393_i.gpio393_i.io_pins[9:0]
(5)x393_dut.x393_i.gpio393_i.io_pins[9:0]
[color] 2
(6)x393_dut.x393_i.gpio393_i.io_pins[9:0]
(7)x393_dut.x393_i.gpio393_i.io_pins[9:0]
(8)x393_dut.x393_i.gpio393_i.io_pins[9:0]
(9)x393_dut.x393_i.gpio393_i.io_pins[9:0]
@1001200
-group_end
@800022
x393_dut.x393_i.gpio393_i.ext_pins[9:0]
@28
(0)x393_dut.x393_i.gpio393_i.ext_pins[9:0]
(1)x393_dut.x393_i.gpio393_i.ext_pins[9:0]
(2)x393_dut.x393_i.gpio393_i.ext_pins[9:0]
(3)x393_dut.x393_i.gpio393_i.ext_pins[9:0]
(4)x393_dut.x393_i.gpio393_i.ext_pins[9:0]
(5)x393_dut.x393_i.gpio393_i.ext_pins[9:0]
(6)x393_dut.x393_i.gpio393_i.ext_pins[9:0]
(7)x393_dut.x393_i.gpio393_i.ext_pins[9:0]
(8)x393_dut.x393_i.gpio393_i.ext_pins[9:0]
(9)x393_dut.x393_i.gpio393_i.ext_pins[9:0]
@1001200
-group_end
@1401200
-gpio
@800200
-event_logger
@200
-x393
@800022
x393_dut.x393_i.sof_out_mclk[3:0]
@28
(0)x393_dut.x393_i.sof_out_mclk[3:0]
(1)x393_dut.x393_i.sof_out_mclk[3:0]
(2)x393_dut.x393_i.sof_out_mclk[3:0]
(3)x393_dut.x393_i.sof_out_mclk[3:0]
@1001200
-group_end
@800022
x393_dut.x393_i.ts_pre_stb[3:0]
@28
(0)x393_dut.x393_i.ts_pre_stb[3:0]
(1)x393_dut.x393_i.ts_pre_stb[3:0]
(2)x393_dut.x393_i.ts_pre_stb[3:0]
(3)x393_dut.x393_i.ts_pre_stb[3:0]
@1001200
-group_end
@200
-
@c00022
x393_dut.x393_i.event_logger_i.ext_di[9:0]
@28
(0)x393_dut.x393_i.event_logger_i.ext_di[9:0]
(1)x393_dut.x393_i.event_logger_i.ext_di[9:0]
(2)x393_dut.x393_i.event_logger_i.ext_di[9:0]
(3)x393_dut.x393_i.event_logger_i.ext_di[9:0]
(4)x393_dut.x393_i.event_logger_i.ext_di[9:0]
(5)x393_dut.x393_i.event_logger_i.ext_di[9:0]
(6)x393_dut.x393_i.event_logger_i.ext_di[9:0]
(7)x393_dut.x393_i.event_logger_i.ext_di[9:0]
(8)x393_dut.x393_i.event_logger_i.ext_di[9:0]
(9)x393_dut.x393_i.event_logger_i.ext_di[9:0]
@1401200
-group_end
@c00022
x393_dut.x393_i.event_logger_i.ext_do[9:0]
@28
(0)x393_dut.x393_i.event_logger_i.ext_do[9:0]
(1)x393_dut.x393_i.event_logger_i.ext_do[9:0]
(2)x393_dut.x393_i.event_logger_i.ext_do[9:0]
(3)x393_dut.x393_i.event_logger_i.ext_do[9:0]
(4)x393_dut.x393_i.event_logger_i.ext_do[9:0]
(5)x393_dut.x393_i.event_logger_i.ext_do[9:0]
(6)x393_dut.x393_i.event_logger_i.ext_do[9:0]
(7)x393_dut.x393_i.event_logger_i.ext_do[9:0]
(8)x393_dut.x393_i.event_logger_i.ext_do[9:0]
(9)x393_dut.x393_i.event_logger_i.ext_do[9:0]
@1401200
-group_end
@c00022
x393_dut.x393_i.event_logger_i.ext_en[9:0]
@28
(0)x393_dut.x393_i.event_logger_i.ext_en[9:0]
(1)x393_dut.x393_i.event_logger_i.ext_en[9:0]
(2)x393_dut.x393_i.event_logger_i.ext_en[9:0]
(3)x393_dut.x393_i.event_logger_i.ext_en[9:0]
(4)x393_dut.x393_i.event_logger_i.ext_en[9:0]
(5)x393_dut.x393_i.event_logger_i.ext_en[9:0]
(6)x393_dut.x393_i.event_logger_i.ext_en[9:0]
(7)x393_dut.x393_i.event_logger_i.ext_en[9:0]
(8)x393_dut.x393_i.event_logger_i.ext_en[9:0]
(9)x393_dut.x393_i.event_logger_i.ext_en[9:0]
x393_dut.x393_i.event_logger_i.config_rst
x393_dut.x393_i.event_logger_i.enable_gps
@22
x393_dut.x393_i.event_logger_i.bitHalfPeriod_mclk[15:0]
@28
x393_dut.x393_i.event_logger_i.we_bitHalfPeriod
x393_dut.x393_i.event_logger_i.mrst
x393_dut.x393_i.event_logger_i.mclk
x393_dut.x393_i.event_logger_i.cmd_we
x393_dut.x393_i.event_logger_i.we_period
@c00200
-imu_spi393
@28
x393_dut.x393_i.event_logger_i.i_imu_spi.config_single_wire
x393_dut.x393_i.event_logger_i.i_imu_spi.sngl_wire_r[1:0]
x393_dut.x393_i.event_logger_i.i_imu_spi.sngl_wire
x393_dut.x393_i.event_logger_i.i_imu_spi.pre_scl
@c00028
x393_dut.x393_i.event_logger_i.i_imu_spi.scl_r[1:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_spi.scl_r[1:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_spi.scl_r[1:0]
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_imu_spi.end_prepare
@c08022
x393_dut.x393_i.event_logger_i.i_imu_spi.seq_state[1:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_spi.seq_state[1:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_spi.seq_state[1:0]
@1401200
-group_end
@8022
x393_dut.x393_i.event_logger_i.i_imu_spi.seq_counter[9:0]
@28
x393_dut.x393_i.event_logger_i.i_imu_spi.imu_enabled_mclk
x393_dut.x393_i.event_logger_i.i_imu_spi.imu_start_mclk
x393_dut.x393_i.event_logger_i.i_imu_spi.imu_start
x393_dut.x393_i.event_logger_i.i_imu_spi.ts
@c00022
x393_dut.x393_i.event_logger_i.i_imu_spi.config_debug[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_spi.config_debug[3:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_spi.config_debug[3:0]
(2)x393_dut.x393_i.event_logger_i.i_imu_spi.config_debug[3:0]
(3)x393_dut.x393_i.event_logger_i.i_imu_spi.config_debug[3:0]
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_imu_spi.imu_when_ready_mclk
x393_dut.x393_i.event_logger_i.i_imu_spi.imu_when_ready[1:0]
x393_dut.x393_i.event_logger_i.i_imu_spi.imu_start_first
@22
x393_dut.x393_i.event_logger_i.i_imu_spi.we_timer[4:1]
@28
x393_dut.x393_i.event_logger_i.i_imu_spi.en
@c00028
x393_dut.x393_i.event_logger_i.i_imu_spi.imu_enabled[1:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_spi.imu_enabled[1:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_spi.imu_enabled[1:0]
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_imu_spi.imu_enabled_mclk
x393_dut.x393_i.event_logger_i.i_imu_spi.imu_run_mclk
@22
x393_dut.x393_i.event_logger_i.i_imu_spi.period[31:0]
@28
x393_dut.x393_i.event_logger_i.i_imu_spi.we_period
@800022
x393_dut.x393_i.event_logger_i.i_imu_spi.we_timer[4:1]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_spi.we_timer[4:1]
(1)x393_dut.x393_i.event_logger_i.i_imu_spi.we_timer[4:1]
(2)x393_dut.x393_i.event_logger_i.i_imu_spi.we_timer[4:1]
(3)x393_dut.x393_i.event_logger_i.i_imu_spi.we_timer[4:1]
@c00022
x393_dut.x393_i.event_logger_i.i_imu_spi.clk_en[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_spi.clk_en[3:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_spi.clk_en[3:0]
(2)x393_dut.x393_i.event_logger_i.i_imu_spi.clk_en[3:0]
(3)x393_dut.x393_i.event_logger_i.i_imu_spi.clk_en[3:0]
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_imu_spi.clk_div[1:0]
x393_dut.x393_i.event_logger_i.i_imu_spi.en
x393_dut.x393_i.event_logger_i.i_imu_spi.mclk
@1001200
-group_end
@200
-
@1401200
-imu_spi393
-group_end
@c00200
-rs232_rcvr
@28
x393_dut.x393_i.axi_aclk
@c00200
-task_send_serial_bit
@28
x393_dut.RS232_SENDING_BYTE
x393_dut.RS232_SENDING_PAUSE
@22
[color] 6
x393_dut.send_serial_bit.d[7:0]
[color] 6
x393_dut.send_serial_bit.data_byte[7:0]
@c00022
x393_dut.send_serial_line.char
@28
(0)x393_dut.send_serial_line.char
(1)x393_dut.send_serial_line.char
(2)x393_dut.send_serial_line.char
(3)x393_dut.send_serial_line.char
(4)x393_dut.send_serial_line.char
(5)x393_dut.send_serial_line.char
(6)x393_dut.send_serial_line.char
(7)x393_dut.send_serial_line.char
(8)x393_dut.send_serial_line.char
(9)x393_dut.send_serial_line.char
(10)x393_dut.send_serial_line.char
(11)x393_dut.send_serial_line.char
(12)x393_dut.send_serial_line.char
(13)x393_dut.send_serial_line.char
(14)x393_dut.send_serial_line.char
(15)x393_dut.send_serial_line.char
(16)x393_dut.send_serial_line.char
(17)x393_dut.send_serial_line.char
(18)x393_dut.send_serial_line.char
(19)x393_dut.send_serial_line.char
(20)x393_dut.send_serial_line.char
(21)x393_dut.send_serial_line.char
(22)x393_dut.send_serial_line.char
(23)x393_dut.send_serial_line.char
(24)x393_dut.send_serial_line.char
(25)x393_dut.send_serial_line.char
(26)x393_dut.send_serial_line.char
(27)x393_dut.send_serial_line.char
(28)x393_dut.send_serial_line.char
(29)x393_dut.send_serial_line.char
(30)x393_dut.send_serial_line.char
(31)x393_dut.send_serial_line.char
@1401200
-group_end
-task_send_serial_bit
@28
x393_dut.x393_i.event_logger_i.i_rs232_rcv.xclk
@200
-
@28
x393_dut.x393_i.event_logger_i.i_rs232_rcv.ser_rst
x393_dut.x393_i.event_logger_i.i_rs232_rcv.ser_di
x393_dut.x393_i.event_logger_i.i_rs232_rcv.ser_filt_di
x393_dut.x393_i.event_logger_i.i_rs232_rcv.ser_do
x393_dut.x393_i.event_logger_i.i_rs232_rcv.ser_do_stb
x393_dut.x393_i.event_logger_i.i_rs232_rcv.wait_just_pause
x393_dut.x393_i.event_logger_i.i_rs232_rcv.wait_pause
x393_dut.x393_i.event_logger_i.i_rs232_rcv.wait_start
x393_dut.x393_i.event_logger_i.i_rs232_rcv.reset_wait_pause
x393_dut.x393_i.event_logger_i.i_rs232_rcv.ts_stb
x393_dut.x393_i.event_logger_i.i_rs232_rcv.start
@c00022
x393_dut.x393_i.event_logger_i.i_rs232_rcv.debug[4:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_rs232_rcv.debug[4:0]
(1)x393_dut.x393_i.event_logger_i.i_rs232_rcv.debug[4:0]
(2)x393_dut.x393_i.event_logger_i.i_rs232_rcv.debug[4:0]
(3)x393_dut.x393_i.event_logger_i.i_rs232_rcv.debug[4:0]
(4)x393_dut.x393_i.event_logger_i.i_rs232_rcv.debug[4:0]
@1401200
-group_end
@22
x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr[15:0]
@c00022
x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(1)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(2)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(3)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(4)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(5)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(6)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(7)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(8)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(9)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(10)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(11)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(12)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(13)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(14)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
(15)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_dur_cntr_r[15:0]
@1401200
-group_end
@c00022
x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_cntr[4:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_cntr[4:0]
(1)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_cntr[4:0]
(2)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_cntr[4:0]
(3)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_cntr[4:0]
(4)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_cntr[4:0]
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_rs232_rcv.last_half_bit
x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_half_end
@c08022
x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_cntr_r[4:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_cntr_r[4:0]
(1)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_cntr_r[4:0]
(2)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_cntr_r[4:0]
(3)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_cntr_r[4:0]
(4)x393_dut.x393_i.event_logger_i.i_rs232_rcv.bit_cntr_r[4:0]
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_rs232_rcv.reset_wait_pause
x393_dut.x393_i.event_logger_i.i_rs232_rcv.restart[1:0]
x393_dut.x393_i.event_logger_i.i_rs232_rcv.reset_bit_duration
@22
x393_dut.x393_i.event_logger_i.i_rs232_rcv.bitHalfPeriod[15:0]
@1401200
-rs232_rcvr
@c00200
-nmea_decoder
@28
x393_dut.x393_i.event_logger_i.i_nmea_decoder.start
x393_dut.x393_i.event_logger_i.i_nmea_decoder.start_char
x393_dut.x393_i.event_logger_i.i_nmea_decoder.start_format
x393_dut.x393_i.event_logger_i.i_nmea_decoder.restart
x393_dut.x393_i.event_logger_i.i_nmea_decoder.ser_rst
x393_dut.x393_i.event_logger_i.i_nmea_decoder.gp_exp_bit
x393_dut.x393_i.event_logger_i.i_nmea_decoder.ser_di
x393_dut.x393_i.event_logger_i.i_nmea_decoder.ser_stb
x393_dut.x393_i.event_logger_i.i_nmea_decoder.nmea_sent_start
x393_dut.x393_i.event_logger_i.i_nmea_decoder.rdy
x393_dut.x393_i.event_logger_i.i_nmea_decoder.rd_stb
@22
x393_dut.x393_i.event_logger_i.i_nmea_decoder.rdata[15:0]
@c00022
x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(1)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(2)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(3)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(4)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(5)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(6)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(7)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(8)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(9)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(10)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(11)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(12)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(13)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(14)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(15)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(16)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(17)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(18)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(19)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(20)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(21)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(22)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
(23)x393_dut.x393_i.event_logger_i.i_nmea_decoder.debug[23:0]
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_nmea_decoder.valid
x393_dut.x393_i.event_logger_i.i_nmea_decoder.vfy_dollar
x393_dut.x393_i.event_logger_i.i_nmea_decoder.vfy_gp
x393_dut.x393_i.event_logger_i.i_nmea_decoder.last_vfy_gp
x393_dut.x393_i.event_logger_i.i_nmea_decoder.last_vfy_sent
x393_dut.x393_i.event_logger_i.i_nmea_decoder.vfy_sel_sent
x393_dut.x393_i.event_logger_i.i_nmea_decoder.vfy_first_comma
@c00022
x393_dut.x393_i.event_logger_i.i_nmea_decoder.gpxxx_addr[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_nmea_decoder.gpxxx_addr[3:0]
(1)x393_dut.x393_i.event_logger_i.i_nmea_decoder.gpxxx_addr[3:0]
(2)x393_dut.x393_i.event_logger_i.i_nmea_decoder.gpxxx_addr[3:0]
(3)x393_dut.x393_i.event_logger_i.i_nmea_decoder.gpxxx_addr[3:0]
@1401200
-group_end
@c00022
x393_dut.x393_i.event_logger_i.i_nmea_decoder.gpxxx_w_one[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_nmea_decoder.gpxxx_w_one[3:0]
(1)x393_dut.x393_i.event_logger_i.i_nmea_decoder.gpxxx_w_one[3:0]
(2)x393_dut.x393_i.event_logger_i.i_nmea_decoder.gpxxx_w_one[3:0]
(3)x393_dut.x393_i.event_logger_i.i_nmea_decoder.gpxxx_w_one[3:0]
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_nmea_decoder.msb
@c00022
x393_dut.x393_i.event_logger_i.i_nmea_decoder.stb[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_nmea_decoder.stb[3:0]
(1)x393_dut.x393_i.event_logger_i.i_nmea_decoder.stb[3:0]
(2)x393_dut.x393_i.event_logger_i.i_nmea_decoder.stb[3:0]
(3)x393_dut.x393_i.event_logger_i.i_nmea_decoder.stb[3:0]
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_nmea_decoder.we
@22
x393_dut.x393_i.event_logger_i.i_nmea_decoder.wa[4:0]
x393_dut.x393_i.event_logger_i.i_nmea_decoder.wd[7:0]
@1401200
-nmea_decoder
@800200
-imu_exttime
@28
x393_dut.x393_i.event_logger_i.i_imu_exttime.mclk
x393_dut.x393_i.event_logger_i.i_imu_exttime.mrst
x393_dut.x393_i.event_logger_i.i_imu_exttime.xclk
x393_dut.x393_i.event_logger_i.i_imu_exttime.xrst
x393_dut.x393_i.event_logger_i.i_imu_exttime.ts
x393_dut.x393_i.event_logger_i.i_imu_exttime.rdy
@29
x393_dut.x393_i.event_logger_i.i_imu_exttime.rd_stb
@28
x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_full
@22
x393_dut.x393_i.event_logger_i.i_imu_exttime.copy_data[7:0]
x393_dut.x393_i.event_logger_i.i_imu_exttime.copy_data_r[7:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_exttime.copy_selected[1:0]
x393_dut.x393_i.event_logger_i.i_imu_exttime.sel_chn[1:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_exttime.copy_selected[1:0]
(2)x393_dut.x393_i.event_logger_i.i_imu_exttime.copy_cntr[2:0]
@c08022
x393_dut.x393_i.event_logger_i.i_imu_exttime.raddr[4:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_exttime.raddr[4:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_exttime.raddr[4:0]
(2)x393_dut.x393_i.event_logger_i.i_imu_exttime.raddr[4:0]
(3)x393_dut.x393_i.event_logger_i.i_imu_exttime.raddr[4:0]
(4)x393_dut.x393_i.event_logger_i.i_imu_exttime.raddr[4:0]
@1401200
-group_end
@c00022
x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(2)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(3)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(4)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(5)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(6)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(7)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(8)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(9)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(10)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(11)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(12)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(13)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(14)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
(15)x393_dut.x393_i.event_logger_i.i_imu_exttime.rdata[15:0]
@1401200
-group_end
@22
x393_dut.x393_i.event_logger_i.i_imu_exttime.en_chn_mclk[3:0]
@800022
x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_stb[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_stb[3:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_stb[3:0]
(2)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_stb[3:0]
(3)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_stb[3:0]
@1001200
-group_end
@c00022
x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_data_chn0[7:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_data_chn0[7:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_data_chn0[7:0]
(2)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_data_chn0[7:0]
(3)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_data_chn0[7:0]
(4)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_data_chn0[7:0]
(5)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_data_chn0[7:0]
(6)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_data_chn0[7:0]
(7)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_data_chn0[7:0]
@1401200
-group_end
@22
x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_data_chn1[7:0]
x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_data_chn2[7:0]
x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_data_chn3[7:0]
@c00022
x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_got[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_got[3:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_got[3:0]
(2)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_got[3:0]
(3)x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_got[3:0]
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_imu_exttime.i_ts.rst
x393_dut.x393_i.event_logger_i.i_imu_exttime.pre_copy_started
x393_dut.x393_i.event_logger_i.i_imu_exttime.pre_copy_w
x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_full
@800022
x393_dut.x393_i.event_logger_i.i_imu_exttime.in_full[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_exttime.in_full[3:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_exttime.in_full[3:0]
(2)x393_dut.x393_i.event_logger_i.i_imu_exttime.in_full[3:0]
(3)x393_dut.x393_i.event_logger_i.i_imu_exttime.in_full[3:0]
x393_dut.x393_i.event_logger_i.i_imu_exttime.rd_start
x393_dut.x393_i.event_logger_i.i_imu_exttime.en
x393_dut.x393_i.event_logger_i.i_imu_exttime.rd_start_mclk
@1001200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_imu_exttime.ts_full
@c00022
x393_dut.x393_i.event_logger_i.i_imu_exttime.chn_pri_w[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_exttime.chn_pri_w[3:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_exttime.chn_pri_w[3:0]
(2)x393_dut.x393_i.event_logger_i.i_imu_exttime.chn_pri_w[3:0]
(3)x393_dut.x393_i.event_logger_i.i_imu_exttime.chn_pri_w[3:0]
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_imu_exttime.chn_enc_w[1:0]
@800028
x393_dut.x393_i.event_logger_i.i_imu_exttime.copy_selected[1:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_exttime.copy_selected[1:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_exttime.copy_selected[1:0]
@1001200
-group_end
@c00022
x393_dut.x393_i.event_logger_i.i_imu_exttime.copy_cntr[2:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_exttime.copy_cntr[2:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_exttime.copy_cntr[2:0]
(2)x393_dut.x393_i.event_logger_i.i_imu_exttime.copy_cntr[2:0]
@1401200
-group_end
@c00022
x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(1)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(2)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(3)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(4)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(5)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(6)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(7)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(8)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(9)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(10)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(11)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(12)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(13)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(14)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(15)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(16)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(17)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(18)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(19)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(20)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(21)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(22)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(23)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(24)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(25)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(26)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(27)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(28)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(29)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(30)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
(31)x393_dut.x393_i.event_logger_i.i_imu_exttime.dout_chn[31:0]
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_imu_exttime.pre_copy_started
x393_dut.x393_i.event_logger_i.i_imu_exttime.sel_chn[1:0]
@200
-fifo0
@28
x393_dut.x393_i.event_logger_i.i_imu_exttime.timestamp_fifo_chn0_i.rcv
@22
x393_dut.x393_i.event_logger_i.i_imu_exttime.timestamp_fifo_chn0_i.wpntr[3:0]
x393_dut.x393_i.event_logger_i.i_imu_exttime.timestamp_fifo_chn0_i.din[7:0]
@28
x393_dut.x393_i.event_logger_i.i_imu_exttime.timestamp_fifo_chn0_i.advance
x393_dut.x393_i.event_logger_i.i_imu_exttime.timestamp_fifo_chn0_i.advance_r[1:0]
@22
x393_dut.x393_i.event_logger_i.i_imu_exttime.timestamp_fifo_chn0_i.rpntr[3:0]
x393_dut.x393_i.event_logger_i.i_imu_exttime.timestamp_fifo_chn0_i.dout[7:0]
@200
-
@1000200
-i2c
-imu_exttime
@800200
-logger_arbiter
@28
x393_dut.x393_i.event_logger_i.i_logger_arbiter.rst
x393_dut.x393_i.event_logger_i.i_logger_arbiter.xclk
@c00022
x393_dut.x393_i.event_logger_i.i_logger_arbiter.rdy[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_logger_arbiter.rdy[3:0]
(1)x393_dut.x393_i.event_logger_i.i_logger_arbiter.rdy[3:0]
(2)x393_dut.x393_i.event_logger_i.i_logger_arbiter.rdy[3:0]
(3)x393_dut.x393_i.event_logger_i.i_logger_arbiter.rdy[3:0]
@1401200
-group_end
@c00022
x393_dut.x393_i.event_logger_i.i_logger_arbiter.ts_rq_in[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_logger_arbiter.ts_rq_in[3:0]
(1)x393_dut.x393_i.event_logger_i.i_logger_arbiter.ts_rq_in[3:0]
(2)x393_dut.x393_i.event_logger_i.i_logger_arbiter.ts_rq_in[3:0]
(3)x393_dut.x393_i.event_logger_i.i_logger_arbiter.ts_rq_in[3:0]
@1401200
-group_end
@c00022
x393_dut.x393_i.event_logger_i.i_logger_arbiter.wts_rq[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_logger_arbiter.wts_rq[3:0]
(1)x393_dut.x393_i.event_logger_i.i_logger_arbiter.wts_rq[3:0]
(2)x393_dut.x393_i.event_logger_i.i_logger_arbiter.wts_rq[3:0]
(3)x393_dut.x393_i.event_logger_i.i_logger_arbiter.wts_rq[3:0]
@1401200
-group_end
@c00022
x393_dut.x393_i.event_logger_i.i_logger_arbiter.ts_grant[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_logger_arbiter.ts_grant[3:0]
(1)x393_dut.x393_i.event_logger_i.i_logger_arbiter.ts_grant[3:0]
(2)x393_dut.x393_i.event_logger_i.i_logger_arbiter.ts_grant[3:0]
(3)x393_dut.x393_i.event_logger_i.i_logger_arbiter.ts_grant[3:0]
@1401200
-group_end
@22
x393_dut.x393_i.event_logger_i.i_logger_arbiter.ts_valid[3:0]
x393_dut.x393_i.event_logger_i.i_logger_arbiter.chn_servicing[3:0]
@28
x393_dut.x393_i.event_logger_i.i_logger_arbiter.ts_en
@c00022
x393_dut.x393_i.event_logger_i.i_logger_arbiter.seq_cntr[4:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_logger_arbiter.seq_cntr[4:0]
(1)x393_dut.x393_i.event_logger_i.i_logger_arbiter.seq_cntr[4:0]
(2)x393_dut.x393_i.event_logger_i.i_logger_arbiter.seq_cntr[4:0]
(3)x393_dut.x393_i.event_logger_i.i_logger_arbiter.seq_cntr[4:0]
(4)x393_dut.x393_i.event_logger_i.i_logger_arbiter.seq_cntr[4:0]
@1401202
-group_end
@c08022
x393_dut.x393_i.event_logger_i.i_logger_arbiter.seq_cntr[4:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_logger_arbiter.seq_cntr[4:0]
(1)x393_dut.x393_i.event_logger_i.i_logger_arbiter.seq_cntr[4:0]
(2)x393_dut.x393_i.event_logger_i.i_logger_arbiter.seq_cntr[4:0]
(3)x393_dut.x393_i.event_logger_i.i_logger_arbiter.seq_cntr[4:0]
(4)x393_dut.x393_i.event_logger_i.i_logger_arbiter.seq_cntr[4:0]
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_logger_arbiter.pre_nxt
@c00022
x393_dut.x393_i.event_logger_i.i_logger_arbiter.nxt[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.i_logger_arbiter.nxt[3:0]
(1)x393_dut.x393_i.event_logger_i.i_logger_arbiter.nxt[3:0]
(2)x393_dut.x393_i.event_logger_i.i_logger_arbiter.nxt[3:0]
(3)x393_dut.x393_i.event_logger_i.i_logger_arbiter.nxt[3:0]
x393_dut.x393_i.event_logger_i.i_logger_arbiter.seq_cntr_last
@1401200
-group_end
@28
x393_dut.x393_i.event_logger_i.i_logger_arbiter.channel[1:0]
@22
x393_dut.x393_i.event_logger_i.i_logger_arbiter.sample_counter[23:0]
@28
x393_dut.x393_i.event_logger_i.i_logger_arbiter.dv
x393_dut.x393_i.event_logger_i.i_logger_arbiter.busy
@22
x393_dut.x393_i.event_logger_i.i_logger_arbiter.channels_ready[3:0]
x393_dut.x393_i.event_logger_i.i_logger_arbiter.chn_servicing[3:0]
@28
x393_dut.x393_i.event_logger_i.i_logger_arbiter.wstart
x393_dut.x393_i.event_logger_i.i_logger_arbiter.chn1hot[3:1]
@1000200
-logger_arbiter
@28
x393_dut.x393_i.event_logger_i.mux_rdy_source
x393_dut.x393_i.event_logger_i.mux_data_valid
x393_dut.x393_i.event_logger_i.ts_en
@22
x393_dut.x393_i.event_logger_i.timestamps_rdata[15:0]
x393_dut.x393_i.event_logger_i.mux_data_source[15:0]
x393_dut.x393_i.event_logger_i.mux_data_final[15:0]
@200
-
@800022
x393_dut.x393_i.event_logger_i.timestamp_request[3:0]
@28
(0)x393_dut.x393_i.event_logger_i.timestamp_request[3:0]
(1)x393_dut.x393_i.event_logger_i.timestamp_request[3:0]
(2)x393_dut.x393_i.event_logger_i.timestamp_request[3:0]
(3)x393_dut.x393_i.event_logger_i.timestamp_request[3:0]
@1001200
-group_end
@1000200
-event_logger
@c00200
-IMU_
@28
x393_dut.GPS1SEC
x393_dut.IMU_103695REVA
x393_dut.IMU_ACTIVE
[color] 3
x393_dut.IMU_CS
x393_dut.IMU_DATA_READY
x393_dut.IMU_EN
x393_dut.IMU_LATE_ACKN
@22
x393_dut.IMU_LOOPBACK[15:0]
@28
x393_dut.IMU_MISO
x393_dut.IMU_MOSI
x393_dut.IMU_MOSI_D
x393_dut.IMU_MOSI_OUT
x393_dut.IMU_MOSI_REVA
[color] 6
x393_dut.IMU_NMOSI
x393_dut.IMU_SCLK
x393_dut.IMU_SCLK_OUT
x393_dut.IMU_SCL
x393_dut.IMU_SDA
@22
x393_dut.IMU_TAPS[5:1]
@1401200
-IMU_
[pattern_trace] 1
[pattern_trace] 0
cocotb/x393_dut.v
View file @
158be190
...
...
@@ -679,8 +679,6 @@ module x393_dut#(
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
[
8
]
;
assign
#
10
gpio_pins
[
9
]
=
gpio_pins
[
6
]
;
// DDR3 signals
wire
SDRST
;
...
...
@@ -1714,5 +1712,219 @@ simul_axi_hp_wr #(
assign
x393_i
.
ps7_i
.
FCLKCLK
=
{
4
{
CLK
}};
assign
x393_i
.
ps7_i
.
FCLKRESETN
=
{
RST
,~
RST
,
RST
,~
RST
};
`define
TEST_IMU
assign
#
10
gpio_pins
[
7
]
=
gpio_pins
[
8
]
;
`ifndef
TEST_IMU
assign
#
10
gpio_pins
[
9
]
=
gpio_pins
[
6
]
;
`endif
`ifdef
TEST_IMU
// localparam X313_WA_IOPINS_EN_IMU_OUT= 'hc0000000;
// localparam X313_WA_IOPINS_DIS_IMU_OUT='h80000000; //SuppressThisWarning Veditor UNUSED
// localparam X313_WA_IMU_CTRL= 'h7f;
// localparam X313_WA_IMU_DATA= 'h7e;
// localparam X313_RA_IMU_DATA= 'h7e; // read fifo word, advance pointer (32 reads w/o ready check)
// localparam X313_RA_IMU_STATUS= 'h7f; // LSB==ready
// localparam IMU_PERIOD= 'h800; // normal period
// localparam IMU_AUTO_PERIOD= 'hffff0000; // period defined by IMU ready
localparam
IMU_BIT_DURATION
=
'h3
;
// actual F(scl) will be F(xclk)/2/(IMU_BIT_DURATION+1)
localparam
IMU_READY_PERIOD
=
100000
;
//100usec
localparam
IMU_NREADY_DURATION
=
10000
;
//10usec
localparam
IMU_GPS_BIT_PERIOD
=
'h18
;
// 20; // serial communication duration of a bit (in system clocks)
// use start of trigger as a timestamp (in async mode to prevent timestamp jitter)
// parameter X313_WA_DCR1_EARLYTRIGEN='hc; //OBSOLETE!
// parameter X313_WA_DCR1_EARLYTRIGDIS='h8;
`endif
`ifdef
TEST_IMU
//wire [11:0] EXT; // bidirectional
//reg TEST_CPU_WR_OK;
//reg TEST_CPU_RD_OK;
reg
SERIAL_BIT
=
1'b1
;
reg
GPS1SEC
=
1'b0
;
reg
ODOMETER_PULSE
=
1'b0
;
integer
SERIAL_DATA_FD
;
// @SuppressThisWarning VEditor
reg
IMU_DATA_READY
;
wire
IMU_SCL
=
gpio_pins
[
0
]
;
wire
IMU_SDA
=
gpio_pins
[
1
]
;
wire
IMU_MOSI
=
gpio_pins
[
2
]
;
wire
IMU_MISO
=
gpio_pins
[
3
]
;
// @SuppressThisWarning VEditor just for simulation
reg
IMU_EN
;
wire
IMU_ACTIVE
;
// @SuppressThisWarning VEditor just for simulation
wire
IMU_NMOSI
=!
IMU_MOSI
;
wire
[
5
:
1
]
IMU_TAPS
;
reg
IMU_LATE_ACKN
=
0
;
reg
IMU_SCLK
=
1
;
reg
IMU_MOSI_REVA
;
reg
IMU_103695REVA
=
1
;
wire
IMU_MOSI_OUT
;
wire
IMU_SCLK_OUT
;
reg
RS232_SENDING_BYTE
;
// @SuppressThisWarning VEditor just for simulation
reg
RS232_SENDING_PAUSE
;
// @SuppressThisWarning VEditor just for simulation
`endif
`ifdef
TEST_IMU
initial
begin
SERIAL_DATA_FD
=
$
fopen
(
{
`ROOTPATH
,
"/input_data/gps_data.dat"
},
"r"
)
;
#
10000
;
while
(
!
$
feof
(
SERIAL_DATA_FD
))
begin
repeat
(
18
*
IMU_BIT_DURATION
)
begin
wait
(
axi_hclk
)
;
wait
(
~
axi_hclk
)
;
end
// was 20
send_serial_line
;
send_serial_bit
(
'h0a
)
;
send_serial_pause
;
// was not here
GPS1SEC
=
1'b1
;
send_serial_line
;
send_serial_bit
(
'h0a
)
;
GPS1SEC
=
1'b0
;
send_serial_line
;
send_serial_bit
(
'h0a
)
;
send_serial_pause
;
send_serial_pause
;
ODOMETER_PULSE
=
1'b1
;
send_serial_pause
;
ODOMETER_PULSE
=
1'b0
;
// repeat (20) send_serial_pause;
end
end
`endif
`ifdef
TEST_IMU
assign
IMU_MOSI_OUT
=
IMU_103695REVA
?
IMU_MOSI_REVA
:
IMU_MOSI
;
assign
IMU_SCLK_OUT
=
IMU_103695REVA
?
(
IMU_SCLK
)
:
IMU_SCL
;
always
@
(
posedge
IMU_SDA
)
begin
IMU_EN
<=
IMU_MOSI
;
end
wire
IMU_CS
=
IMU_103695REVA
?!
IMU_ACTIVE
:!
(
IMU_EN
&&
IMU_SDA
)
;
reg
IMU_MOSI_D
;
always
@
(
posedge
IMU_SCLK_OUT
)
begin
// IMU_MOSI_D<=IMU_MOSI;
IMU_MOSI_D
<=
IMU_MOSI_OUT
;
end
reg
[
15
:
0
]
IMU_LOOPBACK
;
always
@
(
negedge
IMU_SCLK_OUT
)
begin
if
(
!
IMU_CS
)
IMU_LOOPBACK
[
15
:
0
]
<={
IMU_LOOPBACK
[
14
:
0
]
,
IMU_MOSI_D
};
end
assign
gpio_pins
[
3
]
=
IMU_CS
?
IMU_DATA_READY
:
IMU_LOOPBACK
[
15
]
;
PULLUP
i_IMU_SDA
(
.
O
(
IMU_SDA
))
;
PULLUP
i_IMU_SCL
(
.
O
(
IMU_SCL
))
;
initial
begin
// SERIAL_DATA_FD=$fopen("gps_data.dat","r");
end
always
begin
#(
IMU_READY_PERIOD
-
IMU_NREADY_DURATION
)
IMU_DATA_READY
=
1'b0
;
#(
IMU_NREADY_DURATION
)
IMU_DATA_READY
=
1'b1
;
end
assign
gpio_pins
[
4
]
=
SERIAL_BIT
;
assign
gpio_pins
[
5
]
=
GPS1SEC
;
// assign gpio_pins[6]=ODOMETER_PULSE;
assign
gpio_pins
[
9
]
=
ODOMETER_PULSE
;
oneshot
i_oneshot
(
.
trigger
(
IMU_NMOSI
)
,
.
out
(
IMU_ACTIVE
))
;
dly5taps
i_dly5taps
(
.
dly_in
(
IMU_NMOSI
)
,
.
dly_out
(
IMU_TAPS
[
5
:
1
]))
;
always
@
(
negedge
IMU_ACTIVE
or
posedge
IMU_TAPS
[
5
])
if
(
!
IMU_ACTIVE
)
IMU_LATE_ACKN
<=
1'b0
;
else
IMU_LATE_ACKN
<=
1'b1
;
always
@
(
negedge
IMU_LATE_ACKN
or
posedge
IMU_TAPS
[
4
])
if
(
!
IMU_LATE_ACKN
)
IMU_SCLK
<=
1'b1
;
else
IMU_SCLK
<=
~
IMU_SCLK
;
always
@
(
negedge
IMU_SCLK
)
IMU_MOSI_REVA
<=
IMU_NMOSI
;
task
send_serial_bit
;
input
[
7
:
0
]
data_byte
;
reg
[
7
:
0
]
d
;
begin
RS232_SENDING_BYTE
<=
1
;
d
<=
data_byte
;
wait
(
axi_hclk
)
;
wait
(
~
axi_hclk
)
;
// SERIAL_BIT should be 1 here
// Send start bit
SERIAL_BIT
<=
1'b0
;
repeat
(
IMU_GPS_BIT_PERIOD
)
begin
wait
(
axi_hclk
)
;
wait
(
~
axi_hclk
)
;
end
// Send 8 data bits, LSB first
repeat
(
8
)
begin
SERIAL_BIT
<=
d
[
0
]
;
#
1
d
[
7
:
0
]
<=
{
1'b0
,
d
[
7
:
1
]
};
repeat
(
IMU_GPS_BIT_PERIOD
)
begin
wait
(
axi_hclk
)
;
wait
(
~
axi_hclk
)
;
end
end
// Send stop bit
SERIAL_BIT
<=
1'b1
;
RS232_SENDING_BYTE
<=
0
;
// before stop bit
repeat
(
IMU_GPS_BIT_PERIOD
)
begin
wait
(
axi_hclk
)
;
wait
(
~
axi_hclk
)
;
end
end
endtask
task
send_serial_pause
;
begin
RS232_SENDING_PAUSE
<=
1
;
wait
(
axi_hclk
)
;
wait
(
~
axi_hclk
)
;
SERIAL_BIT
<=
1'b1
;
repeat
(
16
)
begin
repeat
(
IMU_GPS_BIT_PERIOD
)
begin
wait
(
axi_hclk
)
;
wait
(
~
axi_hclk
)
;
end
end
RS232_SENDING_PAUSE
<=
0
;
end
endtask
// SERIAL_DATA_FD=$fopen("gps_data.dat","r");
task
send_serial_line
;
integer
char
;
begin
char
=
0
;
while
(
!
$
feof
(
SERIAL_DATA_FD
)
&&
(
char
!=
'h0a
))
begin
char
=
$
fgetc
(
SERIAL_DATA_FD
)
;
send_serial_bit
(
char
)
;
end
end
endtask
`endif
endmodule
module
oneshot
(
trigger
,
out
)
;
input
trigger
;
output
out
;
reg
out
;
event
start
;
parameter
duration
=
4000
;
initial
out
=
0
;
always
@
(
posedge
trigger
)
begin
disable
timeout
;
#
0
->
start
;
end
always
@
start
begin
:
timeout
out
=
1
;
#
duration
out
=
0
;
end
endmodule
module
dly5taps
(
dly_in
,
dly_out
)
;
input
dly_in
;
output
[
5
:
1
]
dly_out
;
reg
[
5
:
1
]
dly_out
;
parameter
dly
=
6
;
// delay per tap, ns
always
@
(
dly_in
)
#
dly
dly_out
[
1
]
<=
dly_in
;
always
@
(
dly_out
[
1
])
#
dly
dly_out
[
2
]
<=
dly_out
[
1
]
;
always
@
(
dly_out
[
2
])
#
dly
dly_out
[
3
]
<=
dly_out
[
2
]
;
always
@
(
dly_out
[
3
])
#
dly
dly_out
[
4
]
<=
dly_out
[
3
]
;
always
@
(
dly_out
[
4
])
#
dly
dly_out
[
5
]
<=
dly_out
[
4
]
;
endmodule
logger/event_logger.v
View file @
158be190
...
...
@@ -92,6 +92,7 @@ module event_logger#(
// byte-parallel timestamps from 4 sensors channels (in triggered mode all are the same, different only in free running mode)
// each may generate logger event, channel number encoded in bits 25:24 of the external microseconds
input
[
3
:
0
]
sof_mclk
,
// start of frame (per-channel) to filter out non-first timestamps
input
ts_stb_chn0
,
// @mclk 1 clock before ts_rcv_data is valid
input
[
7
:
0
]
ts_data_chn0
,
// @mclk byte-wide serialized timestamp message received or local
...
...
@@ -133,8 +134,8 @@ module event_logger#(
reg
we_config_gps
;
// bits 6:3, 7 - enable - {ext,invert, slot[1:0]} slot==0 - disable
reg
we_config_msg
;
// bits 12:8,13 - enable - {invert,extinp[3:0]} extinp[3:0]=='hf' - disable
reg
we_config_syn
;
// bit 14, 15 - enable - enable logging external timestamps
reg
we_config_rst
;
// bit 14, 15 - enable -
enable logging external timestamps
reg
we_config_debug
;
// bit 14, 15 - enable -
enable logging external timestamps
reg
we_config_rst
;
// bit 14, 15 - enable -
reset
reg
we_config_debug
;
// bit 14, 15 - enable -
debug bits set
reg
we_bitHalfPeriod
;
...
...
@@ -159,7 +160,7 @@ module event_logger#(
reg
[
3
:
0
]
config_gps_mclk
;
reg
[
4
:
0
]
config_msg_mclk
;
reg
[
3
:
0
]
config_syn_mclk
;
reg
config_rst_mclk
;
reg
config_rst_mclk
=
0
;
reg
[
3
:
0
]
config_debug_mclk
;
reg
[
15
:
0
]
bitHalfPeriod_mclk
;
...
...
@@ -212,6 +213,8 @@ module event_logger#(
wire
cmd_we
;
wire
cmd_status
;
reg
[
3
:
0
]
timestamps_en
;
// enable timestamp to go through (first after sof)
assign
ext_en
=
{{
(
GPIO_N
-
5
)
{
1'b0
}},
(
config_imu
[
1
:
0
]
==
2'h2
)
?
1'b1
:
1'b0
,
1'b0
,
...
...
@@ -241,6 +244,9 @@ module event_logger#(
assign
timestamp_request
[
1
]
=
config_gps
[
3
]
?
(
config_gps
[
2
]
?
nmea_sent_start
:
gps_ts_stb
)
:
gps_pulse1sec_single
;
always
@
(
posedge
mclk
)
begin
timestamps_en
<=
enable_syn_mclk
&
(
sof_mclk
|
(
timestamps_en
&
~{
ts_stb_chn3
,
ts_stb_chn2
,
ts_stb_chn1
,
ts_stb_chn0
}
))
;
end
// filter gps_pulse1sec
always
@
(
posedge
xclk
)
begin
...
...
@@ -257,9 +263,24 @@ module event_logger#(
gps_pulse1sec_single
<=
!
gps_pulse1sec_denoise
[
1
]
&&
gps_pulse1sec_denoise
[
0
]
;
end
always
@
(
posedge
mclk
or
posedge
mrst
)
begin
// was negedge
we_d
<=
!
mrst
&&
cmd_we
&&
!
cmd_a
;
we_imu
<=
!
mrst
&&
cmd_we
&&
!
cmd_a
&&
(
ctrl_addr
[
6
:
5
]
==
LOGGER_PAGE_IMU
)
;
we_gps
<=
!
mrst
&&
cmd_we
&&
!
cmd_a
&&
(
ctrl_addr
[
6
:
5
]
==
LOGGER_PAGE_GPS
)
;
we_message
<=
!
mrst
&&
cmd_we
&&
!
cmd_a
&&
(
ctrl_addr
[
6
:
5
]
==
LOGGER_PAGE_MSG
)
;
we_period
<=
!
mrst
&&
cmd_we
&&
!
cmd_a
&&
(
ctrl_addr
[
6
:
0
]
==
LOGGER_PERIOD
)
;
we_bit_duration
<=
!
mrst
&&
cmd_we
&&
!
cmd_a
&&
(
ctrl_addr
[
6
:
0
]
==
LOGGER_BIT_DURATION
)
;
we_bitHalfPeriod
<=
!
mrst
&&
cmd_we
&&
!
cmd_a
&&
(
ctrl_addr
[
6
:
0
]
==
LOGGER_BIT_HALF_PERIOD
)
;
we_config_imu
<=
!
mrst
&&
cmd_we
&&
!
cmd_a
&&
(
ctrl_addr
[
6
:
0
]
==
LOGGER_CONFIG
)
&&
cmd_data
[
LOGGER_CONF_IMU
]
;
we_config_gps
<=
!
mrst
&&
cmd_we
&&
!
cmd_a
&&
(
ctrl_addr
[
6
:
0
]
==
LOGGER_CONFIG
)
&&
cmd_data
[
LOGGER_CONF_GPS
]
;
we_config_msg
<=
!
mrst
&&
cmd_we
&&
!
cmd_a
&&
(
ctrl_addr
[
6
:
0
]
==
LOGGER_CONFIG
)
&&
cmd_data
[
LOGGER_CONF_MSG
]
;
we_config_syn
<=
!
mrst
&&
cmd_we
&&
!
cmd_a
&&
(
ctrl_addr
[
6
:
0
]
==
LOGGER_CONFIG
)
&&
cmd_data
[
LOGGER_CONF_SYN
]
;
we_config_rst
<=
!
mrst
&&
cmd_we
&&
!
cmd_a
&&
(
ctrl_addr
[
6
:
0
]
==
LOGGER_CONFIG
)
&&
cmd_data
[
LOGGER_CONF_EN
]
;
we_config_debug
<=
!
mrst
&&
cmd_we
&&
!
cmd_a
&&
(
ctrl_addr
[
6
:
0
]
==
LOGGER_CONFIG
)
&&
cmd_data
[
LOGGER_CONF_DBG
]
;
end
always
@
(
posedge
mclk
)
begin
// was negedge
if
(
cmd_we
)
cmd_data_r
<=
cmd_data
;
// valid next after cmd_we;
/*
we_d <= cmd_we && !cmd_a;
we_imu <= cmd_we && !cmd_a && (ctrl_addr[6:5] == LOGGER_PAGE_IMU);
we_gps <= cmd_we && !cmd_a && (ctrl_addr[6:5] == LOGGER_PAGE_GPS);
...
...
@@ -273,6 +294,7 @@ module event_logger#(
we_config_syn <= cmd_we && !cmd_a && (ctrl_addr[6:0] == LOGGER_CONFIG) && cmd_data[LOGGER_CONF_SYN];
we_config_rst <= cmd_we && !cmd_a && (ctrl_addr[6:0] == LOGGER_CONFIG) && cmd_data[LOGGER_CONF_EN];
we_config_debug <= cmd_we && !cmd_a && (ctrl_addr[6:0] == LOGGER_CONFIG) && cmd_data[LOGGER_CONF_DBG];
*/
if
(
we_config_imu
)
config_imu_mclk
[
1
:
0
]
<=
cmd_data_r
[
LOGGER_CONF_IMU
-
1
-:
LOGGER_CONF_IMU_BITS
]
;
// bits 1:0, 2 - enable slot[1:0]
if
(
we_config_gps
)
config_gps_mclk
[
3
:
0
]
<=
cmd_data_r
[
LOGGER_CONF_GPS
-
1
-:
LOGGER_CONF_GPS_BITS
]
;
// bits 6:3, 7 - enable - {ext,inver, slot[1:0]} slot==0 - disable
...
...
@@ -405,14 +427,14 @@ fixed-length de-noise circuitry with latency 256*T(xclk) (~3usec)
.
xclk
(
xclk
)
,
// half frequency (80 MHz nominal)
.
mrst
(
mrst
)
,
// @mclk - sync reset
.
xrst
(
xrst
)
,
// @xclk - sync reset
.
en_chn_mclk
(
enable_syn_mclk
)
,
//
enable module operation, if 0 - reset
.
ts_stb_chn0
(
ts_stb_chn0
)
,
// input
.
en_chn_mclk
(
enable_syn_mclk
)
,
// input[3:0]
enable module operation, if 0 - reset
.
ts_stb_chn0
(
ts_stb_chn0
&&
timestamps_en
[
0
])
,
// input
.
ts_data_chn0
(
ts_data_chn0
)
,
// input[7:0]
.
ts_stb_chn1
(
ts_stb_chn1
)
,
// input
.
ts_stb_chn1
(
ts_stb_chn1
&&
timestamps_en
[
1
])
,
// input
.
ts_data_chn1
(
ts_data_chn1
)
,
// input[7:0]
.
ts_stb_chn2
(
ts_stb_chn2
)
,
// input
.
ts_stb_chn2
(
ts_stb_chn2
&&
timestamps_en
[
2
])
,
// input
.
ts_data_chn2
(
ts_data_chn2
)
,
// input[7:0]
.
ts_stb_chn3
(
ts_stb_chn3
)
,
// input
.
ts_stb_chn3
(
ts_stb_chn3
&&
timestamps_en
[
3
])
,
// input
.
ts_data_chn3
(
ts_data_chn3
)
,
// input[7:0]
.
ts
(
timestamp_request
[
2
])
,
// timestamop request
.
rdy
(
channel_ready
[
2
])
,
// data ready
...
...
logger/imu_exttime393.v
View file @
158be190
...
...
@@ -67,21 +67,23 @@ module imu_exttime393(
output
ts
,
// timestamop request
output
reg
rdy
,
// data ready will go up with timestamp request (ahead of actual time), but it will
// anyway be ready sooner, than the local timestamp retrieved ant sent
input
rd_stb
,
// data read strobe (increment address) - continuous 1'b1 until allthe packet is read out
input
rd_stb
,
// data read strobe (increment address) - continuous 1'b1 until all
the packet is read out
output
[
15
:
0
]
rdata
)
;
// data out (16 bits)
reg
[
4
:
0
]
raddr
;
wire
en_mclk
=
|
en_chn_mclk
;
wire
[
3
:
0
]
ts_stb
=
{
ts_stb_chn3
,
ts_stb_chn2
,
ts_stb_chn1
,
ts_stb_chn0
};
wire
[
3
:
0
]
ts_got
;
// timestamp transferred to the channel FIFO
reg
en
;
reg
rd_stb_r
;
reg
rd_start
;
// 1 xclk pulse at the readout start
wire
rd_start_mclk
;
reg
ts_full
;
// internal 4 x 16 fifo is full (or getting full)
reg
ts_pend
;
// ts fifo waiting to be rdead out
reg
[
3
:
0
]
in_full
;
// input fifo has (or is acquiring) timestamp
wire
pre_copy_w
;
reg
[
1
:
0
]
copy_selected
;
// copying from the winner of 4 input
fifo
s to the x16 output fifo
reg
[
1
:
0
]
copy_selected
;
// copying from the winner of 4 input
FIFO
s to the x16 output fifo
reg
copy_started
;
reg
[
2
:
0
]
copy_cntr
;
// byte counter for copying
reg
[
1
:
0
]
sel_chn
;
// selected channel
...
...
@@ -90,11 +92,11 @@ module imu_exttime393(
wire
[
3
:
0
]
chn_pri_w
;
wire
[
1
:
0
]
chn_enc_w
;
reg
[
15
:
0
]
ts_ram
[
0
:
3
]
;
// inner timestamp x16 memory that receives timestamp from one of the 4 input channel
fifo
s
reg
[
15
:
0
]
ts_ram
[
0
:
3
]
;
// inner timestamp x16 memory that receives timestamp from one of the 4 input channel
FIFO
s
wire
[
31
:
0
]
dout_chn
;
wire
[
7
:
0
]
copy_data
;
// data from the selected input fifos
reg
[
7
:
0
]
copy_data_r
;
// low byte of the timestamp data being copied from one of the input
fifo
s to the ts_ram
reg
[
7
:
0
]
copy_data_r
;
// low byte of the timestamp data being copied from one of the input
FIFO
s to the ts_ram
reg
rd_stb_mclk
;
assign
chn_pri_w
=
{
in_full
[
3
]
&
~
(
|
in_full
[
2
:
0
])
,
in_full
[
2
]
&
~
(
|
in_full
[
1
:
0
])
,
in_full
[
1
]
&
~
in_full
[
0
]
,
...
...
@@ -110,14 +112,24 @@ module imu_exttime393(
always
@
(
posedge
mclk
)
begin
copy_started
<=
pre_copy_started
;
rd_stb_mclk
<=
rd_stb
;
if
(
!
en_mclk
)
ts_full
<=
0
;
else
if
(
pre_copy_started
)
ts_full
<=
1
;
// turns on before in_full[*] - || will have no glitches
else
if
(
rd_start_mclk
)
ts_full
<=
0
;
// else if (rd_start_mclk) ts_full <= 0;
else
if
(
!
ts_pend
&&
!
rd_stb_mclk
)
ts_full
<=
0
;
if
(
!
en_mclk
)
ts_pend
<=
0
;
else
if
(
pre_copy_started
)
ts_pend
<=
1
;
else
if
(
rd_stb_mclk
)
ts_pend
<=
0
;
if
(
!
en_mclk
)
in_full
<=
0
;
else
in_full
<=
en_chn_mclk
&
(
ts_
stb
|
(
in_full
&
~
(
chn1hot
&
{
4
{
copy_started
}}
)))
;
else
in_full
<=
en_chn_mclk
&
(
ts_
got
|
(
in_full
&
~
(
chn1hot
&
{
4
{
copy_started
}}
)))
;
copy_selected
<=
{
copy_selected
[
0
]
,
pre_copy_w
|
(
copy_selected
[
0
]
&
~
(
&
copy_cntr
[
2
:
1
]))
};
// off at count 6
// copy_selected <= {copy_selected[0], (|en_chn_mclk) & (pre_copy_w | (copy_selected[0] & ~(©_cntr[2:1])))}; // off at count 6
copy_selected
<=
{
copy_selected
[
0
]
,
(
|
en_chn_mclk
)
&
(
pre_copy_w
|
(
copy_selected
[
0
]
&
(
copy_cntr
[
2
]
|
~
copy_cntr
[
1
]
)))
};
// off at count 2
if
(
pre_copy_w
)
sel_chn
<=
chn_enc_w
;
...
...
@@ -145,6 +157,10 @@ module imu_exttime393(
else
if
(
rd_stb
&&
(
raddr
[
1
:
0
]
==
2'h3
))
rdy
<=
1'b0
;
end
dly_var
#(
.
WIDTH
(
1
)
,.
DLY_WIDTH
(
4
))
ts_got0_i
(
.
clk
(
mclk
)
,.
rst
(
~
en_chn_mclk
[
0
])
,
.
dly
(
4'h7
)
,
.
din
(
ts_stb
[
0
])
,.
dout
(
ts_got
[
0
]))
;
dly_var
#(
.
WIDTH
(
1
)
,.
DLY_WIDTH
(
4
))
ts_got1_i
(
.
clk
(
mclk
)
,.
rst
(
~
en_chn_mclk
[
1
])
,
.
dly
(
4'h7
)
,
.
din
(
ts_stb
[
1
])
,.
dout
(
ts_got
[
1
]))
;
dly_var
#(
.
WIDTH
(
1
)
,.
DLY_WIDTH
(
4
))
ts_got2_i
(
.
clk
(
mclk
)
,.
rst
(
~
en_chn_mclk
[
2
])
,
.
dly
(
4'h7
)
,
.
din
(
ts_stb
[
2
])
,.
dout
(
ts_got
[
2
]))
;
dly_var
#(
.
WIDTH
(
1
)
,.
DLY_WIDTH
(
4
))
ts_got3_i
(
.
clk
(
mclk
)
,.
rst
(
~
en_chn_mclk
[
3
])
,
.
dly
(
4'h7
)
,
.
din
(
ts_stb
[
3
])
,.
dout
(
ts_got
[
3
]))
;
timestamp_fifo
timestamp_fifo_chn0_i
(
...
...
@@ -155,7 +171,7 @@ module imu_exttime393(
.
din
(
ts_data_chn0
)
,
// input[7:0]
.
aclk
(
mclk
)
,
// input
.
arst
(
mrst
)
,
// input
.
advance
(
ts_
stb
[
0
])
,
// enough time
.
advance
(
ts_
got
[
0
])
,
// enough time
.
rclk
(
mclk
)
,
// input
.
rrst
(
mrst
)
,
// input
.
rstb
(
pre_copy_started
&&
(
sel_chn
==
2'h0
))
,
// input
...
...
@@ -170,7 +186,7 @@ module imu_exttime393(
.
din
(
ts_data_chn1
)
,
// input[7:0]
.
aclk
(
mclk
)
,
// input
.
arst
(
mrst
)
,
// input
.
advance
(
ts_
stb
[
1
])
,
// enough time
.
advance
(
ts_
got
[
1
])
,
// enough time
.
rclk
(
mclk
)
,
// input
.
rrst
(
mrst
)
,
// input
.
rstb
(
pre_copy_started
&&
(
sel_chn
==
2'h1
))
,
// input
...
...
@@ -185,7 +201,7 @@ module imu_exttime393(
.
din
(
ts_data_chn2
)
,
// input[7:0]
.
aclk
(
mclk
)
,
// input
.
arst
(
mrst
)
,
// input
.
advance
(
ts_
stb
[
2
])
,
// enough time
.
advance
(
ts_
got
[
2
])
,
// enough time
.
rclk
(
mclk
)
,
// input
.
rrst
(
mrst
)
,
// input
.
rstb
(
pre_copy_started
&&
(
sel_chn
==
2'h2
))
,
// input
...
...
@@ -200,7 +216,7 @@ module imu_exttime393(
.
din
(
ts_data_chn3
)
,
// input[7:0]
.
aclk
(
mclk
)
,
// input
.
arst
(
mrst
)
,
// input
.
advance
(
ts_
stb
[
3
])
,
// enough time
.
advance
(
ts_
got
[
3
])
,
// enough time
.
rclk
(
mclk
)
,
// input
.
rrst
(
mrst
)
,
// input
.
rstb
(
pre_copy_started
&&
(
sel_chn
==
2'h3
))
,
// input
...
...
@@ -208,10 +224,12 @@ module imu_exttime393(
)
;
pulse_cross_clock
i_rd_start_mclk
(
.
rst
(
xrst
)
,
.
src_clk
(
xclk
)
,
.
dst_clk
(
mclk
)
,
.
in_pulse
(
rd_start
)
,
.
out_pulse
(
rd_start_mclk
)
,.
busy
())
;
// pulse_cross_clock i_rd_start_mclk (.rst(xrst), .src_clk(xclk), .dst_clk(mclk), .in_pulse(rd_start), .out_pulse(rd_start_mclk),.busy());
pulse_cross_clock
i_rd_start_mclk
(
.
rst
(
!
en
)
,
.
src_clk
(
xclk
)
,
.
dst_clk
(
mclk
)
,
.
in_pulse
(
rd_start
)
,
.
out_pulse
(
rd_start_mclk
)
,.
busy
())
;
// generate timestamp request as soon as one of the sub-channels starts copying. That time stamp will be stored for this (ext) channel
pulse_cross_clock
i_ts
(
.
rst
(
mrst
)
,
.
src_clk
(
mclk
)
,
.
dst_clk
(
xclk
)
,
.
in_pulse
(
pre_copy_w
)
,
.
out_pulse
(
ts
)
,.
busy
())
;
// pulse_cross_clock i_ts (.rst(mrst), .src_clk(mclk), .dst_clk(xclk), .in_pulse(pre_copy_w), .out_pulse(ts),.busy());
pulse_cross_clock
i_ts
(
.
rst
(
en_chn_mclk
==
0
)
,
.
src_clk
(
mclk
)
,
.
dst_clk
(
xclk
)
,
.
in_pulse
(
pre_copy_w
)
,
.
out_pulse
(
ts
)
,.
busy
())
;
endmodule
logger/imu_message393.v
View file @
158be190
logger/imu_spi393.v
View file @
158be190
...
...
@@ -42,10 +42,9 @@ module imu_spi393(
// input rst,
input
mclk
,
// system clock, negedge TODO:COnvert to posedge!
input
xclk
,
// half frequency (80 MHz nominal)
input
we_ra
,
// write enable for registers to log (@negedge clk)
input
we_div
,
// write enable for clock dividing(@negedge clk)
input
we_period
,
// write enable for IMU cycle period(@negedge clk) 0 - disable, 1 - single, >1 - half bit periods
input
we_div
,
// write enable for clock dividing(@negedge clk)
input
we_period
,
// write enable for IMU cycle period(@negedge clk) 0 - disable, 1 - single, >1 - half bit periods
input
[
4
:
0
]
wa
,
// write address for register (5 bits, @negedge clk)
input
[
31
:
0
]
din
,
//
output
mosi
,
// to IMU, bit 2 in J9
...
...
@@ -55,7 +54,7 @@ module imu_spi393(
output
sda_en
,
// enable sda output (when sda==0 and 1 cycle after sda 0->1)
output
scl
,
// scl, shared with i2c, bit 0
output
scl_en
,
// enable scl output (when scl==0 and 1 cycle after sda 0->1)
output
ts
,
// timestamo
p request
output
ts
,
// timestam
p request
output
rdy
,
// data ready
input
rd_stb
,
// data read strobe (increment address)
output
[
15
:
0
]
rdata
)
;
// data out (16 bits)
...
...
@@ -115,14 +114,14 @@ module imu_spi393(
reg
imu_start
;
reg
ts_r
;
// delay imu_start by one cycle, so it will be after rdy is reset
reg
[
31
:
0
]
period
;
// 0 - disable, 1 - single, >1 - period in 50 ns steps
reg
[
31
:
0
]
period
=
0
;
// 0 - disable, 1 - single, >1 - period in 50 ns steps
// reg [15:0] di_d;
reg
imu_enabled_mclk
;
reg
imu_enabled_mclk
=
0
;
reg
[
1
:
0
]
imu_enabled
=
2'h0
;
reg
imu_run_mclk
;
reg
imu_run_mclk
=
0
;
reg
[
1
:
0
]
imu_run
;
reg
imu_when_ready_mclk
;
reg
imu_when_ready_mclk
=
0
;
reg
[
1
:
0
]
imu_when_ready
;
reg
imu_run_confirmed
;
...
...
@@ -184,7 +183,7 @@ module imu_spi393(
if
(
we_period
)
period
[
31
:
0
]
<=
din
[
31
:
0
]
;
if
(
we_timer
[
2
])
imu_run_mclk
<=
(
period
[
31
:
1
]
!=
31'b0
)
;
// double-cycle
if
(
we_timer
[
3
])
imu_enabled_mclk
<=
imu_run_mclk
|
period
[
0
]
;
if
(
we_timer
[
3
])
imu_enabled_mclk
<=
imu_run_mclk
|
period
[
0
]
;
// NC393: Why period[0]?
if
(
we_timer
[
2
])
imu_when_ready_mclk
<=
&
period
[
31
:
16
]
;
// double-cycle
...
...
logger/logger_arbiter393.v
View file @
158be190
...
...
@@ -98,7 +98,7 @@ module logger_arbiter393(
always
@
(
posedge
xclk
)
begin
ts_rq_in_d
[
3
:
0
]
<=
ts_rq_in
[
3
:
0
]
;
if
(
rst
)
channel_r
[
1
:
0
]
<=
0
;
if
(
wstart
)
channel_r
[
1
:
0
]
<=
{
chn1hot
[
3
]
|
chn1hot
[
2
]
,
chn1hot
[
3
]
|
chn1hot
[
1
]
};
if
(
wstart
)
chn_servicing
[
3
:
0
]
<=
{
chn1hot
[
3
:
1
]
,
~|
chn1hot
[
3
:
1
]
};
...
...
logger/nmea_decoder393.v
View file @
158be190
...
...
@@ -292,14 +292,14 @@ module nmea_decoder393(
assign
rdata
[
11
:
8
]
=
odbuf2_ram
[
raddr
[
4
:
0
]]
;
assign
rdata
[
15
:
12
]
=
odbuf3_ram
[
raddr
[
4
:
0
]]
;
reg
[
3
:
0
]
gpxxx_ram
[
0
:
3
]
;
reg
[
3
:
0
]
gpxxx_ram
[
0
:
15
]
;
always
@
(
posedge
mclk
)
if
(
we
&
~
wa
[
4
])
gpxxx_ram
[
wa
[
3
:
0
]]
<=
wd
[
3
:
0
]
;
assign
gpxxx_w_one
[
3
:
0
]
=
gpxxx_ram
[
gpxxx_addr
[
3
:
0
]]
;
// for each of the four sentences first byte - number of field (<=24), next 3 bytes - formats for each nmea fi
le
d (LSB first):
// for each of the four sentences first byte - number of field (<=24), next 3 bytes - formats for each nmea fi
el
d (LSB first):
// 0 - nibble ("-" -> 0xd, "." -> 0xe), terminated with 0xf
// 1 - byte (2 nibbles), all bytes but last have MSB clear, last - set.
// No padding of nibbles to byte borders, bytes are encoded as 2 nibbles
reg
[
7
:
0
]
format_ram
[
0
:
3
]
;
reg
[
7
:
0
]
format_ram
[
0
:
15
]
;
always
@
(
posedge
mclk
)
if
(
we
&
wa
[
4
])
format_ram
[
wa
[
3
:
0
]]
<=
wd
[
7
:
0
]
;
assign
format_data
[
7
:
0
]
=
format_ram
[
{
sentence
[
1
:
0
]
,
format_field
[
4
:
3
]
}
]
;
...
...
py393/test_mcntrl.py
View file @
158be190
...
...
@@ -77,6 +77,7 @@ import x393_rtc
import
x393_jpeg
import
vrlg
import
x393_export_c
import
x393_logger
__all__
=
[]
__version__
=
0.1
__date__
=
'2015-03-01'
...
...
@@ -358,6 +359,8 @@ USAGE
x393Rtc
=
x393_rtc
.
X393Rtc
(
verbose
,
args
.
simulated
,
args
.
localparams
)
x393Jpeg
=
x393_jpeg
.
X393Jpeg
(
verbose
,
args
.
simulated
,
args
.
localparams
)
x393ExportC
=
x393_export_c
.
X393ExportC
(
verbose
,
args
.
simulated
,
args
.
localparams
)
x393Logger
=
x393_logger
.
X393Logger
(
verbose
,
args
.
simulated
,
args
.
localparams
)
#X393Logger
'''
print ("----------------------")
print("x393_mem.__dict__="+str(x393_mem.__dict__))
...
...
@@ -392,6 +395,7 @@ USAGE
extractTasks
(
x393_rtc
.
X393Rtc
,
x393Rtc
)
extractTasks
(
x393_jpeg
.
X393Jpeg
,
x393Jpeg
)
extractTasks
(
x393_export_c
.
X393ExportC
,
x393ExportC
)
extractTasks
(
x393_logger
.
X393Logger
,
x393Logger
)
for
cmdLine
in
commands
:
print
(
'Running task: '
+
str
(
cmdLine
))
...
...
py393/x393_jpeg.py
View file @
158be190
...
...
@@ -2160,6 +2160,118 @@ jpeg_sim_multi 4
jpeg_sim_multi 8
################## Simulate Parallel 11 - 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_logger_params_file "/home/eyesis/git/x393-neon/attic/imu_config.bin"
set_camsync_period 31 # set bit duration
set_camsync_period 8000 # 80 usec
set_camsync_delay 0 400
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
#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
#switch to external (wired) trigger
set_camsync_inout 0 7 0
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>
#keeping external trigger mode (#9 was switching to internal)
#set_camsync_mode None None None 0
jpeg_sim_multi 4
jpeg_sim_multi 8
################## Serial ####################
cd /usr/local/verilog/; test_mcntrl.py @hargs
...
...
x393.v
View file @
158be190
...
...
@@ -2315,6 +2315,7 @@ assign axi_grst = axi_rst_pre;
.
ext_di
(
gpio_rd
)
,
// input[9:0]
.
ext_do
(
gpio_logger
)
,
// output[9:0]
.
ext_en
(
gpio_logger_en
)
,
// output[9:0]
.
sof_mclk
(
sof_out_mclk
)
,
// input[3:0]
.
ts_stb_chn0
(
ts_pre_stb
[
0
])
,
// input
.
ts_data_chn0
(
ts_data
[
0
*
8
+:
8
])
,
// input[7:0]
.
ts_stb_chn1
(
ts_pre_stb
[
1
])
,
// input
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment