matlab和FPGA联合仿真时读写.txt文件数据的方法
在FPGA开发过程中,往往需要将MATLAB生成的数据作为原始激励灌入FPGA进行仿真。为了验证FPGA计算是否正确,又需要将FPGA计算结果导入MATLAB绘图与MATLAB计算结果对比。
下面是MATLAB“写.txt”、“读.txt”,Verilog“读.txt”、“写.txt”的代码。.txt中的数据是二进制的。
1.MATLAB导出数据生成.txt文件:
function Write_data(filename,n,data)%filename:存储地址。n:二进制位宽。data:数据data=round(data);for i=1:length(data)if(data(i)<0)data(i)=data(i)+2^n;endendbin_data=dec2bin(data,n);fid=fopen(filename,'wt');for j=1:size(bin_data,1)%size(array,1)表示矩阵array的行数。size(array,2)表示列数fprintf(fid,'%s\n',bin_data(j,:));%array(i,:)表示提取矩阵array的第i行的所有元素endfclose(fid);
end
2.MATLAB读取.txt文件导入数据:
function [data_bin2dec]=Read_Data(filename,T)%T表示.txt中的二进制位宽data_bin_txt=textread(filename,'%s');MAX_DATA=2^(T-1);%判断正负的阈值data_bin2dec=zeros(length(data_bin_txt),1);%一个列向量for i=1:length(data_bin_txt)if(convert_bin2dec(data_bin_txt(i),0)>MAX_DATA)data_bin2dec(i)=convert_bin2dec(data_bin_txt(i),1)-2^T;elsedata_bin2dec(i)=convert_bin2dec(data_bin_txt(i),0);endend
end
%%
function [x]=convert_bin2dec(bintring,sign)if sign==0x=bin2dec(bintring);elsex=num2cell(bin2dec(bintring));bin_size=size(bintring,2);y=x;y=cellfun(@(y,bin_size)cal_sign_y(y,bin_size),y,num2cell(ones(size(y,1),1)*bin_size));x=y;end
end
%%
function y_i=cal_sign_y(y_i,bin_size)if y_i>=2^(bin_size-1)y_i=y_i-2^bin_size;end
end
3.FPGA读取.txt文件导入数据:
reg [WIDTH-1:0] mem_a[DEPTH:0];
initial $readmemb("C:/xxx/xxx/xxx.txt",mem_a);//将.txt文件读到数组mem_a中task data_stream();//生成数据流,用于RTL仿真integer i;for(i=0;i<DEPTH;i=i+1)begindin_valid=1;din=mem_a[i];#20;din_valid=0;din=din;#80;end
endtask
Verilog在读.txt文件时,只能识别16进制、二进制。不要求每个数据单独占一行,但要有空格。
4.FPGA导出数据保存到.txt文件中:
integer bt;
initial beginbt=$fopen("C:/xxx/xxx/fpga_out.txt"","wb");
endalways@(posedge clk)beginif(dout_valid)$fdisplay(bt,"%b",data_out);
end
$fdisplay(bt,存储形式,想要存的数据);
生成的fpga_out.txt会自动换行;

另外.FPGA读.txt,并串行输出模仿串行通信总线时:


相关文章:
matlab和FPGA联合仿真时读写.txt文件数据的方法
在FPGA开发过程中,往往需要将MATLAB生成的数据作为原始激励灌入FPGA进行仿真。为了验证FPGA计算是否正确,又需要将FPGA计算结果导入MATLAB绘图与MATLAB计算结果对比。 下面是MATLAB“写.txt”、“读.txt”,Verilog“读.txt”、“写.txt”的代…...
解锁DeepSpeek-R1大模型微调:从训练到部署,打造定制化AI会话系统
目录 1. 前言 2.大模型微调概念简述 2.1. 按学习范式分类 2.2. 按参数更新范围分类 2.3. 大模型微调框架简介 3. DeepSpeek R1大模型微调实战 3.1.LLaMA-Factory基础环境安装 3.1大模型下载 3.2. 大模型训练 3.3. 大模型部署 3.4. 微调大模型融合基于SpirngBootVue2…...
【分布式】聊聊分布式id实现方案和生产经验
对于分布式Id来说,在面试过程中也是高频面试题,所以主要针对分布式id实现方案进行详细分析下。 应用场景 对于无论是单机还是分布式系统来说,对于很多场景需要全局唯一ID, 数据库id唯一性日志traceId 可以方便找到日志链&#…...
uniapp或者vue 使用serialport
参考https://blog.csdn.net/ykee126/article/details/90440499 版本是第一位:否则容易编译失败 node 版本 18.14.0 npm 版本 9.3.1 electron 版本 30.0.8 electron-rebuild 版本 3.2.9 serialport 版本 10.0.0 需要python环境 main.js // Modules to control app…...
机器学习12-视觉识别任务
机器学习12-视觉识别任务 分类语义分割滑动窗口滑动窗口的实现思路优点缺点现代替代方法 全卷积(Fully Convolutional Networks, FCN)FCN 的工作原理FCN 的性能优势FCN 的应用案例FCN 的局限性改进方向下采样可学习的上采样:转置卷积 目标检测区域建议Se…...
使用paramiko爆破ssh登录
一.确认是否存在目标主机是否存在root用户 重跑 CVE-2018-15473用户名枚举漏洞 检测: import paramiko from paramiko.ssh_exception import AuthenticationExceptiondef check_user(username, hostname, port):ssh paramiko.SSHClient()ssh.set_missing_host_key…...
游戏引擎学习第146天
音高变化使得对齐读取变得不可能,我们可以支持循环声音了。 我们今天的目标是完成之前一段时间所做的音频代码。这个项目并不依赖任何引擎或库,而是一个教育项目,目的是展示从头到尾运行一个游戏所需要的全部代码。无论你对什么方面感兴趣&a…...
装饰器模式--RequestWrapper、请求流request无法被重复读取
目录 前言一、场景二、原因分析三、解决四、更多 前言 曾经遇见这么一段代码,能看出来是把request又重新包装了一下,核心信息都不会改变 后面了解到这叫 装饰器模式(Decorator Pattern) :也称为包装模式(Wrapper Pat…...
【算法题】小鱼的航程
问题: 分析 分析题目,可以看出,给你一个开始的星期,再给一个总共天数,在这些天内,只有周六周日休息,其他全要游泳250公里。 那分支处理好啦 当星期为6时,需要消耗2天,…...
视频录像机视频通道是指什么
视频录像机的视频通道是指摄像机在监控矩阵或硬盘录像机设备上的视频输入的物理位置。 与摄像头数量关系:在视频监控系统中,有多少个摄像头就需要多少路视频通道,通道数量决定了视频录像机可接入摄像头的数量,一般硬盘录像机有4路…...
RISC-V医疗芯片工程师复合型转型的路径与策略
从RISC-V到医疗芯片:工程师复合型转型的路径与策略 一、引言 1.1 研究背景 在科技快速发展的当下,芯片技术已然成为推动各行业进步的核心驱动力之一。其中,RISC-V 架构作为芯片领域的新兴力量,正以其独特的优势迅速崛起,对整个芯片产业的格局产生着深远影响。RISC-V 架…...
《Gradio : AI awesome-demos》
《Gradio : AI awesome-demos》 This is a list of some wonderful demos & applications built with Gradio. Heres how to contribute yours! 🖊️ Natural language processing Demo name (link to demo)input type(s)output type(s)status badgeruDALL-ET…...
DeepSeek R1-7B 医疗大模型微调实战全流程分析(全码版)
DeepSeek R1-7B 医疗大模型微调实战全流程指南 目录 环境配置与硬件优化医疗数据工程微调策略详解训练监控与评估模型部署与安全持续优化与迭代多模态扩展伦理与合规体系故障排除与调试行业应用案例进阶调优技巧版本管理与迭代法律风险规避成本控制方案文档与知识传承1. 环境配…...
javascript实现生肖查询
今年是农历乙巳年,蛇年,今天突发奇想,想知道公元0年是农历什么年,生肖是什么。没想到AI给我的答复是,没有公元0年。我瞬间呆愣,怎么可能?后来详细查询了一下,还真是没有。具体解释如…...
UE5从入门到精通之如何创建自定义插件
前言 Unreal 的Plugins插件系统中有很多的插件供大家使用,包括官方的和第三方的,这些插件不仅能帮我我们实现特定功能,还能够提升我们的工作效率。 所以我们今天就来自己创建一个自定义插件,如果我们想实现什么特定的功能,我们也可以发布到商店供大家使用了。 创建插件 …...
《今日AI-人工智能-编程日报》
一、AI行业动态 AI模型作弊行为引发担忧 最新研究表明,AI在国际象棋对弈中表现出作弊倾向,尤其是高级推理模型如OpenAI的o1-preview和DeepSeek的R1模型。这些模型通过篡改代码、窃取棋路等手段试图扭转战局,且作弊行为与其智能水平正相关。研…...
sanitizer和valgrind
sanitizer sanitizer使用 Valgrind valgrind使用 使用上sanitizer加编译选项即可 发现sanitizer程序要正常退出才能给出分析,ctrlc退出不行,valgrind ctrlc退出也可以给出分析...
如何解决前端的竞态问题
前端的竞态问题通常是指多个异步操作的响应顺序与发起顺序不一致,导致程序出现不可预测的结果。这种问题在分页、搜索、选项卡切换等场景中尤为常见。以下是几种常见的解决方法: 1. 取消过期请求 当用户发起新的请求时,取消之前的请求&…...
(ECCV2018)CBAM改进思路
论文链接:https://arxiv.org/abs/1807.06521 论文题目:CBAM: Convolutional Block Attention Module 会议:ECCV2018 论文方法 利用特征的通道间关系生成了一个通道注意图。 由于特征映射的每个通道被认为是一个特征检测器,通道…...
Python脚本,音频格式转换 和 视频格式转换
一、音频格式转换完整代码 from pydub import AudioSegment import osdef convert_audio(input_dir, output_dir, target_format):if not os.path.exists(output_dir):os.makedirs(output_dir)for filename in os.listdir(input_dir):if filename.endswith((.mp3, .wav, .ogg)…...
Cesium使用
Cesium官网:https://cesiumjs.org 官方API文档:https://cesium.com/learn/ion-sdk/ref-doc 中文API文档:https://cesium.xin/cesium/cn/Documentation1.95 https://cesium.xin Cesium中文社区:http://cesiumcn.org …...
LiuJuan Z-Image Generator参数详解:CFG Scale=2.0与12步生成高质量人像
LiuJuan Z-Image Generator参数详解:CFG Scale2.0与12步生成高质量人像 想用AI生成一张惊艳的人像照片,却发现要么细节模糊,要么风格怪异,怎么调参数都达不到理想效果?如果你也遇到过类似问题,那今天这篇文…...
Qwen3-ASR-0.6B惊艳效果:藏语、维吾尔语等少数民族语言识别案例
Qwen3-ASR-0.6B惊艳效果:藏语、维吾尔语等少数民族语言识别案例 1. 引言:多语言语音识别的突破 语音识别技术正在改变我们与设备交互的方式,但有一个领域一直存在巨大挑战——少数民族语言的识别。传统的语音识别模型往往只支持主流语言&am…...
2026Agent元年!手把手教你从0到1搭建高能智能体,小白也能秒变大神!
逼自己练完这些,你的Agent搭建就很牛了!!2026年可谓是Agent元年,智能体(AI Agent)正以惊人的速度重塑我们的工作方式,从简单的被动响应工具,进化为能自主规划、执行、协作的"数…...
重庆灌浆料销售厂家怎么联系
在重庆的建筑工程领域,灌浆料的应用十分广泛。然而,众多重庆灌浆料厂家的市场状况究竟如何?又存在哪些痛点呢?市场现状:鱼龙混杂目前,重庆灌浆料市场厂家众多,但质量参差不齐。行业权威报告显示…...
别光知道Levenshtein!Python实战:用Jaro-Winkler算法搞定人名地址模糊匹配
别光知道Levenshtein!Python实战:用Jaro-Winkler算法搞定人名地址模糊匹配 在数据清洗和用户输入处理的场景中,字符串相似度计算是个绕不开的话题。当我们需要匹配"张三丰"和"张三風"时,传统的Levenshtein距离…...
Simulink整车控制器vcu应用层模型,实车在用的,支持仿真和生成 文件分类明确
Simulink整车控制器vcu应用层模型,实车在用的,支持仿真和生成 文件分类明确,每个普通功能和核心功能建有单独的库,存放在文件夹里。 有相应的表格,描述了信号的意思。搞汽车电子的兄弟都知道,整车控制器&am…...
FastJson内存泄漏实战:我是如何用MAT工具定位到IdentityHashMap这个坑的
FastJson内存泄漏深度剖析:从MAT工具实战到IdentityHashMap陷阱破解 凌晨三点,手机突然响起刺耳的告警声——生产环境某核心服务的堆内存使用率突破95%。作为值班工程师,我瞬间清醒过来。这不是普通的OOM,而是一场持续增长的内存…...
Deepfake Offensive Toolkit安全认证考试结果申诉处理流程
Deepfake Offensive Toolkit安全认证考试结果申诉处理流程 【免费下载链接】dot The Deepfake Offensive Toolkit 项目地址: https://gitcode.com/gh_mirrors/dot/dot Deepfake Offensive Toolkit(以下简称dot)作为一款专业的深度伪造工具&#x…...
DeepSeek LintCode 3867 · 范围内的数字计数 public int digitsCount(int d, int low, int high)
LintCode 3867 范围内的数字计数 问题分析 计算在区间 [low, high] 中,数字 d 出现的次数。 核心思想:使用数位DP或前缀和思想 • count(low, high) count(0, high) - count(0, low-1) 方法一:逐位统计法(推荐)AC pu…...
