📄 max_log_map.v
字号:
(
///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 + -