x393  1.0
FPGAcodeforElphelNC393camera
event_logger.v
Go to the documentation of this file.
1 
39 `timescale 1ns/1ps
40 
41 module event_logger#(
42  parameter LOGGER_ADDR = 'h720, //..'h721
43  parameter LOGGER_STATUS = 'h722, // .. 'h722
44  parameter LOGGER_STATUS_REG_ADDR = 'h39, // just 1 location)
45  parameter LOGGER_MASK = 'h7fe,
46  parameter LOGGER_STATUS_MASK = 'h7ff,
47 
48 // parameter LOGGER_PAGE_IMU = 0, // 'h00..'h1f - overlaps with period/duration/halfperiod/config? (was so in x353)
49  parameter LOGGER_PAGE_GPS = 1, // 'h20..'h3f
50  parameter LOGGER_PAGE_MSG = 2, // 'h40..'h5f
51  parameter LOGGER_PAGE_IMU = 3, // 'h60..'h7f - removing overlap with period/duration/halfperiod/config
52 
53  parameter LOGGER_PERIOD = 0,
54  parameter LOGGER_BIT_DURATION = 1,
55  parameter LOGGER_BIT_HALF_PERIOD = 2, //rs232 half bit period
56  parameter LOGGER_CONFIG = 3,
57 
58  parameter LOGGER_CONF_IMU = 2,
59  parameter LOGGER_CONF_IMU_BITS = 2,
60  parameter LOGGER_CONF_GPS = 7,
61  parameter LOGGER_CONF_GPS_BITS = 4,
62  parameter LOGGER_CONF_MSG = 13,
63  parameter LOGGER_CONF_MSG_BITS = 5,
64  parameter LOGGER_CONF_SYN = 18, // 15,
65  parameter LOGGER_CONF_SYN_BITS = 4, // 1,
66  parameter LOGGER_CONF_EN = 20, // 17,
67  parameter LOGGER_CONF_EN_BITS = 1,
68  parameter LOGGER_CONF_DBG = 25, // 22,
69  parameter LOGGER_CONF_DBG_BITS = 4,
70 
71  parameter GPIO_N = 10 // number of GPIO bits to control
72 )(
73 // input rst,
74  input mclk, // system clock
75  input xclk, // was in 353: half frequency (80 MHz nominal)
76  input mrst, // @ posedge mclk - sync reset
77  input xrst, // @ posedge xclk - sync reset
78  // programming interface
79  input [7:0] cmd_ad, // byte-serial command address/data (up to 6 bytes: AL-AH-D0-D1-D2-D3
80  input cmd_stb, // strobe (with first byte) for the command a/d
81  output [7:0] status_ad, // status address/data - up to 5 bytes: A - {seq,status[1:0]} - status[2:9] - status[10:17] - status[18:25]
82  output status_rq, // input request to send status downstream
83  input status_start, // Acknowledge of the first status packet byte (address)
84 
85  output ts_local_snap, // @posedge xclk request to take a local time snapshot
86  input ts_local_stb, // @posedge xclk one clock pulse before receiving a local TS data
87  input [7:0] ts_local_data, // @posedge xclk local timestamp data (s0,s1,s2,s3,u0,u1,u2,u3==0)
88 
89  input [GPIO_N-1:0] ext_di,
90  output [GPIO_N-1:0] ext_do,
91  output [GPIO_N-1:0] ext_en,
92 
93 
94  // byte-parallel timestamps from 4 sensors channels (in triggered mode all are the same, different only in free running mode)
95  // each may generate logger event, channel number encoded in bits 25:24 of the external microseconds
96 
97  input ts_stb_chn0, // @mclk 1 clock before ts_rcv_data is valid
98  input [7:0] ts_data_chn0, // @mclk byte-wide serialized timestamp message received or local
99 
100  input ts_stb_chn1, // @mclk 1 clock before ts_rcv_data is valid
101  input [7:0] ts_data_chn1, // @mclk byte-wide serialized timestamp message received or local
102 
103  input ts_stb_chn2, // @mclk 1 clock before ts_rcv_data is valid
104  input [7:0] ts_data_chn2, // @mclk byte-wide serialized timestamp message received or local
105 
106  input ts_stb_chn3, // @mclk 1 clock before ts_rcv_data is valid
107  input [7:0] ts_data_chn3, // @mclk byte-wide serialized timestamp message received or local
108 
109 
110 // TODO: Convert to 32-bit?
111  output [15:0] data_out, // 16-bit data out to DMA1 (@posdge mclk)
112  output data_out_stb,// data out valid (@posedge mclk)
113 // sample_counter, // could be DMA latency, safe to use sample_counter-1
114  output [31:0] debug_state);
115 
116 
117  wire [23:0] sample_counter; // TODO: read with status! could be DMA latency, safe to use sample_counter-1
118 
119 
120  wire ser_di; // gps serial data in
122  wire mosi; // to IMU, bit 2 in J9
123  wire miso; // from IMU, bit 3 on J9
124  wire sda, sda_en, scl, scl_en;
125 
126  reg [6:0] ctrl_addr=7'h0; // 0 - period, 1 - reserved, 2..31 - registers to log, >32 - gps parameters, >64 - odometer message
127  reg we_d; // only if wa was 0
128  reg we_imu;
129  reg we_gps;
133  reg we_config_imu; // bits 1:0, 2 - enable slot[1:0]
134  reg we_config_gps; // bits 6:3, 7 - enable - {ext,invert, slot[1:0]} slot==0 - disable
135  reg we_config_msg; // bits 12:8,13 - enable - {invert,extinp[3:0]} extinp[3:0]=='hf' - disable
136  reg we_config_syn; // bit 14, 15 - enable - enable logging external timestamps
137  reg we_config_rst; // bit 14, 15 - enable - enable logging external timestamps
138  reg we_config_debug; // bit 14, 15 - enable - enable logging external timestamps
140 
141 
142  reg [1:0] config_imu;
143  reg [3:0] config_gps;
144  reg [4:0] config_msg;
146  reg [3:0] config_debug;
147  reg [15:0] bitHalfPeriod;// serial gps speed - number of xclk pulses in half bit period
148 
149 
150  wire we_config_imu_xclk; // copy config_imu_mclk (@mclk) to config_imu (@xclk)
156 
157 
158 
159  reg [1:0] config_imu_mclk;
160  reg [3:0] config_gps_mclk;
161  reg [4:0] config_msg_mclk;
162  reg [3:0] config_syn_mclk;
164  reg [3:0] config_debug_mclk;
165  reg [15:0] bitHalfPeriod_mclk;
166 
169  wire [3:0] enable_syn_mclk;
170 
173 
175  wire [15:0] imu_data;
176  wire [15:0] nmea_data;
177  wire [15:0] extts_data;
178  wire [15:0] msg_data;
179 
180  wire [15:0] timestamps_rdata; // multiplexed timestamp data
181 
182  reg [2:0] gps_pulse1sec_d;
186 
187  wire [3:0] timestamp_request; // 0 - imu, 1 - gps, 2 - ext, 3 - msg
188  wire [3:0] timestamp_ackn;
189 
190  wire [3:0] timestamp_request_long; //from sub-module ts request until reset by arbiter, to allow timestamp_ackn
191  wire [3:0] channel_ready; // 0 - imu, 1 - gps, 2 - ext, 3 - msg
192  wire [3:0] channel_next; // 0 - imu, 1 - gps, 2 - ext, 3 - msg
193  wire [1:0] channel; // currently logged channel number
194  wire [1:0] timestamp_sel; // selected word in timestamp (0..3)
195  wire ts_en; // log timestamp (when false - data)
196  wire mux_data_valid; // data valid from multiplexer (to xclk->mclk converter fifo)
197  reg [15:0] mux_data_source;// data multiplexed from 1 of the 4 channels
198  reg mux_rdy_source; // data ready multiplexed from 1of the 4 channels (to fill rest with zeros)
199  reg [15:0] mux_data_final; // data multiplexed between timestamps and channel data (or 0 if ~ready)
200 
201  wire rs232_wait_pause;// may be used as reset for decoder
202  wire rs232_start; // serial character start (single pulse)
203  wire nmea_sent_start; // serial character start (single pulse)
204 
205  // reg [1:0] debug_reg;
206  reg [7:0] dbg_cntr;
208  wire [15:0] ext_di16 ={{(16-GPIO_N){1'b0}},ext_di};
209 
210  wire cmd_a; // single bit
211  wire [31:0] cmd_data;
212  reg [31:0] cmd_data_r; // valid next after cmd_we;
213  wire cmd_we;
215 
216  assign ext_en = {{(GPIO_N-5){1'b0}},
217  (config_imu[1:0]==2'h2)?1'b1:1'b0,
218  1'b0,
219  (config_imu[1:0]==2'h1)?1'b1:1'b0,
220  (config_imu[1:0]!=2'h0)?{sda_en,scl_en}:2'h0};
221 
222  assign ext_do= {{(GPIO_N-5){1'b0}},
223  (config_imu[1:0]==2'h2)?mosi:1'b0,
224  1'b0,
225  (config_imu[1:0]==2'h1)?mosi:1'b0,
226  (config_imu[1:0]!=2'h0)?{sda,scl}:2'h0};
227 
228  assign miso= config_imu[1]?
229  (config_imu[0]?1'b0 :ext_di[5]):
230  (config_imu[0]?ext_di[3]:1'b0);
231  assign ser_di= config_gps[1]?
232  (config_gps[0]?1'b0 :ext_di[4]):
233  (config_gps[0]?ext_di[2]:1'b0);
234 
235  assign gps_pulse1sec=config_gps[2]^(config_gps[1]?
236  (config_gps[0]?1'b0 :ext_di[5]):
237  (config_gps[0]?ext_di[3]:1'b0));
238 
239  assign pre_message_trig = ext_di16[config_msg[3:0]];
240 
242 
244 
245 
246 // filter gps_pulse1sec
247  always @ (posedge xclk) begin
248  if (config_rst) gps_pulse1sec_d[2:0] <= 3'h0;
249  else gps_pulse1sec_d[2:0] <= {gps_pulse1sec_d[1:0], gps_pulse1sec};
250 
251  if (config_rst) gps_pulse1sec_denoise[0] <= 1'b0;
253 
256 
259  end
260 
261 
262  always @ (posedge mclk) begin // was negedge
263  if (cmd_we) cmd_data_r <= cmd_data; // valid next after cmd_we;
264  we_d <= cmd_we && !cmd_a;
265  we_imu <= cmd_we && !cmd_a && (ctrl_addr[6:5] == LOGGER_PAGE_IMU);
266  we_gps <= cmd_we && !cmd_a && (ctrl_addr[6:5] == LOGGER_PAGE_GPS);
267  we_message <= cmd_we && !cmd_a && (ctrl_addr[6:5] == LOGGER_PAGE_MSG);
268  we_period <= cmd_we && !cmd_a && (ctrl_addr[6:0] == LOGGER_PERIOD);
277 
278  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]
279  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
280  if (we_config_msg) config_msg_mclk[4:0] <= cmd_data_r[LOGGER_CONF_MSG - 1 -: LOGGER_CONF_MSG_BITS]; // bits 12:8,13 - enable - {invert,extinp[3:0]} extinp[3:0]=='hf' - disable
281  if (we_config_syn) config_syn_mclk <= cmd_data_r[LOGGER_CONF_SYN - 1 -: LOGGER_CONF_SYN_BITS]; // bit 14, 15 - enable
282  if (we_config_rst) config_rst_mclk <= cmd_data_r[LOGGER_CONF_EN -1 -: LOGGER_CONF_EN_BITS]; // bit 16, 17 - enable
283  if (we_config_debug) config_debug_mclk[3:0] <= cmd_data_r[LOGGER_CONF_DBG - 1 -: LOGGER_CONF_DBG_BITS]; // bit 21:18, 22 - enable
284 
285  if (we_bitHalfPeriod) bitHalfPeriod_mclk[15:0] <= cmd_data_r[15:0];
286 
287  if (cmd_we && cmd_a) ctrl_addr[6:5] <= cmd_data[6:5];
288  if (cmd_we && cmd_a) ctrl_addr[4:0] <= cmd_data[4:0];
289  else if (we_d && (ctrl_addr[4:0]!=5'h1f)) ctrl_addr[4:0] <=ctrl_addr[4:0]+1; // no roll over,
290  end
291 
293  always @ (posedge xclk) begin
300  enable_gps <= (^config_gps[1:0]) && !config_rst; // both 00 and 11 - disable
301  enable_msg <= (config_gps[3:0] != 4'hf) && !config_rst;
303  end
304 
305  always @ (posedge xclk) begin
306  mux_data_source[15:0] <= channel[1]?
307  (channel[0]?msg_data[15:0]:extts_data[15:0]):
308  (channel[0]?nmea_data[15:0]:imu_data[15:0]);
309  mux_rdy_source <= channel[1]?
312  mux_data_final[15:0] <= ts_en?
313  timestamps_rdata[15:0]:
315  mux_data_source[15:0]:
316  16'h0); // replace 16'h0 with some pattern to debug output
317  end
318 
319 // generate strobes to copy configuration data from mclk to xclk domain
326 
328  .ADDR (LOGGER_ADDR),
329  .ADDR_MASK (LOGGER_MASK),
330  .NUM_CYCLES (6),
331  .ADDR_WIDTH (1),
332  .DATA_WIDTH (32),
333  .ADDR1 (LOGGER_STATUS),
334  .ADDR_MASK1 (LOGGER_STATUS_MASK)
335 
336  ) cmd_deser_32bit_i (
337  .rst (1'b0), //rst), // input
338  .clk (mclk), // input
339  .srst (mrst), // input
340  .ad (cmd_ad), // input[7:0]
341  .stb (cmd_stb), // input
342  .addr (cmd_a), // output[3:0]
343  .data (cmd_data), // output[31:0]
344  .we ({cmd_status,cmd_we}) // output
345  );
346 
348  .STATUS_REG_ADDR (LOGGER_STATUS_REG_ADDR),
349  .PAYLOAD_BITS (26),
350  .REGISTER_STATUS (1)
351  ) status_generate_i (
352  .rst (1'b0), // rst), // input
353  .clk (mclk), // input
354  .srst (mrst), // input
355  .we (cmd_status), // input
356  .wd (cmd_data[7:0]), // input[7:0]
357  .status ({sample_counter,2'b0}), // input[25:0] // 2 LSBs - may add "real" status
358  .ad (status_ad), // output[7:0]
359  .rq (status_rq), // output
360  .start (status_start) // input
361  );
362 
363  imu_spi393 i_imu_spi (
364 // .rst(rst),
365  .mclk (mclk), // system clock, negedge
366  .xclk (xclk), // half frequency (80 MHz nominal)
367  .we_ra (we_imu), // write enable for registers to log (@negedge mclk)
368  .we_div (we_bit_duration), // write enable for clock dividing(@negedge mclk)
369  .we_period (we_period), // write enable for IMU cycle period(@negedge mclk) 0 - disable, 1 - single, >1 - half bit periods
370  .wa (ctrl_addr[4:0]), // write address for register (5 bits, @negedge mclk)
371  .din (cmd_data_r[31:0]), // 16?-bit data in (di, not di_d)
372  .mosi (mosi), // to IMU, bit 2 in J9
373  .miso (miso), // from IMU, bit 3 on J9
374  .config_debug (config_debug[3:0]),
375  .sda (sda), // sda, shared with i2c, bit 1
376  .sda_en (sda_en), // enable sda output (when sda==0 and 1 cycle after sda 0->1)
377  .scl (scl), // scl, shared with i2c, bit 0
378  .scl_en (scl_en), // enable scl output (when scl==0 and 1 cycle after sda 0->1)
379  .ts (timestamp_request[0]), // timestamop request
380  .rdy (channel_ready[0]), // data ready
381  .rd_stb (channel_next[0]), // data read strobe (increment address)
382  .rdata (imu_data[15:0])); // data out (16 bits)
383 /*
384 logs events from odometer (can be software triggered), includes 56-byte message written to the buffer
385 So it is possible to assert trig input (will request timestamp), write message by software, then
386 de-assert the trig input - message with the timestamp will be logged
387 fixed-length de-noise circuitry with latency 256*T(xclk) (~3usec)
388 */
389  imu_message393 i_imu_message(
390  .mclk (mclk), // system clock, negedge
391  .xclk (xclk), // half frequency (80 MHz nominal)
392  .we (we_message), // write enable for registers to log (@negedge sclk), with lower data half
393  .wa (ctrl_addr[3:0]), // write address for register (4 bits, @negedge sclk)
394  .din (cmd_data_r[31:0]), // 16-bit data in multiplexed
395  .en (enable_msg), // enable module operation, if 0 - reset
396  .trig (message_trig), // leading edge - sample time, trailing set rdy
397  .ts (timestamp_request[3]),// timestamop request
398  .rdy (channel_ready[3]), // data ready
399  .rd_stb (channel_next[3]), // data read strobe (increment address)
400  .rdata (msg_data[15:0])); // data out (16 bits)
401 /* logs frame synchronization data from other camera (same as frame sync) **/
402 // ts_stb (mclk) -> trig)
403  imu_exttime393 i_imu_exttime(
404 // .rst (rst), // input global reset
405  .mclk (mclk), // system clock, negedge
406  .xclk (xclk), // half frequency (80 MHz nominal)
407  .mrst (mrst), // @mclk - sync reset
408  .xrst (xrst), // @xclk - sync reset
409  .en_chn_mclk (enable_syn_mclk), // enable module operation, if 0 - reset
410  .ts_stb_chn0 (ts_stb_chn0), // input
411  .ts_data_chn0 (ts_data_chn0), // input[7:0]
412  .ts_stb_chn1 (ts_stb_chn1), // input
413  .ts_data_chn1 (ts_data_chn1), // input[7:0]
414  .ts_stb_chn2 (ts_stb_chn2), // input
415  .ts_data_chn2 (ts_data_chn2), // input[7:0]
416  .ts_stb_chn3 (ts_stb_chn3), // input
417  .ts_data_chn3 (ts_data_chn3), // input[7:0]
418  .ts (timestamp_request[2]), // timestamop request
419  .rdy (channel_ready[2]), // data ready
420  .rd_stb (channel_next[2]), // data read strobe (increment address)
421  .rdata (extts_data[15:0])); // data out (16 bits)
422 
423  imu_timestamps393 i_imu_timestamps (
424  .xclk (xclk), // 80 MHz, posedge
425  .rst (!enable_timestamps), // reset (@posedge xclk)
426  .ts_snap (ts_local_snap), // output (@posedge xclk) - get local TS snapshot
427  .ts_stb (ts_local_stb), // input (@posedge xclk) - 1 xclk before local ts data
428  .ts_data (ts_local_data), // input[7:0] (@posedge xclk) - local TS data
429  .ts_rq (timestamp_request_long[3:0]), // input[3:0] requests to create timestamps (4 channels), @posedge xclk
430  .ts_ackn (timestamp_ackn[3:0]), // output[3:0] timestamp for this channel is stored
431  .ra ({channel[1:0],timestamp_sel[1:0]}), // input[3:0]read address (2 MSBs - channel number, 2 LSBs - usec_low, (usec_high ORed with channel <<24), sec_low, sec_high
432  .dout (timestamps_rdata[15:0])); // output[15:0] output data
433 
434  wire debug_unused_a; // SuppressThisWarning Veditor (unused)
435  rs232_rcv393 i_rs232_rcv (
436  .xclk (xclk), // half frequency (80 MHz nominal)
437  .bitHalfPeriod (bitHalfPeriod[15:0]), // half of the serial bit duration, in xclk cycles
438  .ser_di (ser_di), // rs232 (ttl) serial data in
439  .ser_rst (!enable_gps), // reset (force re-sync)
440  .ts_stb (gps_ts_stb), // strobe timestamp (start of message) (reset bit counters in nmea decoder)
441  .wait_just_pause (rs232_wait_pause), // may be used as reset for decoder
442  .start (rs232_start), // serial character start (single pulse)
443  .ser_do (ser_do), // serial data out(@posedge xclk) LSB first!
444  .ser_do_stb (ser_do_stb), // output data strobe (@posedge xclk), first cycle after ser_do becomes valid
445  .debug ({debug_unused_a, debug_state[15:12]}),
446  .bit_dur_cntr (debug_state[31:16]),
447  .bit_cntr (debug_state[11:7])
448  );
449  assign debug_state[6:0] = dbg_cntr [6:0];
450 
451  always @ (posedge xclk) begin
452  if (!enable_gps) dbg_cntr[7:0] <= 8'h0;
453  else if (rs232_start) dbg_cntr[7:0] <= dbg_cntr[7:0]+1;
454  end
455 
456  nmea_decoder393 i_nmea_decoder (
457  .mclk (mclk), // system clock, @posedge
458  .xclk (xclk), // 80MHz, posedge
459  .we (we_gps), // registers write enable
460  .wa (ctrl_addr[4:0]), // registers write address
461  .wd (cmd_data_r[7:0]), // write data
462  .start (gps_ts_stb), // start of the serial message
463  .rs232_wait_pause (rs232_wait_pause), // may be used as reset for decoder
464  .start_char (rs232_start), // serial character start (single pulse)
465  .nmea_sent_start (nmea_sent_start), // serial character start (single pulse)
466  .ser_di (ser_do), // serial data in (LSB first)
467  .ser_stb (ser_do_stb), // serial data strobe, single-cycle, first cycle after ser_di valid
468  .rdy (channel_ready[1]), // encoded nmea data ready
469  .rd_stb (channel_next[1]), // encoded nmea data read strobe (increment address)
470  .rdata (nmea_data[15:0]), // encoded data (16 bits)
471  .ser_rst (!enable_gps), // reset (now only debug register)
472  .debug()
473  );
474 
475 // Logger handshakes timestamps through request/grant, so it is OK to make slow serial communication with RTC)
476  logger_arbiter393 i_logger_arbiter(
477  .xclk (xclk), // 80 MHz, posedge
478  .rst (config_rst), // module reset
479  .ts_rq_in (timestamp_request[3:0]), // in requests for timestamp (single-cycle - just leading edge )
480  .ts_rq (timestamp_request_long[3:0]),// out request for timestamp, to timestmp module
481  .ts_grant (timestamp_ackn[3:0]), // granted ts requests from timestamping module
482  .rdy (channel_ready[3:0]), // channels ready (leading edge - became ready, trailing - no more data, use zero)
483  .nxt (channel_next[3:0]), // pulses to modules to output next word
484  .channel (channel[1:0]), // decoded channel number (2 bits)
485  .ts_sel (timestamp_sel[1:0]), // select timestamp word to be output (0..3)
486  .ts_en (ts_en), // 1 - use timestamp, 0 - channel data (or 16'h0 if !ready)
487  .dv (mux_data_valid), // output data valid (from registered mux - 2 stage - first selects data and ready, second ts/data/zero)
488  .sample_counter (sample_counter)); // number of 64-byte samples logged
489 
490  buf_xclk_mclk16_393 i_buf_xclk_mclk16(
491  .mclk (mclk), // posedge
492  .xclk (xclk), // posedge
493  .rst (config_rst), // @posedge xclk
494  .din (mux_data_final[15:0]),
496  .dout (data_out[15:0]),
498 
499 endmodule
500 
[7:0] 3464ts_data_chn2
Definition: event_logger.v:104
3535timestamp_selwire[1:0]
Definition: event_logger.v:194
3484we_bit_durationreg
Definition: event_logger.v:131
3422LOGGER_MASK'h7fe
Definition: event_logger.v:45
3552debug_unused_awire
Definition: event_logger.v:434
3491we_config_debugreg
Definition: event_logger.v:138
3546ext_di16wire[15:0]
Definition: event_logger.v:208
3423LOGGER_STATUS_MASK'h7ff
Definition: event_logger.v:46
3531timestamp_request_longwire[3:0]
Definition: event_logger.v:190
3509config_rst_mclkreg
Definition: event_logger.v:163
[7:0] 3455ts_local_data
Definition: event_logger.v:87
3497config_debugreg[3:0]
Definition: event_logger.v:146
3499we_config_imu_xclkwire
Definition: event_logger.v:150
[7:0] 3466ts_data_chn3
Definition: event_logger.v:107
3441LOGGER_CONF_DBG25
Definition: event_logger.v:68
3510config_debug_mclkreg[3:0]
Definition: event_logger.v:164
3528gps_pulse1sec_singlereg
Definition: event_logger.v:185
[7:0] 3460ts_data_chn0
Definition: event_logger.v:98
3429LOGGER_BIT_HALF_PERIOD2
Definition: event_logger.v:55
i_we_bitHalfPeriod_xclk pulse_cross_clock
Definition: event_logger.v:325
3533channel_nextwire[3:0]
Definition: event_logger.v:192
3515enable_timestampsreg
Definition: event_logger.v:171
3517gps_ts_stbwire
Definition: event_logger.v:174
3428LOGGER_BIT_DURATION1
Definition: event_logger.v:54
3539mux_rdy_sourcereg
Definition: event_logger.v:198
3522extts_datawire[15:0]
Definition: event_logger.v:177
3541rs232_wait_pausewire
Definition: event_logger.v:201
[15:0] 3569rdata
[GPIO_N-1:0] 3456ext_di
Definition: event_logger.v:89
i_imu_spi imu_spi393
Definition: event_logger.v:363
3514enable_syn_mclkwire[3:0]
Definition: event_logger.v:169
3487we_config_gpsreg
Definition: event_logger.v:134
3498bitHalfPeriodreg[15:0]
Definition: event_logger.v:147
3524timestamps_rdatawire[15:0]
Definition: event_logger.v:180
3493config_imureg[1:0]
Definition: event_logger.v:142
3511bitHalfPeriod_mclkreg[15:0]
Definition: event_logger.v:165
[31:0] 3617din
Definition: imu_spi393.v:50
[ADDR_MASK2!=0?2:ADDR_MASK1!=0?1:0:0] 9935we
Definition: cmd_deser.v:60
reg 3830wait_just_pause
Definition: rs232_rcv393.v:47
[ 4:0] 3616wa
Definition: imu_spi393.v:49
[15:0] 3826bitHalfPeriod
Definition: rs232_rcv393.v:43
3505config_imu_mclkreg[1:0]
Definition: event_logger.v:159
[4:0] 3834debug
Definition: rs232_rcv393.v:52
[7:0] 3563ts_data_chn2
3549cmd_data_rreg[31:0]
Definition: event_logger.v:212
reg 3832ser_do
Definition: rs232_rcv393.v:49
3421LOGGER_STATUS_REG_ADDR'h39
Definition: event_logger.v:44
[15:0] 3835bit_dur_cntr
Definition: rs232_rcv393.v:53
3488we_config_msgreg
Definition: event_logger.v:135
3489we_config_synreg
Definition: event_logger.v:136
i_logger_arbiter logger_arbiter393
Definition: event_logger.v:476
3529timestamp_requestwire[3:0]
Definition: event_logger.v:187
3548cmd_datawire[31:0]
Definition: event_logger.v:211
3486we_config_imureg
Definition: event_logger.v:133
3523msg_datawire[15:0]
Definition: event_logger.v:178
3507config_msg_mclkreg[4:0]
Definition: event_logger.v:161
[4:0] 3836bit_cntr
Definition: rs232_rcv393.v:54
status_generate_i status_generate
Definition: event_logger.v:347
[7:0] 3565ts_data_chn3
3439LOGGER_CONF_EN20
Definition: event_logger.v:66
[7:0] 3448cmd_ad
Definition: event_logger.v:79
3519ser_do_stbwire
Definition: event_logger.v:174
3506config_gps_mclkreg[3:0]
Definition: event_logger.v:160
3526gps_pulse1sec_denoisereg[1:0]
Definition: event_logger.v:183
[7:0] 3462ts_data_chn1
Definition: event_logger.v:101
3436LOGGER_CONF_MSG_BITS5
Definition: event_logger.v:63
3504we_bitHalfPeriod_xclkwire
Definition: event_logger.v:155
[DATA_WIDTH-1:0] 9934data
Definition: cmd_deser.v:59
3545pre_message_trigwire
Definition: event_logger.v:207
3501we_config_msg_xclkwire
Definition: event_logger.v:152
3516message_trigwire
Definition: event_logger.v:172
3508config_syn_mclkreg[3:0]
Definition: event_logger.v:162
3532channel_readywire[3:0]
Definition: event_logger.v:191
3440LOGGER_CONF_EN_BITS1
Definition: event_logger.v:67
3502we_config_rst_xclkwire
Definition: event_logger.v:153
3495config_msgreg[4:0]
Definition: event_logger.v:144
3500we_config_gps_xclkwire
Definition: event_logger.v:151
3538mux_data_sourcereg[15:0]
Definition: event_logger.v:197
3420LOGGER_STATUS'h722
Definition: event_logger.v:43
3432LOGGER_CONF_IMU_BITS2
Definition: event_logger.v:59
[7:0] 9931ad
Definition: cmd_deser.v:56
3472gps_pulse1secwire
Definition: event_logger.v:121
[ADDR_WIDTH-1:0] 9933addr
Definition: cmd_deser.v:58
3551cmd_statuswire
Definition: event_logger.v:214
3490we_config_rstreg
Definition: event_logger.v:137
3520imu_datawire[15:0]
Definition: event_logger.v:175
[7:0] 3561ts_data_chn1
reg 3833ser_do_stb
Definition: rs232_rcv393.v:50
i_imu_message imu_message393
Definition: event_logger.v:389
3530timestamp_acknwire[3:0]
Definition: event_logger.v:188
3537mux_data_validwire
Definition: event_logger.v:196
[7:0] 3559ts_data_chn0
i_imu_timestamps imu_timestamps393
Definition: event_logger.v:423
3544dbg_cntrreg[7:0]
Definition: event_logger.v:206
3435LOGGER_CONF_MSG13
Definition: event_logger.v:62
3437LOGGER_CONF_SYN18
Definition: event_logger.v:64
[15:0] 3602rdata
3525gps_pulse1sec_dreg[2:0]
Definition: event_logger.v:182
[15:0] 3467data_out
Definition: event_logger.v:111
3434LOGGER_CONF_GPS_BITS4
Definition: event_logger.v:61
[3:0] 3557en_chn_mclk
[7:0] 3450status_ad
Definition: event_logger.v:81
3470sample_counterwire[23:0]
Definition: event_logger.v:117
3494config_gpsreg[3:0]
Definition: event_logger.v:143
3540mux_data_finalreg[15:0]
Definition: event_logger.v:199
[31:0] 3469debug_state
Definition: event_logger.v:114
3527gps_pulse1sec_denoise_countreg[7:0]
Definition: event_logger.v:184
3534channelwire[1:0]
Definition: event_logger.v:193
3521nmea_datawire[15:0]
Definition: event_logger.v:176
cmd_deser_32bit_i cmd_deser
Definition: event_logger.v:327
3492we_bitHalfPeriodreg
Definition: event_logger.v:139
[GPIO_N-1:0] 3458ext_en
Definition: event_logger.v:91
i_imu_exttime imu_exttime393
Definition: event_logger.v:403
i_nmea_decoder nmea_decoder393
Definition: event_logger.v:456
[ALL_BITS-1:0] 10777status
i_rs232_rcv rs232_rcv393
Definition: event_logger.v:435
i_buf_xclk_mclk16 buf_xclk_mclk16_393
Definition: event_logger.v:490
[15:0] 3628rdata
Definition: imu_spi393.v:61
[ 3:0] 3620config_debug
Definition: imu_spi393.v:53
[GPIO_N-1:0] 3457ext_do
Definition: event_logger.v:90
3419LOGGER_ADDR'h720
Definition: event_logger.v:42
3442LOGGER_CONF_DBG_BITS4
Definition: event_logger.v:69
3543nmea_sent_startwire
Definition: event_logger.v:203
3503we_config_debug_xclkwire
Definition: event_logger.v:154
3479ctrl_addrreg[6:0]
Definition: event_logger.v:126
3542rs232_startwire
Definition: event_logger.v:202
3438LOGGER_CONF_SYN_BITS4
Definition: event_logger.v:65