在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2256|回复: 2

[求助] NCVERILOG对文件读取系统函数支持问题

[复制链接]
发表于 2015-4-6 14:50:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
通过$fscanf读取文件,对应的代码在VCS和Modelsim编译运行可以(有警告,说是期望遇到一个任务,但实际遇到一个函数)
在NCELAB时报告了如下错误:
Function name encountered.  Expecting a task name. [2.7.4(IEEE Std 1364-2001)].
根据日志出问题的地方在“$fscanf(fp_r,"%h",txt_data);”这个地方




  1. `timescale 1ns / 1ps
  2. module tb_gen_data(txd_data,tklsb,tkmsb,rstn,clk1x,clk2x);
  3. output [15:0] txd_data;
  4. output tklsb,tkmsb,rstn;
  5. output clk1x,clk2x;
  6. reg  [15:0] din;

  7. wire [9:0] dtout;
  8. reg clk1x_tmp,clk2x_tmp;
  9. wire clk1x,clk2x;
  10. reg rst,pre_rst;
  11. reg [23:0] txt_data;

  12. integer fp,fp_r,i,fp_w;



  13. initial
  14.   begin
  15. #10  
  16.    clk1x_tmp <= 0;
  17.    clk2x_tmp <= 0;
  18.    rst <=1;
  19.    pre_rst<=1;
  20. #47 pre_rst <=0;   
  21. #1 rst <=0;   
  22.   end

  23. initial
  24.   begin
  25.     fp_r=$fopen("./base_data_8b10b.txt","r");
  26.   
  27.     if(!fp_r)begin
  28.       $display("Read File Error.");
  29.       $fclose(fp_r);   
  30.     end
  31.   

  32.     @(posedge clk1x)
  33.      begin
  34.        while(!($feof(fp_r)))
  35.          begin
  36.            @(posedge clk1x)
  37.              if(!pre_rst)begin      
  38.                $fscanf(fp_r,"%h",txt_data);
  39.                $display("%h",txt_data);
  40.              end
  41.          end
  42.      end
  43. end


  44. initial begin
  45.   fp_w=$fopen("./result_data_8b10b.txt","w");
  46.     if(!fp_w)begin
  47.       $display("Write File Error.");
  48.       $fclose(fp_w);   
  49.     end
  50.   
  51.     @(posedge clk1x)
  52.       begin
  53.         while(!($feof(fp_r)))
  54.           begin
  55.             @(posedge clk1x)     
  56.                 $fwrite(fp_w, "%h\n", txt_data);
  57.                $display("%h",dtout);
  58.           end
  59.       end
  60.    $fclose(fp_w);
  61.    $stop;   
  62. end



  63. always #5 clk1x_tmp =!clk1x_tmp;

  64. always #2.5 clk2x_tmp =!clk2x_tmp;

  65. assign #1 clk2x= clk2x_tmp;

  66. assign clk1x= clk1x_tmp;

  67. assign txd_data= txt_data[15:0];
  68. assign tklsb=txt_data[16];
  69. assign tkmsb=txt_data[17];
  70. assign rstn=~rst;

  71. endmodule


复制代码
 楼主| 发表于 2015-4-6 16:49:57 | 显示全部楼层
沉的真快
发表于 2015-4-7 15:08:42 | 显示全部楼层
fscanf是个函数,调用时加上返回值即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-17 10:46 , Processed in 0.015603 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表