毕业设计论文_基于fpga的数字低通滤波器内容摘要:

=1。 samprate_counter=0。 SPI_cont=0。 state=239。 d0。 end endcase end end // // ADC转换 结束 // endmodule TLC5615的程序如下: module TLC5615( clk,rst, data_in, DAC_start, SPI_clk, SPI_data, SPI_cs )。 Input clk,rst。 Input [9:0] data_in。 //DAC数据输入 Input DAC_start。 //DAC开始转换 output SPI_clk,SPI_data,SPI_cs。 //SPI总线 //++++++++++++++++++++++++++++++++++++++ // 分频 开始 //++++++++++++++++++++++++++++++++++++++ reg SPI_clk。 //SPI时钟 always@(posedge clk or negedge rst) //25M二分频 begin if(!rst) begin SPI_clk=0。 end else begin SPI_clk=~SPI_clk。 end end // // 分频 结束 // //++++++++++++++++++++++++++++++++++++++ // DAC转换 开始 //++++++++++++++++++++++++++++++++++++++ reg [15:0] SPI_buff。 //SPI输出缓存 reg [3:0] SPI_cont。 //SPI输出计数器 reg [1:0] state。 //输出状态机寄存器 reg SPI_cs。 //SPI选择 Wire SPI_data。 assign SPI_data = SPI_buff[15]。 //SPI数据 always@(negedge SPI_clk or negedge rst) begin if(!rst) begin SPI_buff=0。 SPI_cont=0。 state=0。 SPI_cs=1。 end else begin case(state) 239。 d0 : begin if(DAC_start) //开始转换把数据放入 buff,进入第二个状态 begin SPI_buff[15:12]=439。 b0000。 SPI_buff[11:2]=data_in。 SPI_buff[1:0]=239。 b00。 SPI_cont=0。 SPI_cs=0。 state=239。 d1。 end end 239。 d1 : begin SPI_buff[15:1]=SPI_buff[14:0]。 //右移输出,输出 16个进入第三个状态 SPI_cont=SPI_cont+139。 b1。 if(SPI_cont==439。 d14) state=239。 d2。 end default : begin SPI_cs=1。 //输出完成,进入第一个状态 if(~DAC_start) state=239。 d0。 end endcase end end // // DAC转换 结束 // Endmodule 滤波程序: module FIR2(out,x,clk,star)。 input star。 output[9:0] out。 input[7:0] x。 input clk。 reg[7:0] x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,x15,x16,x17,x18,x19,x20,x21,x22,x23,x24,x25,x26,x27,x28,x29,x30。 reg[7:0] s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15。 wire[25:0] yfirst,ysecond,ythird,yfourth,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,y15。 reg[9:0] out。 reg[25:0] out1,out2,out3,out4。 //定义滤波器系数 parameter signed [15:0] coeff1 = 1639。 b0000000000100000。 //sfix16_En15 parameter signed [15:0] coeff2 = 1639。 b0000000001011011。 //sfix16_En15 parameter signed [15:0] coeff3 = 1639。 b1111111101101011。 //sfix16_En15 parameter signed [15:0] coeff4 = 1639。 b1111111111100010。 //sfix16_En15 parameter signed [15:0] coeff5 = 1639。 b0000000101001010。 //sfix16_En15 parameter signed [15:0] coeff6 = 1639。 b1111111100000011。 //sfix16_En15 parameter signed [15:0] coeff7 = 1639。 b1111111010001000。 //sfix16_En15 parameter signed [15:0] coeff8 = 1639。 b0000001100011100。 //sfix16_En15 parameter signed [15:0] coeff9 = 1639。 b1111111110111110。 //sfix16_En15 parameter signed [15:0] coeff10 = 1639。 b1111101011010001。 //sfix16_En15 parameter signed [15:0] coeff11 = 1639。 b0000010101000001。 //sfix16_En15 parameter signed [15:0] coeff12 = 1639。 b0000010010010000。 //sfix16_En15 parameter signed [15:0] coeff13 = 1639。 b1111000010100100。 //sfix16_En15 parameter signed [15:0] coeff14 = 1639。 b0000011010111010。 //sfix16_En15 parameter signed [15:0] coeff15 = 1639。 b0100001010110101。 //sfix16_En15 always@(posedge star) begin //该 beginend语句块实现滤波器的 延时处理 ,8级缓存 x1 = x。 x2 = x1。 x3 = x2。 x4 = x3。 x5 = x4。 x6 = x5。 x7 = x6。 x8 = x7。 x9 = x8。 x10 = x9。 x11 = x10。 x12 = x11。 x13 = x12。 x14 = x13。 x15 = x14。 x16 = x15。 x17 = x16。 x18 = x17。 x19 = x18。 x20 = x19。 x21 = x20。 x22 = x21。 x23 = x22。 x24 = x23。 x25 = x24。 x26 = x25。 x27 = x26。 x28 = x27。 x29 = x28。 x30 = x29。 end always@(posedge clk) begin s1 = x1+x30。 s2 = x2+x29。 s3 = x3+x28。 s4 = x4+x27。 s5 = x5+x26。 s6 = x6+x25。 s7 = x7+x24。 s8 = x8+x23。 s9 = x9+x22。 s10 = x10+x21。 s11 = x11+x20。 s12 = x12+x19。 s13 = x13+x18。 s14 = x14+x17。 s15 = x15+x16。 end assign yfirst = s1*coeff1。 //乘法操作采用加法树实现 assign ysecond = s2*coeff2。 assign ythird = s3*coeff3。 assign yfourth = s4*coeff4。 assign y5 = s5*coeff5。 assign y6 = s6*coeff6。 assign y7 = s7*coeff7。 assign y8 = s8*coeff8。 assign y9 = s9*coeff9。 assign y10= s10*coeff10。 assign y11= s11*coeff11。 assign y12= s12*coeff12。 assign y13= s13*coeff13。 assign y14= s14*coeff14。 assign y15= s15*coeff15。 always@(posedge clk) begin out1 = yfirst+ysecond+ythird+yfourth+y5。 out2 = y6+y7+y8+y9+y10。 out3 = y11+y12+y13+y14+y15。 out4。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。