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

devtools/2025/1/16 0:00:04/

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

%% 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的语法如下

1714036628457.png

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

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

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

Vivado中testbench写法

`timescale 1ns/1psmodule 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 beginclk=1'b0;rst_n=1'b0;#100rst_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);endinitial begini=1;forever @(posedge clk) beginif(i<1020)  begini=i+1;endelse i=1;end$display("%s",data_mem[i]);
endalways @(posedge clk) beginSEQ_IN_0<=data_mem[i];
endtop_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文件


http://www.ppmy.cn/devtools/26528.html

相关文章

react中useRef是什么?有啥用?怎么用?

useRef是什么? 在 React 中&#xff0c;useRef 是一个 Hook&#xff0c;它可以用来存储一个可变的值&#xff0c;这个值在组件的整个生命周期内保持不变。useRef 返回一个可变的 ref 对象&#xff0c;其 .current 属性被初始化为传递给 useRef 的参数&#xff08;initialValue…

深入解密Spring Boot日志:最佳实践与策略解析

在当今的软件开发领域中&#xff0c;Spring Boot已经成为了许多企业和开发者首选的框架之一。而对于一个优秀的Spring Boot开发者来说&#xff0c;对日志系统的深入了解和合理运用是必不可少的技能之一。 本文将带领正在准备面试的程序员深入解密Spring Boot日志&#xff0c;探…

C# 中 IOC (Inversion of Control,控制反转)

在 C# 中&#xff0c;IOC (Inversion of Control&#xff0c;控制反转) 是一种设计模式和软件开发原则&#xff0c;用于解耦组件之间的依赖关系&#xff0c;提高代码的可维护性和可测试性。IOC 容器是实现 IOC 的关键组件&#xff0c;它负责管理对象的创建、生命周期和依赖注入…

【GitHub】github学生认证,在vscode中使用copilot的教程

github学生认证并使用copilot教程 写在最前面一.注册github账号1.1、注册1.2、完善你的profile 二、Github 学生认证注意事项&#xff1a;不完善的说明 三、Copilot四、在 Visual Studio Code 中安装 GitHub Copilot 扩展4.1 安装 Copilot 插件4.2 配置 Copilot 插件&#xff0…

3.9设计模式——Strategy 策略模式(行为型)

意图 定义一系列的算法&#xff0c;把它们一个个封装起来&#xff0c;并且使他们可以相互替换此模式使得算法可以独立于使用它们的客户而变化 结构 Strategy&#xff08;策略&#xff09;定义所有支持的算法的公共入口。Context使用这个接口来调用某ConcreteStrategy定义的方…

vim与tmux配置文件及常用命令总结

一. 配置文件 1. .tmux.conf # 使用CtrlA作为前缀组合键 set -g prefix C-a unbind C-b bind C-a send-prefix# 支持鼠标操作 setw -g mouse on# 为了能够重新加载配置文件而无需重启tmux&#xff0c;可以绑定一个快捷键 bind r source-file ~/.tmux.conf \; display-message…

【算法小白周赛1A】分析 - 题解与代码

题目链接&#xff1a;https://www.starrycoding.com/problem/155 题目描述 小可可最近在学数学运算&#xff01;他希望考考你&#xff0c;给你两个整数 A , B A,B A,B&#xff0c;询问 A B A\times B AB 是否是偶数。 注意&#xff0c;可能存在前导 0 0 0&#xff0c;比如…

vim的IDE进阶之路

一 ctags 1 安装 安装ctags比较简单&#xff0c;我用的是vim-plug&#xff0c;网络上随便一搜应该就有很多教程&#xff0c;而且没有什么坑 2 使用 vim之函数跳转功能_nvim函数跳转-CSDN博客https://blog.csdn.net/ballack_linux/article/details/71036072不过针对cuda程序…