x393  1.0
FPGAcodeforElphelNC393camera
huffman_snglclk.v
Go to the documentation of this file.
1 
77  // This file may be used to define same pre-processor macros to be included into each parsed file
78 `ifndef SYSTEM_DEFINES
79  `define SYSTEM_DEFINES
80  // TODO: Later compare instantiate/infer
81  `define INSTANTIATE_DSP48E1
82  `define DEBUG_DCT1D// undefine after debugging is over // `define USE_OLD_DCT
83 
84 // Parameters from x393_sata project
85  `define USE_DRP
86  `define ALIGN_CLOCKS
87 // `define STRAIGHT_XCLK
88  `define USE_DATASCOPE
89 // `define DATASCOPE_INCOMING_RAW
90  `define PRELOAD_BRAMS
91 // `define AHCI_SATA 1
92 // `define DEBUG_ELASTIC
93 // End of parameters from x393_sata project
94 
95  `define PRELOAD_BRAMS
96  `define DISPLAY_COMPRESSED_DATA // if HISPI is not defined, parallel sensor interface is used for all channels
97  `define HISPI /*************** CHANGE here and x393_hispi/x393_parallel in bitstream tool settings ****************/// `define USE_OLD_XDCT393
98 // `define USE_PCLK2X
99 // `define USE_XCLK2X
100  `define REVERSE_LANES 1 `define DEBUG_RING 1 `define USE_HARD_CURPARAMS// Adjustment of actual hardware may break simulation // `define DEBUG_SENS_MEM_PAGES 1
101 // `define MCLK_VCO_MULT 16
102 // DDR3 memory speed grade and density
103  `define sg25 1// `define sg15E 1
104 // `define sg187E 1
105  `define den4096Mb 1
106  `define MCLK_VCO_MULT 16// `define MCLK_VCO_MULT 18
107 // `define MCLK_VCO_MULT 20
108 
109  `define MEMBRIDGE_DEBUG_WRITE 1// Enviroment-dependent options
110  `ifdef IVERILOG
111  `define SIMULATION
112  `define OPEN_SOURCE_ONLY
113  `endif
114 
115  `ifdef COCOTB
116  `define SIMULATION
117  `define OPEN_SOURCE_ONLY
118  `endif
119 
120  `ifdef CVC
121  `define SIMULATION
122  `define OPEN_SOURCE_ONLY
123  `endif // CVC
124 
125 // will not use simultaneous reset in shift registers, just and input data with ~rst
126  `define SHREG_SEQUENTIAL_RESET 1// synthesis does to recognize global clock as G input of the primitive latch
127  `undef INFER_LATCHES
128  // define when using CDC - it does not support them
129  `undef IGNORE_ATTR
130 //`define MEMBRIDGE_DEBUG_READ 1
131  `define use200Mhz 1 `define USE_CMD_ENCOD_TILED_32_RD 1 // chn 0 is read from memory and write to memory
132  `define def_enable_mem_chn0
133  `define def_read_mem_chn0
134  `define def_write_mem_chn0
135  `undef def_scanline_chn0
136  `undef def_tiled_chn0
137 
138  // chn 1 is scanline r+w
139  `define def_enable_mem_chn1
140  `define def_read_mem_chn1
141  `define def_write_mem_chn1
142  `define def_scanline_chn1
143  `undef def_tiled_chn1
144 
145  // chn 2 is tiled r+w
146  `define def_enable_mem_chn2
147  `define def_read_mem_chn2
148  `define def_write_mem_chn2
149  `undef def_scanline_chn2
150  `define def_tiled_chn2
151 
152  // chn 3 is scanline r+w (reuse later)
153  `define def_enable_mem_chn3
154  `define def_read_mem_chn3
155  `define def_write_mem_chn3
156  `define def_scanline_chn3
157  `undef def_tiled_chn3
158 
159  // chn 4 is tiled r+w (reuse later)
160  `define def_enable_mem_chn4
161  `define def_read_mem_chn4
162  `define def_write_mem_chn4
163  `undef def_scanline_chn4
164  `define def_tiled_chn4
165 
166  // chn 5 is disabled
167  `undef def_enable_mem_chn5
168 
169  // chn 6 is disabled
170  `undef def_enable_mem_chn6
171 
172  // chn 7 is disabled
173  `undef def_enable_mem_chn7
174 
175  // chn 8 is scanline w (sensor channel 0)
176  `define def_enable_mem_chn8
177  `undef def_read_mem_chn8
178  `define def_write_mem_chn8
179  `define def_scanline_chn8
180  `undef def_tiled_chn8
181 
182  // chn 9 is scanline w (sensor channel 1)
183  `define def_enable_mem_chn9
184  `undef def_read_mem_chn9
185  `define def_write_mem_chn9
186  `define def_scanline_chn9
187  `undef def_tiled_chn9
188 
189  // chn 10 is scanline w (sensor channel 2)
190  `define def_enable_mem_chn10
191  `undef def_read_mem_chn10
192  `define def_write_mem_chn10
193  `define def_scanline_chn10
194  `undef def_tiled_chn10
195 
196  // chn 11 is scanline w (sensor channel 3)
197  `define def_enable_mem_chn11
198  `undef def_read_mem_chn11
199  `define def_write_mem_chn11
200  `define def_scanline_chn11
201  `undef def_tiled_chn11
202 
203  // chn 12 is tiled read (compressor channel 0)
204  `define def_enable_mem_chn12
205  `define def_read_mem_chn12
206  `undef def_write_mem_chn12
207  `undef def_scanline_chn12
208  `define def_tiled_chn12
209 
210  // chn 12 is tiled read (compressor channel 1)
211  `define def_enable_mem_chn13
212  `define def_read_mem_chn13
213  `undef def_write_mem_chn13
214  `undef def_scanline_chn13
215  `define def_tiled_chn13
216 
217  // chn 12 is tiled read (compressor channel 2)
218  `define def_enable_mem_chn14
219  `define def_read_mem_chn14
220  `undef def_write_mem_chn14
221  `undef def_scanline_chn14
222  `define def_tiled_chn14
223 
224  // chn 12 is tiled read (compressor channel 3)
225  `define def_enable_mem_chn15
226  `define def_read_mem_chn15
227  `undef def_write_mem_chn15
228  `undef def_scanline_chn15
229  `define def_tiled_chn15
230 `endif
231 
232 module huffman_snglclk (
233  input xclk, // pixel clock, sync to incoming data
234  input rst, // @xclk
235 // Interface to program Huffman tables
236  input mclk, // system clock to write tables
237  input tser_we, // enable write to a table
238  input tser_a_not_d, // address/not data distributed to submodules
239  input [ 7:0] tser_d, // byte-wide serialized tables address/data to submodules
240 
241 // Input data
242  input [15:0] di, // [15:0] specially RLL prepared 16-bit data (to FIFO) (sync to xclk)
243  input ds, // di valid strobe (sync to xclk)
244 // Output data
245  output [26:0] do27, // [26:0] output data, MSB aligned
246  output [ 4:0] dl, // [4:0] data length
247  output dv, // output data valid
248 
249  output flush, // last block done - flush the rest bits
250  output last_block,
251  output reg test_lbw,
252  output gotLastBlock, // last block done - flush the rest bits
253  input clk_flush, // other clock to generate synchronized 1-cycle flush_clk output
254  output flush_clk, // 1-cycle flush output @ clk_flush
255  output fifo_or_full // FIFO output register full - just for debuging
256 );
257 
258 // A small input FIFO, only needed for RLL >16 that require several clock cycles to output
259 
261  wire fifo_rdy;
262  wire fifo_re = fifo_re_r && fifo_rdy;
263  wire [15:0] fifo_out;
264  fifo_same_clock #(
265  .DATA_WIDTH(16),
266  .DATA_DEPTH(4)
267  ) fifo_same_clock_i (
268  .rst (1'b0), // input
269  .clk (xclk), // input
270  .sync_rst (rst), // input
271  .we (ds), // input
272  .re (fifo_re), // input
273  .data_in (di), // input[15:0]
274  .data_out (fifo_out), // output[15:0]
275  .nempty (fifo_rdy), // output
276  .half_full () // output reg
277  );
278  assign fifo_or_full = fifo_rdy;
279  wire gotDC= fifo_out[15] && fifo_out[14];
280  wire gotAC= fifo_out[15] && !fifo_out[14];
281  wire gotRLL= !fifo_out[15] && !fifo_out[12];
282  wire gotEOB= !fifo_out[15] && fifo_out[12];
283  assign gotLastBlock= fifo_out[15] && fifo_out[14] && fifo_out[12] && fifo_re;
284  wire gotLastWord= !fifo_out[14] && fifo_out[12] && fifo_re; // (AC or RLL) and last bit set
285  wire gotColor= fifo_out[13];
286  reg [5:0] rll; // 2 MSBs - counter to send "f0" codes
287 // reg [3:0] rll1; // valid at cycle "1"
288  wire [3:0] rll_late; // match AC's length timing
289  reg [2:0] gotAC_r;
290  reg [2:0] gotDC_r;
291  reg [2:0] gotEOB_r;
292  reg [2:0] gotColor_r;
293  reg [2:1] gotF0_r;
294 
295  reg [11:0] sval; // signed input value
296  wire [3:0] val_length;
297  wire [10:0] val_literal;
298  reg [8:0] htable_addr; // address to huffman table
299  reg [2:0] htable_re; // Huffman table memory re, regen, out valid
300  wire [31:0] htable_out; // Only [19:0] are used
301  wire [3:0] val_length_late; // delay by 3 clocks to match Huffman table output
302  wire [10:0] val_literal_late;// delay by 3 clocks to match Huffman table output
303 
304  reg ready_to_flush;
305 
306  reg flush_r; // last block done - flush the rest bits
307  reg last_block_r;
308  reg [9:0] active_r;
309  wire active = fifo_re || active_r[0];
310 
311  assign flush = flush_r;
312  assign last_block = last_block_r;
313  assign fifo_or_full = fifo_rdy;
314 
315  always @(posedge xclk) begin
316  if (rst) fifo_re_r <= 0;
317  else fifo_re_r <= fifo_rdy && !(fifo_re && gotRLL && (|fifo_out[5:4])) && !(|rll[5:4]);
318 
319  if (rst) gotAC_r <= 0;
320  else gotAC_r <= {gotAC_r[1:0], gotAC && fifo_re};
321 
322  if (rst) gotDC_r <= 0;
323  else gotDC_r <= {gotDC_r[1:0], gotDC && fifo_re};
324 
325  if (rst) gotEOB_r <= 0;
326  else gotEOB_r <= {gotEOB_r[1:0], gotEOB && fifo_re};
327 
328  if (rst) gotColor_r <= 0;
329  else gotColor_r <= {gotColor_r[1:0], (gotDC && fifo_re) ? gotColor : gotColor_r[0] };
330 
331  if (rst) rll[5:4] <= 0;
332  else if (fifo_re && gotRLL) rll[5:4] <= fifo_out[5:4];
333  else if (gotAC_r[0]) rll[5:4] <= 0; // combine with !en?
334  else if (|rll[5:4]) rll[5:4] <=rll[5:4] - 1;
335 
336  if (rst) rll[3:0] <= 0;
337  else if (fifo_re) rll[3:0] <= gotRLL ? fifo_out[3:0] : 4'b0;
338 
339 // rll1 <= rll[3:0];
340 // rll_late <= rll1;
341 
342  if (rst) gotF0_r[2:1] <= 0;
343  else gotF0_r[2:1] <= {gotF0_r[1], (|rll[5:4])};
344 
345 // if (fifo_re) sval[11:0] <= fifo_out[11:0];
346  sval[11:0] <= fifo_out[11:0];
347 
348  htable_addr[8] <= gotColor_r[2]; // switch Huffman tables
349  htable_addr[7:0] <= ({8{gotEOB_r[2]}} & 8'h0 ) | // generate 00 code (end of block)
350  ({8{gotF0_r[2]}} & 8'hf0 ) | // generate f0 code (16 zeros)
351  ({8{gotDC_r[2]}} & {val_length[3:0], 4'hf}) |
352  ({8{gotAC_r[2]}} & {rll_late[3:0], val_length[3:0]});
353 
354  if (rst) htable_re <= 0;
355  else htable_re <= {htable_re[1:0], gotEOB_r[2] | gotF0_r[2] | gotDC_r[2] | gotAC_r[2]};
356 
357  // other signals
358 
359  if (rst || flush_r) last_block_r <= 0;
360  else if (gotLastBlock) last_block_r <= 1;
361 
362  if (rst || flush_r) ready_to_flush <= 0;
363  else if (last_block_r && gotLastWord) ready_to_flush <= 1;
364 
366 
367  if (rst) active_r <= 0;
368  else if (fifo_re) active_r <= 10'h3ff;
369  else active_r <= active_r >> 1;
370 
371  if (rst) flush_r <= 0;
372  else flush_r <= ready_to_flush && !active && !flush_r;
373 
374  end
375 
376  varlen_encode_snglclk varlen_encode_snglclk_i (
377  .clk (xclk), // input
378  .d (sval), // input[11:0]
379  .l (val_length), // output[3:0] reg
380  .q (val_literal) // output[10:0] reg
381  );
382 
383  wire twe;
384  wire [15:0] tdi;
385  wire [22:0] ta;
386 
387 
389  .MODE_16_BITS (1),
390  .NUM_CHN (1)
391  ) table_ad_receive_i (
392  .clk (mclk), // input
393  .a_not_d (tser_a_not_d), // input
394  .ser_d (tser_d), // input[7:0]
395  .dv (tser_we), // input
396  .ta (ta), // output[22:0]
397  .td (tdi), // output[15:0]
398  .twe (twe) // output
399  );
400 
402  .REGISTERS(1),
403  .LOG2WIDTH_WR(4),
404  .LOG2WIDTH_RD(5),
405  .DUMMY(0)
406 `ifdef PRELOAD_BRAMS, .INIT_00 (256'h000800F8000700780005001A0004000B0003000400020001000200000004000A)
407 , .INIT_01 (256'h00020000000000000000000000000000000000000010FF830010FF82000A03F6)
408 , .INIT_02 (256'h0010FF850010FF84000B07F6000901F6000700790005001B0004000C00000000)
409 , .INIT_03 (256'h00030002000000000000000000000000000000000010FF880010FF870010FF86)
410 , .INIT_04 (256'h0010FF8B0010FF8A0010FF89000C0FF4000A03F7000800F90005001C00000000)
411 , .INIT_05 (256'h00030003000000000000000000000000000000000010FF8E0010FF8D0010FF8C)
412 , .INIT_06 (256'h0010FF920010FF910010FF900010FF8F000C0FF5000901F70006003A00000000)
413 , .INIT_07 (256'h00030004000000000000000000000000000000000010FF950010FF940010FF93)
414 , .INIT_08 (256'h0010FF9A0010FF990010FF980010FF970010FF96000A03F80006003B00000000)
415 , .INIT_09 (256'h00030005000000000000000000000000000000000010FF9D0010FF9C0010FF9B)
416 , .INIT_0A (256'h0010FFA20010FFA10010FFA00010FF9F0010FF9E000B07F70007007A00000000)
417 , .INIT_0B (256'h00030006000000000000000000000000000000000010FFA50010FFA40010FFA3)
418 , .INIT_0C (256'h0010FFAA0010FFA90010FFA80010FFA70010FFA6000C0FF60007007B00000000)
419 , .INIT_0D (256'h0004000E000000000000000000000000000000000010FFAD0010FFAC0010FFAB)
420 , .INIT_0E (256'h0010FFB20010FFB10010FFB00010FFAF0010FFAE000C0FF7000800FA00000000)
421 , .INIT_0F (256'h0005001E000000000000000000000000000000000010FFB50010FFB40010FFB3)
422 , .INIT_10 (256'h0010FFBA0010FFB90010FFB80010FFB70010FFB6000F7FC0000901F800000000)
423 , .INIT_11 (256'h0006003E000000000000000000000000000000000010FFBD0010FFBC0010FFBB)
424 , .INIT_12 (256'h0010FFC30010FFC20010FFC10010FFC00010FFBF0010FFBE000901F900000000)
425 , .INIT_13 (256'h0007007E000000000000000000000000000000000010FFC60010FFC50010FFC4)
426 , .INIT_14 (256'h0010FFCC0010FFCB0010FFCA0010FFC90010FFC80010FFC7000901FA00000000)
427 , .INIT_15 (256'h000800FE000000000000000000000000000000000010FFCF0010FFCE0010FFCD)
428 , .INIT_16 (256'h0010FFD50010FFD40010FFD30010FFD20010FFD10010FFD0000A03F900000000)
429 , .INIT_17 (256'h000901FE000000000000000000000000000000000010FFD80010FFD70010FFD6)
430 , .INIT_18 (256'h0010FFDE0010FFDD0010FFDC0010FFDB0010FFDA0010FFD9000A03FA00000000)
431 , .INIT_19 (256'h00000000000000000000000000000000000000000010FFE10010FFE00010FFDF)
432 , .INIT_1A (256'h0010FFE70010FFE60010FFE50010FFE40010FFE30010FFE2000B07F800000000)
433 , .INIT_1B (256'h00000000000000000000000000000000000000000010FFEA0010FFE90010FFE8)
434 , .INIT_1C (256'h0010FFF10010FFF00010FFEF0010FFEE0010FFED0010FFEC0010FFEB00000000)
435 , .INIT_1D (256'h00000000000000000000000000000000000000000010FFF40010FFF30010FFF2)
436 , .INIT_1E (256'h0010FFFB0010FFFA0010FFF90010FFF80010FFF70010FFF60010FFF5000B07F9)
437 , .INIT_1F (256'h00000000000000000000000000000000000000000010FFFE0010FFFD0010FFFC)
438 , .INIT_20 (256'h000700780006003800050019000500180004000A000300040002000100020000)
439 , .INIT_21 (256'h0002000000000000000000000000000000000000000C0FF4000A03F6000901F4)
440 , .INIT_22 (256'h0010FF88000C0FF5000B07F6000901F5000800F6000600390004000B00000000)
441 , .INIT_23 (256'h00020001000000000000000000000000000000000010FF8B0010FF8A0010FF89)
442 , .INIT_24 (256'h0010FF8D0010FF8C000F7FC2000C0FF6000A03F7000800F70005001A00000000)
443 , .INIT_25 (256'h00020002000000000000000000000000000000000010FF900010FF8F0010FF8E)
444 , .INIT_26 (256'h0010FF930010FF920010FF91000C0FF7000A03F8000800F80005001B00000000)
445 , .INIT_27 (256'h00030006000000000000000000000000000000000010FF960010FF950010FF94)
446 , .INIT_28 (256'h0010FF9B0010FF9A0010FF990010FF980010FF97000901F60006003A00000000)
447 , .INIT_29 (256'h0004000E000000000000000000000000000000000010FF9E0010FF9D0010FF9C)
448 , .INIT_2A (256'h0010FFA30010FFA20010FFA10010FFA00010FF9F000A03F90006003B00000000)
449 , .INIT_2B (256'h0005001E000000000000000000000000000000000010FFA60010FFA50010FFA4)
450 , .INIT_2C (256'h0010FFAB0010FFAA0010FFA90010FFA80010FFA7000B07F70007007900000000)
451 , .INIT_2D (256'h0006003E000000000000000000000000000000000010FFAE0010FFAD0010FFAC)
452 , .INIT_2E (256'h0010FFB30010FFB20010FFB10010FFB00010FFAF000B07F80007007A00000000)
453 , .INIT_2F (256'h0007007E000000000000000000000000000000000010FFB60010FFB50010FFB4)
454 , .INIT_30 (256'h0010FFBC0010FFBB0010FFBA0010FFB90010FFB80010FFB7000800F900000000)
455 , .INIT_31 (256'h000800FE000000000000000000000000000000000010FFBF0010FFBE0010FFBD)
456 , .INIT_32 (256'h0010FFC50010FFC40010FFC30010FFC20010FFC10010FFC0000901F700000000)
457 , .INIT_33 (256'h000901FE000000000000000000000000000000000010FFC80010FFC70010FFC6)
458 , .INIT_34 (256'h0010FFCE0010FFCD0010FFCC0010FFCB0010FFCA0010FFC9000901F800000000)
459 , .INIT_35 (256'h000A03FE000000000000000000000000000000000010FFD10010FFD00010FFCF)
460 , .INIT_36 (256'h0010FFD70010FFD60010FFD50010FFD40010FFD30010FFD2000901F900000000)
461 , .INIT_37 (256'h000B07FE000000000000000000000000000000000010FFDA0010FFD90010FFD8)
462 , .INIT_38 (256'h0010FFE00010FFDF0010FFDE0010FFDD0010FFDC0010FFDB000901FA00000000)
463 , .INIT_39 (256'h00000000000000000000000000000000000000000010FFE30010FFE20010FFE1)
464 , .INIT_3A (256'h0010FFE90010FFE80010FFE70010FFE60010FFE50010FFE4000B07F900000000)
465 , .INIT_3B (256'h00000000000000000000000000000000000000000010FFEC0010FFEB0010FFEA)
466 , .INIT_3C (256'h0010FFF20010FFF10010FFF00010FFEF0010FFEE0010FFED000E3FE000000000)
467 , .INIT_3D (256'h00000000000000000000000000000000000000000010FFF50010FFF40010FFF3)
468 , .INIT_3E (256'h0010FFFB0010FFFA0010FFF90010FFF80010FFF70010FFF6000F7FC3000A03FA)
469 , .INIT_3F (256'h00000000000000000000000000000000000000000010FFFE0010FFFD0010FFFC)
470 
471 `endif
472  ) i_htab (
473  .rclk (xclk), // input
474  .raddr (htable_addr[8:0]), // input[8:0]
475  .ren (htable_re[0]), // input
476  .regen (htable_re[1]), // input
477  .data_out (htable_out), // output[31:0]
478  .wclk (mclk), // input
479  .waddr (ta[9:0]), // input[9:0]
480  .we (twe), // input
481  .web (4'hf), // input[3:0]
482  .data_in (tdi[15:0]) // input[15:0]
483  );
484 
485  dly_16 #(
486  .WIDTH(11)
487  ) dly_16_val_literal_i (
488  .clk (xclk), // input
489  .rst (rst), // input
490  .dly (4'h2), // input[3:0]
491  .din (val_literal), // input[0:0]
492  .dout (val_literal_late) // output[0:0]
493  );
494 
495  dly_16 #(
496  .WIDTH(4)
497  ) dly_16_val_length_i (
498  .clk (xclk), // input
499  .rst (rst), // input
500  .dly (4'h2), // input[3:0]
501  .din ((gotEOB_r[2] | gotF0_r[2]) ? 4'b0 : val_length), // input[0:0]
502  .dout (val_length_late) // output[0:0]
503  );
504 
505  dly_16 #(
506  .WIDTH(4)
507  ) dly_16_rll_late_i (
508  .clk (xclk), // input
509  .rst (rst), // input
510  .dly (4'h2), // input[3:0]
511  .din (rll[3:0]), // input[0:0]
512  .dout (rll_late) // output[0:0]
513  );
514 
515  huffman_merge_code_literal huffman_merge_code_literal_i (
516  .clk (xclk), // input
517  .in_valid (htable_re[2]), // input
518  .huff_code (htable_out[15:0]), // input[15:0]
519  .huff_code_len (htable_out[19:16]), // input[3:0]
520  .literal (val_literal_late), // input[10:0]
521  .literal_len (val_length_late), // input[3:0]
522  .out_valid (dv), // output reg
523  .out_bits (do27), // output[26:0] reg
524  .out_len (dl) // output[4:0] reg
525  );
526  pulse_cross_clock flush_clk_i (
527  .rst (rst),
528  .src_clk (xclk),
529  .dst_clk (clk_flush),
530  .in_pulse (flush),
531  .out_pulse (flush_clk),
532  .busy ());
533 endmodule
534 
535 
table_ad_receive_i table_ad_receive
[DATA_WIDTH-1:0] 10430data_in
dly_16_rll_late_i dly_16
10332clk
Definition: dly_16.v:44
2574fifo_outwire[15:0]
2591htable_addrreg[8:0]
[NUM_CHN-1:0] 11054twe
[1 << LOG2WIDTH_WR-1:0] 11597data_in
2594val_length_latewire[3:0]
[1 << LOG2WIDTH_RD-1:0] 11592data_out
[13-LOG2WIDTH_RD:0] 11589raddr
[WIDTH-1:0] 10336dout
Definition: dly_16.v:48
[MODE_16_BITS?15:7:0] 11053td
fifo_same_clock_i fifo_same_clock
[WIDTH-1:0] 10335din
Definition: dly_16.v:47
2586gotColor_rreg[2:0]
varlen_encode_snglclk_i varlen_encode_snglclk
[23-MODE_16_BITS:0] 11052ta
[DATA_WIDTH-1:0] 10431data_out
[13-LOG2WIDTH_WR:0] 11594waddr
huffman_merge_code_literal_i huffman_merge_code_literal
i_htab ram18_var_w_var_r
2589val_lengthwire[3:0]
2593htable_outwire[31:0]
2585gotEOB_rreg[2:0]
flush_clk_i pulse_cross_clock
2582rll_latewire[3:0]
10333rst
Definition: dly_16.v:45
[NUM_CHN-1:0] 11051dv
2595val_literal_latewire[10:0]
2590val_literalwire[10:0]
[3:0] 10334dly
Definition: dly_16.v:46