FPGA工程中用C语言对文件进行处理_生成mif文件
本博客中有用verilog处理文件数据的代码,本博文采用C 处理文件中的数据。
有时候要生成一个mif文件—— altera memory initial file。本次工程中我得到的是一个大型的数据矩阵一样的东西,我需要慢慢靠近把它处理成mif格式。
第一个程序,把文件读进来是这么干的
//date :2016/07/09
//designer:cobbpeng
//version :00
//function: #include "stdio.h"
//#define METHOD1 void main ()
{
unsigned int b ;
int i ;
FILE *fp0 = fopen("test.txt","r+") ;
#ifdef METHOD1
while (!feof (fp0))
{
fscanf (fp0,"%x",&b);
#else
while (fscanf (fp0,"%x",&b)!=EOF)
#endif
printf ("%x\n",b);
#ifdef METHOD1
}
#endif
fclose (fp0) ;
}
文件读进来了,需要把它格式转换成一行一个的格式,继续修改程序
//date :2016/07/09
//designer:cobbpeng
//version :01
//***************************************************************************
//function:read the file finger.txt. It show as a array 112*96 in file ,
// I musk show the data alone at each line #include "stdio.h"
#define TEST int main ()
{
unsigned int in_data = ;
#ifdef TEST
unsigned int i = ;
#endif
//open file one for read and one for write
FILE *fp0 = fopen("finger.txt","r") ;
FILE *fp1 = fopen("format.txt","w") ;
//********************************************************
if ((fp0==NULL)&&(fp1 == NULL))
printf ("open file failed !!! \n");
else
{
printf ("open file success !!! \n");
//read data finish until being end of the file
while (fscanf (fp0,"%x",&in_data)!=EOF)
{
fprintf(fp1,"%.2x\n",in_data);
#ifdef TEST
if(i<) printf ("%.2x\n",in_data) ;
i++ ;
//break ;
#endif
}
}
fclose (fp0) ;
fclose (fp1) ;
}
上面的代码只是转换了一个格式对吧,要转换到mif格式还差点。所以有了以下代码
//date :2016/07/09
//designer:cobbpeng
//version :02
//***************************************************************************
//function:read the file finger.txt. It show as a array 112*96 in file ,
// I musk show the data alone at each line #include "stdio.h"
//#define TEST
#define METHOD1 int main ()
{
unsigned int in_data = ;
unsigned int byte_num = ;
char w_num = ;
char h_num = ;
char str_mif[] ;
char *s_s; #ifdef TEST
unsigned int i = ;
#endif
//open file
FILE *fp0 = fopen("finger.txt","r") ;
FILE *fp1 = fopen("format.txt","w") ;
FILE *fp2 = fopen("musk_mem.mif","r") ;
//********************************************************
if ((fp0==NULL)&&(fp1 == NULL)&&(fp2 == NULL))
printf ("open file failed !!! \n");
else
{
printf ("open file success !!! \n");
//read data finish until being end of the file
while (fscanf (fp0,"%x",&in_data)!=EOF)
{
byte_num++;
fprintf(fp1,"%.2x,\n",in_data);
w_num++;
#ifdef TEST
if(i<) printf ("%.2x\n",in_data) ;
i++ ;
//break ;
#endif
}
printf ("data num = %ld",byte_num);
//***************************************************************
#ifdef METHOD1
while (fscanf (fp2,"%c",&str_mif[])!=EOF)
{
#else
while(!feof(fp2))
{
str_mif[]=fgetc(fp2) ;
#endif
//printf ("%c\n",str_mif[0]); if((str_mif[]=='N')&&(str_mif[]=='I')&&(str_mif[]=='G')&&(str_mif[]=='E')&&(str_mif[]=='B'))
{
printf ("\nfind string\n");
break ;
}
else
{
str_mif[]=str_mif[] ;
str_mif[]=str_mif[] ;
str_mif[]=str_mif[] ;
str_mif[]=str_mif[] ;
}
} }
fclose (fp0) ;
fclose (fp1) ;
fclose (fp2) ;
}
上面的程序也只是去寻找一个节点:以BEGIN为结尾的地方。—— 因为mif文件中begin后面跟随的是数据。并没有做其他的东西。—— 用C语言去追踪文件中的特定字符还真是有些麻烦。
当我做到这里的时候发现
把数据导入excel,再在excel中复制数据到Q中开启的mif文件中 —— 几个快捷键就搞定了。我去,让我凑了一整天的C 代码。
猜到了开头,却没有猜到结尾。
欢迎加入: FPGA广东交流群:162664354
FPGA开发者联盟: 485678884
FPGA工程中用C语言对文件进行处理_生成mif文件的更多相关文章
- 用matlab生成mif文件
在FPGA中,rom模块的初始化文件分为两种,一种是hex文件,另外一种是mif文件,这两种文件都可以通过Quartus进行手工创建,进行手工输入数据,也可以借助于专用的文件编辑器完成编辑. 在此介绍 ...
- (Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进展混淆,避免被反编译
Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译. 1.打开VS,博主所用版本是Visual Studio 2013. 2.新建一个VC项目 ...
- 【U1结业机试题】新闻内容管理系统:解析XML文件读取Html模版生成网页文件
一.作业要求: 1.在xml文件中创建新闻节点news,包含标题.作者.日期.正文等信息 2.创建HTML模板文件 3.读取xml中所有新闻信息,并使用新闻信息替换模板文件中占位符,从而为每一条新闻生 ...
- php中soap的使用实例以及生成WSDL文件,提供自动生成WSDL文件的类库——SoapDiscovery.class.php类
1. web service普及: Webservice soap wsdl区别之个人见解 Web Service实现业务诉求: Web Service是真正“办事”的那个,提供一种办事接口的统称. ...
- 生成mif文件的几种方法总结
mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据.生成QuartusII11.0可用的mif文件,有如下几种方式: 方法1:利用Q ...
- 生成XML文件,通过实体生成XML文件
实体 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xm ...
- (转)通过maven,给没有pom文件的jar包生成pom文件,maven项目引入本地jar包
文章完全转载自 : https://blog.csdn.net/qq_31289187/article/details/81117478 问题一: 经常遇到公司私服或者中央仓库没有的jar包,然后通过 ...
- VS2010 根据WSDL文件(java Web Service)生成.cs文件
我们添加webService引用,一般是通过 添加服务引用完成的,其实 添加服务引用 在背后为我们生成了代理类. 我们手动生成代理类方法: 1.通过java Web Service,生成wsdl文件: ...
- sql文件或连接数据库反向生成pdm文件
1. File -> Reverse Engineer -> Database 2.选择sql数据库类型 mysql / sqlserver /oracle 3.using script ...
随机推荐
- Java SSH框架学习(入门)
SSH就是 struts+spring+hibernate 的一个集成框架,是java中一种流行的JAVA WEB 应用程序开源框架.由于我最熟悉的还是ASP.NET的的MVC和Python的Djan ...
- Orcale语句大全
原文地址:http://www.cnblogs.com/omygod/archive/2007/08/31/876620.html Oracle 语句大全 1. Oracle安装完成后的初始口令? ...
- 在Prefetcher中取消robots.txt的限制
Robots.txt是一种专门用于搜索引擎网络爬虫的文件,当构造一个网站时,如果作者希望该网站的内容被搜索引擎收录,就可以在网站中创建一个纯文本文件robots.txt,在这个文件中,声明该网站不想被 ...
- Android布局绘制常见小问题
一些网上分享的整理 1.Android设置Selector不同状态下颜色及图片 Selector常用状态: android:state_selected 控件选中状态,可以为true或false an ...
- SQL Server2008不允许修改表结构解决办法
1.修改表结构遇到 2.点击取消 3.打开[工具]—[选项] 4.找到[Desiginers]标签,在右边找到“阻止保存要求重现创建表的更改”,取消勾选.
- 成功的背后!(给所有IT人)----转载:来自CSDN第一名博主
转载:来自CSDN第一名博主:http://blog.csdn.net/phphot/article/details/2187505 放在这里激励你我! 正文: 成功的背后,有着许多不为人知的故事,而 ...
- Java的跨平台原理
JAVA的跨平台原理 JAVA的跨平台原理 Java是一种简单易用.完全面向对象.有平台无关性.安全可靠的.主要面向Internet的开发工具.Java自从1995年正式面世以来,它的快速发展已经使整 ...
- python cmd命令调用
关于python调用cmd命令: 主要介绍两种方式: 1.python的OS模块. OS模块调用CMD命令有两种方式:os.popen(),os.system(). 都是用当前进程来调用. os.sy ...
- 使用VisualVM分析tomcat运行状况(1)
VisualVM是一款java程序性能分析与调优工具,而且还是jdk中自带的工具之一. tomcat也是一个java程序,自然也可以用它来进行监控.不过这里还是会有些问题,tomcat有两种常用的期待 ...
- MySQL Mysqlslap
在mysql5.1以后的版本:客户端带了个工具mysqlslap可以对mysql进行压力测试: 可以使用mysqlslap --help来显示使用方法: Default options are rea ...