• Verilog中的文件的读取和写入


    在仿真验证的时候,需要一个合适的数据激励,在testbech一个一个的写很麻烦,如果能直接从数据文本里读取,然后输入到已经编写好功能程序中,就很方便。

    还有的时候,我们需要将程序输出的内容写到文本里面,然后用其他工具(例如matlab、python等)进行处理。

    代码和解释说明如下:

      

     1 `timescale 1ns/1ns
     2 
     3 module file_ctrl;
     4 
     5 reg           clk;         
     6 reg            rst_n;
     7 
     8 reg  [7:0]  data_in;                //定义的数据输入寄存器
     9 reg  [7:0]  data_out;                        
    10 reg  [7:0]  cnt;
    11 
    12 integer  file_rd;                //定义数据读指针    
    13 integer  file_wr;                //定义数据写指针
    14 
    15 initial begin                        //定义时钟    
    16     clk = 1'b1;
    17     forever
    18     #10
    19     clk = ~clk;                
    20 end    
    21 
    22 initial begin                        //定义复位
    23     rst_n = 1'b0;
    24     #21
    25     rst_n = 1'b1;
    26 end
    27 
    28 initial begin                        //打开读取和写入的文件,这里的路径要对    
    29     file_rd = $fopen("E:/Project/file_ctrl/sim/tb/data_in.txt","r");
    30     file_wr = $fopen("E:/Project/file_ctrl/sim/tb/data_out.txt","w");
    31 end    
    32         
    33 always@(posedge clk or negedge rst_n)    
    34 begin
    35     if(rst_n == 1'b0)begin
    36         data_in <= 8'd0;        
    37         cnt <= 8'd0;
    38     end
    39     else if(cnt < 10)begin
    40         $fscanf(file_rd,"%h",data_in);            //读取每行    
    41         cnt <= cnt +1;        
    42         $fwrite(file_wr,"%h
    ",    data_in);      //换行写入    
    43     end
    44     else begin
    45         data_in <= 8'd0;
    46         $fclose(file_rd);                        //关闭文件
    47         $fclose(file_wr);        
    48         cnt <= 8'd11;
    49     end
    50 end    
    51 
    52 
    53 
    54 endmodule
  • 相关阅读:
    CentOS7 彻底关闭 IPV6
    查看 nodejs 安装包的相关指令
    npm 查看全局安装过的包
    更换 nodejs npm 镜像为 淘宝 镜像
    更改 Centos 6 的 yum 源
    Nodejs 实现 WebSocket 太容易了吧!!
    解决国内 NPM 安装依赖速度慢问题
    详解 HTML5 中的 WebSocket 及实例代码-做弹幕
    JSmpeg-用JavaScript编写的视频播放器
    适用于Centos6.x系统的15项优化脚本
  • 原文地址:https://www.cnblogs.com/jayer/p/12577783.html
Copyright © 2020-2023  润新知