⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitstream_controller.v

📁 H.264标准解码器全部verilog源码
💻 V
📖 第 1 页 / 共 2 页
字号:
//--------------------------------------------------------------------------------------------------// Design    : nova// Author(s) : Ke Xu// Email	   : eexuke@yahoo.com// File      : BitStream_controller.v// Generated : June 12,2005// Copyright (C) 2008 Ke Xu                //-------------------------------------------------------------------------------------------------// Description // top module for bitstream controller//-------------------------------------------------------------------------------------------------// synopsys translate_off`include "timescale.v"// synopsys translate_on`include "nova_defines.v"module BitStream_controller (clk,reset_n,freq_ctrl0,freq_ctrl1,BitStream_buffer_input,pin_disable_DF,	trigger_CAVLC,blk4x4_rec_counter,end_of_DCBlk_IQIT,end_of_one_blk4x4_sum,end_of_MB_DEC,gclk_end_of_MB_DEC,	curr_DC_IsZero,		BitStream_ram_ren,BitStream_ram_addr,pic_num,	mb_type_general,mb_num_h,mb_num_v,NextMB_IsSkip,LowerMB_IsSkip,	slice_data_state,residual_state,cavlc_decoder_state,	end_of_one_residual_block,end_of_NonZeroCoeff_CAVLC,end_of_one_frame,	Intra16x16_predmode,Intra4x4_predmode_CurrMb,Intra_chroma_predmode,	QPy,QPc,i4x4_CbCr,slice_alpha_c0_offset_div2,slice_beta_offset_div2,	CodedBlockPatternLuma,CodedBlockPatternChroma,TotalCoeff,	Is_skip_run_entry,skip_mv_calc,disable_DF,	coeffLevel_0,coeffLevel_1,coeffLevel_2, coeffLevel_3, coeffLevel_4, coeffLevel_5, coeffLevel_6, coeffLevel_7,	coeffLevel_8,coeffLevel_9,coeffLevel_10,coeffLevel_11,coeffLevel_12,coeffLevel_13,coeffLevel_14,coeffLevel_15,	mv_is16x16,mv_below8x8,	mvx_CurrMb0,mvx_CurrMb1,mvx_CurrMb2,mvx_CurrMb3,mvy_CurrMb0,mvy_CurrMb1,mvy_CurrMb2,mvy_CurrMb3,	end_of_BS_DEC,bs_V0,bs_V1,bs_V2,bs_V3,bs_H0,bs_H1,bs_H2,bs_H3,		slice_header_s6	);	input clk,reset_n;	input freq_ctrl0;	input freq_ctrl1;	input [15:0] BitStream_buffer_input;	input pin_disable_DF;	input trigger_CAVLC;	input [4:0] blk4x4_rec_counter;	input end_of_DCBlk_IQIT;	input end_of_one_blk4x4_sum;	input end_of_MB_DEC;	input gclk_end_of_MB_DEC;	input curr_DC_IsZero;		output BitStream_ram_ren;	output [16:0] BitStream_ram_addr;	output [5:0] pic_num;	  output [3:0] mb_type_general;	output [3:0] mb_num_h;	output [3:0] mb_num_v;	output NextMB_IsSkip;	output LowerMB_IsSkip;	output [3:0] slice_data_state;	output [3:0] residual_state; 	output [3:0] cavlc_decoder_state;	output end_of_one_residual_block;	output end_of_NonZeroCoeff_CAVLC;	output end_of_one_frame;	output [1:0] Intra16x16_predmode;	output [63:0] Intra4x4_predmode_CurrMb;	output [1:0] Intra_chroma_predmode;	output [5:0] QPy;	output [5:0] QPc;	output [1:0] i4x4_CbCr;	output [3:0] slice_alpha_c0_offset_div2;	output [3:0] slice_beta_offset_div2;	output [3:0] CodedBlockPatternLuma;	output [1:0] CodedBlockPatternChroma;	output [4:0] TotalCoeff;	output Is_skip_run_entry;	output skip_mv_calc;	output disable_DF;	output [8:0] coeffLevel_0, coeffLevel_1, coeffLevel_2,coeffLevel_3, coeffLevel_4, coeffLevel_5; 	output [8:0] coeffLevel_6, coeffLevel_7, coeffLevel_8, coeffLevel_9,coeffLevel_10,coeffLevel_11;	output [8:0] coeffLevel_12,coeffLevel_13,coeffLevel_14,coeffLevel_15;	output mv_is16x16;	output [3:0] mv_below8x8;	output [31:0] mvx_CurrMb0,mvx_CurrMb1,mvx_CurrMb2,mvx_CurrMb3;	output [31:0] mvy_CurrMb0,mvy_CurrMb1,mvy_CurrMb2,mvy_CurrMb3;	output end_of_BS_DEC;	output [11:0] bs_V0,bs_V1,bs_V2,bs_V3;	output [11:0] bs_H0,bs_H1,bs_H2,bs_H3;		output slice_header_s6;		wire gclk_parser;	wire gclk_nal;	wire gclk_slice;	wire gclk_sps;	wire gclk_pps;	wire gclk_slice_header;	wire gclk_slice_data;	wire gclk_residual;	wire gclk_cavlc;	wire gclk_bs_dec;	wire gclk_Intra4x4PredMode_mbAddrB_RF;	wire gclk_mvx_mbAddrB_RF;	wire gclk_mvy_mbAddrB_RF;	wire gclk_mvx_mbAddrC_RF;	wire gclk_mvy_mbAddrC_RF;	wire gclk_LumaLevel_mbAddrB_RF;	wire gclk_ChromaLevel_Cb_mbAddrB_RF;	wire gclk_ChromaLevel_Cr_mbAddrB_RF;	wire [6:0] pc;	wire [5:0] QPy,QPc;	wire [3:0] CodedBlockPatternLuma;	wire [1:0] CodedBlockPatternChroma;	wire [8:0] coeffLevel_0, coeffLevel_1, coeffLevel_2,coeffLevel_3, coeffLevel_4, coeffLevel_5; 	wire [8:0] coeffLevel_6, coeffLevel_7, coeffLevel_8, coeffLevel_9,coeffLevel_10,coeffLevel_11;	wire [8:0] coeffLevel_12,coeffLevel_13,coeffLevel_14,coeffLevel_15;	wire [63:0] Intra4x4PredMode_CurrMb;	wire mv_is16x16;	wire Is_skip_run_end;	wire Is_skipMB_mv_calc;	wire [31:0] mvx_CurrMb0,mvx_CurrMb1,mvx_CurrMb2,mvx_CurrMb3;	wire [31:0] mvy_CurrMb0,mvy_CurrMb1,mvy_CurrMb2,mvy_CurrMb3;		wire BitStream_buffer_valid_n;	wire [15:0] BitStream_buffer_output;	wire [1:0] parser_state;	wire [2:0] nal_unit_state;	wire [1:0] slice_layer_wo_partitioning_state;	wire [3:0] slice_header_state;	wire [2:0] ref_pic_list_reordering_state;	wire [1:0] dec_ref_pic_marking_state;	wire [3:0] slice_data_state;	wire [1:0] sub_mb_pred_state;	wire [2:0] mb_pred_state;	wire [3:0] seq_parameter_set_state;	wire [3:0] pic_parameter_set_state;	wire [3:0] residual_state;	wire [3:0] cavlc_decoder_state;	wire [3:0] exp_golomb_len;	wire [3:0] dependent_variable_len;	wire [4:0] cavlc_consumed_bits_len;	wire heading_one_en;	wire [3:0] heading_one_pos;	wire [7:0] exp_golomb_decoding_output;	wire [9:0] dependent_variable_decoding_output;	wire Intra4x4PredMode_mbAddrB_cs_n;	wire Intra4x4PredMode_mbAddrB_wr_n;	wire [3:0] Intra4x4PredMode_mbAddrB_rd_addr;	wire [3:0] Intra4x4PredMode_mbAddrB_wr_addr;	wire [15:0] Intra4x4PredMode_mbAddrB_din;	wire [15:0] Intra4x4PredMode_mbAddrB_dout;	wire mvx_mbAddrB_cs_n;	wire mvy_mbAddrB_cs_n;	wire mvx_mbAddrC_cs_n;	wire mvy_mbAddrC_cs_n;	wire mvx_mbAddrB_wr_n;	wire mvy_mbAddrB_wr_n;	wire mvx_mbAddrC_wr_n;	wire mvy_mbAddrC_wr_n;	wire [3:0] mvx_mbAddrB_rd_addr;	wire [3:0] mvy_mbAddrB_rd_addr;	wire [3:0] mvx_mbAddrC_rd_addr;	wire [3:0] mvy_mbAddrC_rd_addr;	wire [3:0] mvx_mbAddrB_wr_addr;	wire [3:0] mvy_mbAddrB_wr_addr;	wire [3:0] mvx_mbAddrC_wr_addr;	wire [3:0] mvy_mbAddrC_wr_addr;	wire [31:0] mvx_mbAddrA;	wire [31:0] mvy_mbAddrA;	wire [31:0] mvx_mbAddrB_din;	wire [31:0] mvx_mbAddrB_dout;	wire [31:0] mvy_mbAddrB_din;	wire [31:0] mvy_mbAddrB_dout;	wire [7:0] mvx_mbAddrC_din;	wire [7:0] mvx_mbAddrC_dout;	wire [7:0] mvy_mbAddrC_din;	wire [7:0] mvy_mbAddrC_dout;	wire end_of_NonZeroCoeff_CAVLC;	wire start_code_prefix_found;	wire [4:0] nal_unit_type;	wire deblocking_filter_control_present_flag;	wire [1:0] disable_deblocking_filter_idc;	wire disable_DF;	wire [6:0] mb_skip_run;	wire [2:0] NumMbPart;	wire [2:0] NumSubMbPart;	wire [1:0] MBTypeGen_mbAddrA;	wire MBTypeGen_mbAddrD;	wire [21:0]MBTypeGen_mbAddrB_reg;	wire [3:0] log2_max_frame_num_minus4;	wire [3:0] log2_max_pic_order_cnt_lsb_minus4;	wire constrained_intra_pred_flag;	wire num_ref_idx_active_override_flag;	wire [2:0] num_ref_idx_l0_active_minus1;	wire [2:0] slice_type;	wire [4:0] mb_type;	wire [3:0] mb_type_general;	wire [1:0] sub_mb_type;	wire [5:0] pic_init_qp_minus26;	wire [4:0] chroma_qp_index_offset;	wire [2:0] rem_intra4x4_pred_mode;	wire [7:0] mvd;	wire prev_intra4x4_pred_mode_flag;	wire cavlc_decoder_en;	wire [5:0] pic_num;	wire [6:0] mb_num;	wire [3:0] mb_num_h;	wire [3:0] mb_num_v;	wire [3:0] luma4x4BlkIdx;	wire [1:0] mbPartIdx;	wire [1:0] subMbPartIdx;	wire compIdx;	wire suffix_length_initialized;	wire IsRunLoop;	wire [1:0] i8x8,i4x4;	wire [1:0] i4x4_CbCr;	wire [3:0] coeffNum;	wire [3:0] i_level;	wire [3:0] i_run;	wire [3:0] i_TotalCoeff;	wire [4:0] TotalCoeff;	wire [1:0] TrailingOnes;	wire [4:0] maxNumCoeff;	wire [3:0] zerosLeft;	wire [3:0] run;		wire [1:0] Luma_8x8_AllZeroCoeff_mbAddrA;	wire [19:0] LumaLevel_mbAddrA;	wire [19:0] LumaLevel_CurrMb0,LumaLevel_CurrMb1,LumaLevel_CurrMb2,LumaLevel_CurrMb3;	wire LumaLevel_mbAddrB_cs_n;	wire [19:0] LumaLevel_mbAddrB_dout;	wire ChromaLevel_Cb_mbAddrB_cs_n;	wire ChromaLevel_Cr_mbAddrB_cs_n;	wire [1:0] bs_dec_counter;	wire [11:0] bs_V0,bs_V1,bs_V2,bs_V3;	wire [11:0] bs_H0,bs_H1,bs_H2,bs_H3;	wire mv_mbAddrB_rd_for_DF;		BitStream_buffer BitStream_buffer (		.clk(clk),		.reset_n(reset_n),		.BitStream_buffer_input(BitStream_buffer_input),		.pc(pc),		.BitStream_ram_ren(BitStream_ram_ren),		.BitStream_buffer_valid_n(BitStream_buffer_valid_n),		.BitStream_buffer_output(BitStream_buffer_output),		.BitStream_ram_addr(BitStream_ram_addr)		); 	bitstream_gclk_gen bitstream_gclk_gen (		.clk(clk),		.reset_n(reset_n),		.freq_ctrl0(freq_ctrl0),		.freq_ctrl1(freq_ctrl1),		.parser_state(parser_state),		.nal_unit_state(nal_unit_state),		.slice_layer_wo_partitioning_state(slice_layer_wo_partitioning_state),		.slice_header_state(slice_header_state),		.slice_data_state(slice_data_state),		.seq_parameter_set_state(seq_parameter_set_state),		.pic_parameter_set_state(pic_parameter_set_state),		.residual_state(residual_state), 		.cavlc_decoder_state(cavlc_decoder_state),		.mb_num(mb_num),		.TotalCoeff(TotalCoeff),		.start_code_prefix_found(start_code_prefix_found),		.pc_2to0(pc[2:0]),		.deblocking_filter_control_present_flag(deblocking_filter_control_present_flag),		.disable_deblocking_filter_idc(disable_deblocking_filter_idc),		.end_of_one_residual_block(end_of_one_residual_block),		.Intra4x4PredMode_mbAddrB_cs_n(Intra4x4PredMode_mbAddrB_cs_n),		.mvx_mbAddrB_cs_n(mvx_mbAddrB_cs_n),		.mvy_mbAddrB_cs_n(mvy_mbAddrB_cs_n),		.mvx_mbAddrC_cs_n(mvx_mbAddrC_cs_n),		.mvy_mbAddrC_cs_n(mvy_mbAddrC_cs_n),		.LumaLevel_mbAddrB_cs_n(LumaLevel_mbAddrB_cs_n),		.ChromaLevel_Cb_mbAddrB_cs_n(ChromaLevel_Cb_mbAddrB_cs_n),		.ChromaLevel_Cr_mbAddrB_cs_n(ChromaLevel_Cr_mbAddrB_cs_n),		.trigger_CAVLC(trigger_CAVLC),		.blk4x4_rec_counter(blk4x4_rec_counter),		.end_of_DCBlk_IQIT(end_of_DCBlk_IQIT),		.end_of_one_blk4x4_sum(end_of_one_blk4x4_sum),		.end_of_MB_DEC(end_of_MB_DEC), 		.disable_DF(disable_DF),		.bs_dec_counter(bs_dec_counter),				.gclk_parser(gclk_parser),		.gclk_nal(gclk_nal),		.gclk_slice(gclk_slice),		.gclk_sps(gclk_sps),		.gclk_pps(gclk_pps),		.gclk_slice_header(gclk_slice_header),		.gclk_slice_data(gclk_slice_data),		.gclk_residual(gclk_residual),		.gclk_cavlc(gclk_cavlc),		.gclk_Intra4x4PredMode_mbAddrB_RF(gclk_Intra4x4PredMode_mbAddrB_RF),		.gclk_mvx_mbAddrB_RF(gclk_mvx_mbAddrB_RF),		.gclk_mvy_mbAddrB_RF(gclk_mvy_mbAddrB_RF),		.gclk_mvx_mbAddrC_RF(gclk_mvx_mbAddrC_RF),		.gclk_mvy_mbAddrC_RF(gclk_mvy_mbAddrC_RF),		.gclk_LumaLevel_mbAddrB_RF(gclk_LumaLevel_mbAddrB_RF),		.gclk_ChromaLevel_Cb_mbAddrB_RF(gclk_ChromaLevel_Cb_mbAddrB_RF),		.gclk_ChromaLevel_Cr_mbAddrB_RF(gclk_ChromaLevel_Cr_mbAddrB_RF),		.gclk_bs_dec(gclk_bs_dec),		.end_of_one_frame(end_of_one_frame)		);	BitStream_parser_FSM BitStream_parser_FSM(		.clk(clk),		.reset_n(reset_n),		.end_of_one_blk4x4_sum(end_of_one_blk4x4_sum),		.end_of_MB_DEC(end_of_MB_DEC),		.gclk_parser(gclk_parser),		.gclk_nal(gclk_nal),		.gclk_slice(gclk_slice),		.gclk_sps(gclk_sps),		.gclk_pps(gclk_pps),		.gclk_slice_header(gclk_slice_header),		.gclk_slice_data(gclk_slice_data),		.gclk_residual(gclk_residual),		.gclk_cavlc(gclk_cavlc),		.trigger_CAVLC(trigger_CAVLC),		.BitStream_buffer_valid_n(BitStream_buffer_valid_n),		.nal_unit_type(nal_unit_type),		.slice_type(slice_type),		.num_ref_idx_active_override_flag(num_ref_idx_active_override_flag),		.deblocking_filter_control_present_flag(deblocking_filter_control_present_flag),		.disable_deblocking_filter_idc(disable_deblocking_filter_idc),		.mb_skip_run(mb_skip_run),		.mb_type_general(mb_type_general),		.prev_intra4x4_pred_mode_flag(prev_intra4x4_pred_mode_flag),		.CodedBlockPatternLuma(CodedBlockPatternLuma),		.CodedBlockPatternChroma(CodedBlockPatternChroma),		.pc_2to0(pc[2:0]),		.NumSubMbPart(NumSubMbPart),		.NumMbPart(NumMbPart),		.TotalCoeff(TotalCoeff),		.TrailingOnes(TrailingOnes),		.maxNumCoeff(maxNumCoeff),		.zerosLeft(zerosLeft),		.run(run),				.parser_state(parser_state),		.nal_unit_state(nal_unit_state),		.slice_layer_wo_partitioning_state(slice_layer_wo_partitioning_state),		.slice_header_state(slice_header_state),		.slice_header_s6(slice_header_s6),		.ref_pic_list_reordering_state(ref_pic_list_reordering_state),		.dec_ref_pic_marking_state(dec_ref_pic_marking_state),		.slice_data_state(slice_data_state),		.sub_mb_pred_state(sub_mb_pred_state),		.mb_pred_state(mb_pred_state),		.seq_parameter_set_state(seq_parameter_set_state),		.pic_parameter_set_state(pic_parameter_set_state),		.residual_state(residual_state),		.cavlc_decoder_state(cavlc_decoder_state),		.heading_one_en(heading_one_en),		.pic_num(pic_num),		.mb_num(mb_num),		.mb_num_h(mb_num_h),		.mb_num_v(mb_num_v),		.NextMB_IsSkip(NextMB_IsSkip),		.LowerMB_IsSkip(LowerMB_IsSkip),		.Is_skip_run_entry(Is_skip_run_entry),		.Is_skip_run_end(Is_skip_run_end),		.luma4x4BlkIdx(luma4x4BlkIdx),		.mbPartIdx(mbPartIdx),		.subMbPartIdx(subMbPartIdx),		.compIdx(compIdx),		.i8x8(i8x8),		.i4x4(i4x4),		.i4x4_CbCr(i4x4_CbCr),		.coeffNum(coeffNum),		.i_level(i_level),

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -