📄 beta_cal.v
字号:
else begin if( clr_beta ) begin { gamma15, gamma14, gamma13, gamma12, gamma11, gamma10, gamma9, gamma8, gamma7, gamma6, gamma5, gamma4, gamma3, gamma2, gamma1, gamma0 } <= 1'b0; end else if( beta_source_val_d2 ) begin { gamma15, gamma14, gamma13, gamma12, gamma11, gamma10, gamma9, gamma8, gamma7, gamma6, gamma5, gamma4, gamma3, gamma2, gamma1, gamma0 } <= { gamma15_t2, gamma14_t2, gamma13_t2, gamma12_t2, gamma11_t2, gamma10_t2, gamma9_t2, gamma8_t2, gamma7_t2, gamma6_t2, gamma5_t2, gamma4_t2, gamma3_t2, gamma2_t2, gamma1_t2, gamma0_t2 }; end else begin { gamma15, gamma14, gamma13, gamma12, gamma11, gamma10, gamma9, gamma8, gamma7, gamma6, gamma5, gamma4, gamma3, gamma2, gamma1, gamma0 } <= { gamma15, gamma14, gamma13, gamma12, gamma11, gamma10, gamma9, gamma8, gamma7, gamma6, gamma5, gamma4, gamma3, gamma2, gamma1, gamma0 }; end endend///*************************************************************************///beta calculator:9,12///*************************************************************************reg [STATE_MATRIC_WIDTH-1:0] tmp0,tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7;always @(*) begin if(new_beta_cal) {tmp7, tmp6, tmp5, tmp4, tmp3, tmp2, tmp1, tmp0} = 1'b0; else {tmp7, tmp6, tmp5, tmp4, tmp3, tmp2, tmp1, tmp0} = {beta7, beta6, beta5, beta4, beta3, beta2, beta1, beta0};end reg [STATE_MATRIC_WIDTH-1:0] beta00,beta01,beta02,beta03, beta10,beta11,beta12,beta13, beta20,beta21,beta22,beta23, beta30,beta31,beta32,beta33, beta40,beta41,beta42,beta43, beta50,beta51,beta52,beta53, beta60,beta61,beta62,beta63, beta70,beta71,beta72,beta73;always @ (*) begin beta00 = tmp0 + {{3{gamma0[BRANCH_MATRIC_WIDTH-1]}},gamma0}; beta01 = tmp7 + {{3{gamma7[BRANCH_MATRIC_WIDTH-1]}},gamma7}; beta02 = tmp4 + {{3{gamma11[BRANCH_MATRIC_WIDTH-1]}},gamma11}; beta03 = tmp3 + {{3{gamma12[BRANCH_MATRIC_WIDTH-1]}},gamma12}; ////cal beta1 beta10 = tmp4 + {{3{gamma0[BRANCH_MATRIC_WIDTH-1]}},gamma0}; beta11 = tmp3 + {{3{gamma7[BRANCH_MATRIC_WIDTH-1]}},gamma7}; beta12 = tmp0 + {{3{gamma11[BRANCH_MATRIC_WIDTH-1]}},gamma11}; beta13 = tmp7 + {{3{gamma12[BRANCH_MATRIC_WIDTH-1]}},gamma12}; ///cal beta2 beta20 = tmp1 + {{3{gamma2[BRANCH_MATRIC_WIDTH-1]}},gamma2}; beta21 = tmp6 + {{3{gamma5[BRANCH_MATRIC_WIDTH-1]}},gamma5}; beta22 = tmp5 + {{3{gamma9[BRANCH_MATRIC_WIDTH-1]}},gamma9}; beta23 = tmp2 + {{3{gamma14[BRANCH_MATRIC_WIDTH-1]}},gamma14}; ///cal beta3 beta30 = tmp5 + {{3{gamma2[BRANCH_MATRIC_WIDTH-1]}},gamma2}; beta31 = tmp2 + {{3{gamma5[BRANCH_MATRIC_WIDTH-1]}},gamma5}; beta32 = tmp1 + {{3{gamma9[BRANCH_MATRIC_WIDTH-1]}},gamma9}; beta33 = tmp6 + {{3{gamma14[BRANCH_MATRIC_WIDTH-1]}},gamma14}; ///cal beta4 beta40 = tmp6 + {{3{gamma3[BRANCH_MATRIC_WIDTH-1]}},gamma3}; beta41 = tmp1 + {{3{gamma4[BRANCH_MATRIC_WIDTH-1]}},gamma4}; beta42 = tmp2 + {{3{gamma8[BRANCH_MATRIC_WIDTH-1]}},gamma8}; beta43 = tmp5 + {{3{gamma15[BRANCH_MATRIC_WIDTH-1]}},gamma15}; ///cal beta5 beta50 = tmp2 + {{3{gamma3[BRANCH_MATRIC_WIDTH-1]}},gamma3}; beta51 = tmp5 + {{3{gamma4[BRANCH_MATRIC_WIDTH-1]}},gamma4}; beta52 = tmp6 + {{3{gamma8[BRANCH_MATRIC_WIDTH-1]}},gamma8}; beta53 = tmp1 + {{3{gamma15[BRANCH_MATRIC_WIDTH-1]}},gamma15}; ///cal beta6 beta60 = tmp7 + {{3{gamma1[BRANCH_MATRIC_WIDTH-1]}},gamma1}; beta61 = tmp0 + {{3{gamma6[BRANCH_MATRIC_WIDTH-1]}},gamma6}; beta62 = tmp3 + {{3{gamma10[BRANCH_MATRIC_WIDTH-1]}},gamma10}; beta63 = tmp4 + {{3{gamma13[BRANCH_MATRIC_WIDTH-1]}},gamma13}; ///cal beta7 beta70 = tmp3 + {{3{gamma1[BRANCH_MATRIC_WIDTH-1]}},gamma1}; beta71 = tmp4 + {{3{gamma6[BRANCH_MATRIC_WIDTH-1]}},gamma6}; beta72 = tmp7 + {{3{gamma10[BRANCH_MATRIC_WIDTH-1]}},gamma10}; beta73 = tmp0 + {{3{gamma13[BRANCH_MATRIC_WIDTH-1]}},gamma13}; endwire [STATE_MATRIC_WIDTH-1:0] beta_t7,beta_t6,beta_t5,beta_t4, beta_t3,beta_t2,beta_t1,beta_t0;mod_max4 mod_max4_0( ///input .a (beta00 ), .b (beta01 ), .c (beta02 ), .d (beta03 ), ///output .e (beta_t0));mod_max4 mod_max4_1( ///input .a (beta10 ), .b (beta11 ), .c (beta12 ), .d (beta13 ), ///output .e (beta_t1));mod_max4 mod_max4_2( ///input .a (beta20 ), .b (beta21 ), .c (beta22 ), .d (beta23 ), ///output .e (beta_t2));mod_max4 mod_max4_3( ///input .a (beta30 ), .b (beta31 ), .c (beta32 ), .d (beta33 ), ///output .e (beta_t3));mod_max4 mod_max4_4( ///input .a (beta40 ), .b (beta41 ), .c (beta42 ), .d (beta43 ), ///output .e (beta_t4));mod_max4 mod_max4_5( ///input .a (beta50 ), .b (beta51 ), .c (beta52 ), .d (beta53 ), ///output .e (beta_t5));mod_max4 mod_max4_6( ///input .a (beta60 ), .b (beta61 ), .c (beta62 ), .d (beta63 ), ///output .e (beta_t6));mod_max4 mod_max4_7( ///input .a (beta70 ), .b (beta71 ), .c (beta72 ), .d (beta73 ), ///output .e (beta_t7) );///beta regalways @ ( posedge clk_sys or negedge rst_b ) begin if( !rst_b ) begin { beta7, beta6, beta5, beta4, beta3, beta2, beta1, beta0 } <= 1'b0; end else begin if(clr_beta) { beta7, beta6, beta5, beta4, beta3, beta2, beta1, beta0 } <= 1'b0; else if(beta_source_val_d3) { beta7, beta6, beta5, beta4, beta3, beta2, beta1, beta0 } <= { beta_t7, beta_t6, beta_t5, beta_t4, beta_t3, beta_t2, beta_t1, beta_t0 }; else { beta7, beta6, beta5, beta4, beta3, beta2, beta1, beta0 } <= { beta7, beta6, beta5, beta4, beta3, beta2, beta1, beta0 }; endend///*************************************************************************///output///*************************************************************************///delay ls,la 2 cyclesreg [SOFT_INFO_WIDTH*2-1:0] ys_d1,ys_d2,ys_d3;reg [PRIOR_INFO_WIDTH*3-1:0] la_d1,la_d2,la_d3;always @ ( posedge clk_sys or negedge rst_b ) begin if( !rst_b ) begin {ys_d3,ys_d2,ys_d1} <= 1'b0; {la_d3,la_d2,la_d1} <= 1'b0; end else begin {ys_d3,ys_d2,ys_d1} <= {ys_d2,ys_d1,ys}; {la_d3,la_d2,la_d1} <= {la_d2,la_d1,la}; endend///output rename///reg beta_source_val_d1,beta_source_val_d2;always @ ( posedge clk_sys or negedge rst_b ) begin if( !rst_b ) {beta_source_val_d4,beta_source_val_d3,beta_source_val_d2, beta_source_val_d1 } <= 1'b0; else {beta_source_val_d4,beta_source_val_d3,beta_source_val_d2, beta_source_val_d1 } <= {beta_source_val_d3,beta_source_val_d2,beta_source_val_d1, beta_source_val };endassign beta_sink_val = beta_source_val_d4;assign beta = {beta7,beta6,beta5,beta4,beta3,beta2,beta1,beta0};assign gamma = { gamma15, gamma14, gamma13, gamma12, gamma11, gamma10, gamma9, gamma8, gamma7, gamma6, gamma5, gamma4, gamma3, gamma2, gamma1, gamma0 };assign ys_beta_out = ys_d3;assign la_beta_out = la_d3;endmodule ///beta_cal
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -