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文件

相关推荐
小猪佩奇TONY11 分钟前
Linux 内核学习(18) --- linux dma_buf 机制
linux·运维·学习
叶子野格17 分钟前
《Verilog学习:数字系统设计基础》
学习·fpga开发
边境悍匪17 分钟前
蜗牛学苑 Java 智能体学习 Day36|阿里云 OSS 文件上传、Spring 事务、全局异常思维导图复盘
java·学习·阿里云
Linux-lucky1 小时前
33-Linux学习之旅之MySQL用户管理
java·linux·运维·学习·mysql·ubuntu
亮工硬件1 小时前
1-8 简易串口通讯协议(UART + 自定义帧协议)
笔记·stm32·单片机·嵌入式硬件·学习
老猿讲编程1 小时前
【Eclipse OpenSOVD学习之二】 SOVD 协议原理与标准背景
学习·eclipse·嵌入式软件·车载·sovd
蓝天下的守望者1 小时前
ARM SOC architecture学习文档整理
arm开发·学习
花 满 楼2 小时前
TPWM — PWM 测量模式(TIM PWM Measurement Mode)
单片机·嵌入式硬件·fpga开发
叶子野格2 小时前
《Verilog学习:前置知识》
学习·fpga开发
wuyk5552 小时前
从零吃透 MQTT 通信|第 6 章 MQTT 主题、过滤器、通配符、订阅管理、拒收机制详解与代码实现
c语言·stm32·学习