




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、8点流水线型FFT的VerilogHDL实现梁志明华南理工大学calaok输出数据的位宽为32位,倒0(7)为输入数据,位宽为16位(一)算法介绍采用图中的结构,x°(0)序输出。x图38点FFT算法图二)系统设计皿16:017:031:0第阶込界图4系统总框图1、系统总框图如图4所示,总共包括一下几个模块:1运算模块。对应三阶运算,共采用三个运算子模块:第一阶运算模块:对应蝶形算子只有W0(Wo=l),第二阶运算模块:对应蝶形算子有W0、W2(W2=j),第三阶运算模块:对应蝶形算子有W0、Wl、W2、W3。2控制模块针对各阶运算,控制模块也可分为三个子模快:第一阶控制模块;第二阶
2、控制模块;第三阶控制模块。2、各个运算模块分析。1. 第一阶运算模块:模块功能:完成FFT第一阶蝶形运算。模块设计:此时蝶形算子只有W0,故蝶形运算结果为C=A+B,D=AB。因此,只需要对输入数据做加减法即可。考虑资源复用,这里定义一个16位的有符号数加法器和减法器,每次运算直接调用即可。2. 第二阶运算模块模块功能:完成FFT第二阶蝶形运算。模块设计:第二阶运算有蝶形算子W0、W2。对于W2蝶形运算结果为C=A+jB,D=AjB,因此只需另运算结果实部为A,虚部为+/B即可。对于W0算子,这里定义了一个17位有符号数加法器和减法器处理。对于W2算子,对于运算结果的实部,只需将A扩展成18位
3、即可;针对虚部,对于结果C,只需将B扩展成18位,对于结果D只用取B的补码,计算过程流程如下图。3. 第三阶运算模块模块功能:完成FFT第三阶蝶形运算。模块设计:第三阶运算模块:对应蝶形算子有W0、Wi、W2、W3。采用设计要求中提示的通用蝶形运算方法:Rc=Ra+Rb*cosaddsin+(Ib-Rb)sinIc=Ia+lb*cossubsin+(Ib-Rb)sinRd=Ra-Rb*cosaddsin+(Ib-Rb)sinId=Ia-Ib*cossubsin+(Ib-Rb)sin其中,cosaddsin=cos(2np/N)+sin(2np/N)cossubsin=cos(2np/N)一si
4、n(2np/N)sin=sin(2np/N)这里,N=8。根据上述公式,在进行一次蝶形运算时,只需首先确定cosaddsin,cossubsin,sin,然后计算出(Ib-Rb)sin,Rb*cosaddsin,Ib*cossubsin,最后将结果相加减即可。(三)仿真结果分析1、数据输入* Aestfft/clk'Aestfft/rst_n田-Aestfft/data_in* Aestfft/data_in_ready田Aestfft/lmul_p0-*Aestfft/lmul_Ra田Aestfft/lmul_la吐'Aestfft/lmul_Rb田-Aestfft/lmul
5、_lb田-Aestfft/lmulc_Rout田Aestfft/lmulc_lout田-*Aestfft/lmuld_Rout田Aestfft/lmuld_lout-1-150100000000/testfft/data_oul:_readd1nono0000(InoIQ8个的串行I数据2、最后蝶形算子运算波形图8最后蝶形算子运算波形1)蝶形算子运算公式为:R=R+Rcabcos(2np/N)+sin(2np/N)+('-R)sin(2np/N)I=I+IcabR=RdaI=I-Idacos(2np/N)-sin(2np/N)+('-R)sin(2np/N)-cos(2np/N
6、)+sin(2np/N)+(-R)sin(2np/N)bcos(2np/N)-sin(2np/N)+(-r)sin(2np/N)输入信号对应:Imul_Ra->RaImul_Ia->IaImul_Rb->RbImul_Ib->IbImulc_Rout->RcImulc_Iout->IcImuld_Rout->RdImuld_Iout->Id波形上的输入信号为实际大小的有符号数,由于在运算过程中进行了扩展,输出信号是实际公式计算值的512倍。3、输出信号波形-5.8284-2.4142i0-0.1716-0.4142i0-0.1716+0.4142
7、i0-5.8284+2.4142i硬件运算的结果为10240-=2984-1236i0-88-212i0-88+212i0-2984+1236i(2) 当输入数据为B=-5-555-5-555时,MATLAB运算的数据为:00-20.0000+20.0000i000-20.0000-20.0000i0硬件运算结果为:00-10240+10240i000-10240-10240i0(四)源程序(1)add16.vmoduleadd16(a,b,out);input15:0a,b;output16:0out;reg16:0out;wire16:0a1=a15,a15:0;wire16:0b1=b1
8、5,b15:0;always(a1orb1)beginouta1+b1;endendmodule(2)sub16.vmodulesub16(a,b,out);input15:0a,b;output16:0out;reg16:0out;wire16:0a1=a15,a15:0;wire16:0b1=b15,b15:0;always(a1orb1)begin=outa1-b1;endendmodule(3) add17.vmoduleadd17(a,b,out);input16:0a,b;output17:0out;reg1=7:0out;wire17:0a1=a16,a16:0;wire17:0
9、b1=b16,b16:0;always(a1orb1)beginouta1+b1;endendmodule(4) sub17.vmodulesub17(a,b,out);input16:0a,b;output17:0out;reg17:0out;wire17:0a1=a16,a16:0;wire17:0b1=b16,b16:0;always(a1orb1)beginouta1-b1;endendmodule(5) addw2_17.vmoduleaddw2_17(a,b,Rout,Iout);input16:0a,b;output=17:0Rout,Iout;reg17:0Rout,Iout;
10、wire17:0a1=a16,a16:0;wire17:0b1=b16,b16:0;always(a1orb1)beginRouta1;Iout18'b0-b1;endendmod=ule(6) subw2_17.vmodulesubw2_17(a,b,Rout,Iout);input16:0a,b;output17:0Rout,Iout;reg17:0Rout,Iout;wire17:0a1=a16,a16:0;wire17:0b1=b16,b16:0;always(a1orb1)beginRouta1;Ioutb1;endendmodule(7) Imul.vmoduleImul(
11、p,Ra_in,Ia_in,Rb_in,Ib_in,Rc_out,Ic_out,Rd_out,Id_out);input1:0p;input17:0Ra_in,Ia_in,Rb_in,Ib_in;output31:0Rc_out,Ic_out;reg31:0Rc_out,Ic_out;output31:0Rd_out,Id_out;reg31:0Rd_out,Id_out;wire18:0Rb_in1=Rb_in17,Rb_in17:0;wire18:0Ib_in1=Ib_in17,Ib_in17:0;reg10:0cosaddsin,cossubsin,sin;always(p)beginc
12、ase(p)2'd0:begin2'd1:begin2'd2:begin2'd3:beginendcasecosadd=sin11'd512;cossub=sin11'd51=2;=sin11'd0;endcosaddsin11'd724;cossubsin11'd0;sin11'd362;endcosaddsin11'd512;cossubsin11'h600;sin11'd512;endcosaddsin11'd0;cossubsin11'h52c;sin11'd
13、362;endendwire18:0IR=Ib_in1-Rb_in1;wire29:0R_sin;mult19_11mult19_11(.dataa(IR),.datab(sin),.result(R_sin);wire28:0R_cosaddsin;mult18_11mult18_11A(.dataa(Rb_in),.datab(cosaddsin),.result(R_cosaddsin);reg30:0R_Ra;always(Ra_in)beginif(Ra_in171'b1)beginR_Ra4'hf,Ra_in17:0+18'b1,9'b0+27
14、9;b1;endelsebeginR_Ra=4'b0,Ra_in17:0,9'b0;endendwire30:0R_=c=osaddsin1=R_cosaddsin28,R_cosaddsin28,R_cosaddsin28:0;reg30:0RRc;always(R_RaorR_cosaddsin1)beginRRcR_Ra+R_cosaddsin1;endwire31:0R_sin1=R_sin29,R_sin29,R_sin29:0;wire31:0=RRc1=RRc30,RRc30:0;always(R_sin1orRRc1)beginRc_outR_sin1+RRc1
15、;endwire28:0R_cossubsin;mult18_11mult18_11B(.dataa(Ib_in),.datab(cossubsin),=.result(R_cossubsin);reg30:0R_Ia;always(Ia_in)beginif(Ia_in171'b1)beginR_Ia4'hf,Ia_in17:0+18'b1,9'b0+27'b1;endelsebeginR_Ia4'b0,Ia_in17:0,9'b0;endendwire30:0R_cossubsin1=R_cossubsin28,R_cossubsin
16、28,R_cossubsin28:0;reg30:0RIc;always(R_IaorR_cossubsin1)beginRIcR_Ia+R_cossubsin1;endwire31:0RIc1=RIc30,RIc30:0;always(R_sin1orRIc1)begin=Ic_outR_sin1+RIc1;endreg30:0RRd;always=(R_RaorR_cosaddsin1)beginRRdR_Ra-R_cosaddsin1;endwire31:0RRd1=RRd30,RRd30:0;always(R_sin1orRRd1)beginRd_outRRd1-R_sin1;end/
17、*=*reg30:0RId;always(R_IaorR_cossubsin1)beginRId=R_Ia-R_cossubsin1;endwire31:0RId1=RId30,RId30:0;always(R_sin1orRId1)beginId_outRId1-R_sin1;endendmodule(8) FFT.vmoduleFFT(clk,rst_n,data_in,data_in_ready,data_out_R,data_out_=I,data_out_ready);inputclk,rst_n;input15:0data_in;inputdata_in_r=eady;output
18、31:0data_out_R,data_out_I;outputdata_out_ready;reg31:0data_out_R,data_out_I;regworking;regdata_out_ready_reg;wireworking_flag=working|data_in_ready;wiredata_out_ready=data_out_ready_reg;/DatacollectProcess*reg2:0collect_cnt;always(posedgeclkornegedgerst_n)if(!rst_n)begincollect_cnt<3'd0;endel
19、seif(working_flag=1'b0)begincollect_cnt<3'd0;endelsebegincollect_cnt<collect_cnt+3'b1;endreg15:0x0_reg0;reg15:0x0_reg1;reg15:0x0_reg2;reg15:0x0_reg3;reg15:0x0_regn;always(posedgeclkornegedgerst_n)if(!rst_n)beginx0_reg0<16'b0;x0_reg1<16'b0;x0_reg2<16'b0;x0_reg3&
20、lt;16'b0;x0_regn<1=6'b0;end=elseif(working_f=lag=1'b1)begincase(collect_cnt)3'd0:x0_reg0<data_in;3'd1:x0_reg1<data_in;3'd2:x0_reg2<data_in;3'd3:x0_reg3<data_in;default:x0_regn<data_in;endcaseend/Level1reg16:0x1_reg0;reg16:0x1_reg1;reg16:0x1_reg2;reg16:0x
21、1_reg3;reg16:0x1_reg4;reg16:0x1_reg5;=reg16:0x1_reg=6;reg16:0x1_reg=7;reg15:0x0add_a,x0add_b;wire16:0x0add_out;add16add16=(.a(x0add_a),.b(x0add_b),.out(x0add_out);reg15:0x0sub_a,x0sub_b;wire16:0x0sub_out;sub16sub16(.a(x0sub_a),.b(x0sub_b),.out(x0sub_out);always(collect_cntorx0_reg0orx0_reg1orx0_reg2
22、orx0_reg3orx0_regn)begincase(collect_cnt)3'd5:beginx0add_a<x0_reg0;x0add_b<x0_regn;x0sub_a<x0_reg0;x0sub_b<x0_regn;end3'd6:beginx0add_a<x0_reg1;x0add_b<x0_regn;x0sub_a<x0_reg1;x0sub_b<x0_regn;end=3'd7:begin=x0add_a<=x0_reg2;x0add_b<=x0_regn;x0sub_a<=x0_re
23、g2;x0sub_b<x0_regn;end3'd0:beginx0add_a<x0_reg3;x0add_b<x0_regn;x0sub_a<=x0_reg3;x0sub_b<=x0_regn;end=default:begin=x0add_a<=16'b0;x0add_b<16'b0;x0sub_a<16'b0;x0sub_b<=16'b0;x0add_a<=16'b0;x0add_b<16'b0;x0sub_a<16'b0;x0sub_b<=16&
24、#39;b0;end=endcaseendalways(posedgeclkornegedgerst_n)if(!rst_n)beginx1_reg0<17'b0;x1_reg1<17'b0;x1_reg2<17'b0;x1_reg3<17'b0;x1_reg4<17'b0;x1_reg5<17'b0;x1_reg6<17'b0;x1_reg7<17'b0;endelsebegincase(collect_cnt)3'd5:beginx1_reg0<x1_reg4<
25、;end3'd6:beginx1_reg1<x1_reg5<end3'd7:beginx1_reg2<x1_reg6<end3'd0:beginx1_reg3<x1_reg7<enddefault:;endcaseendx0add_out;x0sub_out;x0add_out;x0sub_out;x0add_out;x0sub_out;x0add_out;x0sub_out;/Level2reg17:0x2_reg0;reg17:0x2_reg=1;reg17:0x2_reg=2;reg17:0x2_reg3;reg17:0x2_r
26、eg=4_R,x2_reg4_I;reg17:0x2_reg5_R,x2_reg5_I;reg17:0x2_reg=6_R,x2_reg6_I;reg17:0x2_reg=7_R,x2_reg7_I;reg16:0x1add_a,x1add_b;wire17:0x1add_out;add17add17(.a(x1add_a),.b(x1add_b),.out(x1add_out);reg16:0x1sub_a,x1sub_b;wire17:0x1sub_out;sub17sub17(.a(x1sub_a),.b(x1sub_b),.out(x1sub_out);reg16:0x1addw2_a
27、,x1addw2_b;wire17:0x1addw2_Rout,x1addw2_Iout;addw2_17addw2_17(.a(x1addw2_a),.b(x1addw2_b),.Rout(x1addw2_Rout),.Iout(x1addw2_Iout);reg16:0x1subw2_a,x1subw2_b;wire17:0x1subw2_Rout,x1subw2_Iout;subw2_17subw2_17=(.a(x1subw2_a),.b(x1subw2_b),.Rout(x1subw2_Rout),.Iout(x1subw2_Iout);always(collect_cntorx1_
28、reg0orx1_reg1orx1_reg2orx1_reg3orx1_reg4orx1_reg5orx1_reg6orx1_reg7)=begin=case(collect_cnt)3'd0:begin=x1add_a<=x1_reg0;x1add_b<=x1_reg2;x1sub_a<x1_reg0;x1sub_b<=x1_reg2;x1addw2_a<=17'b0;x1addw2_b<=17'b0;x1subw2_a<=17'b0;x1subw2_b<=17'b0;end3'd1:begin=
29、x1addw2_a<=x1_reg4;x1addw2_b<=x1_reg6;x1subw2_a<=x1_reg4;x1subw2_b<=x1_reg6;x1add_a<17'b0;x1add_b<17'b0;x1sub_a<17'b0;x1sub_b<17'b0;end3'd2:beginx1add_a<x1_reg1;x1add_b<x1_reg3;x1sub_a<x1_reg1;x1sub_b<x1_reg3;x1addw2_a<17'b0;x1addw2_b<
30、;17'b0;x1subw2_a<17'b0;x1subw2_b<17'b0;end3'd3:beginx1addw2_a<x1_reg5;x1addw2_b<x1_reg7;x1subw2_a<x1_reg5;x1subw2_b<x1_reg7;x1add_a<=17'b0;x1add_b<17'b0;x1sub_a<17'b0;x1sub_b<17'b0;end=default:begin=x1add_a<=17'b0;x1add_b<=17
31、9;b0;x1sub_a<=17'b0;x1sub_b<=17'b0;x1addw2_a=<17'b0;x1addw2_b=<17'b0;x1subw2_a<17'b0;x1subw2_b<17'b0;endendcaseendalways(posedgec=lkornegedgerst_n)if(!rst_n)=begin=x2_reg0<1=8'b0;x2_reg1<18'b0;x2_reg2<1=8'b0;x2_reg3<1=8'b0;x2_reg4
32、_R<=18'b0;x2_reg5_R<18'b0;x2_reg6_R<18'b0;x2_reg7_R<18'b0;x2_reg4_I<18'b0;x2_reg5_I<18'b0;x2_reg6_I<18'b0;x2_reg7_I<18'b0;endelsebegincase(collect_cnt)3'd0:beginx2_reg0<x1add_out;x2_reg2<x1sub_out;end3'd1:beginx2_reg4_R<x1addw2
33、_Rout;x2_reg4_I<x2_reg6_R<x2_reg6_I<x1addw2_Iout;x1subw2_Rout;x1subw2_Iout;end3'd2:beginx2_reg1<x2_reg3<endx1add_out;x1sub_out;3'd3:beginx2_reg5_R<x2_reg5_I<x2_reg7_R<x2_reg7_I<x1addw2_Rout;x1addw2_Iout;x1subw2_Rout;x1subw2_Iout;enddefault:;endcaseend/Level3reg1:0I
34、mul_p;=reg17:0Imul_Ra,=I=mul_Ia,Imul_Rb,Imul_Ib;wire31:0Imulc_R=out,Imulc_Iout;wire31:0Imuld_Rout,Imuld_Iout;ImulImul(.p(=Imul_p),.Ra_in(Imul_R=a),.Ia_in(Imul_Ia),.Rb_in(Imul_Rb),.Ib_in(Imul_Ib),.Rc_out(Imulc_R=out),.Ic_out(Imulc_Iout),.Rd_out(Imuld_R=out),.Id_out(Imuld_Iout);always(collect_cntorx2_
35、reg0orx2_reg1orx2_reg2orx2_reg3ororbeginx2_reg4_Rorx2_reg4_Iorx2_reg5_Rorx2_reg5_Ix2_reg6_Rorx2_reg6_Iorx2_reg7_Rorx2_reg7_I)case(collect_cnt)3'd4:begin/7Imul_Ra<Imul_Ia<Imul_Rb<Imul_Ib<x2_reg0;18'b0;x2_reg1;18'b0;Imul_p<end2'd0;3'd5:begin/4Imul_Ra<Imul_Ia<Im
36、ul_Rb<Imul_Ib<x2_reg2;18'b0;x2_reg3;18'b0;Imul_p<end2'd2;3'd6:begin/6Imul_Ra<Imul_Ia<Imul_Rb<Imul_Ib<=x2_reg4_R;=x2_reg4_I;=x2_reg5_R;=x2_reg5_I;Imul_p<end3'd7:begin/5Imul_Ra<Imul_Ia<Imul_Rb<Imul_Ib<=2'd1;=x2_reg6_R;x2_reg6_I;=x2_reg7_R;x2_
37、reg7_I;Imul_p<end=2'd3;default:beginImul_Ra<Imul_Ia<Imul_Rb<Imul_Ib<=18'b0;=18'b0;=18'b0;=18'b0;Imul_p<endendcaseend2'd0;reg31:0out_reg0_R,out_reg0_I;reg31:0out_reg1_R,out_reg1_I;reg31:0out_reg2_R,out_reg2_I;reg31:0out_reg3_R,out_reg3_I;reg31:0out_reg4_R,out
38、_reg4_I;reg31:0out_reg5_R,out_reg5_I;reg31:0out_reg6_R,out_reg6_I;reg31:0out_reg7_R,out_reg7_I;always(posedgeclkornegedgerst_n)if(!rst_n)beginout_reg0_R<=3=2'b0;out_reg0_I<3=2'b0;out_reg1_R<3=2'b0;out_reg1_I<32'b0;out_reg2_R<=3=2'b0;out_reg2_I<3=2'b0;out_reg
39、3_R<3=2'b0;out_reg3_I<32'b0;out_reg4_R<=3=2'b0;out_reg4_I<3=2'b0;out_reg5_R<3=2'b0;out_reg5_I<32'b0;out_reg6_R<32'b0;out_reg6_I<32'b0;out_reg7_R<=32'b0;out_reg7_I<=32'b0;end=else=begin=case(collect_c=nt)3'd4:begin/0=out_reg0_R
40、<=Imulc_Rout;out_reg0_I<=Imulc_Iout;out_reg4_R<=Imuld_Rout;out_reg4_I<=Imuld_Iout;end3'd5:begin/4out_reg2_R<Imulc_Rout;out_reg2_I<Imulc_Iout;out_reg6_R<Imuld_Rout;out_reg6_I<Imuld_Iout;end3'd6:begin/2out_reg1_R<Imulc_Rout;out_reg1_I<Imulc_Iout;out_reg5_R<Imul
41、d_Rout;out_reg5_I<Imuld_Iout;end3'd7:begin/6out_reg3_R<Imulc_Rout;out_reg3_I<Imulc_Iout;out_reg7_R<Imuld_Rout;out_reg7_I<=Imuld_Iout;enddefault;=endcaseendalways(posedge=clkornegedgerst_n)if(!rst_n)=begindata_out_R<=3=2'b0;data_out_I<32'b0;endelsebegincase(collect_cn
42、t)3'd6:begin/4data_out_R<data_out_I<end3'd7:begin/2=data_out_R<data_out_I<end3'd0:begin/6data_out_R<data_out_I<end3'd1:begin/1data_out_R<data_out_I<end3'd2:begin/5data_out_R<data_out_I<end3'd3:begin/3data_out_R<data_out_I<end3'd4:begin/
43、7data_out_R<data_out_I<out_reg0_R;out_reg0_I;out_reg1_R;out_reg1_I;out_reg2_R;out_reg2_I;out_reg3_R;out_reg3_I;out_reg4_R;out_reg4_I;out_reg5_R;out_reg5_I;out_reg6_R;out_reg6_I;end3'd5:begin/0data_out_R<out_reg7_R;data_out=_I<=out_reg7_I;endendcaseendreg3:0idle_cnt;regenflag;always(p
44、osedg=e=clkornegedgerst_n)if(!rst_n)beginidle_cnt<4'd0;working<1'b0=;end=elsebeginif(data_in_ready1'b1)begin=working<=if(collect_cntidle_cnt1'b1;3'd7)4'd13;elseidle_cnt<4'd12-1'b0,collect_cnt;endelsebeginif(idle_cntworking<elseidle_cnt<4'd0)1'
45、;b0;idle_cnt-4'd1;endendalways(posedgeclkornegedgerst_n)if(!rst_n)begindata_out_ready_reg<1'b0;enflag<1'b0;endelsebeginif(enflag1'b0)beginif(collect_cntendelse3'd6)enflag<1'b1;beginif(collect_cntendif(working_flagend3'd6)data_out_ready_reg<1'b1;1'b0)da
46、ta_out_ready_reg<1'b0;endmodule三、开3次方电路设计(一)题目设计要求设计一个同步电路,该电路输出IS=Xi/3,EN为使能端,Done指示运算结束。输入X的范围是0255;其中X=064出现的概率较大,精度要求1%。,其它数值精度要求1%,自行决定IS的位数。CLKISX(7::0)ENRST次方电路DONE图10运算模块方框图(二)方案设计首先根据精度确定输出数据IS的位数。最大的精度要求为1%0,即1/1000。从而可以得知,输出二进制数据的小数位数至少要求为10位。而根据最大输出数据255,整数部分的位数最大为3位。即输出数据IS的位数可以定
47、为13位。其格式如下:121090整数小数用硬件算法直接计算开3次方的硬件开销太大,而且实现算法困难,因此把开方运算转换成为乘方运算进行处理。在这里采用计数逼近方法进行运算,即把设计的满足输出精度要求的数据进行不断的加1自增(计算时把数据当作整数进行),然后对该数进行求3次乘方,把得到的3次乘方值与输入值比较,比较相等后输出结果。精度保证方法:如果进行计数自增的计数器与输出数据的位数相同,则计数是以1/1024自增的。而为了保证输出数据的精度,该自增的速率应该小于1/2000,因此该计数器选择14位进行运算,其中3位整数,11位小数。而对于精度为1的数据,。计算数据匹配后进行数据截取,如果输入
48、数据为064,则截取高13位,如果为65255则按照精度1%的要求,截取3+7=10位。算法流程如图11所示。图11算法流程图(三)波形仿真1、输入信号为47时的仿真波形图12输入信号为47时的仿真波形图输入信号为47时的仿真波形如图12所示,输入信号为47,输出信号为3695。由于输出信号中最后10位为小数位,所以最终运算结果应该除以1024。即得,运算结果为:3695/1024=3.6083984375。而用计算器计算得47的开三次方为3.60882608。可见该电路的运算精度达到了1%。2、输入信号=为200时的仿真波形图13输入信号为200时的仿真波形图输入信号为47时的仿真波形如图1
49、2所示,输入信号为200,输出信号为5984。由于输出信号中最后10位为小数位,所以最终运算结果应该除以1024。即得,运算结果为:5984/1024=5.84375。而用计算器计算得200的开三次方为5.8480354764。可见该电路的运算精度达到了1(四)源代码1、主程序modulesqrt3(clk,rst,en,x,is,done);inputclk,rst,en;input7:0x;output12:0is;outputdone;reg12:0is;regdone;regc;reg13:0temp0;reg27:0temp1,temp2,temp3;reg41:0temp4;wir
50、e41:0xx=1'b0,x,33'b0;reg13:0bit_loop;reg1:0cal_state;parameterNUL=2'b00,/NOTKNOWEQU=2'b01,/EQUELSML=2'b10,/SMALLLRG=2'b11;/LARGERreg6:0state;parameters0=7'b0000001,s17'b0000010,s27'b0000100,s37'b0001000,s47'b0010000,s57'b010=00=00,s67'b100=00=00;always(posedgeclko=rnegedgerst)if(rst=0)begindone1'b0;is13'
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国聚乙烯高密度(PEHD)管行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国罐头即食餐行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国线绕高频电感器行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国纳地美定行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国笔记本电脑行业市场深度调研及调查研究报告
- 2025-2030中国私有云行业市场发展分析及投资潜力与策略规划研究报告
- 2025-2030中国石膏板锚行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国眼部护肤行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国男式化妆品行业市场发展分析及前景趋势与投资研究报告
- 2025-2030中国电泳涂料行业市场发展趋势与前景展望战略研究报告
- 超声波类hc sr04p使用说明
- 桂林市临桂区中小学教师招聘笔试试题2023年
- 数控等离子切割机操作规程教育课件
- 2022年浙江省杭州市中考化学试卷【含答案】
- 机电工程技术标投标方案
- 光伏电缆的敷设
- C#实验c-图书管理系统源代码
- 波罗维茨少女合唱谱
- 化疗后呕吐CINV相关知识考核试题及答案
- 七年级4班期中考试家长会课件
- 降低长期卧床病人便秘发生率
评论
0/150
提交评论