您的位置:首页 > 其它

vc生成MIF文件,ROM使用

2013-05-14 13:46 253 查看
#include <stdio.h>
#include <string.h>
#include"stdlib.h"

unsigned char src[640*481];
unsigned char dst[640*481];
/*--  文字:  1  --*/
/*--  微软雅黑24;  此字体下对应的点阵为:宽x高=20x42   --*/
/*--  宽度不是8的倍数,现调整为:宽度x高度=24x42  --*/
unsigned char number1[]=
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x0F,0xFC,
0x00,0x3F,0xFC,0x00,0x3F,0xFC,0x00,0x3F,0xFC,0x00,0x3D,0xFC,0x00,0x01,0xFC,0x00,
0x01,0xFC,0x00,0x01,0xFC,0x00,0x01,0xFC,0x00,0x01,0xFC,0x00,0x01,0xFC,0x00,0x01,
0xFC,0x00,0x01,0xFC,0x00,0x01,0xFC,0x00,0x01,0xFC,0x00,0x01,0xFC,0x00,0x01,0xFC,
0x00,0x01,0xFC,0x00,0x01,0xFC,0x00,0x01,0xFC,0x00,0x3F,0xFF,0xE0,0x3F,0xFF,0xE0,
0x3F,0xFF,0xE0,0x3F,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
main()
{
FILE *fp;
unsigned long  i,j,m;
int c;
unsigned char ch;

if ((fp=fopen("test.mif","wb+"))==NULL)//打开MIF源文件
{ /* 以只读方式打开文件1 */
printf("cannot open file1\n");
exit(0);
//return(0);
}

fprintf(fp,"WIDTH=%d;\n",1); //写入mif 存储数据宽度

fprintf(fp,"DEPTH=%d;\n",262144); //写入mif 存储数据总量

fprintf(fp,"\n");

fprintf(fp,"ADDRESS_RADIX=DEC;\n"); //十进制表示地址

fprintf(fp,"DATA_RADIX=HEX;\n"); //十六进制表示数据

fprintf(fp,"CONTENT BEGIN;\n"); //内容开始

fprintf(fp,"\n");

i=0;
m=0;

//for(i=0;i<512;i++)
for(j=0;j<24*42/8;j++)
{
for(i=0;i<8;i++)
{
if(((number1[j]<<i)&0x80)==0x80)
fprintf(fp,"\t%d\t:\t%x;\n",m,1);
else
fprintf(fp,"\t%d\t:\t%x;\n",m,0);
m++;
}
}
i,j,
//fseek(fp, 0, SEEK_SET);
fprintf(fp,"\n");
fprintf(fp,"END;");
fclose(fp);
}


View Code

3、ROM的建立

tool---megwizard ----creat----memory compiler ------ROM-1PORT-----在 mif init选项中添加 mif文件

4、注意事项

位宽 深度的匹配,,,此例子为vc写入的char型数据的0和1即 FPGA可以认为是二进制的,即ROM的位宽为1位
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: