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 ...
随机推荐
- Socket.io在线聊天室
从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎.chrome浏 ...
- SQL知识三(Day 27)
大家好,好几天都没写博客了.因为自己的一些原因,落下了很多.今天没有学什么新的知识,自己就把以前落下的好好看了一下.好了,今天就先总结一下SQL剩下的一些知识吧. 主要学的知识有:循环语句(case语 ...
- [转载]VMWare网络连接透析
http://blog.csdn.net/struggleyb/article/details/1102214 以前在学校,VMWare里面的Gentoo Linux是采用network bridge ...
- vs 中 vim vax 快捷键
高效率移动 在插入模式之外 基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面VIM就像一个“哑巴”编辑器一样.很多新手都会一直呆在插入模式里面,因为这样易于使用.但VIM的强大之处在于 ...
- spring schema自定义
今天看了一下分布式服务框架的那本书,于是里面提到了spring schema的自定义,于是去简单的了解了一下 参考资源:spring schema扩展: http://www.yihaomen.com ...
- BZOJ 1217: [HNOI2003]消防局的设立( 贪心 )
一个简单的贪心, 我们只要考虑2个消防局设立的距离为5时是最好的, 因为利用最充分. 就dfs一遍, 再对根处理一下就可以了. 这道题应该是SGU某道题的简化版...这道题距离只有2, 树型dp应该也 ...
- apktool 反翻译错误
-出现 UndefinedResObject Exception : 这是因为被反编译的apk中有当前的framework不支持的属性:解决方式如下: 1.删除C:\Users\Administrat ...
- Servlet基础知识(四)——Servlet过滤器Filter
一.什么是过滤器: 政府大楼的安检保安,它既能对进入政府大楼的人员进行检查,只允许检查符合要求的进入:同时他也负责对出大楼的人进行检查,看他带出的东西是否符合要求. 同样的,Servlet中的过滤器既 ...
- Linux系统管理员:不要害怕升级内核
Linux系统管理员平时很重要的一项工作就是负责系统内核升级.做好系统内核的升级工作,对于Linux系 统的稳定性具有至关重要的作用.但是很少有人敢贸然的对Linux系统的内核进行升级,担心会影响现有 ...
- Android利用广播监听设备安装和卸载应用程序
MainActivity如下: package cn.testappaddandremove; import android.os.Bundle; import android.app.Activit ...