使用matlab/C语言/verilog分别生成coe文件

news2024/11/18 0:11:45

        之前已经写过一个如何使用matlab生成coe文件,matlab自行运算生成三角波、正弦波等数据,并保存为COE文件。可跳转下面的网址进行查阅。

使用matlab生成正弦波、三角波、方波的COE文件_三角波文件.coe-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/yindq1220/article/details/125173035?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171342842616800182769139%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171342842616800182769139&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-125173035-null-null.nonecase&utm_term=coe&spm=1018.2226.3001.4450        但是,如果想直接把一个文件的二进制码流整体转化成coe文件(注意并不是文件内的内容,而是文件本身),又该怎么操作呢?所有的文件都是按照二进制码保存的,只要转换成COE文件,FPGA就能通过发送该COE文件,实现发送ZIP文件或者其他任何格式的文件。

        本文就是解决了这个问题。

一、MATLAB生成coe文件

% 读取图像
file = fopen('1.zip');
data = fread(file);%读取文件存在data中
fclose(file);

fid = fopen('zip.coe','wt');    %创建一个名为zip.coe的文件
%- COE 文件前置格式
fprintf( fid, 'MEMORY_INITIALIZATION_RADIX = 16;\n');                     
fprintf( fid, 'MEMORY_INITIALIZATION_VECTOR =\n');
%- 写数据
for i = 1:1:length(data) %读取所有的data数据
    if(i == length(data))
        fprintf( fid, '%X;',data(i));%最后一行为分号
    else
        fprintf( fid, '%X,\n',data(i));%写入目标文件
    end
end


fclose(fid);%关闭文件

二、C语言生成coe文件


#include <stdio.h>
#include <vector>


int main()
{
    FILE *rdfile = fopen("1.zip","rb");
    FILE *wrfile = fopen("zip.coe","w");
    if (rdfile == NULL) {
            printf("Failed to open file\n");
            return -1;
        }
    
    int data;
    fprintf(wrfile, "memory_initialization_radix=16;\n");
    fprintf(wrfile, "memory_initialization_vector=\n");
    
    std::vector<unsigned char> buffer;
    while (fread(&data, sizeof(char), 1, rdfile) == 1) {
        buffer.push_back(data);

    }
    
    for (int i = 0; i< buffer.size(); i++) {
        if(i==buffer.size())
            fprintf(wrfile, "%X;", buffer[i]);
        else
            fprintf(wrfile, "%X,\n", buffer[i]);
    }


    fclose(rdfile);
    fclose(wrfile);
    return 0;
}

三、verilog生成coe文件

         本来打算写verilog读文件二进制流,保存为COE文件的,但是使用$fread、$fgetc等函数发现结果有点问题。并且matlab和C读取文件二进制码流生成COE也足够用了,此处也就不再深究了。只举例一个最简单的固定数据输出为COE文件的代码。注意下,生成coe文件的代码涉及到读写文件,只能仿真运行。


module coe_gen(
);

integer file;
integer i;

initial begin
    file = $fopen("C:/Users/ADMIN/Desktop/out.coe", "w"); // 打开文件以便写入
    if (file == 0) begin
        $display("无法打开文件!");
        $finish;
    end
    
    $fwrite(file,"memory_initialization_radix=16;\n"); // 写入一行文本
    $fwrite(file,"memory_initialization_vector=\n"); // 写入另一行文本

    $fwrite(file,"%x,\n",8'h00);
    $fwrite(file,"%x,\n",8'h10);
    $fwrite(file,"%x,\n",8'h20);
    $fwrite(file,"%x,\n",8'h30);
    $fwrite(file,"%x,\n",8'h40);
    $fwrite(file,"%x,\n",8'h50);
    $fwrite(file,"%x;",8'h60); //最后一个数据


    $fclose(file); // 关闭文件
end



endmodule

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1614420.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何自动监控WordPress网站的运行状态

近来有不少Hostease的客户来咨询关于监控网站在线情况的方法&#xff0c;确实&#xff0c;尽管我们采取了各方面的措施来维护和保护WordPress网站&#xff0c;网站依然有可能由于一些不可控的原因关闭&#xff0c;这种情况往往事发突然&#xff0c;如果没有提前做好准备&#x…

FloodFill算法简介(用BFS、DFS算法解决)

FloodFill算法中文名&#xff1a;洪水灌溉 FloodFill通常是这样一类问题&#xff0c;如下图&#xff1a; 负数表示凹陷的土地&#xff0c;正数表示凸起的土地&#xff0c;发洪水/下雨会淹没凹陷的地方 通常会问这几种问题&#xff1a; 1.被淹没的区域有几块 2.被淹没的最大…

嵌入式物联网开发基石

前言 嵌入式物联网开发工程师&#xff0c;是一个蓝海新风口&#xff0c;高薪不内卷的行业。需要掌握熟悉c/c、单片机、数据结构&#xff0c;linux系统&#xff0c;ARM单片机&#xff0c;嵌入式。可以从事工作项目loT、视频监控领域的产品&#xff0c;跨平台系统&#xff0c;智能…

联想拯救者电脑数据恢复方法,适用于未备份者

自从大学时期起&#xff0c;我的联想拯救者电脑就成为了我生活和学习的得力助手&#xff0c;里面存有许多至关重要的资料。但是昨日当我启动它时&#xff0c;电脑却意外卡顿。恢复正常后&#xff0c;发现部分数据竟然神秘地消失了&#xff0c;有什么方法能帮我恢复吗&#xff1…

快速上手Jemter分布式压测实战和代码详细解析

&#x1f680; 作者 &#xff1a;“二当家-小D” &#x1f680; 博主简介&#xff1a;⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人&#xff0c;8年开发架构经验&#xff0c;精通java,擅长分布式高并发架构,自动化压力测试&#xff0c;微服务容器化k…

2025考研数学武忠祥强化班视频,百度网盘课程+讲义PDF更新

25考研的小伙伴们现在应该基础都学习的差不多了吧&#xff01; 是时候进入强化阶段的学习啦。 2025考研数学强化班全程网盘&#xff1a;https://pan.baidu.com/s/1Z029fuCLkyyhIRFqd5QKcg 提取码&#xff1a;p3ue 晚上好&#xff0c;聊聊17堂课的看课攻略。 今年的17堂课还…

BUUCTF——[GXYCTF2019]BabyUpload

BUUCTF——[GXYCTF2019]BabyUpload 1.上传嘛&#xff0c;直接丢正常的jpg文件进服务器 2.发现可以正常上传&#xff0c;并且回显出来啦文件上传的路径 /var/www/html/upload/7df22610744ec51e9cb7a8a8eb674374/1111.jpg 3.尝试上传一句话木马 <?php eval($POST[123456]…

如何使用ChatGPT仿写一篇学术论文

点击下方▼▼▼▼链接直达AIPaperPass &#xff01; AIPaperPass - AI论文写作指导平台 目录 1.仿写的目的 2.根据专业方向搜集合适的文献 3.总结想要仿写的文献 4.使用ChatGPT一步一步仿写 5.书籍介绍 AIPaperPass智能论文写作平台 深入地阅读和分析你研究领域的相关文…

小游戏贪吃蛇的实现之C语言版

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;C语言 目录 游戏前期准备&#xff1a; 设置控制台相关的信息 GetStdHandle GetConsoleCursorInfo SetConsoleCursorInfo SetConsoleCu…

Ansible 指定受控端使用Python的版本

最近在装Ansible&#xff0c;有一台受控端Ubuntu16的服务器&#xff0c;安装了Python2.7.12和Pyhon3.5。当用Ansible连接它时&#xff0c;显示使用的是Python3.5。最后看文档&#xff0c;发现Ansible可以在hosts的文件中指定受控服上运行的Python。 现象 受控端 查看Python版…

这些小众工作软件让你事半功倍

大家好呀&#xff01;&#x1f44b; 今天我要来种草一些不那么主流&#xff0c;但却能大大提升你工作效率的神器软件&#xff01;&#x1f31f; 如果你也像我一样&#xff0c;对那些大众化的工作工具已经审美疲劳&#xff0c;那么快来一起探索这些隐藏的宝藏吧&#xff01;&…

OpenTiny 亮相 W3C 2024春季顾问委员会会议,共话行业新趋势。

近日&#xff0c;万维网联盟&#xff08;World Wide Web Consortium&#xff0c;简称 W3C&#xff09;于4月8日-4月9日在日本召开2024年顾问委员会会议&#xff08;Advisory Committee Meeting&#xff09;。华为产业发展专家丁蔚博士及华为云 OpenTiny 项目的 Web 前端框架技术…

国产台灯哪个品牌比较好?五款国产护眼台灯品牌推荐

随着学生们重返校园&#xff0c;家长和孩子们忙于新学期的准备工作&#xff0c;眼睛健康的考量自然也在其中。这也是为何近年来护眼台灯越来越受到欢迎的原因之一。国产台灯哪个品牌比较好&#xff1f;作为一个长期近视并且日常用眼时间较长的人&#xff0c;我本人对护眼台灯有…

Springboot+Vue项目-基于Java+MySQL的网上购物商城系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

VisualStudio2019和2022开发Winform项目用到Devexpress组件报错不能正确加载的解决办法

1.报错1 问题简单描述&#xff1a;DevExpress.Utils.ImageCollectionStreamer 无法强制转换为 DevExpress.Utils.ImageCollectionStreamer。 原因分析&#xff1a;原项目某个组件使用的是 DevExpresss.XtraBars.v15.1版本&#xff0c;直接引用扩展控件改成引用v20.2。 解决办法…

HTML 中创建 WebSocket服务与接收webSocket发送内容

效果图 服务端 html客户端接受的消息 接下来开始实现服务端 创建server.js const WebSocket require(ws);const wss new WebSocket.Server({ port: 8877 });wss.on(connection, function connection(ws) {console.log(WebSocket connection opened.);// 每隔 5 秒发送一次…

前端学习之DOM编程案例:点名案例和秒表案例

点名 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>点名案例</title><style>*{margin: 0;padding: 0;}</style> </head> <body><div id"container">…

C语言进阶课程学习记录-函数参数的秘密

C语言进阶课程学习记录-函数参数的秘密 实验实验小结调用约定实验-求平均数实验-可变参数的函数小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 实验 #include <stdio.h>int func(int i, int…

解线性方程组——追赶法解三对角方程组 | 北太天元

一、问题描述 对于线性方程组 A x b , A ( b 1 c 1 a 2 b 2 c 2 ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ a n − 1 b n − 1 c n − 1 a n b n ) , b ( f 1 f 2 ⋮ f n ) Axb,\quad A\begin{pmatrix}b_1&c_1&&&&\\a_2&b_2&c_2&&&\\&\ddots&\d…

Unity导出package

C#代码导出后为一个dll&#xff0c;原有的不同平台的库不变。 以下操作均在build PC 平台下操作。 1.在要导出的文件夹下建assembly definition (Any platform) 2.将项目文件夹下的\Library\ScriptAssemblies中的相应assembly definition的dll复制到要导出的文件夹下 3.在uni…