观海听涛nice 观海听涛nice
关注数: 52 粉丝数: 46 发帖数: 407 关注贴吧数: 31
求各位帮我看一下程序,在板子上运行后,出来的图像放大后不光滑 module LorenzChaos2(clk,rst,out_en,daclk,x,y,z); /* 1. 16 bits structure: 1bit(signed),5 bits(integer),10 bits(fraction) 2. 32 bits structure: 1bit(signed),5 bits(integer),26 bits(fraction) 3. 64 bits results ofmult: 2 bits(signed),9 bits(integer),53 bits(fraction) */ parameterXYZ_WIDTH=32; parameterTMP_WIDTH=64; parameterDAC_WIDTH=12; // 12bits DAC input clk,rst; output reg [DAC_WIDTH-1:0]x; //out to DAC output reg [DAC_WIDTH-1:0]y; output reg [DAC_WIDTH-1:0]z; output daclk,out_en; reg daclk,out_en; reg signed[XYZ_WIDTH-1:0] x0=32'b0_00000_00110011001100110011000000; //0.20 reg signed[XYZ_WIDTH-1:0] y0=32'b0_00000_00011001100110011001100000; //0.10 reg signed[XYZ_WIDTH-1:0] z0=32'b0_00000_00100110011001100110000000; //0.15 reg signed[XYZ_WIDTH-1:0] a =32'b0_11100_00000000000000000000000000; // 28 reg signed[XYZ_WIDTH-1:0] b =32'b0_01100_00000000000000000000000000; // 12 reg signed[XYZ_WIDTH-1:0] c =32'b0_01010_00000000000000000000000000; // 10 regsigned[XYZ_WIDTH-1:0] x_offset =32'b0_00000_10000000000000000000000000; // offset value is 0.5, all results add0.5, in order to avoid negative value. regsigned[XYZ_WIDTH-1:0] y_offset =32'b0_00000_10000000000000000000000000; regsigned[XYZ_WIDTH-1:0] z_offset =32'b0_00000_10000000000000000000000000; reg signed[XYZ_WIDTH-1:0] dx; // variables on the left of Lorenzequation reg signed[XYZ_WIDTH-1:0] dy; reg signed[XYZ_WIDTH-1:0] dz; reg signed[XYZ_WIDTH-1:0] dx1; // variables on the left of Lorenzequation reg signed[XYZ_WIDTH-1:0] dy1; reg signed[XYZ_WIDTH-1:0] dz1; reg signed[XYZ_WIDTH-1:0] fx; // temp for f(),where f() is the right ofLorenz equation reg signed[XYZ_WIDTH-1:0] fy; //for detail,please refer to 2orders of R-K algorithm reg signed[XYZ_WIDTH-1:0] fz; reg signed[XYZ_WIDTH-1:0] fx_add_dx; // temp for operation: f()+dx reg signed[XYZ_WIDTH-1:0] fy_add_dy; // for detail,please refer to2orders R-K algorithm reg signed[XYZ_WIDTH-1:0] fz_add_dz; reg signed[XYZ_WIDTH-1:0] x_tmp; reg signed[XYZ_WIDTH-1:0] y_tmp; reg signed[XYZ_WIDTH-1:0] z_tmp; reg signed[TMP_WIDTH-1:0] zz; // z*z reg signed[TMP_WIDTH-1:0] zz_mult_64; // z*z*64 reg signed[TMP_WIDTH-1:0] er_mult_yzz; // 2*y*z*z reg signed[TMP_WIDTH-1:0] er_mult_yzz_mult_64; //2*y*z*z*64 reg signed[TMP_WIDTH-1:0] shi_mult_xz; // 10*x*z reg signed[TMP_WIDTH-1:0] shi_mult_xz_mult_64; //10*x*z*64 reg signed[TMP_WIDTH-1:0] wu_mult_yy; // 5*y*y reg signed[TMP_WIDTH-1:0] wu_mult_yy_mult_64;// 5*y*y*64 regsigned[TMP_WIDTH-1:0] fu_mult_cz; // -c*z regsigned[TMP_WIDTH-1:0] fu_mult_ax; // -a*x regsigned[TMP_WIDTH-1:0] by; //b*y reg signed[TMP_WIDTH-1:0]fu_mult_ax_sub_er_mult_yzz_mult_64; // -ax-2yz^2 regsigned[TMP_WIDTH-1:0] by_add_shi_mult_xz_mult_64; //by+10xz regsigned[TMP_WIDTH-1:0] fu_mult_cz_add_wu_mult_yy_mult_64; //-cz+5y^2 regsigned[TMP_WIDTH-1:0] dy_extend; reg [3:0]state; reg current_step; reg next_step; parameter s0=0, s1=1, s2=2, s3=3, s4=4, s5=5, s6=6, s7=7, s8=8, s9=9;
1 下一页