OpenCores
URL https://opencores.org/ocsvn/nova/nova/trunk

Subversion Repositories nova

[/] [nova/] [tags/] [Start/] [src/] [BitStream_controller.v] - Blame information for rev 11

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 eexuke
//--------------------------------------------------------------------------------------------------
2
// Design    : nova
3
// Author(s) : Ke Xu
4
// Email           : eexuke@yahoo.com
5
// File      : BitStream_controller.v
6
// Generated : June 12,2005
7
// Copyright (C) 2008 Ke Xu                
8
//-------------------------------------------------------------------------------------------------
9
// Description 
10
// top module for bitstream controller
11
//-------------------------------------------------------------------------------------------------
12
 
13
// synopsys translate_off
14
`include "timescale.v"
15
// synopsys translate_on
16
`include "nova_defines.v"
17
 
18
module BitStream_controller (clk,reset_n,freq_ctrl0,freq_ctrl1,BitStream_buffer_input,pin_disable_DF,
19
        trigger_CAVLC,blk4x4_rec_counter,end_of_DCBlk_IQIT,end_of_one_blk4x4_sum,end_of_MB_DEC,gclk_end_of_MB_DEC,
20
        curr_DC_IsZero,
21
 
22
        BitStream_ram_ren,BitStream_ram_addr,pic_num,
23
        mb_type_general,mb_num_h,mb_num_v,NextMB_IsSkip,LowerMB_IsSkip,
24
        slice_data_state,residual_state,cavlc_decoder_state,
25
        end_of_one_residual_block,end_of_NonZeroCoeff_CAVLC,end_of_one_frame,
26
        Intra16x16_predmode,Intra4x4_predmode_CurrMb,Intra_chroma_predmode,
27
        QPy,QPc,i4x4_CbCr,slice_alpha_c0_offset_div2,slice_beta_offset_div2,
28
        CodedBlockPatternLuma,CodedBlockPatternChroma,TotalCoeff,
29
        Is_skip_run_entry,skip_mv_calc,disable_DF,
30
        coeffLevel_0,coeffLevel_1,coeffLevel_2, coeffLevel_3, coeffLevel_4, coeffLevel_5, coeffLevel_6, coeffLevel_7,
31
        coeffLevel_8,coeffLevel_9,coeffLevel_10,coeffLevel_11,coeffLevel_12,coeffLevel_13,coeffLevel_14,coeffLevel_15,
32
        mv_is16x16,mv_below8x8,
33
        mvx_CurrMb0,mvx_CurrMb1,mvx_CurrMb2,mvx_CurrMb3,mvy_CurrMb0,mvy_CurrMb1,mvy_CurrMb2,mvy_CurrMb3,
34
        end_of_BS_DEC,bs_V0,bs_V1,bs_V2,bs_V3,bs_H0,bs_H1,bs_H2,bs_H3,
35
 
36
        slice_header_s6
37
        );
38
        input clk,reset_n;
39
        input freq_ctrl0;
40
        input freq_ctrl1;
41
        input [15:0] BitStream_buffer_input;
42
        input pin_disable_DF;
43
        input trigger_CAVLC;
44
        input [4:0] blk4x4_rec_counter;
45
        input end_of_DCBlk_IQIT;
46
        input end_of_one_blk4x4_sum;
47
        input end_of_MB_DEC;
48
        input gclk_end_of_MB_DEC;
49
        input curr_DC_IsZero;
50
 
51
        output BitStream_ram_ren;
52
        output [16:0] BitStream_ram_addr;
53
        output [5:0] pic_num;
54
 
55
  output [3:0] mb_type_general;
56
        output [3:0] mb_num_h;
57
        output [3:0] mb_num_v;
58
        output NextMB_IsSkip;
59
        output LowerMB_IsSkip;
60
        output [3:0] slice_data_state;
61
        output [3:0] residual_state;
62
        output [3:0] cavlc_decoder_state;
63
        output end_of_one_residual_block;
64
        output end_of_NonZeroCoeff_CAVLC;
65
        output end_of_one_frame;
66
        output [1:0] Intra16x16_predmode;
67
        output [63:0] Intra4x4_predmode_CurrMb;
68
        output [1:0] Intra_chroma_predmode;
69
        output [5:0] QPy;
70
        output [5:0] QPc;
71
        output [1:0] i4x4_CbCr;
72
        output [3:0] slice_alpha_c0_offset_div2;
73
        output [3:0] slice_beta_offset_div2;
74
        output [3:0] CodedBlockPatternLuma;
75
        output [1:0] CodedBlockPatternChroma;
76
        output [4:0] TotalCoeff;
77
        output Is_skip_run_entry;
78
        output skip_mv_calc;
79
        output disable_DF;
80
        output [8:0] coeffLevel_0, coeffLevel_1, coeffLevel_2,coeffLevel_3, coeffLevel_4, coeffLevel_5;
81
        output [8:0] coeffLevel_6, coeffLevel_7, coeffLevel_8, coeffLevel_9,coeffLevel_10,coeffLevel_11;
82
        output [8:0] coeffLevel_12,coeffLevel_13,coeffLevel_14,coeffLevel_15;
83
        output mv_is16x16;
84
        output [3:0] mv_below8x8;
85
        output [31:0] mvx_CurrMb0,mvx_CurrMb1,mvx_CurrMb2,mvx_CurrMb3;
86
        output [31:0] mvy_CurrMb0,mvy_CurrMb1,mvy_CurrMb2,mvy_CurrMb3;
87
        output end_of_BS_DEC;
88
        output [11:0] bs_V0,bs_V1,bs_V2,bs_V3;
89
        output [11:0] bs_H0,bs_H1,bs_H2,bs_H3;
90
 
91
        output slice_header_s6;
92
 
93
        wire gclk_parser;
94
        wire gclk_nal;
95
        wire gclk_slice;
96
        wire gclk_sps;
97
        wire gclk_pps;
98
        wire gclk_slice_header;
99
        wire gclk_slice_data;
100
        wire gclk_residual;
101
        wire gclk_cavlc;
102
        wire gclk_bs_dec;
103
        wire gclk_Intra4x4PredMode_mbAddrB_RF;
104
        wire gclk_mvx_mbAddrB_RF;
105
        wire gclk_mvy_mbAddrB_RF;
106
        wire gclk_mvx_mbAddrC_RF;
107
        wire gclk_mvy_mbAddrC_RF;
108
        wire gclk_LumaLevel_mbAddrB_RF;
109
        wire gclk_ChromaLevel_Cb_mbAddrB_RF;
110
        wire gclk_ChromaLevel_Cr_mbAddrB_RF;
111
        wire [6:0] pc;
112
        wire [5:0] QPy,QPc;
113
        wire [3:0] CodedBlockPatternLuma;
114
        wire [1:0] CodedBlockPatternChroma;
115
        wire [8:0] coeffLevel_0, coeffLevel_1, coeffLevel_2,coeffLevel_3, coeffLevel_4, coeffLevel_5;
116
        wire [8:0] coeffLevel_6, coeffLevel_7, coeffLevel_8, coeffLevel_9,coeffLevel_10,coeffLevel_11;
117
        wire [8:0] coeffLevel_12,coeffLevel_13,coeffLevel_14,coeffLevel_15;
118
        wire [63:0] Intra4x4PredMode_CurrMb;
119
        wire mv_is16x16;
120
        wire Is_skip_run_end;
121
        wire Is_skipMB_mv_calc;
122
        wire [31:0] mvx_CurrMb0,mvx_CurrMb1,mvx_CurrMb2,mvx_CurrMb3;
123
        wire [31:0] mvy_CurrMb0,mvy_CurrMb1,mvy_CurrMb2,mvy_CurrMb3;
124
 
125
        wire BitStream_buffer_valid_n;
126
        wire [15:0] BitStream_buffer_output;
127
        wire [1:0] parser_state;
128
        wire [2:0] nal_unit_state;
129
        wire [1:0] slice_layer_wo_partitioning_state;
130
        wire [3:0] slice_header_state;
131
        wire [2:0] ref_pic_list_reordering_state;
132
        wire [1:0] dec_ref_pic_marking_state;
133
        wire [3:0] slice_data_state;
134
        wire [1:0] sub_mb_pred_state;
135
        wire [2:0] mb_pred_state;
136
        wire [3:0] seq_parameter_set_state;
137
        wire [3:0] pic_parameter_set_state;
138
        wire [3:0] residual_state;
139
        wire [3:0] cavlc_decoder_state;
140
        wire [3:0] exp_golomb_len;
141
        wire [3:0] dependent_variable_len;
142
        wire [4:0] cavlc_consumed_bits_len;
143
        wire heading_one_en;
144
        wire [3:0] heading_one_pos;
145
        wire [7:0] exp_golomb_decoding_output;
146
        wire [9:0] dependent_variable_decoding_output;
147
        wire Intra4x4PredMode_mbAddrB_cs_n;
148
        wire Intra4x4PredMode_mbAddrB_wr_n;
149
        wire [3:0] Intra4x4PredMode_mbAddrB_rd_addr;
150
        wire [3:0] Intra4x4PredMode_mbAddrB_wr_addr;
151
        wire [15:0] Intra4x4PredMode_mbAddrB_din;
152
        wire [15:0] Intra4x4PredMode_mbAddrB_dout;
153
        wire mvx_mbAddrB_cs_n;
154
        wire mvy_mbAddrB_cs_n;
155
        wire mvx_mbAddrC_cs_n;
156
        wire mvy_mbAddrC_cs_n;
157
        wire mvx_mbAddrB_wr_n;
158
        wire mvy_mbAddrB_wr_n;
159
        wire mvx_mbAddrC_wr_n;
160
        wire mvy_mbAddrC_wr_n;
161
        wire [3:0] mvx_mbAddrB_rd_addr;
162
        wire [3:0] mvy_mbAddrB_rd_addr;
163
        wire [3:0] mvx_mbAddrC_rd_addr;
164
        wire [3:0] mvy_mbAddrC_rd_addr;
165
        wire [3:0] mvx_mbAddrB_wr_addr;
166
        wire [3:0] mvy_mbAddrB_wr_addr;
167
        wire [3:0] mvx_mbAddrC_wr_addr;
168
        wire [3:0] mvy_mbAddrC_wr_addr;
169
        wire [31:0] mvx_mbAddrA;
170
        wire [31:0] mvy_mbAddrA;
171
        wire [31:0] mvx_mbAddrB_din;
172
        wire [31:0] mvx_mbAddrB_dout;
173
        wire [31:0] mvy_mbAddrB_din;
174
        wire [31:0] mvy_mbAddrB_dout;
175
        wire [7:0] mvx_mbAddrC_din;
176
        wire [7:0] mvx_mbAddrC_dout;
177
        wire [7:0] mvy_mbAddrC_din;
178
        wire [7:0] mvy_mbAddrC_dout;
179
        wire end_of_NonZeroCoeff_CAVLC;
180
        wire start_code_prefix_found;
181
        wire [4:0] nal_unit_type;
182
        wire deblocking_filter_control_present_flag;
183
        wire [1:0] disable_deblocking_filter_idc;
184
        wire disable_DF;
185
        wire [6:0] mb_skip_run;
186
        wire [2:0] NumMbPart;
187
        wire [2:0] NumSubMbPart;
188
        wire [1:0] MBTypeGen_mbAddrA;
189
        wire MBTypeGen_mbAddrD;
190
        wire [21:0]MBTypeGen_mbAddrB_reg;
191
        wire [3:0] log2_max_frame_num_minus4;
192
        wire [3:0] log2_max_pic_order_cnt_lsb_minus4;
193
        wire constrained_intra_pred_flag;
194
        wire num_ref_idx_active_override_flag;
195
        wire [2:0] num_ref_idx_l0_active_minus1;
196
        wire [2:0] slice_type;
197
        wire [4:0] mb_type;
198
        wire [3:0] mb_type_general;
199
        wire [1:0] sub_mb_type;
200
        wire [5:0] pic_init_qp_minus26;
201
        wire [4:0] chroma_qp_index_offset;
202
        wire [2:0] rem_intra4x4_pred_mode;
203
        wire [7:0] mvd;
204
        wire prev_intra4x4_pred_mode_flag;
205
        wire cavlc_decoder_en;
206
        wire [5:0] pic_num;
207
        wire [6:0] mb_num;
208
        wire [3:0] mb_num_h;
209
        wire [3:0] mb_num_v;
210
        wire [3:0] luma4x4BlkIdx;
211
        wire [1:0] mbPartIdx;
212
        wire [1:0] subMbPartIdx;
213
        wire compIdx;
214
        wire suffix_length_initialized;
215
        wire IsRunLoop;
216
        wire [1:0] i8x8,i4x4;
217
        wire [1:0] i4x4_CbCr;
218
        wire [3:0] coeffNum;
219
        wire [3:0] i_level;
220
        wire [3:0] i_run;
221
        wire [3:0] i_TotalCoeff;
222
        wire [4:0] TotalCoeff;
223
        wire [1:0] TrailingOnes;
224
        wire [4:0] maxNumCoeff;
225
        wire [3:0] zerosLeft;
226
        wire [3:0] run;
227
 
228
        wire [1:0] Luma_8x8_AllZeroCoeff_mbAddrA;
229
        wire [19:0] LumaLevel_mbAddrA;
230
        wire [19:0] LumaLevel_CurrMb0,LumaLevel_CurrMb1,LumaLevel_CurrMb2,LumaLevel_CurrMb3;
231
        wire LumaLevel_mbAddrB_cs_n;
232
        wire [19:0] LumaLevel_mbAddrB_dout;
233
        wire ChromaLevel_Cb_mbAddrB_cs_n;
234
        wire ChromaLevel_Cr_mbAddrB_cs_n;
235
        wire [1:0] bs_dec_counter;
236
        wire [11:0] bs_V0,bs_V1,bs_V2,bs_V3;
237
        wire [11:0] bs_H0,bs_H1,bs_H2,bs_H3;
238
        wire mv_mbAddrB_rd_for_DF;
239
 
240
        BitStream_buffer BitStream_buffer (
241
                .clk(clk),
242
                .reset_n(reset_n),
243
                .BitStream_buffer_input(BitStream_buffer_input),
244
                .pc(pc),
245
                .BitStream_ram_ren(BitStream_ram_ren),
246
                .BitStream_buffer_valid_n(BitStream_buffer_valid_n),
247
                .BitStream_buffer_output(BitStream_buffer_output),
248
                .BitStream_ram_addr(BitStream_ram_addr)
249
                );
250
        bitstream_gclk_gen bitstream_gclk_gen (
251
                .clk(clk),
252
                .reset_n(reset_n),
253
                .freq_ctrl0(freq_ctrl0),
254
                .freq_ctrl1(freq_ctrl1),
255
                .parser_state(parser_state),
256
                .nal_unit_state(nal_unit_state),
257
                .slice_layer_wo_partitioning_state(slice_layer_wo_partitioning_state),
258
                .slice_header_state(slice_header_state),
259
                .slice_data_state(slice_data_state),
260
                .seq_parameter_set_state(seq_parameter_set_state),
261
                .pic_parameter_set_state(pic_parameter_set_state),
262
                .residual_state(residual_state),
263
                .cavlc_decoder_state(cavlc_decoder_state),
264
                .mb_num(mb_num),
265
                .TotalCoeff(TotalCoeff),
266
                .start_code_prefix_found(start_code_prefix_found),
267
                .pc_2to0(pc[2:0]),
268
                .deblocking_filter_control_present_flag(deblocking_filter_control_present_flag),
269
                .disable_deblocking_filter_idc(disable_deblocking_filter_idc),
270
                .end_of_one_residual_block(end_of_one_residual_block),
271
                .Intra4x4PredMode_mbAddrB_cs_n(Intra4x4PredMode_mbAddrB_cs_n),
272
                .mvx_mbAddrB_cs_n(mvx_mbAddrB_cs_n),
273
                .mvy_mbAddrB_cs_n(mvy_mbAddrB_cs_n),
274
                .mvx_mbAddrC_cs_n(mvx_mbAddrC_cs_n),
275
                .mvy_mbAddrC_cs_n(mvy_mbAddrC_cs_n),
276
                .LumaLevel_mbAddrB_cs_n(LumaLevel_mbAddrB_cs_n),
277
                .ChromaLevel_Cb_mbAddrB_cs_n(ChromaLevel_Cb_mbAddrB_cs_n),
278
                .ChromaLevel_Cr_mbAddrB_cs_n(ChromaLevel_Cr_mbAddrB_cs_n),
279
                .trigger_CAVLC(trigger_CAVLC),
280
                .blk4x4_rec_counter(blk4x4_rec_counter),
281
                .end_of_DCBlk_IQIT(end_of_DCBlk_IQIT),
282
                .end_of_one_blk4x4_sum(end_of_one_blk4x4_sum),
283
                .end_of_MB_DEC(end_of_MB_DEC),
284
                .disable_DF(disable_DF),
285
                .bs_dec_counter(bs_dec_counter),
286
 
287
                .gclk_parser(gclk_parser),
288
                .gclk_nal(gclk_nal),
289
                .gclk_slice(gclk_slice),
290
                .gclk_sps(gclk_sps),
291
                .gclk_pps(gclk_pps),
292
                .gclk_slice_header(gclk_slice_header),
293
                .gclk_slice_data(gclk_slice_data),
294
                .gclk_residual(gclk_residual),
295
                .gclk_cavlc(gclk_cavlc),
296
                .gclk_Intra4x4PredMode_mbAddrB_RF(gclk_Intra4x4PredMode_mbAddrB_RF),
297
                .gclk_mvx_mbAddrB_RF(gclk_mvx_mbAddrB_RF),
298
                .gclk_mvy_mbAddrB_RF(gclk_mvy_mbAddrB_RF),
299
                .gclk_mvx_mbAddrC_RF(gclk_mvx_mbAddrC_RF),
300
                .gclk_mvy_mbAddrC_RF(gclk_mvy_mbAddrC_RF),
301
                .gclk_LumaLevel_mbAddrB_RF(gclk_LumaLevel_mbAddrB_RF),
302
                .gclk_ChromaLevel_Cb_mbAddrB_RF(gclk_ChromaLevel_Cb_mbAddrB_RF),
303
                .gclk_ChromaLevel_Cr_mbAddrB_RF(gclk_ChromaLevel_Cr_mbAddrB_RF),
304
                .gclk_bs_dec(gclk_bs_dec),
305
                .end_of_one_frame(end_of_one_frame)
306
                );
307
        BitStream_parser_FSM BitStream_parser_FSM(
308
                .clk(clk),
309
                .reset_n(reset_n),
310
                .end_of_one_blk4x4_sum(end_of_one_blk4x4_sum),
311
                .end_of_MB_DEC(end_of_MB_DEC),
312
                .gclk_parser(gclk_parser),
313
                .gclk_nal(gclk_nal),
314
                .gclk_slice(gclk_slice),
315
                .gclk_sps(gclk_sps),
316
                .gclk_pps(gclk_pps),
317
                .gclk_slice_header(gclk_slice_header),
318
                .gclk_slice_data(gclk_slice_data),
319
                .gclk_residual(gclk_residual),
320
                .gclk_cavlc(gclk_cavlc),
321
                .trigger_CAVLC(trigger_CAVLC),
322
                .BitStream_buffer_valid_n(BitStream_buffer_valid_n),
323
                .nal_unit_type(nal_unit_type),
324
                .slice_type(slice_type),
325
                .num_ref_idx_active_override_flag(num_ref_idx_active_override_flag),
326
                .deblocking_filter_control_present_flag(deblocking_filter_control_present_flag),
327
                .disable_deblocking_filter_idc(disable_deblocking_filter_idc),
328
                .mb_skip_run(mb_skip_run),
329
                .mb_type_general(mb_type_general),
330
                .prev_intra4x4_pred_mode_flag(prev_intra4x4_pred_mode_flag),
331
                .CodedBlockPatternLuma(CodedBlockPatternLuma),
332
                .CodedBlockPatternChroma(CodedBlockPatternChroma),
333
                .pc_2to0(pc[2:0]),
334
                .NumSubMbPart(NumSubMbPart),
335
                .NumMbPart(NumMbPart),
336
                .TotalCoeff(TotalCoeff),
337
                .TrailingOnes(TrailingOnes),
338
                .maxNumCoeff(maxNumCoeff),
339
                .zerosLeft(zerosLeft),
340
                .run(run),
341
 
342
                .parser_state(parser_state),
343
                .nal_unit_state(nal_unit_state),
344
                .slice_layer_wo_partitioning_state(slice_layer_wo_partitioning_state),
345
                .slice_header_state(slice_header_state),
346
                .slice_header_s6(slice_header_s6),
347
                .ref_pic_list_reordering_state(ref_pic_list_reordering_state),
348
                .dec_ref_pic_marking_state(dec_ref_pic_marking_state),
349
                .slice_data_state(slice_data_state),
350
                .sub_mb_pred_state(sub_mb_pred_state),
351
                .mb_pred_state(mb_pred_state),
352
                .seq_parameter_set_state(seq_parameter_set_state),
353
                .pic_parameter_set_state(pic_parameter_set_state),
354
                .residual_state(residual_state),
355
                .cavlc_decoder_state(cavlc_decoder_state),
356
                .heading_one_en(heading_one_en),
357
                .pic_num(pic_num),
358
                .mb_num(mb_num),
359
                .mb_num_h(mb_num_h),
360
                .mb_num_v(mb_num_v),
361
                .NextMB_IsSkip(NextMB_IsSkip),
362
                .LowerMB_IsSkip(LowerMB_IsSkip),
363
                .Is_skip_run_entry(Is_skip_run_entry),
364
                .Is_skip_run_end(Is_skip_run_end),
365
                .luma4x4BlkIdx(luma4x4BlkIdx),
366
                .mbPartIdx(mbPartIdx),
367
                .subMbPartIdx(subMbPartIdx),
368
                .compIdx(compIdx),
369
                .i8x8(i8x8),
370
                .i4x4(i4x4),
371
                .i4x4_CbCr(i4x4_CbCr),
372
                .coeffNum(coeffNum),
373
                .i_level(i_level),
374
                .i_run(i_run),
375
                .i_TotalCoeff(i_TotalCoeff),
376
                .suffix_length_initialized(suffix_length_initialized),
377
                .IsRunLoop(IsRunLoop)
378
                );
379
        pc_decoding pc_decoding (
380
                .clk(clk),
381
                .reset_n(reset_n),
382
                .parser_state(parser_state),
383
                .nal_unit_state(nal_unit_state),
384
                .slice_header_state(slice_header_state),
385
                .ref_pic_list_reordering_state(ref_pic_list_reordering_state),
386
                .dec_ref_pic_marking_state(dec_ref_pic_marking_state),
387
                .slice_data_state(slice_data_state),
388
                .sub_mb_pred_state(sub_mb_pred_state),
389
                .mb_pred_state(mb_pred_state),
390
                .seq_parameter_set_state(seq_parameter_set_state),
391
                .pic_parameter_set_state(pic_parameter_set_state),
392
                .exp_golomb_len(exp_golomb_len),
393
                .dependent_variable_len(dependent_variable_len),
394
                .cavlc_consumed_bits_len(cavlc_consumed_bits_len),
395
                .pc(pc)
396
                );
397
        heading_one_detector heading_one_detector (
398
                .heading_one_en(heading_one_en),
399
                .BitStream_buffer_output(BitStream_buffer_output),
400
                .heading_one_pos(heading_one_pos)
401
                );
402
        exp_golomb_decoding exp_golomb_decoding (
403
                .reset_n(reset_n),
404
                .heading_one_pos(heading_one_pos),
405
                .BitStream_buffer_output(BitStream_buffer_output),
406
                .num_ref_idx_l0_active_minus1(num_ref_idx_l0_active_minus1),
407
                .exp_golomb_decoding_output(exp_golomb_decoding_output),
408
                .exp_golomb_len(exp_golomb_len),
409
                .slice_header_state(slice_header_state),
410
                .slice_data_state(slice_data_state),
411
                .mb_pred_state(mb_pred_state),
412
                .sub_mb_pred_state(sub_mb_pred_state),
413
                .seq_parameter_set_state(seq_parameter_set_state),
414
                .pic_parameter_set_state(pic_parameter_set_state)
415
                );
416
        dependent_variable_decoding dependent_variable_decoding (
417
                .slice_header_state(slice_header_state),
418
                .log2_max_frame_num_minus4(log2_max_frame_num_minus4),
419
                .log2_max_pic_order_cnt_lsb_minus4(log2_max_pic_order_cnt_lsb_minus4),
420
                .BitStream_buffer_output(BitStream_buffer_output),
421
                .dependent_variable_len(dependent_variable_len),
422
                .dependent_variable_decoding_output(dependent_variable_decoding_output)
423
                );
424
        QP_decoding QP_decoding (
425
                .clk(clk),
426
                .reset_n(reset_n),
427
                .slice_header_state(slice_header_state),
428
                .slice_data_state(slice_data_state),
429
                .pic_init_qp_minus26(pic_init_qp_minus26),
430
                .exp_golomb_decoding_output_5to0(exp_golomb_decoding_output[5:0]),
431
                .chroma_qp_index_offset(chroma_qp_index_offset),
432
                .QPy(QPy),
433
                .QPc(QPc)
434
                );
435
        CodedBlockPattern_decoding CodedBlockPattern_decoding (
436
                .clk(clk),
437
                .reset_n(reset_n),
438
                .slice_data_state(slice_data_state),
439
                .slice_type(slice_type),
440
                .mb_type(mb_type),
441
                .mb_type_general(mb_type_general),
442
                .exp_golomb_decoding_output_5to0(exp_golomb_decoding_output[5:0]),
443
                .CodedBlockPatternLuma(CodedBlockPatternLuma),
444
                .CodedBlockPatternChroma(CodedBlockPatternChroma)
445
                );
446
        Intra4x4_PredMode_decoding Intra4x4_PredMode_decoding (
447
                .clk(clk),
448
                .reset_n(reset_n),
449
                .mb_pred_state(mb_pred_state),
450
                .luma4x4BlkIdx(luma4x4BlkIdx),
451
                .mb_num_h(mb_num_h),
452
                .mb_num_v(mb_num_v),
453
                .MBTypeGen_mbAddrA(MBTypeGen_mbAddrA),
454
                .MBTypeGen_mbAddrB_reg(MBTypeGen_mbAddrB_reg),
455
                .constrained_intra_pred_flag(constrained_intra_pred_flag),
456
                .rem_intra4x4_pred_mode(rem_intra4x4_pred_mode),
457
                .prev_intra4x4_pred_mode_flag(prev_intra4x4_pred_mode_flag),
458
                .Intra4x4PredMode_mbAddrB_dout(Intra4x4PredMode_mbAddrB_dout),
459
                //pic_num can be wired out for debug purpose
460
                //.pic_num(pic_num),
461
 
462
                .Intra4x4PredMode_CurrMb(Intra4x4_predmode_CurrMb),
463
                .Intra4x4PredMode_mbAddrB_cs_n(Intra4x4PredMode_mbAddrB_cs_n),
464
                .Intra4x4PredMode_mbAddrB_wr_n(Intra4x4PredMode_mbAddrB_wr_n),
465
                .Intra4x4PredMode_mbAddrB_rd_addr(Intra4x4PredMode_mbAddrB_rd_addr),
466
                .Intra4x4PredMode_mbAddrB_wr_addr(Intra4x4PredMode_mbAddrB_wr_addr),
467
                .Intra4x4PredMode_mbAddrB_din(Intra4x4PredMode_mbAddrB_din)
468
                );
469
        ram_async_1r_sync_1w # (`Intra4x4_PredMode_RF_data_width,`Intra4x4_PredMode_RF_data_depth)
470
        Intra4x4_PredMode_RF (
471
                .clk(gclk_Intra4x4PredMode_mbAddrB_RF),
472
                .rst_n(reset_n),
473
                .cs_n(Intra4x4PredMode_mbAddrB_cs_n),
474
                .wr_n(Intra4x4PredMode_mbAddrB_wr_n),
475
                .rd_addr(Intra4x4PredMode_mbAddrB_rd_addr),
476
                .wr_addr(Intra4x4PredMode_mbAddrB_wr_addr),
477
                .data_in(Intra4x4PredMode_mbAddrB_din),
478
                .data_out(Intra4x4PredMode_mbAddrB_dout)
479
                );
480
        Inter_mv_decoding Inter_mv_decoding (
481
                .clk(clk),
482
                .reset_n(reset_n),
483
                .Is_skip_run_entry(Is_skip_run_entry),
484
                .Is_skip_run_end(Is_skip_run_end),
485
                .slice_data_state(slice_data_state),
486
                .mb_pred_state(mb_pred_state),
487
                .sub_mb_pred_state(sub_mb_pred_state),
488
                .mvd(mvd),
489
                .mb_num(mb_num),
490
                .mb_num_h(mb_num_h),
491
                .mb_num_v(mb_num_v),
492
                .mb_type_general(mb_type_general),
493
                .sub_mb_type(sub_mb_type),
494
                .end_of_MB_DEC(end_of_MB_DEC),
495
                .mbPartIdx(mbPartIdx),
496
                .subMbPartIdx(subMbPartIdx),
497
                .compIdx(compIdx),
498
                .MBTypeGen_mbAddrA(MBTypeGen_mbAddrA),
499
                .MBTypeGen_mbAddrB_reg(MBTypeGen_mbAddrB_reg),
500
                .MBTypeGen_mbAddrD(MBTypeGen_mbAddrD),
501
                .mvx_mbAddrB_dout(mvx_mbAddrB_dout),
502
                .mvy_mbAddrB_dout(mvy_mbAddrB_dout),
503
                .mvx_mbAddrC_dout(mvx_mbAddrC_dout),
504
                .mvy_mbAddrC_dout(mvy_mbAddrC_dout),
505
                .mv_mbAddrB_rd_for_DF(mv_mbAddrB_rd_for_DF),
506
 
507
                .skip_mv_calc(skip_mv_calc),
508
                .Is_skipMB_mv_calc(Is_skipMB_mv_calc),
509
                .mvx_mbAddrA(mvx_mbAddrA),
510
                .mvy_mbAddrA(mvy_mbAddrA),
511
                .mvx_mbAddrB_cs_n(mvx_mbAddrB_cs_n),
512
                .mvx_mbAddrB_wr_n(mvx_mbAddrB_wr_n),
513
                .mvx_mbAddrB_rd_addr(mvx_mbAddrB_rd_addr),
514
                .mvx_mbAddrB_wr_addr(mvx_mbAddrB_wr_addr),
515
                .mvx_mbAddrB_din(mvx_mbAddrB_din),
516
                .mvy_mbAddrB_cs_n(mvy_mbAddrB_cs_n),
517
                .mvy_mbAddrB_wr_n(mvy_mbAddrB_wr_n),
518
                .mvy_mbAddrB_rd_addr(mvy_mbAddrB_rd_addr),
519
                .mvy_mbAddrB_wr_addr(mvy_mbAddrB_wr_addr),
520
                .mvy_mbAddrB_din(mvy_mbAddrB_din),
521
                .mvx_mbAddrC_cs_n(mvx_mbAddrC_cs_n),
522
                .mvx_mbAddrC_wr_n(mvx_mbAddrC_wr_n),
523
                .mvx_mbAddrC_rd_addr(mvx_mbAddrC_rd_addr),
524
                .mvx_mbAddrC_wr_addr(mvx_mbAddrC_wr_addr),
525
                .mvx_mbAddrC_din(mvx_mbAddrC_din),
526
                .mvy_mbAddrC_cs_n(mvy_mbAddrC_cs_n),
527
                .mvy_mbAddrC_wr_n(mvy_mbAddrC_wr_n),
528
                .mvy_mbAddrC_rd_addr(mvy_mbAddrC_rd_addr),
529
                .mvy_mbAddrC_wr_addr(mvy_mbAddrC_wr_addr),
530
                .mvy_mbAddrC_din(mvy_mbAddrC_din),
531
                .mv_is16x16(mv_is16x16),
532
                .mvx_CurrMb0(mvx_CurrMb0),
533
                .mvx_CurrMb1(mvx_CurrMb1),
534
                .mvx_CurrMb2(mvx_CurrMb2),
535
                .mvx_CurrMb3(mvx_CurrMb3),
536
                .mvy_CurrMb0(mvy_CurrMb0),
537
                .mvy_CurrMb1(mvy_CurrMb1),
538
                .mvy_CurrMb2(mvy_CurrMb2),
539
                .mvy_CurrMb3(mvy_CurrMb3)
540
                );
541
        ram_async_1r_sync_1w # (`mvx_mbAddrB_RF_data_width,`mvx_mbAddrB_RF_data_depth)
542
        mvx_mbAddrB_RF (
543
                .clk(gclk_mvx_mbAddrB_RF),
544
                .rst_n(reset_n),
545
                .cs_n(mvx_mbAddrB_cs_n),
546
                .wr_n(mvx_mbAddrB_wr_n),
547
                .rd_addr(mvx_mbAddrB_rd_addr),
548
                .wr_addr(mvx_mbAddrB_wr_addr),
549
                .data_in(mvx_mbAddrB_din),
550
                .data_out(mvx_mbAddrB_dout)
551
                );
552
        ram_async_1r_sync_1w # (`mvy_mbAddrB_RF_data_width,`mvy_mbAddrB_RF_data_depth)
553
        mvy_mbAddrB_RF (
554
                .clk(gclk_mvy_mbAddrB_RF),
555
                .rst_n(reset_n),
556
                .cs_n(mvy_mbAddrB_cs_n),
557
                .wr_n(mvy_mbAddrB_wr_n),
558
                .rd_addr(mvy_mbAddrB_rd_addr),
559
                .wr_addr(mvy_mbAddrB_wr_addr),
560
                .data_in(mvy_mbAddrB_din),
561
                .data_out(mvy_mbAddrB_dout)
562
                );
563
        ram_async_1r_sync_1w # (`mvx_mbAddrC_RF_data_width,`mvx_mbAddrC_RF_data_depth)
564
        mvx_mbAddrC_RF (
565
                .clk(gclk_mvx_mbAddrC_RF),
566
                .rst_n(reset_n),
567
                .cs_n(mvx_mbAddrC_cs_n),
568
                .wr_n(mvx_mbAddrC_wr_n),
569
                .rd_addr(mvx_mbAddrC_rd_addr),
570
                .wr_addr(mvx_mbAddrC_wr_addr),
571
                .data_in(mvx_mbAddrC_din),
572
                .data_out(mvx_mbAddrC_dout)
573
                );
574
        ram_async_1r_sync_1w # (`mvy_mbAddrC_RF_data_width,`mvy_mbAddrC_RF_data_depth)
575
        mvy_mbAddrC_RF (
576
                .clk(gclk_mvy_mbAddrC_RF),
577
                .rst_n(reset_n),
578
                .cs_n(mvy_mbAddrC_cs_n),
579
                .wr_n(mvy_mbAddrC_wr_n),
580
                .rd_addr(mvy_mbAddrC_rd_addr),
581
                .wr_addr(mvy_mbAddrC_wr_addr),
582
                .data_in(mvy_mbAddrC_din),
583
                .data_out(mvy_mbAddrC_dout)
584
                );
585
        syntax_decoding syntax_decoding (
586
                .clk(clk),
587
                .reset_n(reset_n),
588
                .mb_num_h(mb_num_h),
589
                .mb_num_v(mb_num_v),
590
                .end_of_MB_DEC(end_of_MB_DEC),
591
                .pin_disable_DF(pin_disable_DF),
592
                .parser_state(parser_state),
593
                .nal_unit_state(nal_unit_state),
594
                .seq_parameter_set_state(seq_parameter_set_state),
595
                .pic_parameter_set_state(pic_parameter_set_state),
596
                .slice_header_state(slice_header_state),
597
                .slice_data_state(slice_data_state),
598
                .mb_pred_state(mb_pred_state),
599
                .sub_mb_pred_state(sub_mb_pred_state),
600
                .exp_golomb_decoding_output(exp_golomb_decoding_output),
601
                .BitStream_buffer_output(BitStream_buffer_output),
602
                .dependent_variable_decoding_output(dependent_variable_decoding_output),
603
                .mbPartIdx(mbPartIdx),
604
 
605
                .nal_unit_type(nal_unit_type),
606
                .start_code_prefix_found(start_code_prefix_found),
607
                .deblocking_filter_control_present_flag(deblocking_filter_control_present_flag),
608
                .disable_deblocking_filter_idc(disable_deblocking_filter_idc),
609
                .disable_DF(disable_DF),
610
                .slice_alpha_c0_offset_div2(slice_alpha_c0_offset_div2),
611
                .slice_beta_offset_div2(slice_beta_offset_div2),
612
                .mb_skip_run(mb_skip_run),
613
                .NumMbPart(NumMbPart),
614
                .NumSubMbPart(NumSubMbPart),
615
                .MBTypeGen_mbAddrA(MBTypeGen_mbAddrA),
616
                .MBTypeGen_mbAddrD(MBTypeGen_mbAddrD),
617
                .MBTypeGen_mbAddrB_reg(MBTypeGen_mbAddrB_reg),
618
                .log2_max_frame_num_minus4(log2_max_frame_num_minus4),
619
                .log2_max_pic_order_cnt_lsb_minus4(log2_max_pic_order_cnt_lsb_minus4),
620
                .constrained_intra_pred_flag(constrained_intra_pred_flag),
621
                .num_ref_idx_active_override_flag(num_ref_idx_active_override_flag),
622
                .num_ref_idx_l0_active_minus1(num_ref_idx_l0_active_minus1),
623
                .slice_type(slice_type),
624
                .mb_type(mb_type),
625
                .mb_type_general(mb_type_general),
626
                .Intra16x16_predmode(Intra16x16_predmode),
627
                .intra_chroma_pred_mode(Intra_chroma_predmode),
628
                .sub_mb_type(sub_mb_type),
629
                .pic_init_qp_minus26(pic_init_qp_minus26),
630
                .chroma_qp_index_offset(chroma_qp_index_offset),
631
                .rem_intra4x4_pred_mode(rem_intra4x4_pred_mode),
632
                .prev_intra4x4_pred_mode_flag(prev_intra4x4_pred_mode_flag),
633
                .mvd(mvd),
634
                .mv_below8x8(mv_below8x8)
635
                );
636
        cavlc_decoder cavlc_decoder(
637
                .clk(clk),
638
                .reset_n(reset_n),
639
                .gclk_end_of_MB_DEC(gclk_end_of_MB_DEC),
640
                .gclk_LumaLevel_mbAddrB_RF(gclk_LumaLevel_mbAddrB_RF),
641
                .gclk_ChromaLevel_Cb_mbAddrB_RF(gclk_ChromaLevel_Cb_mbAddrB_RF),
642
                .gclk_ChromaLevel_Cr_mbAddrB_RF(gclk_ChromaLevel_Cr_mbAddrB_RF),
643
                .slice_data_state(slice_data_state),
644
                .residual_state(residual_state),
645
                .cavlc_decoder_state(cavlc_decoder_state),
646
                .mb_num_h(mb_num_h),
647
                .mb_num_v(mb_num_v),
648
                .i8x8(i8x8),
649
                .i4x4(i4x4),
650
                .i4x4_CbCr(i4x4_CbCr),
651
                .i_level(i_level),
652
                .i_run(i_run),
653
                .i_TotalCoeff(i_TotalCoeff),
654
                .coeffNum(coeffNum),
655
                .heading_one_pos(heading_one_pos),
656
                .BitStream_buffer_output(BitStream_buffer_output),
657
                .CodedBlockPatternLuma(CodedBlockPatternLuma),
658
                .CodedBlockPatternChroma(CodedBlockPatternChroma),
659
                .suffix_length_initialized(suffix_length_initialized),
660
                .IsRunLoop(IsRunLoop),
661
 
662
                .Luma_8x8_AllZeroCoeff_mbAddrA(Luma_8x8_AllZeroCoeff_mbAddrA),
663
                .LumaLevel_mbAddrA(LumaLevel_mbAddrA),
664
                .LumaLevel_CurrMb0(LumaLevel_CurrMb0),
665
                .LumaLevel_CurrMb1(LumaLevel_CurrMb1),
666
                .LumaLevel_CurrMb2(LumaLevel_CurrMb2),
667
                .LumaLevel_CurrMb3(LumaLevel_CurrMb3),
668
                .LumaLevel_mbAddrB_dout(LumaLevel_mbAddrB_dout),
669
                .LumaLevel_mbAddrB_cs_n(LumaLevel_mbAddrB_cs_n),
670
                .ChromaLevel_Cb_mbAddrB_cs_n(ChromaLevel_Cb_mbAddrB_cs_n),
671
                .ChromaLevel_Cr_mbAddrB_cs_n(ChromaLevel_Cr_mbAddrB_cs_n),
672
                .end_of_one_residual_block(end_of_one_residual_block),
673
                .end_of_NonZeroCoeff_CAVLC(end_of_NonZeroCoeff_CAVLC),
674
                .cavlc_consumed_bits_len(cavlc_consumed_bits_len),
675
                .TotalCoeff(TotalCoeff),
676
                .TrailingOnes(TrailingOnes),
677
                .maxNumCoeff(maxNumCoeff),
678
                .zerosLeft(zerosLeft),
679
                .run(run),
680
                .coeffLevel_0(coeffLevel_0),
681
                .coeffLevel_1(coeffLevel_1),
682
                .coeffLevel_2(coeffLevel_2),
683
                .coeffLevel_3(coeffLevel_3),
684
                .coeffLevel_4(coeffLevel_4),
685
                .coeffLevel_5(coeffLevel_5),
686
                .coeffLevel_6(coeffLevel_6),
687
                .coeffLevel_7(coeffLevel_7),
688
                .coeffLevel_8(coeffLevel_8),
689
                .coeffLevel_9(coeffLevel_9),
690
                .coeffLevel_10(coeffLevel_10),
691
                .coeffLevel_11(coeffLevel_11),
692
                .coeffLevel_12(coeffLevel_12),
693
                .coeffLevel_13(coeffLevel_13),
694
                .coeffLevel_14(coeffLevel_14),
695
                .coeffLevel_15(coeffLevel_15)
696
                );
697
        bs_decoding bs_decoding (
698
                .clk(clk),
699
                .reset_n(reset_n),
700
                .gclk_end_of_MB_DEC(gclk_end_of_MB_DEC),
701
                .gclk_bs_dec(gclk_bs_dec),
702
                .end_of_MB_DEC(end_of_MB_DEC),
703
                .end_of_one_blk4x4_sum(end_of_one_blk4x4_sum),
704
                .mb_num_h(mb_num_h),
705
                .mb_num_v(mb_num_v),
706
                .disable_DF(disable_DF),
707
                .blk4x4_rec_counter(blk4x4_rec_counter),
708
                .CodedBlockPatternLuma(CodedBlockPatternLuma),
709
                .mb_type_general(mb_type_general),
710
                .slice_data_state(slice_data_state),
711
                .residual_state(residual_state),
712
                .MBTypeGen_mbAddrA(MBTypeGen_mbAddrA),
713
                .MBTypeGen_mbAddrB_reg(MBTypeGen_mbAddrB_reg),
714
                .end_of_one_residual_block(end_of_one_residual_block),
715
                .TotalCoeff(TotalCoeff),
716
                .curr_DC_IsZero(curr_DC_IsZero),
717
                .Is_skipMB_mv_calc(Is_skipMB_mv_calc),
718
                .mvx_mbAddrA(mvx_mbAddrA),
719
                .mvy_mbAddrA(mvy_mbAddrA),
720
                .mvx_mbAddrB_dout(mvx_mbAddrB_dout),
721
                .mvy_mbAddrB_dout(mvy_mbAddrB_dout),
722
                .mvx_CurrMb0(mvx_CurrMb0),
723
                .mvx_CurrMb1(mvx_CurrMb1),
724
                .mvx_CurrMb2(mvx_CurrMb2),
725
                .mvx_CurrMb3(mvx_CurrMb3),
726
                .mvy_CurrMb0(mvy_CurrMb0),
727
                .mvy_CurrMb1(mvy_CurrMb1),
728
                .mvy_CurrMb2(mvy_CurrMb2),
729
                .mvy_CurrMb3(mvy_CurrMb3),
730
 
731
                .bs_dec_counter(bs_dec_counter),
732
                .end_of_BS_DEC(end_of_BS_DEC),
733
                .mv_mbAddrB_rd_for_DF(mv_mbAddrB_rd_for_DF),
734
                .bs_V0(bs_V0),
735
                .bs_V1(bs_V1),
736
                .bs_V2(bs_V2),
737
                .bs_V3(bs_V3),
738
                .bs_H0(bs_H0),
739
                .bs_H1(bs_H1),
740
                .bs_H2(bs_H2),
741
                .bs_H3(bs_H3)
742
                );
743
endmodule
744
 
745
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.