x393  1.0
FPGAcodeforElphelNC393camera
sensors393.v
Go to the documentation of this file.
1 
40 `timescale 1ns/1ps
41 
42 module sensors393 #(
43  // parameters, individual to sensor channels and those likely to be modified
44  parameter SENSOR_GROUP_ADDR = 'h400, // sensor registers base address
45  parameter SENSOR_BASE_INC = 'h040, // increment for sesor channel
46 
47  parameter HIST_SAXI_ADDR_REL = 'h100, // histograms control addresses (16 locations) relative to SENSOR_GROUP_ADDR
48  parameter HIST_SAXI_MODE_ADDR_REL = 'h110, // histograms mode address (1 locations) relative to SENSOR_GROUP_ADDR
49 
50  // Sesnors use 8 status registers, 'h20..'h27
51  parameter SENSI2C_STATUS_REG_BASE = 'h20, // 4 locations" x20, x22, x24, x26
52  parameter SENSI2C_STATUS_REG_INC = 2, // increment to the next sensor
53  parameter SENSI2C_STATUS_REG_REL = 0, // 4 locations" 'h20, 'h22, 'h24, 'h26
54  parameter SENSIO_STATUS_REG_REL = 1, // 4 locations" 'h21, 'h23, 'h25, 'h27
55  parameter SENSOR_NUM_HISTOGRAM= 3, // number of histogram channels
56  parameter HISTOGRAM_RAM_MODE = "BUF32", // "NOBUF", // valid: "NOBUF" (32-bits, no buffering), "BUF18", "BUF32"
57  parameter SENS_NUM_SUBCHN = 3, // number of subchannels for his sensor ports (1..4)
58  parameter SENS_GAMMA_BUFFER = 0, // 1 - use "shadow" table for clean switching, 0 - single table per channel
59 
60  // parameters defining address map
61  parameter SENSOR_CTRL_RADDR = 0, // relative to SENSOR_GROUP_ADDR
62  parameter SENSOR_CTRL_ADDR_MASK = 'h7ff, //
63  // bits of the SENSOR mode register
64  parameter SENSOR_MODE_WIDTH = 10,
65  parameter SENSOR_HIST_EN_BITS = 0, // 0..3 1 - enable histogram modules, disable after processing the started frame
66  parameter SENSOR_HIST_NRST_BITS = 4, // 0 - immediately reset all histogram modules
67  parameter SENSOR_CHN_EN_BIT = 8, // 1 - this enable channel
68  parameter SENSOR_16BIT_BIT = 9, // 0 - 8 bpp mode, 1 - 16 bpp (bypass gamma). Gamma-processed data is still used for histograms
69 
70  parameter SENSI2C_CTRL_RADDR = 2, // 302..'h303
71  parameter SENSI2C_CTRL_MASK = 'h7fe,
72  // sensor_i2c_io relative control register addresses
73  parameter SENSI2C_CTRL = 'h0,
74  // Control register bits
75  parameter SENSI2C_CMD_TABLE = 29, // [29]: 1 - write to translation table (ignore any other fields), 0 - write other fields
76  parameter SENSI2C_CMD_TAND = 28, // [28]: 1 - write table address (8 bits), 0 - write table data (28 bits)
77  parameter SENSI2C_CMD_RESET = 14, // [14] reset all FIFO (takes 16 clock pulses), also - stops i2c until run command
78  parameter SENSI2C_CMD_RUN = 13, // [13:12]3 - run i2c, 2 - stop i2c (needed before software i2c), 1,0 - no change to run state
79  parameter SENSI2C_CMD_RUN_PBITS = 1,
80  parameter SENSI2C_CMD_SOFT_SDA = 6, // [7:6] - SDA software control: 0 - nop, 1 - low, 2 - active high, 3 - float
81  parameter SENSI2C_CMD_SOFT_SCL = 4, // [5:4] - SCL software control: 0 - nop, 1 - low, 2 - active high, 3 - float
82  parameter SENSI2C_CMD_FIFO_RD = 3, // advance I2C read data FIFO by 1
83  parameter SENSI2C_CMD_ACIVE = 2, // [2] - SENSI2C_CMD_ACIVE_EARLY0, SENSI2C_CMD_ACIVE_SDA
84  parameter SENSI2C_CMD_ACIVE_EARLY0 = 1, // release SDA==0 early if next bit ==1
85  parameter SENSI2C_CMD_ACIVE_SDA = 0, // drive SDA=1 during the second half of SCL=1
86 
87  //i2c page table bit fields
88  parameter SENSI2C_TBL_RAH = 0, // high byte of the register address
89  parameter SENSI2C_TBL_RAH_BITS = 8,
90  parameter SENSI2C_TBL_RNWREG = 8, // read register (when 0 - write register
91  parameter SENSI2C_TBL_SA = 9, // Slave address in write mode
92  parameter SENSI2C_TBL_SA_BITS = 7,
93  parameter SENSI2C_TBL_NBWR = 16, // number of bytes to write (1..10)
94  parameter SENSI2C_TBL_NBWR_BITS = 4,
95  parameter SENSI2C_TBL_NBRD = 16, // number of bytes to read (1 - 8) "0" means "8"
96  parameter SENSI2C_TBL_NBRD_BITS = 3,
97  parameter SENSI2C_TBL_NABRD = 19, // number of address bytes for read (0 - 1 byte, 1 - 2 bytes)
98  parameter SENSI2C_TBL_DLY = 20, // bit delay (number of mclk periods in 1/4 of SCL period)
99  parameter SENSI2C_TBL_DLY_BITS= 8,
100 
101  parameter SENSI2C_STATUS = 'h1,
102 
103  parameter SENS_SYNC_RADDR = 'h4,
104  parameter SENS_SYNC_MASK = 'h7fc,
105  // 2 locations reserved for control/status (if they will be needed)
106  parameter SENS_SYNC_MULT = 'h2, // relative register address to write number of frames to combine in one (minus 1, '0' - each farme)
107  parameter SENS_SYNC_LATE = 'h3, // number of lines to delay late frame sync
108 
109 
110 
111  parameter SENS_GAMMA_RADDR = 'h38, // 'h38..'h3b was 4,
112  parameter SENS_GAMMA_ADDR_MASK = 'h7fc,
113  // sens_gamma registers
114  parameter SENS_GAMMA_CTRL = 'h0,
115  parameter SENS_GAMMA_ADDR_DATA = 'h1, // bit 20 ==1 - table address, bit 20==0 - table data (18 bits)
116  parameter SENS_GAMMA_HEIGHT01 = 'h2, // bits [15:0] - height minus 1 of image 0, [31:16] - height-1 of image1
117  parameter SENS_GAMMA_HEIGHT2 = 'h3, // bits [15:0] - height minus 1 of image 2 ( no need for image 3)
118  // bits of the SENS_GAMMA_CTRL mode register
119  parameter SENS_GAMMA_MODE_WIDTH = 5, // does not include trig
120  parameter SENS_GAMMA_MODE_BAYER = 0,
121  parameter SENS_GAMMA_MODE_PAGE = 2,
122  parameter SENS_GAMMA_MODE_EN = 3,
123  parameter SENS_GAMMA_MODE_REPET = 4,
124  parameter SENS_GAMMA_MODE_TRIG = 5,
125 
126 // Vignetting correction / pixel value scaling - controlled via single data word (same as in 252), some of bits [23:16]
127 // are used to select register, bits 25:24 - select sub-frame
128  parameter SENS_LENS_RADDR = 'h3c,
129  parameter SENS_LENS_ADDR_MASK = 'h7fc,
130  parameter SENS_LENS_COEFF = 'h3, // set vignetting/scale coefficients (
131  parameter SENS_LENS_AX = 'h00, // 00000...
132  parameter SENS_LENS_AX_MASK = 'hf8,
133  parameter SENS_LENS_AY = 'h08, // 00001...
134  parameter SENS_LENS_AY_MASK = 'hf8,
135  parameter SENS_LENS_C = 'h10, // 00010...
136  parameter SENS_LENS_C_MASK = 'hf8,
137  parameter SENS_LENS_BX = 'h20, // 001.....
138  parameter SENS_LENS_BX_MASK = 'he0,
139  parameter SENS_LENS_BY = 'h40, // 010.....
140  parameter SENS_LENS_BY_MASK = 'he0,
141  parameter SENS_LENS_SCALES = 'h60, // 01100...
142  parameter SENS_LENS_SCALES_MASK = 'hf8,
143  parameter SENS_LENS_FAT0_IN = 'h68, // 01101000
144  parameter SENS_LENS_FAT0_IN_MASK = 'hff,
145  parameter SENS_LENS_FAT0_OUT = 'h69, // 01101001
146  parameter SENS_LENS_FAT0_OUT_MASK = 'hff,
147  parameter SENS_LENS_POST_SCALE = 'h6a, // 01101010
148  parameter SENS_LENS_POST_SCALE_MASK = 'hff,
149 
150  parameter SENSIO_RADDR = 8, //'h408 .. 'h40f
151  parameter SENSIO_ADDR_MASK = 'h7f8,
152  // sens_parallel12 registers
153  parameter SENSIO_CTRL = 'h0,
154  // SENSIO_CTRL register bits
155  parameter SENS_CTRL_MRST = 0, // 1: 0
156  parameter SENS_CTRL_ARST = 2, // 3: 2
157  parameter SENS_CTRL_ARO = 4, // 5: 4
158  parameter SENS_CTRL_RST_MMCM = 6, // 7: 6
159 `ifdef HISPI
160  parameter SENS_CTRL_IGNORE_EMBED =8, // 9: 8
161 `else
162  parameter SENS_CTRL_EXT_CLK = 8, // 9: 8
163 `endif
164  parameter SENS_CTRL_LD_DLY = 10, // 10
165 `ifdef HISPI
166  parameter SENS_CTRL_GP0= 12, // 13:12
167  parameter SENS_CTRL_GP1= 14, // 15:14
168 `else
169  parameter SENS_CTRL_QUADRANTS = 12, // 17:12, enable - 20
170  parameter SENS_CTRL_QUADRANTS_WIDTH = 6,
171  parameter SENS_CTRL_QUADRANTS_EN = 20, // 17:12, enable - 20 (2 bits reserved)
172 `endif
173  parameter SENSIO_STATUS = 'h1,
174  parameter SENSIO_JTAG = 'h2,
175  // SENSIO_JTAG register bits
176  parameter SENS_JTAG_PGMEN = 8,
177  parameter SENS_JTAG_PROG = 6,
178  parameter SENS_JTAG_TCK = 4,
179  parameter SENS_JTAG_TMS = 2,
180  parameter SENS_JTAG_TDI = 0,
181 `ifndef HISPI
182  parameter SENSIO_WIDTH = 'h3, // 1.. 2^16, 0 - use HACT
183 `endif
184  parameter SENSIO_DELAYS = 'h4, // 'h4..'h7
185  // 4 of 8-bit delays per register
186  // sensor_i2c_io command/data write registers s (relative to SENSOR_GROUP_ADDR)
187  parameter SENSI2C_ABS_RADDR = 'h10, // 'h410..'h41f
188  parameter SENSI2C_REL_RADDR = 'h20, // 'h420..'h42f
189  parameter SENSI2C_ADDR_MASK = 'h7f0, // both for SENSI2C_ABS_ADDR and SENSI2C_REL_ADDR
191  // sens_hist registers (relative to SENSOR_GROUP_ADDR)
192  parameter HISTOGRAM_RADDR0 = 'h30, //
193  parameter HISTOGRAM_RADDR1 = 'h32, //
194  parameter HISTOGRAM_RADDR2 = 'h34, //
195  parameter HISTOGRAM_RADDR3 = 'h36, //
196  parameter HISTOGRAM_ADDR_MASK = 'h7fe, // for each channel
197  // sens_hist registers
198  parameter HISTOGRAM_LEFT_TOP = 'h0,
199  parameter HISTOGRAM_WIDTH_HEIGHT = 'h1, // 1.. 2^16, 0 - use HACT
200 
201  //sensor_i2c_io other parameters
202  parameter integer SENSI2C_DRIVE= 12,
203  parameter SENSI2C_IBUF_LOW_PWR= "TRUE",
204  parameter SENSI2C_SLEW = "SLOW",
205 
206 `ifndef HISPI
207  //sensor_fifo parameters
208  parameter SENSOR_DATA_WIDTH = 12,
209  parameter SENSOR_FIFO_2DEPTH = 4,
210  parameter [3:0] SENSOR_FIFO_DELAY = 5, // 7,
211 `endif
212  // other parameters for histogram_saxi module
213  parameter HIST_SAXI_ADDR_MASK = 'h7f0,
214  parameter HIST_SAXI_MODE_WIDTH = 8,
215  parameter HIST_SAXI_EN = 0,
216  parameter HIST_SAXI_NRESET = 1,
217  parameter HIST_CONFIRM_WRITE = 2, // wait write confirmation for each block
218  parameter HIST_SAXI_AWCACHE = 4'h3, //..7 cache mode (4 bits, default 4'h3)
219 
220  parameter HIST_SAXI_MODE_ADDR_MASK = 'h7ff,
221  parameter NUM_FRAME_BITS = 4, // number of bits use for frame number
222 
223  // Other parameters
224  parameter SENS_SYNC_FBITS = 16, // number of bits in a frame counter for linescan mode
225  parameter SENS_SYNC_LBITS = 16, // number of bits in a line counter for sof_late output (limited by eof)
226  parameter SENS_SYNC_LATE_DFLT = 15, // number of lines to delay late frame sync
227  parameter SENS_SYNC_MINBITS = 8, // number of bits to enforce minimal frame period
228  parameter SENS_SYNC_MINPER = 130, // minimal frame period (in pclk/mclk?)
229 
230 
231  // sens_parallel12 other parameters
232 
233 // parameter IODELAY_GRP ="IODELAY_SENSOR", // may need different for different channels?
234  parameter integer IDELAY_VALUE = 0,
235  parameter integer PXD_DRIVE = 12,
236  parameter PXD_IBUF_LOW_PWR = "TRUE",
237  parameter PXD_SLEW = "SLOW",
238  parameter real SENS_REFCLK_FREQUENCY = 300.0,
239  parameter SENS_HIGH_PERFORMANCE_MODE = "FALSE",
240 `ifdef HISPI
241  parameter PXD_CAPACITANCE = "DONT_CARE",
242  parameter PXD_CLK_DIV = 10, // 220MHz -> 22MHz
243  parameter PXD_CLK_DIV_BITS = 4,
244 `endif
245  parameter SENS_PHASE_WIDTH= 8, // number of bits for te phase counter (depends on divisors)
246 // parameter SENS_PCLK_PERIOD = 10.000, // input period in ns, 0..100.000 - MANDATORY, resolution down to 1 ps
247  parameter SENS_BANDWIDTH = "OPTIMIZED", //"OPTIMIZED", "HIGH","LOW"
248 
249  // parameters for the sensor-synchronous clock PLL
250 `ifdef HISPI
251  parameter CLKIN_PERIOD_SENSOR = 3.000, // input period in ns, 0..100.000 - MANDATORY, resolution down to 1 ps
252  parameter CLKFBOUT_MULT_SENSOR = 3, // 330 MHz --> 990 MHz
253  parameter CLKFBOUT_PHASE_SENSOR = 0.000, // CLOCK FEEDBACK phase in degrees (3 significant digits, -360.000...+360.000)
254  parameter IPCLK_PHASE = 0.000,
255  parameter IPCLK2X_PHASE = 0.000,
256  parameter PXD_IOSTANDARD = "LVCMOS18",
257  parameter SENSI2C_IOSTANDARD = "LVCMOS18",
258 `else
259  parameter CLKIN_PERIOD_SENSOR = 10.000, // input period in ns, 0..100.000 - MANDATORY, resolution down to 1 ps
260  parameter CLKFBOUT_MULT_SENSOR = 8, // 100 MHz --> 800 MHz
261  parameter CLKFBOUT_PHASE_SENSOR = 0.000, // CLOCK FEEDBACK phase in degrees (3 significant digits, -360.000...+360.000)
262  parameter IPCLK_PHASE = 0.000,
263  parameter IPCLK2X_PHASE = 0.000,
264  parameter PXD_IOSTANDARD = "LVCMOS25",
265  parameter SENSI2C_IOSTANDARD = "LVCMOS25",
266 `endif
267 // parameter BUF_IPCLK = "BUFR",
268 // parameter BUF_IPCLK2X = "BUFR",
269  parameter BUF_IPCLK_SENS0 = "BUFR", //G", // "BUFR", // BUFR fails for both clocks for sensors1 and 3
270  parameter BUF_IPCLK2X_SENS0 = "BUFR", //G", // "BUFR",
272  parameter BUF_IPCLK_SENS1 = "BUFG", // "BUFR", // BUFR fails for both clocks for sensors1 and 3
273  parameter BUF_IPCLK2X_SENS1 = "BUFG", // "BUFR",
275  parameter BUF_IPCLK_SENS2 = "BUFR", //G", // "BUFR", // BUFR fails for both clocks for sensors1 and 3
276  parameter BUF_IPCLK2X_SENS2 = "BUFR", //G", // "BUFR",
278  parameter BUF_IPCLK_SENS3 = "BUFG", // "BUFR", // BUFR fails for both clocks for sensors1 and 3
279  parameter BUF_IPCLK2X_SENS3 = "BUFG", // "BUFR",
280 
282  parameter SENS_DIVCLK_DIVIDE = 1, // Integer 1..106. Divides all outputs with respect to CLKIN
283  parameter SENS_REF_JITTER1 = 0.010, // Expected jitter on CLKIN1 (0.000..0.999)
284  parameter SENS_REF_JITTER2 = 0.010,
285  parameter SENS_SS_EN = "FALSE", // Enables Spread Spectrum mode
286  parameter SENS_SS_MODE = "CENTER_HIGH",//"CENTER_HIGH","CENTER_LOW","DOWN_HIGH","DOWN_LOW"
287  parameter SENS_SS_MOD_PERIOD = 10000 // integer 4000-40000 - SS modulation period in ns
288 `ifdef HISPI
289  ,parameter HISPI_MSB_FIRST = 0,
290  parameter HISPI_NUMLANES = 4,
291  parameter HISPI_DELAY_CLK0= "FALSE",
292  parameter HISPI_DELAY_CLK1= "FALSE",
293  parameter HISPI_DELAY_CLK2= "FALSE",
294  parameter HISPI_DELAY_CLK3= "FALSE",
295  parameter HISPI_MMCM0 = "TRUE",
296  parameter HISPI_MMCM1 = "TRUE",
297  parameter HISPI_MMCM2 = "TRUE",
298  parameter HISPI_MMCM3 = "TRUE",
299  parameter HISPI_KEEP_IRST = 5, // number of cycles to keep irst on after release of prst (small number - use 1 hot)
300  parameter HISPI_WAIT_ALL_LANES = 4'h8, // number of output pixel cycles to wait after the earliest lane
301  parameter HISPI_FIFO_DEPTH = 4,
302  parameter HISPI_FIFO_START = 7,
303  parameter HISPI_CAPACITANCE = "DONT_CARE",
304  parameter HISPI_DIFF_TERM = "TRUE",
305  parameter HISPI_UNTUNED_SPLIT = "FALSE", // Very power-hungry
306  parameter HISPI_DQS_BIAS = "TRUE",
307  parameter HISPI_IBUF_DELAY_VALUE = "0",
308  parameter HISPI_IBUF_LOW_PWR = "TRUE",
309  parameter HISPI_IFD_DELAY_VALUE = "AUTO",
310  parameter HISPI_IOSTANDARD = "DIFF_SSTL18_I" //"DIFF_SSTL18_II" for high current (13.4mA vs 8mA)
311 `endif
312 
313 `ifdef DEBUG_RING
314  ,parameter DEBUG_CMD_LATENCY = 2
315 `endif
316 
317 ) (
318 // input rst,
319 // will generate it here
320  input pclk, // global clock input, pixel rate (96MHz for MT9P006)
321 `ifdef USE_PCLK2X
322  input pclk2x, // global clock input, double pixel rate (192MHz for MT9P006)
323 `endif
324  input ref_clk, // IODELAY calibration
325  input dly_rst,
326  input mrst, // @posedge mclk, sync reset
327  input prst, // @posedge pclk, sync reset
328  input arst, // @posedge aclk, sync reset
329 
330  // programming interface
331  input mclk, // global clock, half DDR3 clock, synchronizes all I/O through the command port
332  input [7:0] cmd_ad_in, // byte-serial command address/data (up to 6 bytes: AL-AH-D0-D1-D2-D3
333  input cmd_stb_in, // strobe (with first byte) for the command a/d
334  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]
335  output status_rq, // input request to send status downstream
336  input status_start, // Acknowledge of the first status packet byte (address)
337 
338  // I/O pads, pin names match circuit diagram (each sensor)
339 `ifdef HISPI
340  input [15:0] sns_dp,
341  input [15:0] sns_dn,
342  inout [15:0] sns_dp74, // SuppressThisWarning all - unused yet
343  inout [15:0] sns_dn74, // SuppressThisWarning all - unused yet
344  input [3:0] sns_clkp, // SuppressThisWarning all - input-only in HiSPi mode
345  input [3:0] sns_clkn, // SuppressThisWarning all - input-only in HiSPi mode
346 `else
347  inout [31:0] sns_dp,
348  inout [31:0] sns_dn,
349  inout [3:0] sns_clkp,
350  inout [3:0] sns_clkn,
351 `endif
352  inout [3:0] sns_scl,
353  inout [3:0] sns_sda,
354 
355 `ifdef HISPI
356  inout [3:0] sns_ctl, // SuppressThisWarning all - output-only in HiSPi mode
357 `else
358  inout [3:0] sns_ctl,
359 `endif
360  inout [3:0] sns_pg,
361 
362  // Memory interface (4 channels)
363  input [3:0] frame_run_mclk, // input [3:0] - enable sensor data to memory buffer
364  input [3:0] rpage_set, // set internal read page to rpage_in (reset pointers)
365  input [3:0] rpage_next, // advance to next page (and reset lower bits to 0)
366  input [3:0] buf_rd, // read buffer to memory, increment read address (register enable will be delayed)
367  output [255:0] buf_dout, // data out
368  output [3:0] page_written, // single mclk pulse: buffer page (full or partial) is written to the memory buffer
369 
370  // Lower bits of frame numbers to use with the histograms, get from the sequencers
371  // trigger inputs
372  input trigger_mode, // common to all sensors - running in triggered mode (0 - free running mode)
373  input [3:0] trig_in, // per-sensor trigger input
374  output [3:0] sof_out_pclk, // @ pclk start of frame
375  output [3:0] eof_out_pclk, // @ pclk end of frame
376  output [3:0] sof_out_mclk, // @ mclk start of frame - use to run sequencer, so register writes should be before compressor start
377  output [3:0] sof_late_mclk,// @ mclk start of frame, delayed (use to start compressor and interrupts)
378 
379 
383  input [NUM_FRAME_BITS-1:0] frame_num3,
384 
385  output idelay_rdy, // need to connect outputs to prevent optimizing out
386 
387  // S_AXI interface write only (histograms out)
388  // write address
389  input aclk, // global clock for S_AXI0 (150 MHz)
390  output [31:0] saxi_awaddr, // AXI PS Slave GP0 AWADDR[31:0], input
391  output saxi_awvalid, // AXI PS Slave GP0 AWVALID, input
392  input saxi_awready, // AXI PS Slave GP0 AWREADY, output
393  output [5:0] saxi_awid, // AXI PS Slave GP0 AWID[5:0], input
394  output [1:0] saxi_awlock, // AXI PS Slave GP0 AWLOCK[1:0], input
395  output [ 3:0] saxi_awcache, // AXI PS Slave GP0 AWCACHE[3:0], input
396  output [ 2:0] saxi_awprot, // AXI PS Slave GP0 AWPROT[2:0], input
397  output [ 3:0] saxi_awlen, // AXI PS Slave GP0 AWLEN[3:0], input
398  output [ 1:0] saxi_awsize, // AXI PS Slave GP0 AWSIZE[1:0], input
399  output [ 1:0] saxi_awburst, // AXI PS Slave GP0 AWBURST[1:0], input
400  output [ 3:0] saxi_awqos, // AXI PS Slave GP0 AWQOS[3:0], input
401  // write data
402  output [31:0] saxi_wdata, // AXI PS Slave GP0 WDATA[31:0], input
403  output saxi_wvalid, // AXI PS Slave GP0 WVALID, input
404  input saxi_wready, // AXI PS Slave GP0 WREADY, output
405  output [ 5:0] saxi_wid, // AXI PS Slave GP0 WID[5:0], input
406  output saxi_wlast, // AXI PS Slave GP0 WLAST, input
407  output [ 3:0] saxi_wstrb, // AXI PS Slave GP0 WSTRB[3:0], input
408  // write response
409  input saxi_bvalid, // AXI PS Slave GP0 BVALID, output
410  output saxi_bready, // AXI PS Slave GP0 BREADY, input
411  input [ 5:0] saxi_bid, // AXI PS Slave GP0 BID[5:0], output
412  input [ 1:0] saxi_bresp // AXI PS Slave GP0 BRESP[1:0], output
413 `ifdef DEBUG_SENS_MEM_PAGES
414  ,output [2 * 4 - 1 : 0] dbg_rpage
415  ,output [2 * 4 - 1 : 0] dbg_wpage
416 `endif
417 
418 `ifdef DEBUG_RING
419  ,output debug_do, // output to the debug ring
420  input debug_sl, // 0 - idle, (1,0) - shift, (1,1) - load
421  input debug_di // input from the debug ring
422 `endif
423 
424 );
426 `ifdef DEBUG_RING
427  localparam DEBUG_RING_LENGTH = 5;
428  wire [DEBUG_RING_LENGTH:0] debug_ring; // TODO: adjust number of bits
429  assign debug_do = debug_ring[0];
431 `endif
432 
433 
434  wire [1:0] idelay_ctrl_rdy; // need to connect outputs to prevent optimizing out
436  reg [7:0] cmd_ad;
437  reg cmd_stb;
438  wire [31:0] status_ad_chn;
439  wire [3:0] status_rq_chn;
440  wire [3:0] status_start_chn;
441 
442  wire [63:0] px_data;
443  wire [3:0] px_valid;
444  wire [3:0] last_in_line;
445  wire [3:0] hist_request;
446  wire [3:0] hist_grant;
447  wire [7:0] hist_chn;
448  wire [3:0] hist_dvalid;
449  wire [127:0] hist_data;
450 
452 
453 
454 
455 
456  always @ (posedge mclk) begin
457  cmd_ad <= cmd_ad_in;
458  cmd_stb <= cmd_stb_in;
459  end
460 
461  generate
462  genvar i;
463  for (i=0; i < 4; i=i+1) begin: sensor_channel_block
464  sensor_channel #(
465  .SENSOR_NUMBER (i),
506  .SENSI2C_TBL_RAH (SENSI2C_TBL_RAH), // high byte of the register address
508  .SENSI2C_TBL_RNWREG (SENSI2C_TBL_RNWREG), // read register (when 0 - write register
509  .SENSI2C_TBL_SA (SENSI2C_TBL_SA), // Slave address in write mode
511  .SENSI2C_TBL_NBWR (SENSI2C_TBL_NBWR), // number of bytes to write (1..10)
513  .SENSI2C_TBL_NBRD (SENSI2C_TBL_NBRD), // number of bytes to read (1 - 8) "0" means "8"
515  .SENSI2C_TBL_NABRD (SENSI2C_TBL_NABRD), // number of address bytes for read (0 - 1 byte, 1 - 2 bytes)
516  .SENSI2C_TBL_DLY (SENSI2C_TBL_DLY), // bit delay (number of mclk periods in 1/4 of SCL period)
559 `ifdef HISPI
561 `else
562  .SENS_CTRL_EXT_CLK (SENS_CTRL_EXT_CLK),
563 `endif
565 `ifdef HISPI
568 `else
569  .SENS_CTRL_QUADRANTS (SENS_CTRL_QUADRANTS),
570  .SENS_CTRL_QUADRANTS_WIDTH (SENS_CTRL_QUADRANTS_WIDTH),
571  .SENS_CTRL_QUADRANTS_EN (SENS_CTRL_QUADRANTS_EN),
572 `endif
580 `ifndef HISPI
581  .SENSIO_WIDTH (SENSIO_WIDTH),
582 `endif
599 `ifndef HISPI
600  .SENSOR_DATA_WIDTH (SENSOR_DATA_WIDTH),
601  .SENSOR_FIFO_2DEPTH (SENSOR_FIFO_2DEPTH),
602  .SENSOR_FIFO_DELAY (SENSOR_FIFO_DELAY),
603 `endif
604  .IODELAY_GRP ((i & 2)?"IODELAY_SENSOR_34":"IODELAY_SENSOR_12"),
606  .PXD_DRIVE (PXD_DRIVE),
609  .PXD_SLEW (PXD_SLEW),
612 `ifdef HISPI
616 `endif
618 // .SENS_PCLK_PERIOD (SENS_PCLK_PERIOD),
625  .BUF_IPCLK ((i & 2) ? ((i & 1) ? BUF_IPCLK_SENS3 : BUF_IPCLK_SENS2) : ((i & 1) ?BUF_IPCLK_SENS1 :BUF_IPCLK_SENS0 )),
626  .BUF_IPCLK2X ((i & 2) ? ((i & 1) ? BUF_IPCLK2X_SENS3 : BUF_IPCLK2X_SENS2) : ((i & 1) ?BUF_IPCLK2X_SENS1 :BUF_IPCLK2X_SENS0 )),
632  .SENS_SS_MOD_PERIOD (SENS_SS_MOD_PERIOD)
633 `ifdef HISPI
636 
637  .HISPI_DELAY_CLK ((i & 2) ? ((i & 1) ? HISPI_DELAY_CLK3 : HISPI_DELAY_CLK2) : ((i & 1) ?HISPI_DELAY_CLK1 : HISPI_DELAY_CLK0 )),
638  .HISPI_MMCM ((i & 2) ? ((i & 1) ? HISPI_MMCM3 : HISPI_MMCM2) : ((i & 1) ?HISPI_MMCM1 : HISPI_MMCM0 )),
650  .HISPI_IOSTANDARD (HISPI_IOSTANDARD)
651 `endif
652 
653 `ifdef DEBUG_RING
654  ,.DEBUG_CMD_LATENCY (DEBUG_CMD_LATENCY)
655 `endif
656  ) sensor_channel_i (
657  .pclk (pclk), // input
658 `ifdef USE_PCLK2X
659  .pclk2x (pclk2x), // input
660 `endif
661  .mrst (mrst), // input
662  .prst (prst), // input
663 `ifdef HISPI
664  .sns_dp (sns_dp[i * 4 +: 4]), // input[3:0]
665  .sns_dn (sns_dn[i * 4 +: 4]), // input[3:0]
666  .sns_dp74 (sns_dp74[i * 4 +: 4]), // input[3:0]
667  .sns_dn74 (sns_dn74[i * 4 +: 4]), // input[3:0]
668  .sns_clkp (sns_clkp[i]), // input
669  .sns_clkn (sns_clkn[i]), // input
670 `else
671  .sns_dp (sns_dp[i * 8 +: 8]), // inout[7:0]
672  .sns_dn (sns_dn[i * 8 +: 8]), // inout[7:0]
673  .sns_clkp (sns_clkp[i]), // inout
674  .sns_clkn (sns_clkn[i]), // inout
675 `endif
676  .sns_scl (sns_scl[i]), // inout
677  .sns_sda (sns_sda[i]), // inout
678  .sns_ctl (sns_ctl[i]), // inout
679  .sns_pg (sns_pg[i]), // inout
680 
681  .mclk (mclk), // input
682  .cmd_ad_in (cmd_ad), // input[7:0]
683  .cmd_stb_in (cmd_stb), // input
684  .status_ad (status_ad_chn[i * 8 +: 8]), // output[7:0]
685  .status_rq (status_rq_chn[i]), // output
686  .status_start (status_start_chn[i]), // input
687  .trigger_mode (trigger_mode), // input
688  .trig_in (trig_in[i]), // input
690  .dout (px_data[16 * i +: 16]), // output[15:0]
691  .dout_valid (px_valid[i]), // output
692  .last_in_line (last_in_line[i]), // output
693  .sof_out (sof_out_pclk[i]), // output
694  .eof_out (eof_out_pclk[i]), // output
695  .sof_out_mclk (sof_out_mclk[i]), // output
696  .sof_late_mclk(sof_late_mclk[i]), // output
697  .hist_request (hist_request[i]), // output
698  .hist_grant (hist_grant[i]), // input
699  .hist_chn (hist_chn[2 * i +: 2]), // output[1:0]
700  .hist_dvalid (hist_dvalid[i]), // output
701  .hist_data (hist_data[i * 32 +: 32])// output[31:0]
702 `ifdef DEBUG_RING
703  ,.debug_do (debug_ring[i]), // output
704  .debug_sl (debug_sl), // input
705  .debug_di (debug_ring[i+1]) // input
706 `endif
707  );
708 
709  sensor_membuf #(
710  .WADDR_WIDTH(9)
711  ) sensor_membuf_i (
712  .pclk (pclk), // input
713  .prst (prst), // input
714  .mrst (mrst), // input
715  .frame_run_mclk(frame_run_mclk[i]), // input @mclk - memory channel is ready to accept data from the sensor
716  .px_data (px_data[16 * i +: 16]), // input[15:0]
717  .px_valid (px_valid[i]), // input
718  .last_in_line (last_in_line[i]), // input
719  .mclk (mclk), // input
720  .rpage_set (rpage_set[i]), // input
721  .rpage_next (rpage_next[i]), // input
722  .buf_rd (buf_rd[i]), // input
723  .buf_dout (buf_dout[64*i +: 64]), // output[63:0]
724  .page_written (page_written[i]) // output reg single mclk pulse: buffer page (full or partial) is written to the memory buffer
725 `ifdef DEBUG_SENS_MEM_PAGES
726  ,.dbg_rpage (dbg_rpage[2 * i +: 2])
727  ,.dbg_wpage (dbg_wpage[2 * i +: 2])
728 `endif
729  );
730  end
731  endgenerate
732 
733  histogram_saxi #(
734  .HIST_SAXI_ADDR (SENSOR_GROUP_ADDR + HIST_SAXI_ADDR_REL),
736  .HIST_SAXI_MODE_ADDR (SENSOR_GROUP_ADDR + HIST_SAXI_MODE_ADDR_REL),
744 `ifdef DEBUG_RING
745  ,.DEBUG_CMD_LATENCY (DEBUG_CMD_LATENCY)
746 `endif
747  ) histogram_saxi_i (
748 // .rst (rst), // input
749  .mclk (mclk), // input
750  .aclk (aclk), // input
751  .mrst (mrst), // input
752  .arst (arst), // input
753  .frame0 (frame_num0), // input[3:0]
754  .hist_request0 (hist_request[0]), // input
755  .hist_grant0 (hist_grant[0]), // output
756  .hist_chn0 (hist_chn[0 * 2 +: 2]), // input[1:0]
757  .hist_dvalid0 (hist_dvalid[0]), // input
758  .hist_data0 (hist_data[0 * 32 +: 32]),// input[31:0]
759  .frame1 (frame_num1), // input[3:0]
760  .hist_request1 (hist_request[1]), // input
761  .hist_grant1 (hist_grant[1]), // output
762  .hist_chn1 (hist_chn[1 * 2 +: 2]), // input[1:0]
763  .hist_dvalid1 (hist_dvalid[1]), // input
764  .hist_data1 (hist_data[1 * 32 +: 32]),// input[31:0]
765  .frame2 (frame_num2), // input[3:0]
766  .hist_request2 (hist_request[2]), // input
767  .hist_grant2 (hist_grant[2]), // output
768  .hist_chn2 (hist_chn[2 * 2 +: 2]), // input[1:0]
769  .hist_dvalid2 (hist_dvalid[2]), // input
770  .hist_data2 (hist_data[2 * 32 +: 32]),// input[31:0]
771  .frame3 (frame_num3), // input[3:0]
772  .hist_request3 (hist_request[3]), // input
773  .hist_grant3 (hist_grant[3]), // output
774  .hist_chn3 (hist_chn[3 * 2 +: 2]), // input[1:0]
775  .hist_dvalid3 (hist_dvalid[3]), // input
776  .hist_data3 (hist_data[3 * 32 +: 32]),// input[31:0]
777  .cmd_ad (cmd_ad), // input[7:0]
778  .cmd_stb (cmd_stb), // input
779  .saxi_awaddr (saxi_awaddr), // output[31:0]
780  .saxi_awvalid (saxi_awvalid), // output
781  .saxi_awready (saxi_awready), // input
782  .saxi_awid (saxi_awid), // output[5:0]
783  .saxi_awlock (saxi_awlock), // output[1:0]
784  .saxi_awcache (saxi_awcache), // output[3:0]
785  .saxi_awprot (saxi_awprot), // output[2:0]
786  .saxi_awlen (saxi_awlen), // output[3:0]
787  .saxi_awsize (saxi_awsize), // output[1:0]
788  .saxi_awburst (saxi_awburst), // output[1:0]
789  .saxi_awqos (saxi_awqos), // output[3:0]
790  .saxi_wdata (saxi_wdata), // output[31:0]
791  .saxi_wvalid (saxi_wvalid), // output
792  .saxi_wready (saxi_wready), // input
793  .saxi_wid (saxi_wid), // output[5:0]
794  .saxi_wlast (saxi_wlast), // output
795  .saxi_wstrb (saxi_wstrb), // output[3:0]
796  .saxi_bvalid (saxi_bvalid), // input
797  .saxi_bready (saxi_bready), // output
798  .saxi_bid (saxi_bid), // input[5:0]
799  .saxi_bresp (saxi_bresp) // input[1:0]
800 `ifdef DEBUG_RING
801  ,.debug_do (debug_ring[4]), // output
802  .debug_sl (debug_sl), // input
803  .debug_di (debug_ring[5]) // input
804 `endif
805  );
806 
807  status_router4 status_router4_i (
808  .rst (1'b0), // input
809  .clk (mclk), // input
810  .srst (mrst), // input
811  .db_in0 (status_ad_chn[0 +: 8]), // input[7:0]
812  .rq_in0 (status_rq_chn[0]), // input
813  .start_in0 (status_start_chn[0]), // output
814  .db_in1 (status_ad_chn[8 +: 8]), // input[7:0]
815  .rq_in1 (status_rq_chn[1]), // input
816  .start_in1 (status_start_chn[1]), // output
817  .db_in2 (status_ad_chn[16 +: 8]), // input[7:0]
818  .rq_in2 (status_rq_chn[2]), // input
819  .start_in2 (status_start_chn[2]), // output
820  .db_in3 (status_ad_chn[24 +: 8]), // input[7:0]
821  .rq_in3 (status_rq_chn[3]), // input
822  .start_in3 (status_start_chn[3]), // output
823  .db_out (status_ad), // output[7:0]
824  .rq_out (status_rq), // output
825  .start_out (status_start) // input
826  );
827 // TODO: connect idelay outputs to smth
828  idelay_ctrl# (
829  .IODELAY_GRP("IODELAY_SENSOR_12")
830  ) idelay_ctrl_sensor12_i (
831  .refclk(ref_clk),
832  .rst(dly_rst), //rst || dly_rst
833  .rdy(idelay_ctrl_rdy[0])
834  );
835 
836  idelay_ctrl# (
837  .IODELAY_GRP("IODELAY_SENSOR_34")
838  ) idelay_ctrl_sensor34_i (
839  .refclk(ref_clk),
840  .rst(dly_rst), //rst || dly_rst
841  .rdy(idelay_ctrl_rdy[1])
842  );
843 
844 
845 endmodule
846 
8556SENS_JTAG_TDI0
Definition: sensors393.v:176
8712px_validwire[3:0]
Definition: sensors393.v:417
[63:0] 8447buf_dout
Definition: sensor_membuf.v:56
[3:0] 8666page_written
Definition: sensors393.v:343
8595CLKIN_PERIOD_SENSOR3.000
Definition: sensors393.v:240
8526SENS_LENS_C_MASK'hf8
Definition: sensors393.v:136
[ 1:0] 8699saxi_bresp
Definition: sensors393.v:387
8553SENS_JTAG_PROG6
Definition: sensors393.v:173
8517SENS_GAMMA_MODE_TRIG5
Definition: sensors393.v:124
[3:0] 8662rpage_set
Definition: sensors393.v:339
8513SENS_GAMMA_MODE_BAYER0
Definition: sensors393.v:120
8621HISPI_DELAY_CLK3"FALSE"
Definition: sensors393.v:276
8636HISPI_IFD_DELAY_VALUE"AUTO"
Definition: sensors393.v:291
8484SENSI2C_CMD_SOFT_SCL4
Definition: sensors393.v:81
8607BUF_IPCLK2X_SENS2"BUFR"
Definition: sensors393.v:258
[31:0] 388hist_data0
[ 3:0] 416saxi_awlen
8486SENSI2C_CMD_ACIVE2
Definition: sensors393.v:83
8540SENSIO_ADDR_MASK'h7f8
Definition: sensors393.v:151
8608BUF_IPCLK_SENS3"BUFG"
Definition: sensors393.v:260
8709status_rq_chnwire[3:0]
Definition: sensors393.v:413
8469SENSOR_CTRL_ADDR_MASK'h7ff
Definition: sensors393.v:62
[31:0] 8679saxi_awaddr
Definition: sensors393.v:365
8617HISPI_NUMLANES4
Definition: sensors393.v:272
[3:0] 8670eof_out_pclk
Definition: sensors393.v:350
8573HIST_SAXI_EN0
Definition: sensors393.v:204
[255:0] 8665buf_dout
Definition: sensors393.v:342
8570SENSI2C_SLEW"SLOW"
Definition: sensors393.v:198
[ 5:0] 428saxi_bid
8581SENS_SYNC_LATE_DFLT15
Definition: sensors393.v:215
[3:0] 8669sof_out_pclk
Definition: sensors393.v:349
8489SENSI2C_TBL_RAH0
Definition: sensors393.v:88
8552SENS_JTAG_PGMEN8
Definition: sensors393.v:172
8503SENS_SYNC_MASK'h7fc
Definition: sensors393.v:104
[NUM_FRAME_BITS-1:0] 389frame1
8711px_datawire[63:0]
Definition: sensors393.v:416
8488SENSI2C_CMD_ACIVE_SDA0
Definition: sensors393.v:85
sensor_channel_i sensor_channel[generate]
Definition: sensors393.v:438
8538SENS_LENS_POST_SCALE_MASK'hff
Definition: sensors393.v:148
8480SENSI2C_CMD_RESET14
Definition: sensors393.v:77
8716hist_chnwire[7:0]
Definition: sensors393.v:421
[1:0] 392hist_chn1
8598IPCLK_PHASE0.000
Definition: sensors393.v:243
[7:0] 10990db_in2
8479SENSI2C_CMD_TAND28
Definition: sensors393.v:76
[NUM_FRAME_BITS-1:0] 383frame0
[15:0] 8440px_data
Definition: sensor_membuf.v:48
8601SENSI2C_IOSTANDARD"LVCMOS18"
Definition: sensors393.v:246
8612SENS_REF_JITTER20.010
Definition: sensors393.v:266
8624HISPI_MMCM2"TRUE"
Definition: sensors393.v:279
8535SENS_LENS_FAT0_OUT'h69
Definition: sensors393.v:145
8501SENSI2C_STATUS'h1
Definition: sensors393.v:101
8491SENSI2C_TBL_RNWREG8
Definition: sensors393.v:90
8499SENSI2C_TBL_DLY20
Definition: sensors393.v:98
8460SENSI2C_STATUS_REG_BASE'h20
Definition: sensors393.v:51
8705idelay_ctrl_rdywire[1:0]
Definition: sensors393.v:408
8456SENSOR_GROUP_ADDR'h400
Definition: sensors393.v:44
[ 1:0] 8688saxi_awburst
Definition: sensors393.v:374
8708status_ad_chnwire[31:0]
Definition: sensors393.v:412
8719frame_numwire[4*NUM_FRAME_BITS-1:0]
Definition: sensors393.v:425
[3:0] 8661frame_run_mclk
Definition: sensors393.v:338
8458HIST_SAXI_ADDR_REL'h100
Definition: sensors393.v:47
8481SENSI2C_CMD_RUN13
Definition: sensors393.v:78
8493SENSI2C_TBL_SA_BITS7
Definition: sensors393.v:92
[1:0] 8683saxi_awlock
Definition: sensors393.v:369
8589SENS_HIGH_PERFORMANCE_MODE"FALSE"
Definition: sensors393.v:228
8478SENSI2C_CMD_TABLE29
Definition: sensors393.v:75
8557SENSIO_DELAYS'h4
Definition: sensors393.v:178
[ 3:0] 425saxi_wstrb
8633HISPI_DQS_BIAS"TRUE"
Definition: sensors393.v:288
8542SENS_CTRL_MRST0
Definition: sensors393.v:155
[31:0] 394hist_data1
8467SENS_GAMMA_BUFFER0
Definition: sensors393.v:58
8583SENS_SYNC_MINPER130
Definition: sensors393.v:217
8524SENS_LENS_AY_MASK'hf8
Definition: sensors393.v:134
8495SENSI2C_TBL_NBWR_BITS4
Definition: sensors393.v:94
8593SENS_PHASE_WIDTH8
Definition: sensors393.v:234
[ 3:0] 8686saxi_awlen
Definition: sensors393.v:372
8567HISTOGRAM_WIDTH_HEIGHT'h1
Definition: sensors393.v:193
8710status_start_chnwire[3:0]
Definition: sensors393.v:414
8590PXD_CAPACITANCE"DONT_CARE"
Definition: sensors393.v:230
8631HISPI_DIFF_TERM"TRUE"
Definition: sensors393.v:286
8594SENS_BANDWIDTH"OPTIMIZED"
Definition: sensors393.v:236
8558SENSI2C_ABS_RADDR'h10
Definition: sensors393.v:181
8628HISPI_FIFO_DEPTH4
Definition: sensors393.v:283
8623HISPI_MMCM1"TRUE"
Definition: sensors393.v:278
8717hist_dvalidwire[3:0]
Definition: sensors393.v:422
[NUM_FRAME_BITS-1:0] 8674frame_num1
Definition: sensors393.v:356
[1:0] 404hist_chn3
8618HISPI_DELAY_CLK0"FALSE"
Definition: sensors393.v:273
8498SENSI2C_TBL_NABRD19
Definition: sensors393.v:97
8539SENSIO_RADDR8
Definition: sensors393.v:150
8578NUM_FRAME_BITS4
Definition: sensors393.v:210
[7:0] 8016status_ad
8620HISPI_DELAY_CLK2"FALSE"
Definition: sensors393.v:275
[3:0] 8658sns_sda
Definition: sensors393.v:329
8629HISPI_FIFO_START7
Definition: sensors393.v:284
8472SENSOR_HIST_NRST_BITS4
Definition: sensors393.v:66
8616HISPI_MSB_FIRST0
Definition: sensors393.v:271
[ 3:0] 8684saxi_awcache
Definition: sensors393.v:370
8537SENS_LENS_POST_SCALE'h6a
Definition: sensors393.v:147
8525SENS_LENS_C'h10
Definition: sensors393.v:135
8541SENSIO_CTRL'h0
Definition: sensors393.v:153
status_router4_i status_router4
Definition: sensors393.v:765
8461SENSI2C_STATUS_REG_INC2
Definition: sensors393.v:52
[ 5:0] 8698saxi_bid
Definition: sensors393.v:386
8591PXD_CLK_DIV10
Definition: sensors393.v:231
8566HISTOGRAM_LEFT_TOP'h0
Definition: sensors393.v:192
8626HISPI_KEEP_IRST5
Definition: sensors393.v:281
[3:0] 8656sns_clkn
Definition: sensors393.v:326
8600PXD_IOSTANDARD"LVCMOS18"
Definition: sensors393.v:245
8459HIST_SAXI_MODE_ADDR_REL'h110
Definition: sensors393.v:48
[ 1:0] 418saxi_awburst
[3:0] 8664buf_rd
Definition: sensors393.v:341
8468SENSOR_CTRL_RADDR0
Definition: sensors393.v:61
[3:0] 8659sns_ctl
Definition: sensors393.v:332
[7:0] 8648status_ad
Definition: sensors393.v:315
[NUM_FRAME_BITS-1:0] 8021frame_num_seq
8549SENS_CTRL_GP114
Definition: sensors393.v:166
[ 2:0] 8685saxi_awprot
Definition: sensors393.v:371
[3:0] 8660sns_pg
Definition: sensors393.v:335
integer 8568SENSI2C_DRIVE12
Definition: sensors393.v:196
8576HIST_SAXI_AWCACHE4'h3
Definition: sensors393.v:207
[ 2:0] 415saxi_awprot
8514SENS_GAMMA_MODE_PAGE2
Definition: sensors393.v:121
8500SENSI2C_TBL_DLY_BITS8
Definition: sensors393.v:99
[3:0] 8672sof_late_mclk
Definition: sensors393.v:352
8494SENSI2C_TBL_NBWR16
Definition: sensors393.v:93
[ 3:0] 419saxi_awqos
[ 3:0] 8689saxi_awqos
Definition: sensors393.v:375
[3:0] 8655sns_clkp
Definition: sensors393.v:325
8565HISTOGRAM_ADDR_MASK'h7fe
Definition: sensors393.v:190
8546SENS_CTRL_IGNORE_EMBED8
Definition: sensors393.v:160
[NUM_FRAME_BITS-1:0] 8675frame_num2
Definition: sensors393.v:357
8544SENS_CTRL_ARO4
Definition: sensors393.v:157
8462SENSI2C_STATUS_REG_REL0
Definition: sensors393.v:53
[7:0] 10984db_in0
8465HISTOGRAM_RAM_MODE"BUF32"
Definition: sensors393.v:56
8490SENSI2C_TBL_RAH_BITS8
Definition: sensors393.v:89
[31:0] 400hist_data2
[ 5:0] 8693saxi_wid
Definition: sensors393.v:380
8611SENS_REF_JITTER10.010
Definition: sensors393.v:265
8532SENS_LENS_SCALES_MASK'hf8
Definition: sensors393.v:142
[31:0] 8033hist_data
[3:0] 8657sns_scl
Definition: sensors393.v:328
[NUM_FRAME_BITS-1:0] 8673frame_num0
Definition: sensors393.v:355
[15:0] 8652sns_dn
Definition: sensors393.v:322
[ 1:0] 429saxi_bresp
8534SENS_LENS_FAT0_IN_MASK'hff
Definition: sensors393.v:144
[15:0] 8653sns_dp74
Definition: sensors393.v:323
8602BUF_IPCLK_SENS0"BUFR"
Definition: sensors393.v:251
8603BUF_IPCLK2X_SENS0"BUFR"
Definition: sensors393.v:252
8510SENS_GAMMA_HEIGHT01'h2
Definition: sensors393.v:116
8574HIST_SAXI_NRESET1
Definition: sensors393.v:205
8502SENS_SYNC_RADDR'h4
Definition: sensors393.v:103
8579SENS_SYNC_FBITS16
Definition: sensors393.v:213
8520SENS_LENS_COEFF'h3
Definition: sensors393.v:130
8592PXD_CLK_DIV_BITS4
Definition: sensors393.v:232
8511SENS_GAMMA_HEIGHT2'h3
Definition: sensors393.v:117
[NUM_FRAME_BITS-1:0] 8676frame_num3
Definition: sensors393.v:358
8586PXD_IBUF_LOW_PWR"TRUE"
Definition: sensors393.v:225
8703DEBUG_RING_LENGTH5
Definition: sensors393.v:401
8530SENS_LENS_BY_MASK'he0
Definition: sensors393.v:140
8487SENSI2C_CMD_ACIVE_EARLY01
Definition: sensors393.v:84
8497SENSI2C_TBL_NBRD_BITS3
Definition: sensors393.v:96
8563HISTOGRAM_RADDR2'h34
Definition: sensors393.v:188
8515SENS_GAMMA_MODE_EN3
Definition: sensors393.v:122
8528SENS_LENS_BX_MASK'he0
Definition: sensors393.v:138
8536SENS_LENS_FAT0_OUT_MASK'hff
Definition: sensors393.v:146
8492SENSI2C_TBL_SA9
Definition: sensors393.v:91
8548SENS_CTRL_GP012
Definition: sensors393.v:165
8610SENS_DIVCLK_DIVIDE1
Definition: sensors393.v:264
8606BUF_IPCLK_SENS2"BUFR"
Definition: sensors393.v:257
8604BUF_IPCLK_SENS1"BUFG"
Definition: sensors393.v:254
[31:0] 420saxi_wdata
8521SENS_LENS_AX'h00
Definition: sensors393.v:131
8507SENS_GAMMA_ADDR_MASK'h7fc
Definition: sensors393.v:112
8529SENS_LENS_BY'h40
Definition: sensors393.v:139
8599IPCLK2X_PHASE0.000
Definition: sensors393.v:244
8707cmd_stbreg
Definition: sensors393.v:411
[31:0] 8690saxi_wdata
Definition: sensors393.v:377
[31:0] 406hist_data3
[7:0] 10996db_out
[ 3:0] 414saxi_awcache
8582SENS_SYNC_MINBITS8
Definition: sensors393.v:216
8482SENSI2C_CMD_RUN_PBITS1
Definition: sensors393.v:79
8564HISTOGRAM_RADDR3'h36
Definition: sensors393.v:189
8508SENS_GAMMA_CTRL'h0
Definition: sensors393.v:114
8587PXD_SLEW"SLOW"
Definition: sensors393.v:226
8605BUF_IPCLK2X_SENS1"BUFG"
Definition: sensors393.v:255
8485SENSI2C_CMD_FIFO_RD3
Definition: sensors393.v:82
[7:0] 10993db_in3
8609BUF_IPCLK2X_SENS3"BUFG"
Definition: sensors393.v:261
8512SENS_GAMMA_MODE_WIDTH5
Definition: sensors393.v:119
8713last_in_linewire[3:0]
Definition: sensors393.v:418
histogram_saxi_i histogram_saxi
Definition: sensors393.v:691
8551SENSIO_JTAG'h2
Definition: sensors393.v:170
[1:0] 386hist_chn0
real 8588SENS_REFCLK_FREQUENCY300.0
Definition: sensors393.v:227
8506SENS_GAMMA_RADDR'h38
Definition: sensors393.v:111
8580SENS_SYNC_LBITS16
Definition: sensors393.v:214
8575HIST_CONFIRM_WRITE2
Definition: sensors393.v:206
8625HISPI_MMCM3"TRUE"
Definition: sensors393.v:280
8562HISTOGRAM_RADDR1'h32
Definition: sensors393.v:187
8475SENSI2C_CTRL_RADDR2
Definition: sensors393.v:70
8509SENS_GAMMA_ADDR_DATA'h1
Definition: sensors393.v:115
8547SENS_CTRL_LD_DLY10
Definition: sensors393.v:163
8473SENSOR_CHN_EN_BIT8
Definition: sensors393.v:67
[31:0] 409saxi_awaddr
8597CLKFBOUT_PHASE_SENSOR0.000
Definition: sensors393.v:242
[NUM_FRAME_BITS-1:0] 395frame2
8571HIST_SAXI_ADDR_MASK'h7f0
Definition: sensors393.v:202
[3:0] 8663rpage_next
Definition: sensors393.v:340
[1:0] 398hist_chn2
8523SENS_LENS_AY'h08
Definition: sensors393.v:133
8522SENS_LENS_AX_MASK'hf8
Definition: sensors393.v:132
8560SENSI2C_ADDR_MASK'h7f0
Definition: sensors393.v:183
8519SENS_LENS_ADDR_MASK'h7fc
Definition: sensors393.v:129
[ 1:0] 417saxi_awsize
8554SENS_JTAG_TCK4
Definition: sensors393.v:174
8545SENS_CTRL_RST_MMCM6
Definition: sensors393.v:158
[7:0] 8014cmd_ad_in
8630HISPI_CAPACITANCE"DONT_CARE"
Definition: sensors393.v:285
[15:0] 8651sns_dp
Definition: sensors393.v:321
integer 8585PXD_DRIVE12
Definition: sensors393.v:224
8622HISPI_MMCM0"TRUE"
Definition: sensors393.v:277
8527SENS_LENS_BX'h20
Definition: sensors393.v:137
8619HISPI_DELAY_CLK1"FALSE"
Definition: sensors393.v:274
8706cmd_adreg[7:0]
Definition: sensors393.v:410
sensor_membuf_i sensor_membuf[generate]
Definition: sensors393.v:668
[1:0] 413saxi_awlock
[NUM_FRAME_BITS-1:0] 401frame3
8632HISPI_UNTUNED_SPLIT"FALSE"
Definition: sensors393.v:287
8496SENSI2C_TBL_NBRD16
Definition: sensors393.v:95
8627HISPI_WAIT_ALL_LANES4'h8
Definition: sensors393.v:282
[ 1:0] 8687saxi_awsize
Definition: sensors393.v:373
8533SENS_LENS_FAT0_IN'h68
Definition: sensors393.v:143
[ 5:0] 423saxi_wid
[7:0] 8646cmd_ad_in
Definition: sensors393.v:313
8466SENS_NUM_SUBCHN3
Definition: sensors393.v:57
8476SENSI2C_CTRL_MASK'h7fe
Definition: sensors393.v:71
8543SENS_CTRL_ARST2
Definition: sensors393.v:156
8518SENS_LENS_RADDR'h3c
Definition: sensors393.v:128
8704debug_ringwire[DEBUG_RING_LENGTH:0]
Definition: sensors393.v:402
8613SENS_SS_EN"FALSE"
Definition: sensors393.v:267
8477SENSI2C_CTRL'h0
Definition: sensors393.v:73
[7:0] 10987db_in1
integer 8584IDELAY_VALUE0
Definition: sensors393.v:223
8470SENSOR_MODE_WIDTH10
Definition: sensors393.v:64
8577HIST_SAXI_MODE_ADDR_MASK'h7ff
Definition: sensors393.v:209
8572HIST_SAXI_MODE_WIDTH8
Definition: sensors393.v:203
8714hist_requestwire[3:0]
Definition: sensors393.v:419
8561HISTOGRAM_RADDR0'h30
Definition: sensors393.v:186
[3:0] 8668trig_in
Definition: sensors393.v:348
[ 3:0] 8695saxi_wstrb
Definition: sensors393.v:382
8457SENSOR_BASE_INC'h040
Definition: sensors393.v:45
8569SENSI2C_IBUF_LOW_PWR"TRUE"
Definition: sensors393.v:197
8471SENSOR_HIST_EN_BITS0
Definition: sensors393.v:65
[3:0] 8671sof_out_mclk
Definition: sensors393.v:351
8596CLKFBOUT_MULT_SENSOR3
Definition: sensors393.v:241
8505SENS_SYNC_LATE'h3
Definition: sensors393.v:107
8550SENSIO_STATUS'h1
Definition: sensors393.v:169
8635HISPI_IBUF_LOW_PWR"TRUE"
Definition: sensors393.v:290
8715hist_grantwire[3:0]
Definition: sensors393.v:420
8516SENS_GAMMA_MODE_REPET4
Definition: sensors393.v:123
[5:0] 8682saxi_awid
Definition: sensors393.v:368
8614SENS_SS_MODE"CENTER_HIGH"
Definition: sensors393.v:268
8531SENS_LENS_SCALES'h60
Definition: sensors393.v:141
8464SENSOR_NUM_HISTOGRAM3
Definition: sensors393.v:55
8559SENSI2C_REL_RADDR'h20
Definition: sensors393.v:182
8474SENSOR_16BIT_BIT9
Definition: sensors393.v:68
8463SENSIO_STATUS_REG_REL1
Definition: sensors393.v:54
8634HISPI_IBUF_DELAY_VALUE"0"
Definition: sensors393.v:289
8718hist_datawire[127:0]
Definition: sensors393.v:423
idelay_ctrl_sensor34_i idelay_ctrl
Definition: sensors393.v:794
8483SENSI2C_CMD_SOFT_SDA6
Definition: sensors393.v:80
[15:0] 8654sns_dn74
Definition: sensors393.v:324
8504SENS_SYNC_MULT'h2
Definition: sensors393.v:106
8555SENS_JTAG_TMS2
Definition: sensors393.v:175