x393  1.0
FPGAcodeforElphelNC393camera
sens_10398.v
Go to the documentation of this file.
1 
39 `timescale 1ns/1ps
40 
41 module sens_10398 #(
42  parameter SENSIO_ADDR = 'h330,
43  parameter SENSIO_ADDR_MASK = 'h7f8,
44  parameter SENSIO_CTRL = 'h0,
45  parameter SENSIO_STATUS = 'h1,
46  parameter SENSIO_JTAG = 'h2,
47 // parameter SENSIO_WIDTH = 'h3, // set line width (1.. 2^16) if 0 - use HACT
48  parameter SENSIO_DELAYS = 'h4, // 'h4..'h7 - each address sets 4 delays through 4 bytes of 32-bit data
49 // 5, swap lanes 6 - delays, 7 - phase
50  parameter SENSIO_STATUS_REG = 'h21,
51 
52  parameter SENS_JTAG_PGMEN = 8,
53  parameter SENS_JTAG_PROG = 6,
54  parameter SENS_JTAG_TCK = 4,
55  parameter SENS_JTAG_TMS = 2,
56  parameter SENS_JTAG_TDI = 0,
57 
58  parameter SENS_CTRL_MRST= 0, // 1: 0
59  parameter SENS_CTRL_ARST= 2, // 3: 2
60  parameter SENS_CTRL_ARO= 4, // 5: 4
61  parameter SENS_CTRL_RST_MMCM= 6, // 7: 6
62 // parameter SENS_CTRL_EXT_CLK= 8, // 9: 8
63  parameter SENS_CTRL_IGNORE_EMBED = 8, // 9: 8
64  parameter SENS_CTRL_LD_DLY= 10, // 10
65 
66  parameter SENS_CTRL_GP0= 12, // 13:12
67  parameter SENS_CTRL_GP1= 14, // 15:14
68 
69 // parameter SENS_CTRL_QUADRANTS = 12, // 17:12, enable - 20
70 // parameter SENS_CTRL_QUADRANTS_WIDTH = 6,
71 // parameter SENS_CTRL_QUADRANTS_EN = 20, // 17:12, enable - 20 (2 bits reserved)
72  parameter IODELAY_GRP = "IODELAY_SENSOR",
73  parameter integer IDELAY_VALUE = 0,
74  parameter real REFCLK_FREQUENCY = 200.0,
75  parameter HIGH_PERFORMANCE_MODE = "FALSE",
76  parameter SENS_PHASE_WIDTH= 8, // number of bits for te phase counter (depends on divisors)
77 // parameter SENS_PCLK_PERIOD = 3.000, // input period in ns, 0..100.000 - MANDATORY, resolution down to 1 ps
78  parameter SENS_BANDWIDTH = "OPTIMIZED", //"OPTIMIZED", "HIGH","LOW"
79 
80  parameter CLKIN_PERIOD_SENSOR = 3.000, // input period in ns, 0..100.000 - MANDATORY, resolution down to 1 ps
81  parameter CLKFBOUT_MULT_SENSOR = 3, // 330 MHz --> 990 MHz
82  parameter CLKFBOUT_PHASE_SENSOR = 0.000, // CLOCK FEEDBACK phase in degrees (3 significant digits, -360.000...+360.000)
83  parameter IPCLK_PHASE = 0.000,
84  parameter IPCLK2X_PHASE = 0.000,
85  parameter BUF_IPCLK = "BUFR",
86  parameter BUF_IPCLK2X = "BUFR",
87 
88  parameter SENS_DIVCLK_DIVIDE = 1, // Integer 1..106. Divides all outputs with respect to CLKIN
89  parameter SENS_REF_JITTER1 = 0.010, // Expected jitter on CLKIN1 (0.000..0.999)
90  parameter SENS_REF_JITTER2 = 0.010,
91  parameter SENS_SS_EN = "FALSE", // Enables Spread Spectrum mode
92  parameter SENS_SS_MODE = "CENTER_HIGH",//"CENTER_HIGH","CENTER_LOW","DOWN_HIGH","DOWN_LOW"
93  parameter SENS_SS_MOD_PERIOD = 10000, // integer 4000-40000 - SS modulation period in ns
94 
95  parameter HISPI_MSB_FIRST = 0,
96  parameter HISPI_NUMLANES = 4,
97  parameter HISPI_DELAY_CLK = "FALSE",
98  parameter HISPI_MMCM = "TRUE",
99  parameter HISPI_KEEP_IRST = 5, // number of cycles to keep irst on after release of prst (small number - use 1 hot)
100  parameter HISPI_WAIT_ALL_LANES = 4'h8, // number of output pixel cycles to wait after the earliest lane
101  parameter HISPI_FIFO_DEPTH = 4,
102  parameter HISPI_FIFO_START = 7,
103 
104  parameter HISPI_CAPACITANCE = "DONT_CARE",
105  parameter HISPI_DIFF_TERM = "TRUE",
106  parameter HISPI_UNTUNED_SPLIT = "FALSE", // Very power-hungry
107  parameter HISPI_DQS_BIAS = "TRUE",
108  parameter HISPI_IBUF_DELAY_VALUE = "0",
109  parameter HISPI_IBUF_LOW_PWR = "TRUE",
110  parameter HISPI_IFD_DELAY_VALUE = "AUTO",
111  parameter HISPI_IOSTANDARD = "DIFF_SSTL18_I", //"DIFF_SSTL18_II" for high current (13.4mA vs 8mA)
112 
113  // Other (non-HiSPi) sensor I/Os
114  parameter integer PXD_DRIVE = 12,
115  parameter PXD_IBUF_LOW_PWR = "TRUE",
116  parameter PXD_IOSTANDARD = "LVCMOS18", // 1.8V single-ended
117  parameter PXD_SLEW = "SLOW",
118  parameter PXD_CAPACITANCE = "DONT_CARE",
119  parameter PXD_CLK_DIV = 10, // 220MHz -> 22MHz
120  parameter PXD_CLK_DIV_BITS = 4
121 // ,parameter STATUS_ALIVE_WIDTH = 4
122 
123 )(
124  input pclk, // global clock input, pixel rate (220MHz for MT9F002)
125  input prst,
126  output prsts, // @pclk - includes sensor reset and sensor PLL reset
127  // delay control inputs
128  input mclk,
129  input mrst,
130  input [7:0] cmd_ad, // byte-serial command address/data (up to 6 bytes: AL-AH-D0-D1-D2-D3
131  input cmd_stb, // strobe (with first byte) for the command a/d
132  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]
133  output status_rq, // input request to send status downstream
134  input status_start, // Acknowledge of the first status packet byte (address)
135 
136  input trigger_mode, // running in triggered mode (0 - free running mode)
137  input trig, // per-sensor trigger input
138 
139 
140  // I/O pads
141  input [HISPI_NUMLANES-1:0] sns_dp,
142  input [HISPI_NUMLANES-1:0] sns_dn,
143  input sns_clkp, // was TDO on 10359
144  input sns_clkn, // was TDI on 10359
145 
146  output sens_ext_clk_p, // sns1_dp[6]
147  output sens_ext_clk_n, // sns1_dn[6] just to reduce EMI from the clock == gp[2]
148 
149  inout sns_pgm, // (pullup) SENSPGM
150  output sns_ctl_tck, // unused on 10398 - TCK
151  output sns_mrst, // sns_dp[7]
152  output sns_arst_tms, // sns_dn[7] == gp[3] TMS
153  output sns_gp0_tdi, // sns_dp[5] == gp[0] TDI (differs from 10353)
154  output sns_gp1, // sns_dn[5] == gp[1]
155 
156  input sns_flash_tdo, // sns_dp[4] TDO (differs from 10353)
157  input sns_shutter_done,// sns_dn[4] DONE (differs from 10353)
158 
159  output [11:0] pxd,
160  output hact,
161  output sof, // @pclk
162  output eof // @pclk
163 
164 
165 );
166 
167 
168  reg [31:0] data_r;
169 // reg [3:0] set_idelay;
170  reg set_lanes_map; // set sequence of lanes im the composite pixel line
171  reg set_fifo_dly; // set how long to wait after strating to fill FIFOs (in items) ~= 1/2 2^FIFO_DEPTH
177 
178  wire ps_rdy;
179  wire [7:0] ps_out;
183 
184  // programmed resets to the sensor
185  reg iaro_soft = 0;
186  wire iaro;
187  reg iarst = 0;
188  reg imrst = 0; // active low
189  reg rst_mmcm=1; // rst and command - en/dis
190  reg ld_idelay=0;
191  reg ignore_embed=0; // do not process sensor data marked as "embedded"
192 
193  wire [14:0] status;
194 
195  wire cmd_we;
196  wire [2:0] cmd_a;
197  wire [31:0] cmd_data;
198 
199  wire xfpgadone; // state of the MRST pin ("DONE" pin on external FPGA)
200  wire xfpgatdo; // TDO read from external FPGA
201  wire senspgmin;
202 
203  reg xpgmen=0; // enable programming mode for external FPGA
204  reg xfpgaprog=0; // PROG_B to be sent to an external FPGA
205  reg xfpgatck=0; // TCK to be sent to external FPGA
206  reg xfpgatms=0; // TMS to be sent to external FPGA
207  reg xfpgatdi=0; // TDI to be sent to external FPGA
208 
209  reg [1:0] gp_r; // sensor GP0, GP1. For now just software control, later use for something else
211  reg [1:0] prst_with_sens_mrst = 2'h3; // prst extended to include sensor reset and rst_mmcm
212  wire async_prst_with_sens_mrst = ~imrst | rst_mmcm; // mclk domain
213  reg hact_r;
214  wire hact_mclk;
216 
217  assign status = { locked_pxd_mmcm,
220 
221  assign iaro = trigger_mode? ~trig : iaro_soft;
222 
223  assign prsts = prst_with_sens_mrst[0]; // @pclk - includes sensor reset and sensor PLL reset
224 
225 
226  always @(posedge mclk) begin
227  if (mrst) data_r <= 0;
228  else if (cmd_we) data_r <= cmd_data;
229 
230  if (mrst) set_fifo_dly <= 0;
231  else set_fifo_dly <= cmd_we & (cmd_a==(SENSIO_DELAYS+0)); // TODO - add Symbolic names
232 
233  if (mrst) set_lanes_map <= 0;
234  else set_lanes_map <= cmd_we & (cmd_a==(SENSIO_DELAYS+1));
235 
236  if (mrst) set_idelays <= 0;
237  else set_idelays <= cmd_we & (cmd_a==(SENSIO_DELAYS+2));
238 
239  if (mrst) set_iclk_phase <= 0;
240  else set_iclk_phase <= cmd_we & (cmd_a==(SENSIO_DELAYS+3));
241 
242  if (mrst) set_status_r <=0;
243  else set_status_r <= cmd_we && (cmd_a== SENSIO_STATUS);
244 
245  if (mrst) set_ctrl_r <=0;
246  else set_ctrl_r <= cmd_we && (cmd_a== SENSIO_CTRL);
247 
248  if (mrst) set_jtag_r <=0;
249  else set_jtag_r <= cmd_we && (cmd_a== SENSIO_JTAG);
250 
251  if (mrst) xpgmen <= 0;
253 
254  if (mrst) xfpgaprog <= 0;
256 
257  if (mrst) xfpgatck <= 0;
259 
260  if (mrst) xfpgatms <= 0;
262 
263  if (mrst) xfpgatdi <= 0;
265 
266  if (mrst) imrst <= 0;
268 
269  if (mrst) iarst <= 0;
271 
272  if (mrst) iaro_soft <= 0;
274 
275  if (mrst) rst_mmcm <= 0;
277 
278  if (mrst) ignore_embed <= 0;
280 
281  if (mrst) ld_idelay <= 0;
283 
284  if (mrst) gp_r[0] <= 0;
285  else if (set_ctrl_r && data_r[SENS_CTRL_GP0 + 1]) gp_r[0] <= data_r[SENS_CTRL_GP0];
286 
287  if (mrst) gp_r[1] <= 0;
288  else if (set_ctrl_r && data_r[SENS_CTRL_GP1 + 1]) gp_r[1] <= data_r[SENS_CTRL_GP1];
289 
290  if (mrst || set_iclk_phase || set_idelays) hact_alive <= 0;
291  else if (hact_mclk) hact_alive <= 1;
292 
293 
294  end
295 
296  // generate (slow) clock for the sensor - it will be multiplied by the sensor VCO
297  always @(posedge pclk) begin
298  if (prst || (pxd_clk_cntr[PXD_CLK_DIV_BITS-2:0] == 0)) pxd_clk_cntr[PXD_CLK_DIV_BITS-2:0] <= (PXD_CLK_DIV / 2) -1;
300  // treat MSB separately to make 50% duty cycle
301  if (prst) pxd_clk_cntr[PXD_CLK_DIV_BITS-1] <= 0;
303 
304  end
305 
306  always @(posedge pclk or posedge async_prst_with_sens_mrst) begin
308  else if (prst) prst_with_sens_mrst <= 2'h3;
310 
311  hact_r <= hact;
312  end
313 
315  .ADDR (SENSIO_ADDR),
316  .ADDR_MASK (SENSIO_ADDR_MASK),
317  .NUM_CYCLES (6),
318  .ADDR_WIDTH (3),
319  .DATA_WIDTH (32)
320  ) cmd_deser_sens_io_i (
321  .rst (1'b0), // rst), // input
322  .clk (mclk), // input
323  .srst (mrst), // input
324  .ad (cmd_ad), // input[7:0]
325  .stb (cmd_stb), // input
326  .addr (cmd_a), // output[15:0]
327  .data (cmd_data), // output[31:0]
328  .we (cmd_we) // output
329  );
330 
332  .STATUS_REG_ADDR(SENSIO_STATUS_REG),
333  .PAYLOAD_BITS(15+1) // +3) // +STATUS_ALIVE_WIDTH) // STATUS_PAYLOAD_BITS)
334  ) status_generate_sens_io_i (
335  .rst (1'b0), // rst), // input
336  .clk (mclk), // input
337  .srst (mrst), // input
338  .we (set_status_r), // input
339  .wd (data_r[7:0]), // input[7:0]
340 // .status ({status_alive,status}), // input[25:0]
341  .status ({hact_alive,status}), // input[15:0]
342  .ad (status_ad), // output[7:0]
343  .rq (status_rq), // output
344  .start (status_start) // input
345  );
346 
359  .BUF_IPCLK (BUF_IPCLK),
383 
384  ) sens_hispi12l4_i (
385  .pclk (pclk), // input
386  .prst (prsts), //prst), // input
387  .sns_dp (sns_dp[3:0]), // input[3:0]
388  .sns_dn (sns_dn[3:0]), // input[3:0]
389  .sns_clkp (sns_clkp), // input
390  .sns_clkn (sns_clkn), // input
391  .pxd_out (pxd), // output[11:0] reg
392  .hact_out (hact), // output
393  .sof (sof), // output
394  .eof (eof), // output reg
395  .mclk (mclk), // input
396  .mrst (mrst), // input
397  .dly_data (data_r), // input[31:0]
398  .set_lanes_map (set_lanes_map), // input
399  .set_fifo_dly (set_fifo_dly), // input
400  .set_idelay ({4{set_idelays}}), // input[3:0]
401  .ld_idelay (ld_idelay), // input
402  .set_clk_phase (set_iclk_phase), // input
403  .rst_mmcm (rst_mmcm), // input
404  .ignore_embedded (ignore_embed), // input
405  .ps_rdy (ps_rdy), // output
406  .ps_out (ps_out), // output[7:0]
407  .locked_pxd_mmcm (locked_pxd_mmcm), // output
410  );
411 /*
412  obufds #(
413  .CAPACITANCE("DONT_CARE"),
414  .IOSTANDARD(PXD_IOSTANDARD), // not diff, just opposite phase signals
415  .SLEW("SLOW")
416  ) obufds_i (
417  .o (sens_ext_clk_p), // output
418  .ob (sens_ext_clk_n), // output
419  .i (pxd_clk_cntr[PXD_CLK_DIV_BITS-1]) // input
420  );
421 */
422 // reg [1:0] ext_clk_r;
423 // always @(posedge pclk) begin
424 // ext_clk_r <= {pxd_clk_cntr[PXD_CLK_DIV_BITS-1], !pxd_clk_cntr[PXD_CLK_DIV_BITS-1]};
425 // end
426 
427 
428  obuf #(
429  .CAPACITANCE (PXD_CAPACITANCE),
430  .DRIVE (PXD_DRIVE),
431  .IOSTANDARD (PXD_IOSTANDARD),
432  .SLEW (PXD_SLEW)
433  ) ext_clk_p_i (
434  .O (sens_ext_clk_p), // output
435  .I (pxd_clk_cntr[PXD_CLK_DIV_BITS-1]) //ext_clk_r[0]) // input
436  );
437 
438  obuf #(
439  .CAPACITANCE (PXD_CAPACITANCE),
440  .DRIVE (PXD_DRIVE),
441  .IOSTANDARD (PXD_IOSTANDARD),
442  .SLEW (PXD_SLEW)
443  ) ext_clk_n_i (
444  .O (sens_ext_clk_n), // output
445  .I (iarst) // ~pxd_clk_cntr[PXD_CLK_DIV_BITS-1]) // ext_clk_r[1]) // input
446  );
447 
448  // Probe programmable/ control PROGRAM pin
449  reg [1:0] xpgmen_d;
451 // mpullup i_mrst_pullup(mrst);
452  mpullup i_senspgm_pullup (sns_pgm);
453  mpullup i_sns_shutter_done_pullup (sns_shutter_done);
454 
455  always @ (posedge mclk) begin
456  if (mrst) force_senspgm <= 0;
457  else if (xpgmen_d[1:0]==2'b10) force_senspgm <= senspgmin;
458 
459  if (mrst) xpgmen_d <= 0;
460  else xpgmen_d <= {xpgmen_d[0], xpgmen};
461  end
462 
463  iobuf #(
464  .DRIVE (PXD_DRIVE),
465  .IBUF_LOW_PWR (PXD_IBUF_LOW_PWR),
466  .IOSTANDARD (PXD_IOSTANDARD),
467  .SLEW (PXD_SLEW)
468  ) senspgm_i (
469  .O (senspgmin), // output -senspgm pin state
470  .IO (sns_pgm), // inout I/O pad
471  .I (xpgmen?(~xfpgaprog):force_senspgm), // input
472  .T (~(xpgmen || force_senspgm)) // input - disable when reading DONE
473  );
474 
475  // generate ARO/TCK
476  obuf #(
477  .CAPACITANCE (PXD_CAPACITANCE),
478  .DRIVE (PXD_DRIVE),
479  .IOSTANDARD (PXD_IOSTANDARD),
480  .SLEW (PXD_SLEW)
481  ) aro_tck_i (
482  .O (sns_ctl_tck), // output
483  .I (xpgmen? xfpgatck : iaro) // input
484  );
485 
486 
487  // generate ARST/TMS
488  obuf #(
489  .CAPACITANCE (PXD_CAPACITANCE),
490  .DRIVE (PXD_DRIVE),
491  .IOSTANDARD (PXD_IOSTANDARD),
492  .SLEW (PXD_SLEW)
493  ) sns_arst_tms_i (
494  .O (sns_arst_tms), // output
495  .I (xpgmen? xfpgatms : iarst) // input
496  );
497 
498  // generate MRST
499  obuf #(
500  .CAPACITANCE (PXD_CAPACITANCE),
501  .DRIVE (PXD_DRIVE),
502  .IOSTANDARD (PXD_IOSTANDARD),
503  .SLEW (PXD_SLEW)
504  ) sns_mrst_i (
505  .O (sns_mrst), // output
506  . I(imrst) // input
507  );
508 
509  // generate GP0/TDI
510  obuf #(
511  .CAPACITANCE (PXD_CAPACITANCE),
512  .DRIVE (PXD_DRIVE),
513  .IOSTANDARD (PXD_IOSTANDARD),
514  .SLEW (PXD_SLEW)
515  ) sns_gp0_tdi_i (
516  .O (sns_gp0_tdi), // output
517  .I (xpgmen? xfpgatdi : gp_r[0]) // input
518  );
519 
520  // generate GP1
521  obuf #(
522  .CAPACITANCE (PXD_CAPACITANCE),
523  .DRIVE (PXD_DRIVE),
524  .IOSTANDARD (PXD_IOSTANDARD),
525  .SLEW (PXD_SLEW)
526  ) sns_gp1_i (
527  .O (sns_gp1), // output
528  .I (gp_r[1]) // input
529  );
530  // READ TDO (and flash)
532  .CAPACITANCE (PXD_CAPACITANCE),
533  .IBUF_DELAY_VALUE ("0"),
534  .IBUF_LOW_PWR (PXD_IBUF_LOW_PWR),
535  .IFD_DELAY_VALUE ("AUTO"),
536  .IOSTANDARD (PXD_IOSTANDARD)
537  ) sns_flash_tdo_i (
538  .O(xfpgatdo), // output
539  .I(sns_flash_tdo) // input
540  );
541 
542  // READ DONE (and shutter)
544  .CAPACITANCE (PXD_CAPACITANCE),
545  .IBUF_DELAY_VALUE ("0"),
546  .IBUF_LOW_PWR (PXD_IBUF_LOW_PWR),
547  .IFD_DELAY_VALUE ("AUTO"),
548  .IOSTANDARD (PXD_IOSTANDARD)
549  ) sns_shutter_done_i (
550  .O(xfpgadone), // output
551  .I(sns_shutter_done) // input
552  );
553 
554  // just to verify hact is active
555 
556  pulse_cross_clock hact_mclk_i (
557  .rst (1'b0), // input
558  .src_clk (pclk), // input
559  .dst_clk (mclk), // input
560  .in_pulse (hact && !hact_r), // input
561  .out_pulse (hact_mclk), // output
562  .busy() // output
563  );
564 
565 endmodule
566 
6873HISPI_NUMLANES4
Definition: sens_10398.v:96
6945statuswire[14:0]
Definition: sens_10398.v:193
6850SENS_CTRL_LD_DLY10
Definition: sens_10398.v:64
6934ps_outwire[7:0]
Definition: sens_10398.v:179
6927set_fifo_dlyreg
Definition: sens_10398.v:171
6839SENSIO_STATUS_REG'h21
Definition: sens_10398.v:50
6882HISPI_UNTUNED_SPLIT"FALSE"
Definition: sens_10398.v:106
6846SENS_CTRL_ARST2
Definition: sens_10398.v:59
11466I
Definition: obuf.v:48
6937clkfb_pxd_stopped_mmcmwire
Definition: sens_10398.v:182
6883HISPI_DQS_BIAS"TRUE"
Definition: sens_10398.v:107
real 6855REFCLK_FREQUENCY200.0
Definition: sens_10398.v:74
6949xfpgadonewire
Definition: sens_10398.v:199
6858SENS_BANDWIDTH"OPTIMIZED"
Definition: sens_10398.v:78
6952xpgmenreg
Definition: sens_10398.v:203
6844SENS_JTAG_TDI0
Definition: sens_10398.v:56
[HISPI_NUMLANES-1:0] 7091sns_dn
6837SENSIO_JTAG'h2
Definition: sens_10398.v:46
6892PXD_CAPACITANCE"DONT_CARE"
Definition: sens_10398.v:118
6836SENSIO_STATUS'h1
Definition: sens_10398.v:45
6960async_prst_with_sens_mrstwire
Definition: sens_10398.v:212
sens_hispi12l4_i sens_hispi12l4
Definition: sens_10398.v:347
6847SENS_CTRL_ARO4
Definition: sens_10398.v:60
[HISPI_NUMLANES-1:0] 6908sns_dn
Definition: sens_10398.v:142
6881HISPI_DIFF_TERM"TRUE"
Definition: sens_10398.v:105
6893PXD_CLK_DIV10
Definition: sens_10398.v:119
6943ld_idelayreg
Definition: sens_10398.v:190
6885HISPI_IBUF_LOW_PWR"TRUE"
Definition: sens_10398.v:109
6862IPCLK_PHASE0.000
Definition: sens_10398.v:83
6942rst_mmcmreg
Definition: sens_10398.v:189
6856HIGH_PERFORMANCE_MODE"FALSE"
Definition: sens_10398.v:75
6951senspgminwire
Definition: sens_10398.v:201
6912sens_ext_clk_n
Definition: sens_10398.v:147
6946cmd_wewire
Definition: sens_10398.v:195
6891PXD_SLEW"SLOW"
Definition: sens_10398.v:117
11290T
Definition: iobuf.v:51
[11:0] 7094pxd_out
6940iarstreg
Definition: sens_10398.v:187
6948cmd_datawire[31:0]
Definition: sens_10398.v:197
[11:0] 6921pxd
Definition: sens_10398.v:159
6880HISPI_CAPACITANCE"DONT_CARE"
Definition: sens_10398.v:104
6879HISPI_FIFO_START7
Definition: sens_10398.v:102
6911sens_ext_clk_p
Definition: sens_10398.v:146
6871SENS_SS_MOD_PERIOD10000
Definition: sens_10398.v:93
6959prst_with_sens_mrstreg[1:0]
Definition: sens_10398.v:211
6834SENSIO_ADDR_MASK'h7f8
Definition: sens_10398.v:43
6838SENSIO_DELAYS'h4
Definition: sens_10398.v:48
6845SENS_CTRL_MRST0
Definition: sens_10398.v:58
[HISPI_NUMLANES-1:0] 6907sns_dp
Definition: sens_10398.v:141
6950xfpgatdowire
Definition: sens_10398.v:200
[ADDR_MASK2!=0?2:ADDR_MASK1!=0?1:0:0] 9935we
Definition: cmd_deser.v:60
6961hact_rreg
Definition: sens_10398.v:213
6890PXD_IOSTANDARD"LVCMOS18"
Definition: sens_10398.v:116
[7:0] 6902status_ad
Definition: sens_10398.v:132
6884HISPI_IBUF_DELAY_VALUE"0"
Definition: sens_10398.v:108
11465O
Definition: obuf.v:47
6965force_senspgmreg
Definition: sens_10398.v:450
6926set_lanes_mapreg
Definition: sens_10398.v:170
6962hact_mclkwire
Definition: sens_10398.v:214
6944ignore_embedreg
Definition: sens_10398.v:191
6841SENS_JTAG_PROG6
Definition: sens_10398.v:53
6886HISPI_IFD_DELAY_VALUE"AUTO"
Definition: sens_10398.v:110
6935locked_pxd_mmcmwire
Definition: sens_10398.v:180
6941imrstreg
Definition: sens_10398.v:188
status_generate_sens_io_i status_generate
Definition: sens_10398.v:331
6894PXD_CLK_DIV_BITS4
Definition: sens_10398.v:120
6925data_rreg[31:0]
Definition: sens_10398.v:168
6840SENS_JTAG_PGMEN8
Definition: sens_10398.v:52
6869SENS_SS_EN"FALSE"
Definition: sens_10398.v:91
6848SENS_CTRL_RST_MMCM6
Definition: sens_10398.v:61
6864BUF_IPCLK"BUFR"
Definition: sens_10398.v:85
6932set_jtag_rreg
Definition: sens_10398.v:176
6930set_ctrl_rreg
Definition: sens_10398.v:174
6875HISPI_MMCM"TRUE"
Definition: sens_10398.v:98
6865BUF_IPCLK2X"BUFR"
Definition: sens_10398.v:86
6833SENSIO_ADDR'h330
Definition: sens_10398.v:42
6857SENS_PHASE_WIDTH8
Definition: sens_10398.v:76
6842SENS_JTAG_TCK4
Definition: sens_10398.v:54
6867SENS_REF_JITTER10.010
Definition: sens_10398.v:89
[DATA_WIDTH-1:0] 9934data
Definition: cmd_deser.v:59
sns_shutter_done_i ibuf_ibufg
Definition: sens_10398.v:543
6876HISPI_KEEP_IRST5
Definition: sens_10398.v:99
6963hact_alivereg
Definition: sens_10398.v:215
6874HISPI_DELAY_CLK"FALSE"
Definition: sens_10398.v:97
6868SENS_REF_JITTER20.010
Definition: sens_10398.v:90
6955xfpgatmsreg
Definition: sens_10398.v:206
6849SENS_CTRL_IGNORE_EMBED8
Definition: sens_10398.v:63
11288IO
Definition: iobuf.v:49
6931set_status_rreg
Definition: sens_10398.v:175
6866SENS_DIVCLK_DIVIDE1
Definition: sens_10398.v:88
6938iaro_softreg
Definition: sens_10398.v:185
6920sns_shutter_done
Definition: sens_10398.v:157
[7:0] 9931ad
Definition: cmd_deser.v:56
[ADDR_WIDTH-1:0] 9933addr
Definition: cmd_deser.v:58
6843SENS_JTAG_TMS2
Definition: sens_10398.v:55
6878HISPI_FIFO_DEPTH4
Definition: sens_10398.v:101
6936clkin_pxd_stopped_mmcmwire
Definition: sens_10398.v:181
sns_gp1_i obuf
Definition: sens_10398.v:521
6835SENSIO_CTRL'h0
Definition: sens_10398.v:44
6929set_iclk_phasereg
Definition: sens_10398.v:173
6956xfpgatdireg
Definition: sens_10398.v:207
integer 6854IDELAY_VALUE0
Definition: sens_10398.v:73
6851SENS_CTRL_GP012
Definition: sens_10398.v:66
i_sns_shutter_done_pullup mpullup
Definition: sens_10398.v:453
6954xfpgatckreg
Definition: sens_10398.v:205
6957gp_rreg[1:0]
Definition: sens_10398.v:209
[HISPI_NUMLANES * 8-1:0] 7100dly_data
6860CLKFBOUT_MULT_SENSOR3
Definition: sens_10398.v:81
6861CLKFBOUT_PHASE_SENSOR0.000
Definition: sens_10398.v:82
[7:0] 6900cmd_ad
Definition: sens_10398.v:130
6964xpgmen_dreg[1:0]
Definition: sens_10398.v:449
6889PXD_IBUF_LOW_PWR"TRUE"
Definition: sens_10398.v:115
6863IPCLK2X_PHASE0.000
Definition: sens_10398.v:84
6939iarowire
Definition: sens_10398.v:186
[HISPI_NUMLANES-1:0] 7103set_idelay
6933ps_rdywire
Definition: sens_10398.v:178
6872HISPI_MSB_FIRST0
Definition: sens_10398.v:95
hact_mclk_i pulse_cross_clock
Definition: sens_10398.v:556
6870SENS_SS_MODE"CENTER_HIGH"
Definition: sens_10398.v:92
[ALL_BITS-1:0] 10777status
6947cmd_awire[2:0]
Definition: sens_10398.v:196
6852SENS_CTRL_GP114
Definition: sens_10398.v:67
6958pxd_clk_cntrreg[PXD_CLK_DIV_BITS-1:0]
Definition: sens_10398.v:210
6928set_idelaysreg
Definition: sens_10398.v:172
6877HISPI_WAIT_ALL_LANES4'h8
Definition: sens_10398.v:100
11287O
Definition: iobuf.v:48
integer 6888PXD_DRIVE12
Definition: sens_10398.v:114
6953xfpgaprogreg
Definition: sens_10398.v:204
6859CLKIN_PERIOD_SENSOR3.000
Definition: sens_10398.v:80
senspgm_i iobuf
Definition: sens_10398.v:463
6887HISPI_IOSTANDARD"DIFF_SSTL18_I"
Definition: sens_10398.v:111
11289I
Definition: iobuf.v:50
[HISPI_NUMLANES-1:0] 7090sns_dp
6853IODELAY_GRP"IODELAY_SENSOR"
Definition: sens_10398.v:72
cmd_deser_sens_io_i cmd_deser
Definition: sens_10398.v:314