• verilog系统函数用法


    1、$fwrite 向文件写入数据
    
    $fdisplay

    格式:$fwrite(fid,"%h%h ",dout_r1,dout_r2);
    (1)fwrite是需要触发条件的,在一次触发条件之后也不会自动发生换行,所以要求手动添加换行。
    (2)如果写放文件的格式为%d,则认为是无符号数,如下例:
    wire [27:0] data;
    fp_re = $fopen("dout.txt","w");
    always @(posedge clk)
    begin
    if(dout_rdy == 1'b1)
    begin
    $fwrite(fileid,"%d",data);
    end
    end
    解决方法是:将 data定义为有符号数,即:wire signed [27:0] data;
    (3)输出顶层文件中例化的信号(或下一级例化的文件的信号)
      如果输出有符号数,要在相应的文件中定义为signed
      eg:$fwrite(file_id,"%d%12d ",u_coef_update.ekxdn_i,u_coef_update.u_mult.mult_out);
      在文件coef_update中定义的信号或REG ekxdn_i,如果要输出有符号数,要在coef_update中把ekxdn_i定义为signed;
      在文件coef_update文件中例化文件u_mult,输出相应的信号mult_out.

    2、$fscanf 从文件中读取数据
    (1)读取格式为按行读取,一行读完之后再转向下一行;
    (2)读取也是需要触发条件的;
     always @ ( posedge clk )
    begin
      if(cnt_test == 3'd7)        
         begin    
          $fscanf(coef_file,"%d%d%d%d",coef01_i,coef01_q,coef02_i,coef02_q);    
         $fscanf(ref_file,"%d%d%d%d",ref01_i,ref01_q,ref02_i,ref02_q);      end                     
      end

    3、$fopen 打开文件
    (1) 在读写文件之前,一定要用fopen打开文件
    (2)读写路径的设置
      file_id = $fopen("F:/modelsim/coef.txt"),注意这里的斜杠方向。 4、$random

        random_function ::=
          $random [ ( seed ) ]

      $random产生一个32位的有符号数,seed可心是reg,integer,time类型

    Example 1—Where b is greater than 0, the expression ($random % b) gives a number in the following
    range: [(-b+1): (b-1)].

    产生–59 到59的数:
    reg [23:0] rand;
    rand = $random % 60;
    Example 2—用连接符产生 0 to 59:
    reg [23:0] rand;
    rand = {$random} % 60;

    有一点不懂,连接符在这时起什么作用呢?

  • 相关阅读:
    Python获取微软Microsoft Exchange邮件信息
    Python pandas库 -> 和SQL查询的一些等价操作
    Python ORM之peewee模块
    Python pandas库 ->groupby分组操作
    Python pandas库和MS SQL的等价操作->并集,交集,差集
    深入理解SQL关联查询->不等值连接
    SQL技巧->多重分组排序的思路
    SQL技巧->分组排序 , 取最新数据的两种方法
    Python脚本->导出SQL查询结果到Excel文件
    Python中的加密
  • 原文地址:https://www.cnblogs.com/zhongguo135/p/3986608.html
Copyright © 2020-2023  润新知