OpenCores
URL https://opencores.org/ocsvn/mips789/mips789/trunk

Subversion Repositories mips789

[/] [mips789/] [tags/] [arelease/] [CTool/] [genmif.c] - Blame information for rev 15

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 10 mcupro
#include "stdio.h"
2
#include "stdlib.h"
3
#define DEFAULT_LEN  "2048"
4 15 mcupro
/*Liwei 2007-8-29*/
5 10 mcupro
char HEX[]="0123456789ABCDEF" ;
6
char hex[]="0123456789abcdef" ;
7
unsigned char hex2byte(char hex_char)
8
{
9
    unsigned char i ;
10
    for(i=0;i<16;++i)if(HEX[i]==hex_char)return i ;
11
    for(i=0;i<16;++i)if(hex[i]==hex_char)return i ;
12
    return 0 ;
13
}
14
unsigned int par2u32(char*par)
15
{
16
    unsigned int i,ret=0 ;
17
    if(par==NULL)return ;
18
    if((0==strncmp(par,"0x",2))||(0==strncmp(par,"0X",2)))
19
    for(i=2;;++i)
20
    {
21
        if(par[i]=='\0')return ret ;
22
        ret=ret*16+hex2byte(par[i]);
23
    }
24
    else
25
    for(i=0;;++i)
26
    {
27
        if(par[i]=='\0')return ret ;
28
        ret=ret*10+hex2byte(par[i]);
29
    }
30
    return 0 ;
31
}
32
/****************************/
33
 
34
 
35
void main(int argc,char*argv[])
36
{
37
    int j=4,base=0,i=0 ;
38
    char str1[100],str2[111];
39
    FILE*ff=fopen("code.txt","r");
40
    FILE*ft ;
41
    for(j=0;j<4;++j)
42
    {
43
        if(j==0)
44
        ft=fopen("qu2_ram0.mif","w");
45
        else if(j==1)
46
        ft=fopen("qu2_ram1.mif","w");
47
        else if(j==2)
48
        ft=fopen("qu2_ram2.mif","w");
49
        else if(j==3)
50
        ft=fopen("qu2_ram3.mif","w");
51
        base=(NULL!=argv[1])?par2u32(argv[1]):0 ;
52
        base=base/4 ;
53
        fprintf(ft,"WIDTH=8;\n");
54
        fprintf(ft,"DEPTH=%s;\n\n",DEFAULT_LEN);
55
        fprintf(ft,"ADDRESS_RADIX=HEX;\n");
56
        fprintf(ft,"DATA_RADIX=HEX;\n\n");
57
        fprintf(ft,"CONTENT BEGIN \n");
58
        i=base ;
59
 
60
        if(base)while(i)
61
        {
62
            fprintf(ft,"   %X  :    %s;\n  ",base-i,"00");
63
            --i ;
64
        }
65
 
66
        rewind(ff);
67
        rewind(ff);
68
        rewind(ff);
69
        i=-1 ;
70
 
71
        while(fgets(str2,100,ff))
72
        {
73
            ++i ;
74
            if(3==j)
75
            {
76
                str2[2]=0 ;
77
                fprintf(ft,"   %X  :    %s;\n  ",i+base,&str2[0]);
78
            }
79
            else if(2==j)
80
            {
81
                str2[4]=0 ;
82
                fprintf(ft,"   %X  :    %s;\n  ",i+base,&str2[2]);
83
            }
84
            else if(1==j)
85
            {
86
                str2[6]=0 ;
87
                fprintf(ft,"   %X  :    %s;\n  ",i+base,&str2[4]);
88
            }
89
            else if(0==j)
90
            {
91
                str2[8]=0 ;
92
                fprintf(ft,"   %X  :    %s;\n  ",i+base,&str2[6]);
93
            }
94
        }
95
        fprintf(ft,"END;");
96
    }
97
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.