刚入门FPGA的小萌新有个关于数据采集的问题?

2019-07-15 21:14发布

我在走一个双路12位的数据采集的实例,程序我都看过的了也烧进板子了,用的是AX309的学生用板,在用chipscope观察传输里面的正弦波时候,和预想的不一样,各位大神有没有在一开始学习的时候也遇到这样的情况。求帮助
这是我自己在chipscope里采到的数据 这是我自己在chipscope里采到的数据
这是给的例程给的chipscope应该出现的图像。 这是给的例程给的chipscope应该出现的图像。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
zrq0608
1楼-- · 2019-07-15 21:55
符号不对,图像格式显示有符号数看看,一般ad采样的是有符号数吧 最佳答案
reallmy
2楼-- · 2019-07-15 22:33
 精彩回答 2  元偷偷看……
程墨昕
3楼-- · 2019-07-16 02:24
reallmy 发表于 2017-11-24 16:36
符号位搞错了,应该是

有一点我不明白,都说符号有问题,但是chipscope这里读取的是ad_ch1信号,ad_ch1的信号是ad_in1传过来没经过处理的。。我表达的可能不清楚。
程墨昕
4楼-- · 2019-07-16 03:57
本帖最后由 程墨昕 于 2017-11-24 20:05 编辑
reallmy 发表于 2017-11-24 16:36
符号位搞错了,应该是

module ad9226_test(
                                input clk50m,
                                input reset_n,

                 input rx,                   //uart rx
            output tx,                  //uart tx
                               
                                input [11:0] ad1_in,
                                output ad1_clk,

                                input [11:0] ad2_in,
                                output ad2_clk       

    );

parameter SCOPE_DIV =100;            //定义chipscoe的分频系数,

assign ad1_clk=clk50m;
assign ad2_clk=clk50m;

wire [11:0] ad_ch1;
wire [11:0] ad_ch2;
wire [7:0] ch1_sig;
wire [7:0] ch2_sig;
wire [19:0] ch1_dec;
wire [19:0] ch2_dec;


/****************AD采样程序**************/
ad u1 (
                .ad_clk                     (clk50m),                           
                .ad1_in                     (ad1_in),             //ad1 input
                .ad2_in                     (ad2_in),                   //ad2 input       
      .ad_ch1                     (ad_ch1),             //ad1 data 12bit
      .ad_ch2                     (ad_ch2)              //ad2 data
);

/**********AD十六进制转十进制***********/
volt_cal u2(
                .ad_clk                            (clk50m),       
                .ad_ch1                             (ad_ch1),           //ad1 data 12bit
                .ad_ch2                  (ad_ch2),           //ad2 data 12bit
       
                .ch1_dec                 (ch1_dec),         //ad1 BCD voltage
                .ch2_dec                 (ch2_dec),         //ad2 BCD voltage
       
                .ch1_sig                 (ch1_sig),         //ch1 ad 正负
                .ch2_sig                 (ch2_sig)          //ch2 ad 正负
       
    );

/**********AD数据Uart串口发送程序***********/
uart u3(
                .clk50                               (clk50m),       
                .reset_n                            (reset_n),       

                .ch1_dec                 (ch1_dec),         //ad1 BCD voltage
                .ch2_dec                 (ch2_dec),         //ad2 BCD voltage
       
                .ch1_sig                 (ch1_sig),         //ch1 ad 正负
                .ch2_sig                 (ch2_sig),          //ch2 ad 正负
               
                .tx                      (tx)
               
       
    );


reg scope_clk;
reg [31:0] scope_counter;

always @(posedge clk50m)
begin
    if (scope_counter == SCOPE_DIV-1) begin
            scope_counter<=0;
                 scope_clk <= ~scope_clk;  
         end
    else
              scope_counter<=scope_counter+1'b1;
end


wire [35:0]   CONTROL0;
wire [255:0]  TRIG0;
chipscope_icon icon_debug (
    .CONTROL0(CONTROL0) // INOUT BUS [35:0]
);

chipscope_ila ila_filter_debug (
    .CONTROL(CONTROL0), // INOUT BUS [35:0]
   // .CLK(dma_clk),      // IN
    .CLK(scope_clk),      // IN
    .TRIG0(TRIG0)      // IN BUS [255:0]
    //.TRIG_OUT(TRIG_OUT0)
);                                                     

assign  TRIG0[11:0]=12'h7ff;  
assign  TRIG0[23:12]=12'h800;   
assign  TRIG0[35:24]=ad_ch2;  
assign  TRIG0[47:36]=ad_ch1;  
assign  TRIG0[67:48]=ch2_dec;
assign  TRIG0[87:68]=ch1_dec;

endmodule

程墨昕
5楼-- · 2019-07-16 06:53
本帖最后由 程墨昕 于 2017-11-24 20:05 编辑
reallmy 发表于 2017-11-24 16:36
符号位搞错了,应该是

module ad(
          input ad_clk,
                         input [11:0] ad1_in,
                         input [11:0] ad2_in,
                         
                         output reg [11:0] ad_ch1,
                         output reg [11:0] ad_ch2
                         
    );



always @(posedge ad_clk)
begin
    ad_ch1[11] <= ad1_in[0];  
    ad_ch1[10] <= ad1_in[1];  
    ad_ch1[9] <= ad1_in[2];  
    ad_ch1[8] <= ad1_in[3];  
    ad_ch1[7] <= ad1_in[4];  
    ad_ch1[6] <= ad1_in[5];  
    ad_ch1[5] <= ad1_in[6];  
    ad_ch1[4] <= ad1_in[7];  
    ad_ch1[3] <= ad1_in[8];  
    ad_ch1[2] <= ad1_in[9];  
    ad_ch1[1] <= ad1_in[10];  
    ad_ch1[0] <= ad1_in[11];           
end

always @(posedge ad_clk)
begin
    ad_ch2[11] <= ad2_in[0];  
    ad_ch2[10] <= ad2_in[1];  
    ad_ch2[9] <= ad2_in[2];  
    ad_ch2[8] <= ad2_in[3];  
    ad_ch2[7] <= ad2_in[4];  
    ad_ch2[6] <= ad2_in[5];  
    ad_ch2[5] <= ad2_in[6];  
    ad_ch2[4] <= ad2_in[7];  
    ad_ch2[3] <= ad2_in[8];  
    ad_ch2[2] <= ad2_in[9];  
    ad_ch2[1] <= ad2_in[10];  
    ad_ch2[0] <= ad2_in[11];   
end


endmodule
程墨昕
6楼-- · 2019-07-16 10:58
本帖最后由 程墨昕 于 2017-11-24 20:06 编辑
reallmy 发表于 2017-11-24 16:36
符号位搞错了,应该是


一周热门 更多>