本博客中有用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. Java SSH框架学习(入门)

    SSH就是 struts+spring+hibernate 的一个集成框架,是java中一种流行的JAVA WEB 应用程序开源框架.由于我最熟悉的还是ASP.NET的的MVC和Python的Djan ...

  2. Orcale语句大全

    原文地址:http://www.cnblogs.com/omygod/archive/2007/08/31/876620.html Oracle 语句大全 1. Oracle安装完成后的初始口令?  ...

  3. 在Prefetcher中取消robots.txt的限制

    Robots.txt是一种专门用于搜索引擎网络爬虫的文件,当构造一个网站时,如果作者希望该网站的内容被搜索引擎收录,就可以在网站中创建一个纯文本文件robots.txt,在这个文件中,声明该网站不想被 ...

  4. Android布局绘制常见小问题

    一些网上分享的整理 1.Android设置Selector不同状态下颜色及图片 Selector常用状态: android:state_selected 控件选中状态,可以为true或false an ...

  5. SQL Server2008不允许修改表结构解决办法

    1.修改表结构遇到 2.点击取消 3.打开[工具]—[选项] 4.找到[Desiginers]标签,在右边找到“阻止保存要求重现创建表的更改”,取消勾选.

  6. 成功的背后!(给所有IT人)----转载:来自CSDN第一名博主

    转载:来自CSDN第一名博主:http://blog.csdn.net/phphot/article/details/2187505 放在这里激励你我! 正文: 成功的背后,有着许多不为人知的故事,而 ...

  7. Java的跨平台原理

    JAVA的跨平台原理 JAVA的跨平台原理 Java是一种简单易用.完全面向对象.有平台无关性.安全可靠的.主要面向Internet的开发工具.Java自从1995年正式面世以来,它的快速发展已经使整 ...

  8. python cmd命令调用

    关于python调用cmd命令: 主要介绍两种方式: 1.python的OS模块. OS模块调用CMD命令有两种方式:os.popen(),os.system(). 都是用当前进程来调用. os.sy ...

  9. 使用VisualVM分析tomcat运行状况(1)

    VisualVM是一款java程序性能分析与调优工具,而且还是jdk中自带的工具之一. tomcat也是一个java程序,自然也可以用它来进行监控.不过这里还是会有些问题,tomcat有两种常用的期待 ...

  10. MySQL Mysqlslap

    在mysql5.1以后的版本:客户端带了个工具mysqlslap可以对mysql进行压力测试: 可以使用mysqlslap --help来显示使用方法: Default options are rea ...