Matlab生成txt文件导入到Vivado仿真

Matlab处理数据并将其写入txt文件

matlab 复制代码
%% Txt Generate
pre_RS_data=dec2bin(simDataIn,8);       %将数据转化为8bit的二进制
fid=fopen("F:\FPGA\Xilinx_vivado\project\dvbstestbench\dbvs\matlab\pre_RS_data.txt","wt");
for i=1:n*nMessages         %数据长度
    fprintf(fid,"%s\n",pre_RS_data(i,1:8));  %由于二进制数据为8位,因此是1:8
end
fclose(fid);

使用fopen函数获取文件id,fopen的语法如下

其中permisson为文件访问类型,有以下几种权限

'r' 打开要读取的文件。
'w' 打开或创建要写入的新文件。放弃现有内容(如果有)。
'a' 打开或创建要写入的新文件。追加数据到文件末尾。
'r+' 打开要读写的文件。
'w+' 打开或创建要读写的新文件。放弃现有内容(如果有)。
'a+' 打开或创建要读写的新文件。追加数据到文件末尾。
'A' 打开文件以追加(但不自动刷新)当前输出缓冲区。
'W' 打开文件以写入(但不自动刷新)当前输出缓冲区。

💡 要以文本模式打开的话,要附加't'

Vivado中testbench写法

verilog 复制代码
`timescale 1ns/1ps

module top_tb();

reg clk;
reg rst_n;
reg [7:0]SEQ_IN_0;
reg [7:0] data_mem[1:1020];
reg [31:0] i;
wire BIN_OUT;
wire ce_out;
wire locked;

//clk & rst_n gen
initial begin
    clk=1'b0;
    rst_n=1'b0;
    #100
    rst_n=1'b1;  
end
always #5 clk=~clk;

//data read
initial begin
    $readmemb("F:/FPGA/Xilinx_vivado/project/dvbstestbench/dbvs/matlab/pre_RS_data.txt",data_mem);
  
end

initial begin
    i=1;
    forever @(posedge clk) begin
        if(i<1020)  begin
            i=i+1;
        end
        else 
            i=1;
    end
    $display("%s",data_mem[i]);
end

always @(posedge clk) begin
    SEQ_IN_0<=data_mem[i];
end

top_wrapper top_wrapper_u0(
    .clk_0    (clk),
    .rst_n_0  (rst_n),
    .SEQ_IN_0(SEQ_IN_0),
    .BIN_OUT_0  (BIN_OUT),
    .ce_out_0   (ce_out),
    .locked_0   (locked)
);

endmodule

💡 直接在文件夹内部复制的文件路径是\,但是testbench中要将所有反斜杠改为/,否则无法读取txt文件

相关推荐
一只侯子21 小时前
Face AE Tuning
图像处理·笔记·学习·算法·计算机视觉
烤麻辣烫1 天前
黑马程序员大事件后端概览(表现效果升级版)
java·开发语言·学习·spring·intellij-idea
烤麻辣烫1 天前
黑马程序员苍穹外卖(新手)DAY6
java·开发语言·学习·spring·intellij-idea
Xudde.1 天前
Quick2靶机渗透
笔记·学习·安全·web安全·php
AA陈超1 天前
Git常用命令大全及使用指南
笔记·git·学习
麦麦在写代码1 天前
前端学习5
前端·学习
降临-max1 天前
JavaSE---网络编程
java·开发语言·网络·笔记·学习
156082072191 天前
基于7VX690T FPGA实现万兆TCP/IP资源和性能测试
网络协议·tcp/ip·fpga开发
大白的编程日记.1 天前
【计算网络学习笔记】MySql的多版本控制MVCC和Read View
网络·笔记·学习·mysql
u***42071 天前
Golang 构建学习
开发语言·学习·golang