📄 filter.v
字号:
SumTaps_neg_1_1<=22'b0; SumTaps_neg_1_2<=22'b0; SumTaps_neg_1_3<=22'b0; SumTaps_neg_1_4<=22'b0; SumTaps_neg_1_5<=22'b0; SumTaps_neg_1_6<=22'b0; SumTaps_neg_1_7<=22'b0; SumTaps_neg_2_1<=22'b0; SumTaps_neg_2_2<=22'b0; f0 <= 15'b0; f1 <= 15'b0; f2 <= 15'b0; f3 <= 15'b0; f4 <= 15'b0; f5 <= 15'b0; f6 <= 15'b0; f7 <= 15'b0; f8 <= 15'b0; f9 <= 15'b0; f10 <= 15'b0; f11 <= 15'b0; f12 <= 15'b0; f13 <= 15'b0; f14 <= 15'b0; f15 <= 15'b0; f16 <= 15'b0; f17 <= 15'b0; f18 <= 15'b0; f19 <= 15'b0; f20 <= 15'b0; f21 <= 15'b0; f22 <= 15'b0; f23 <= 15'b0; f24 <= 15'b0; f25 <= 15'b0; f26 <= 15'b0; f27 <= 15'b0; f28 <= 15'b0; f29 <= 15'b0; f30 <= 15'b0; f31 <= 15'b0; f32 <= 15'b0; f33 <= 15'b0; f34 <= 15'b0; f35 <= 15'b0; f36 <= 15'b0; f37 <= 15'b0; f38 <= 15'b0; f39 <= 15'b0; f40 <= 15'b0; f41 <= 15'b0; f42 <= 15'b0; f43 <= 15'b0; f44 <= 15'b0; f45 <= 15'b0; f46 <= 15'b0; f47 <= 15'b0; f48 <= 15'b0; f49 <= 15'b0; f50 <= 15'b0; f51 <= 15'b0; f52 <= 15'b0; f53 <= 15'b0; f54 <= 15'b0; f55 <= 15'b0; f56 <= 15'b0; f57 <= 15'b0; f58 <= 15'b0; f59 <= 15'b0; f60 <= 15'b0; f61 <= 15'b0; f62 <= 15'b0; f63 <= 15'b0; f64 <= 15'b0; end else if(sumtaps_on) begin SumTaps_plus_1_1 <= ({7'b0,f1}+{7'b0,f63})+({7'b0,f2}+{7'b0,f62}); SumTaps_plus_1_2 <= ({7'b0,f3}+{7'b0,f61})+({7'b0,f4}+{7'b0,f60}); SumTaps_plus_1_3 <= ({7'b0,f8}+{7'b0,f56})+({7'b0,f9}+{7'b0,f55}); SumTaps_plus_1_4 <= ({7'b0,f10}+{7'b0,f54})+({7'b0,f14}+{7'b0,f50}); SumTaps_plus_1_5 <= ({7'b0,f15}+{7'b0,f49})+({7'b0,f16}+{7'b0,f48}); SumTaps_plus_1_6 <= ({7'b0,f17}+{7'b0,f47})+({7'b0,f21}+{7'b0,f43}); SumTaps_plus_1_7 <= ({7'b0,f22}+{7'b0,f42})+({7'b0,f23}+{7'b0,f41}); SumTaps_plus_1_8 <= ({7'b0,f24}+{7'b0,f40})+({7'b0,f29}+{7'b0,f35}); SumTaps_plus_1_9 <= ({7'b0,f30}+{7'b0,f34})+({7'b0,f31}+{7'b0,f33}); SumTaps_plus_1_10 <= {7'b0,f32}; SumTaps_plus_2_1 <= (SumTaps_plus_1_1+SumTaps_plus_1_2) +(SumTaps_plus_1_3+SumTaps_plus_1_4); SumTaps_plus_2_2 <= (SumTaps_plus_1_5+SumTaps_plus_1_6) +(SumTaps_plus_1_7+SumTaps_plus_1_8); SumTaps_plus_2_3 <= SumTaps_plus_1_9+SumTaps_plus_1_10; sumtaps_plus <= SumTaps_plus_2_1+SumTaps_plus_2_2+SumTaps_plus_2_3; SumTaps_neg_1_1 <= ({7'b0,f0}+{7'b0,f64})+({7'b0,f5}+{7'b0,f59}); SumTaps_neg_1_2 <= ({7'b0,f6}+{7'b0,f58})+({7'b0,f7}+{7'b0,f57}); SumTaps_neg_1_3 <= ({7'b0,f11}+{7'b0,f53})+({7'b0,f12}+{7'b0,f52}); SumTaps_neg_1_4 <= ({7'b0,f13}+{7'b0,f51})+({7'b0,f18}+{7'b0,f46}); SumTaps_neg_1_5 <= ({7'b0,f19}+{7'b0,f45})+({7'b0,f20}+{7'b0,f44}); SumTaps_neg_1_6 <= ({7'b0,f25}+{7'b0,f39})+({7'b0,f26}+{7'b0,f38}); SumTaps_neg_1_7 <= ({7'b0,f27}+{7'b0,f37})+({7'b0,f28}+{7'b0,f36}); SumTaps_neg_2_1 <= (SumTaps_neg_1_1+SumTaps_neg_1_2) +(SumTaps_neg_1_3+SumTaps_neg_1_4); SumTaps_neg_2_2 <= SumTaps_neg_1_5+SumTaps_neg_1_6 +SumTaps_neg_1_7; sumtaps_neg <= SumTaps_neg_2_1+SumTaps_neg_2_2; for(temp_rep=0;temp_rep<SampData_width;temp_rep=temp_rep+1) begin f0[temp_rep] <= reg_data_sft[10] && k0[temp_rep]; f1[temp_rep] <= reg_data_sft[20] && k1[temp_rep]; f2[temp_rep] <= reg_data_sft[30] && k2[temp_rep]; f3[temp_rep] <= reg_data_sft[40] && k3[temp_rep]; f4[temp_rep] <= reg_data_sft[50] && k4[temp_rep]; f5[temp_rep] <= reg_data_sft[60] && k5[temp_rep]; f6[temp_rep] <= reg_data_sft[70] && k6[temp_rep]; f7[temp_rep] <= reg_data_sft[80] && k7[temp_rep]; f8[temp_rep] <= reg_data_sft[90] && k8[temp_rep]; f9[temp_rep] <= reg_data_sft[100] && k9[temp_rep]; f10[temp_rep] <= reg_data_sft[110] && k10[temp_rep]; f11[temp_rep] <= reg_data_sft[120] && k11[temp_rep]; f12[temp_rep] <= reg_data_sft[130] && k12[temp_rep]; f13[temp_rep] <= reg_data_sft[140] && k13[temp_rep]; f14[temp_rep] <= reg_data_sft[150] && k14[temp_rep]; f15[temp_rep] <= reg_data_sft[160] && k15[temp_rep]; f16[temp_rep] <= reg_data_sft[170] && k16[temp_rep]; f17[temp_rep] <= reg_data_sft[180] && k17[temp_rep]; f18[temp_rep] <= reg_data_sft[190] && k18[temp_rep]; f19[temp_rep] <= reg_data_sft[200] && k19[temp_rep]; f20[temp_rep] <= reg_data_sft[210] && k20[temp_rep]; f21[temp_rep] <= reg_data_sft[220] && k21[temp_rep]; f22[temp_rep] <= reg_data_sft[230] && k22[temp_rep]; f23[temp_rep] <= reg_data_sft[240] && k23[temp_rep]; f24[temp_rep] <= reg_data_sft[250] && k24[temp_rep]; f25[temp_rep] <= reg_data_sft[260] && k25[temp_rep]; f26[temp_rep] <= reg_data_sft[270] && k26[temp_rep]; f27[temp_rep] <= reg_data_sft[280] && k27[temp_rep]; f28[temp_rep] <= reg_data_sft[290] && k28[temp_rep]; f29[temp_rep] <= reg_data_sft[300] && k29[temp_rep]; f30[temp_rep] <= reg_data_sft[310] && k30[temp_rep]; f31[temp_rep] <= reg_data_sft[320] && k31[temp_rep]; f32[temp_rep] <= reg_data_sft[330] && k32[temp_rep]; f33[temp_rep] <= reg_data_sft[340] && k33[temp_rep]; f34[temp_rep] <= reg_data_sft[350] && k34[temp_rep]; f35[temp_rep] <= reg_data_sft[360] && k35[temp_rep]; f36[temp_rep] <= reg_data_sft[370] && k36[temp_rep]; f37[temp_rep] <= reg_data_sft[380] && k37[temp_rep]; f38[temp_rep] <= reg_data_sft[390] && k38[temp_rep]; f39[temp_rep] <= reg_data_sft[400] && k39[temp_rep]; f40[temp_rep] <= reg_data_sft[410] && k40[temp_rep]; f41[temp_rep] <= reg_data_sft[420] && k41[temp_rep]; f42[temp_rep] <= reg_data_sft[430] && k42[temp_rep]; f43[temp_rep] <= reg_data_sft[440] && k43[temp_rep]; f44[temp_rep] <= reg_data_sft[450] && k44[temp_rep]; f45[temp_rep] <= reg_data_sft[460] && k45[temp_rep]; f46[temp_rep] <= reg_data_sft[470] && k46[temp_rep]; f47[temp_rep] <= reg_data_sft[480] && k47[temp_rep]; f48[temp_rep] <= reg_data_sft[490] && k48[temp_rep]; f49[temp_rep] <= reg_data_sft[500] && k49[temp_rep]; f50[temp_rep] <= reg_data_sft[510] && k50[temp_rep]; f51[temp_rep] <= reg_data_sft[520] && k51[temp_rep]; f52[temp_rep] <= reg_data_sft[530] && k52[temp_rep]; f53[temp_rep] <= reg_data_sft[540] && k53[temp_rep]; f54[temp_rep] <= reg_data_sft[550] && k54[temp_rep]; f55[temp_rep] <= reg_data_sft[560] && k55[temp_rep]; f56[temp_rep] <= reg_data_sft[570] && k56[temp_rep]; f57[temp_rep] <= reg_data_sft[580] && k57[temp_rep]; f58[temp_rep] <= reg_data_sft[590] && k58[temp_rep]; f59[temp_rep] <= reg_data_sft[600] && k59[temp_rep]; f60[temp_rep] <= reg_data_sft[610] && k60[temp_rep]; f61[temp_rep] <= reg_data_sft[620] && k61[temp_rep]; f62[temp_rep] <= reg_data_sft[630] && k62[temp_rep]; f63[temp_rep] <= reg_data_sft[640] && k63[temp_rep]; f64[temp_rep] <= reg_data_sft[650] && k64[temp_rep]; end end else begin sumtaps_neg <= 22'b0; sumtaps_plus <= 22'b0; end end/////////////////////////////////////////////////////////////////////////////////////accumulate process/////////////////////////////////////////////////// always @(posedge clk or negedge rst_) begin if(!rst_) begin sft_plus_reg <= 31'b0; sft_neg_reg <= 31'b0; accum_plus <= 32'b0; accum_neg <= 32'b0; dout_o <= 33'b0; end else begin case(counter_out) 5'b00110: begin sft_plus_reg <= {9'b0,sumtaps_plus}; sft_neg_reg <= {9'b0,sumtaps_neg}; end 5'b00111: begin sft_plus_reg <= {9'b0,sumtaps_plus}<<1; sft_neg_reg <= {9'b0,sumtaps_neg}<<1; end 5'b01000: begin sft_plus_reg <= {9'b0,sumtaps_plus}<<2; sft_neg_reg <= {9'b0,sumtaps_neg}<<2; end 5'b01001: begin sft_plus_reg <= {9'b0,sumtaps_plus}<<3; sft_neg_reg <= {9'b0,sumtaps_neg}<<3; end 5'b01010: begin sft_plus_reg <= {9'b0,sumtaps_plus}<<4; sft_neg_reg <= {9'b0,sumtaps_neg}<<4; end 5'b01011: begin sft_plus_reg <= {9'b0,sumtaps_plus}<<5; sft_neg_reg <= {9'b0,sumtaps_neg}<<5; end 5'b01100: begin sft_plus_reg <= {9'b0,sumtaps_plus}<<6; sft_neg_reg <= {9'b0,sumtaps_neg}<<6; end 5'b01101: begin sft_plus_reg <= {9'b0,sumtaps_plus}<<7; sft_neg_reg <= {9'b0,sumtaps_neg}<<7; end 5'b01110: begin sft_plus_reg <= {9'b0,sumtaps_plus}<<8; sft_neg_reg <= {9'b0,sumtaps_neg}<<8; end 5'b01111: begin sft_plus_reg <= {9'b0,sumtaps_plus}<<9; sft_neg_reg <= {9'b0,sumtaps_neg}<<9; end default: begin sft_plus_reg <= 31'b0; sft_neg_reg <= 31'b0; end endcase if(accum_on) begin accum_plus <= {1'b0,sft_plus_reg} + accum_plus; accum_neg <= {1'b0,sft_neg_reg} + accum_neg; end if(dout_rdy_o) begin dout_o <= accum_plus-accum_neg-33'b0_0000_0010_0000_0000_1011_0110_0000_0000; accum_plus <= 32'b0; accum_neg <= 32'b0; end end endendmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -