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

📄 max_log_map.v

📁 上传的是WIMAX系统中
💻 V
📖 第 1 页 / 共 2 页
字号:
    (
        ///system i/f    
        .clk_sys         (clk_sys                                                                  ),
        .rst_b           (rst_b                                                                    ),
        ///input i/f                                                                                
        .ys              ({ys11_d1,ys10_d1}                                                        ),
        .yp              ({yp11_d1,yp10_d1}                                                        ),
        .la              ({la13_d1,la12_d1,la11_d1}                                                ),
        .beta_source_val (beta_source_val0                                                         ),
        .new_beta_cal    (new_beta_cal0                                                            ),
        .clr_beta        (clr_cal_buf                                                              ),
        ///output i/f
        .beta            ({beta07,beta06,beta05,beta04,beta03,beta02,beta01,beta00}                ),
        .gamma           ({gamma015,gamma014,gamma013,gamma012,gamma011,gamma010,gamma009,gamma008,
                           gamma007,gamma006,gamma005,gamma004,gamma003,gamma002,gamma001,gamma000}),
        .ys_beta_out     ({ys01_beta_out,ys00_beta_out}                                            ),
        .la_beta_out     ({la03_beta_out,la02_beta_out,la01_beta_out}                              ),
        .beta_sink_val   (beta_sink_val0                                                           )
    );
    
    ///beta calculator 1
    beta_cal beta_cal1
    (
        ///system i/f    
        .clk_sys         (clk_sys                                                                  ),
        .rst_b           (rst_b                                                                    ),
        ///input i/f                                                                                
        .ys              ({ys21_d1,ys20_d1}                                                        ),
        .yp              ({yp21_d1,yp20_d1}                                                        ),
        .la              ({la23_d1,la22_d1,la21_d1}                                                ),
        .beta_source_val (beta_source_val1                                                         ),
        .new_beta_cal    (new_beta_cal1                                                            ),
        .clr_beta        (clr_cal_buf                                                              ),
        ///output i/f
        .beta            ({beta17,beta16,beta15,beta14,beta13,beta12,beta11,beta10}                ),
        .gamma           ({gamma115,gamma114,gamma113,gamma112,gamma111,gamma110,gamma109,gamma108,
                           gamma107,gamma106,gamma105,gamma104,gamma103,gamma102,gamma101,gamma100}),
        .ys_beta_out     ({ys11_beta_out,ys10_beta_out}                                            ),
        .la_beta_out     ({la13_beta_out,la12_beta_out,la11_beta_out}                              ),
        .beta_sink_val   (beta_sink_val1                                                           )          
    );

    reg  [STATE_MATRIC_WIDTH-1:0]       beta7,beta6,beta5,beta4,beta3,beta2,beta1,beta0;
    reg  [BRANCH_MATRIC_WIDTH-1:0]      gamma15,gamma14,gamma13,gamma12,gamma11,gamma10,gamma9,gamma8,
                                        gamma7,gamma6,gamma5,gamma4,gamma3,gamma2,gamma1,gamma0;
    reg  [SOFT_INFO_WIDTH-1:0]          ys1_beta_out,ys0_beta_out;
    reg  [PRIOR_INFO_WIDTH-1:0]         la3_beta_out,la2_beta_out,la1_beta_out;
    reg  beta_sink_val; 
    wire  [1:0] beta_sel;  
    
    ///beta output selector
always @ ( * ) begin
    case( beta_sel )
        2'b01: begin
            {beta7,beta6,beta5,beta4,beta3,beta2,beta1,beta0}
                = {beta07,beta06,beta05,beta04,beta03,beta02,beta01,beta00};
            {gamma15,gamma14,gamma13,gamma12,gamma11,gamma10,gamma9,gamma8,
                gamma7,gamma6,gamma5,gamma4,gamma3,gamma2,gamma1,gamma0}
                    =
                {gamma015,gamma014,gamma013,gamma012,gamma011,gamma010,gamma009,gamma008,
                    gamma007,gamma006,gamma005,gamma004,gamma003,gamma002,gamma001,gamma000};
            {ys1_beta_out,ys0_beta_out} = {ys01_beta_out,ys00_beta_out};
            {la3_beta_out,la2_beta_out,la1_beta_out} = {la03_beta_out,la02_beta_out,la01_beta_out};
            beta_sink_val = beta_sink_val0;
        end
        2'b10: begin
            {beta7,beta6,beta5,beta4,beta3,beta2,beta1,beta0}
                = {beta17,beta16,beta15,beta14,beta13,beta12,beta11,beta10};
            {gamma15,gamma14,gamma13,gamma12,gamma11,gamma10,gamma9,gamma8,
                gamma7,gamma6,gamma5,gamma4,gamma3,gamma2,gamma1,gamma0}
                    =
                {gamma115,gamma114,gamma113,gamma112,gamma111,gamma110,gamma109,gamma108,
                    gamma107,gamma106,gamma105,gamma104,gamma103,gamma102,gamma101,gamma100};
            {ys1_beta_out,ys0_beta_out} = {ys11_beta_out,ys10_beta_out};
            {la3_beta_out,la2_beta_out,la1_beta_out} = {la13_beta_out,la12_beta_out,la11_beta_out};
            beta_sink_val = beta_sink_val1;
        end
        default: begin
            {beta7,beta6,beta5,beta4,beta3,beta2,beta1,beta0} = 1'b0;
            {gamma15,gamma14,gamma13,gamma12,gamma11,gamma10,gamma9,gamma8,
                gamma7,gamma6,gamma5,gamma4,gamma3,gamma2,gamma1,gamma0}
                    = 1'b0;
            {ys1_beta_out,ys0_beta_out} = 1'b0;
            {la3_beta_out,la2_beta_out,la1_beta_out} = 1'b0;
            beta_sink_val = 1'b0;
        end
    endcase
end
    
    wire [STATE_MATRIC_WIDTH-1:0]    alpha_buf_out7,alpha_buf_out6,alpha_buf_out5,alpha_buf_out4,
                                     alpha_buf_out3,alpha_buf_out2,alpha_buf_out1,alpha_buf_out0;
    wire wr_alpha_buf, rd_alpha_buf;  
    
    ///alpha buffer
    alpha_buf alpha_buf
    (
        ///system i/f    
        .clk_sys          (clk_sys                                                      ),
        .rst_b            (rst_b                                                        ),
        ///input i/f                                                                     
        .alpha            ({alpha7,alpha6,alpha5,alpha4,alpha3,alpha2,alpha1,alpha0}    ),
        .alpha_source_val (wr_alpha_buf                                                 ),
        .clr_alpha_buf    (clr_cal_buf                                                  ),
        ///output i/f      
        .alpha_buf_out    ({alpha_buf_out7,alpha_buf_out6,alpha_buf_out5,alpha_buf_out4,
                            alpha_buf_out3,alpha_buf_out2,alpha_buf_out1,alpha_buf_out0}),
        .rd_alpha_buf     (rd_alpha_buf                                                 )
    );

    wire [LLR_INFO_WIDTH-1:0]    l3,l2,l1;
    wire [PRIOR_INFO_WIDTH-1:0]  le3,le2,le1;
    	    
    ///l, le and hard-decision calculator
    l_le_hd_cal l_le_hd_cal
    (
        ///system i/f    
        .clk_sys      (clk_sys                                                       ),
        .rst_b        (rst_b                                                         ),
        ///input i/f
        .alpha        ({alpha_buf_out7,alpha_buf_out6,alpha_buf_out5,alpha_buf_out4,
                        alpha_buf_out3,alpha_buf_out2,alpha_buf_out1,alpha_buf_out0} ),
        .beta         ({beta7,beta6,beta5,beta4,beta3,beta2,beta1,beta0}             ),
        .gamma        ({gamma15,gamma14,gamma13,gamma12,gamma11,gamma10,gamma9,gamma8,
                        gamma7,gamma6,gamma5,gamma4,gamma3,gamma2,gamma1,gamma0}     ),
        .ys           ({ys1_beta_out,ys0_beta_out}                                   ),
        .la           ({la3_beta_out,la2_beta_out,la1_beta_out}                      ),
        .clr_l        (clr_cal_buf                                                   ),
        .l_source_val (beta_sink_val                                                 ),
        ///output i/f
        .d            (d                                                             ),
        .le           ({le3,le2,le1}                                                 ),
        .l            ({l3,l2,l1}                                                    ),
        .l_sink_val   (val_sink                                                      )
    );    
    
    assign le = {le3,le2,le1};
    assign l  = {l3,l2,l1};


    ///*************************************************************************
    ///component code decoder control state machine
    ///*************************************************************************
    
    ///wire    clr_cal_buf;
    sliding_win_fsm sliding_win_fsm
    (
        ///system i/f    
        .clk_sys          (clk_sys         ),
        .rst_b            (rst_b           ),
        ///input i/f                        
        .sop_source       (sop_source      ),
        .eop_source       (eop_source      ),
        .val_source       (val_source      ),
        .alpha_sink_val   (alpha_sink_val  ),
        .beta_sink_val0   (beta_sink_val0  ),
        .beta_sink_val1   (beta_sink_val1  ),
        .packet_length    (packet_length), 
        ///output i/f      
        .clr_cal_buf      (clr_cal_buf     ), 
        .beta_sel         (beta_sel        ),
        .new_beta_cal0    (new_beta_cal0   ),
        .new_beta_cal1    (new_beta_cal1   ),        
        .rd_cir_buf_cell0 (rd_cir_buf_cell0),
        .rd_cir_buf_cell1 (rd_cir_buf_cell1),
        .rd_cir_buf_cell2 (rd_cir_buf_cell2),
        .wr_alpha_buf     (wr_alpha_buf    ),
        .rd_alpha_buf     (rd_alpha_buf    ),
        .sop_sink         (sop_sink        ),
        .eop_sink         (eop_sink        )
    );
endmodule   ///max_log_map

⌨️ 快捷键说明

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