ΔΣ-ADC実験編 その27 再び、補償フィルタで躓いてしまった! 1.私は怠惰な人間かも知れない...
CICフィルタで1/64decimation後に、補償フィルタを通した。 new
fs=781KHz ( 50MHz/64 )
入力が200KHzを越えると、出力はなくなります。
Xilinx社のFIR
Compilerの存在を知ってから、自力でfir filterを作成する意欲が失せてきました。
で、今回も FIR
Compilerのお世話になりました。
そして、自作のべた書きのfir
filterでも、同じ結果を得る事が、できました。
module
beta_fir(clk,input_data,output_data);
input
clk;
input signed[6:0]input_data;
output reg signed[23:0]output_data=0;
////
other
///////////////////
reg signed[18:0]coef[62:0];
reg signed[6:0]z[62:0];
reg [5:0]count=0;
//reg signed[23:0]add_unit=0;
reg reset=1;
reg signed[23:0]accum=0;
always
@(posedge clk) begin
if(reset)
begin
coef[0]=-3;coef[1]=0;coef[2]=9;coef[3]=0;
coef[4]=-26;coef[5]=0;coef[6]=58;coef[7]=0;
coef[8]=-117;coef[9]=0;coef[10]=215;coef[11]=0;
coef[12]=-372;coef[13]=1;coef[14]=610;coef[15]=-1;
coef[16]=-958;coef[17]=1;coef[18]=1458;coef[19]=-2;
coef[20]=-2170;coef[21]=2;coef[22]=3201;coef[23]=-2;
coef[24]=-4771;coef[25]=3;coef[26]=7454;coef[27]=-3;
coef[28]=-13355;coef[29]=3;coef[30]=41535;coef[31]=65533;
coef[32]=41535;coef[33]=3;coef[34]=-13355;coef[35]=-3;
coef[36]=7454;coef[37]=3;coef[38]=-4771;coef[39]=-2;
coef[40]=3201;coef[41]=2;coef[42]=-2170;coef[43]=-2;
coef[44]=1458;coef[45]=1;coef[46]=-958;coef[47]=-1;
coef[48]=610;coef[49]=1;coef[50]=-372;coef[51]=0;
coef[52]=215;coef[53]=0;coef[54]=-117;coef[55]=0;
coef[56]=58;coef[57]=0;coef[58]=-26;coef[59]=0;
coef[60]=9;coef[61]=0;coef[62]=-3;
reset=0;
end
else
begin
for(count=62;count>0;count=count-1)begin
z[count]=z[count-1];
end
z[0]=input_data;
for(count=0;count<63;count=count+1)begin
accum=accum+z[count]*coef[count];
end
output_data=accum;
accum=0;
end
end
initial
begin
for(count=0;count<63;count=count+1)begin
z[count]=0;
end
end
endmodule
惜しむらくは、LUTの消費量が、大きい事です。
Fir
Compilerを使ったDA filter
自作の べた書き fir
filter
CICfilterのみを通した時
CIC filterを通すのみでは 34LUTsだったものが、
補償filter(fir LPF)を通すと、少なくても、2745LUTsの消費!
耐えられん....
それで、
自力でfir filterを、rom、single ramを使って、作り直す事を考えたのですが
これが、でけん..........涙 (-_-)
なんで?
LatticeXP2を使ってた時は、できたのですが.....
勿論、LatticeXP2の時の、 自作fir filterのHDL記述は、残っているのですが
自分で書いたものが、さっぱり理解できなくなっています.......
これを、老化現象というのでしょうか?
うーむ、そう言えば、今年の誕生日で、63歳には、なるのですが、
未だに、実感が沸きませんねん。
まあ、それは、それで、よろしいやんか。
あるがままで、行きましょう。
もっかい、考えてみますね。
H.23.01.28