小风哥

fpga TB中调用txt数组文件,方便测试

0
阅读(3383)

(最近左手受伤,只能单手打字,所以写得比较乱,暂时不改了,大家凑合着看,有疑问的地方,或者不对的地方欢迎指正!)


优点:在TB中调用.txt文件,用于实现输入值的变化,方便测试多种case

     可以使用always 语句对addr赋值,

      reg  [9:0]  addr ;

      reg            flag  ;

initial begin

  SPI_ADDR    = 32'b0  ;

  SPI_DATA     = 32'b0  ;

  flag               = 1'b0 ;

  addr              =  10'b0 ;

end


      always #(5) clk_100m = ~ clk_100m;


      always #(50) flag = ~ flag;



always @( posedge clk_100m  or rst_100m) begin

    if(rst_100m) begin

        addr  <=  10'b0 ; 

    end

  else if(flag == 1'b1) begin

    addr <= addr+1'b1 ;

  end

end




always @( posedge clk_100m  or rst_100m) begin

    if(rst_100m) begin

       SPI_ADDR  <=  32'b0 ; 

    end

  else begin

         SPI_ADDR  <=  mem0[addr] ; 

  end

end


always @( posedge clk_100m  or rst_100m) begin

    if(rst_100m) begin

       SPI_DATA  <=  32'b0 ; 

    end

  else begin

         SPI_DATA  <=  mem1[addr] ; 

  end

end






TB中代码如下(结合上面代码来看)

数组中的值如图,且调用的.txt要和TB.v在同一目录。


之后只需要改变数组中某一个子项的编号即可实现调用txt中的值。