本博客中有用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文件的更多相关文章

  1. 用matlab生成mif文件

    在FPGA中,rom模块的初始化文件分为两种,一种是hex文件,另外一种是mif文件,这两种文件都可以通过Quartus进行手工创建,进行手工输入数据,也可以借助于专用的文件编辑器完成编辑. 在此介绍 ...

  2. (Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进展混淆,避免被反编译

    Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译. 1.打开VS,博主所用版本是Visual Studio 2013. 2.新建一个VC项目 ...

  3. 【U1结业机试题】新闻内容管理系统:解析XML文件读取Html模版生成网页文件

    一.作业要求: 1.在xml文件中创建新闻节点news,包含标题.作者.日期.正文等信息 2.创建HTML模板文件 3.读取xml中所有新闻信息,并使用新闻信息替换模板文件中占位符,从而为每一条新闻生 ...

  4. php中soap的使用实例以及生成WSDL文件,提供自动生成WSDL文件的类库——SoapDiscovery.class.php类

    1. web service普及: Webservice soap wsdl区别之个人见解 Web Service实现业务诉求:  Web Service是真正“办事”的那个,提供一种办事接口的统称. ...

  5. 生成mif文件的几种方法总结

    mif文件就是存储器初始化文件,即memory initialization file,用来配置RAM或ROM中的数据.生成QuartusII11.0可用的mif文件,有如下几种方式: 方法1:利用Q ...

  6. 生成XML文件,通过实体生成XML文件

    实体 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xm ...

  7. (转)通过maven,给没有pom文件的jar包生成pom文件,maven项目引入本地jar包

    文章完全转载自 : https://blog.csdn.net/qq_31289187/article/details/81117478 问题一: 经常遇到公司私服或者中央仓库没有的jar包,然后通过 ...

  8. VS2010 根据WSDL文件(java Web Service)生成.cs文件

    我们添加webService引用,一般是通过 添加服务引用完成的,其实 添加服务引用 在背后为我们生成了代理类. 我们手动生成代理类方法: 1.通过java Web Service,生成wsdl文件: ...

  9. sql文件或连接数据库反向生成pdm文件

    1. File -> Reverse Engineer -> Database 2.选择sql数据库类型 mysql / sqlserver  /oracle 3.using script ...

随机推荐

  1. Android 常用开发类库

    android.app :提供高层的程序模型.提供基本的运行环境    android.content :包含各种的对设备上的数据进行访问和发布的类    android.database :通过内容 ...

  2. ubuntu FTP服务安装

    //安装vsftp apt-get install vsftpd -y //增加账号 //1 查找 nologin位置 /usr/sbin/nologin useradd -d /alidata/ww ...

  3. Top 10 Mapping APIs: Google Maps, Microsoft Bing Maps and MapQuest

    http://www.programmableweb.com/news/top-10-mapping-apis-google-maps-microsoft-bing-maps-and-mapquest ...

  4. JavaSE思维导图(一)

  5. hive join 优化

    common join : 即reducer join,瓶颈在shuffle阶段,会产生较大的网络io: map join:即把小表放前面,扫描后放入每个节点的内存,在map阶段进行匹配: 开启map ...

  6. iOS开发篇-AFNetworking 上传和下载

    最近用到了关于AFNetworking的上传和下载问题,顺便写到博客中,以供大家参考和研究. //下载NSURLSessionConfiguration *configuration = [NSURL ...

  7. Lc.exe已退出 代码为-1问题解决方法

    对于用vs作为开发工具的同学来说,可能常常会碰到“Lc.exe已退出 代码为-1”的问题,造成这个结果的一般是因为加入了第三方的插件程序造成的,今天一一讲解如何解决. 工具/原料 vs各版本开发工具 ...

  8. HDU OJ 5317 RGCDQ( 2015多校联合训练第3场) 暴力打表+小技巧

    题目连接:Click here 题意:在一个[L,R]内找到最大的gcd(f[i],f[j])其中L<=i<j<=R,f[x]表示i分解质因数后因子的种类数.eg:f[10]=2(1 ...

  9. js中&& 和 ||

    原文链接:http://wenrunchang123.iteye.com/blog/1749802 a() && b()     1). 如果执行a() 返回true:那么执行b()并 ...

  10. 网络上USB后面跟AF或AM接口的意思

    AM to micro 5pin或AF to micro 5pin 这里的AM或AF是Type a male和Type a female的简写 Type a male:A型男士 Type a fema ...