modelsim 和 matlab 联合调试 ,显示 正弦波

来源:互联网 发布:军工软件 行业分析 编辑:程序博客网 时间:2024/06/05 18:53

 首先要用matlab生成 正弦波,并且显示出来。 贴代码:


N = 256;n = 1:256;x = fix(128 + (2^7 -1) * sin(2 * pi* n/N));fid = fopen('E:/matlab/sin.txt', 'wt');fprintf(fid, '%x\n',x);fclose(fid);fid = fopen('I:/matlab/sin.txt','r');for i = 1: 256    num(i) = fscanf(fid, '%x', 1); % 这句话意思是 从fid所指向的文件里,以 16进制的方式读出一个数据。endfclose(fid);plot(num);

生成的结果:

下面 是 verilog的一些代码,在 modelsim 可以以正弦波显示出来。


initial   begin      $readmemh("I:/simulation/matlab/sin.txt", data_mem);    $display("0x00: %h", data_mem[8'h00]);    $display("0x01: %h", data_mem[8'h01]);    $display("0x55: %h", data_mem[8'h55]);    $display("0x56: %h", data_mem[8'h56]);    reset_n = 1'b0;    clk_rd = 1'b0;    clock_source = 1'b0;    #100000    reset_n =1'b1;  end   always @(posedge clk_rd or negedge reset_n)begin  if (~reset_n)    sine <=8'b0;  else    sine <= data_mem[addr];end always @(posedge clk_rd or negedge reset_n)begin  if (~reset_n)    addr <=8'b0;  else    addr <= addr + 8'd1;end

仿真出来的结果:



0 0
原创粉丝点击