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

Subversion Repositories linkruncca

[/] [linkruncca/] [trunk/] [sim/] [CCLheader.c] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 jaytang
#include <stdio.h>
2
#include <math.h>
3
 
4
int main(int argc,char** argv)
5
{
6
        if(argc!=2){printf("usage: CCLheader <image.ppm>\n"); return 1; }
7
 
8
int latency=4; //latency to offset counter x, 4 if holes filling, else 3
9
unsigned int imwidth;
10
unsigned int imheight;
11
 
12
        char fname[50];//="testimage/mandrill.ppm";
13
        sprintf(fname,"testimage/%s",argv[1]);
14
        printf("Input image: %s\n",fname);
15
 
16
//////////////////////get image size from header///////////////////////////////
17
        unsigned int i,j,maxPixValue,colour;
18
        FILE *input;
19
        char buffer;
20
        input=fopen(fname,"r");if(input==NULL){printf("Image not found!\n");return 1;}
21
 
22
        if(buffer=fgetc(input)!='P')
23
                {printf("Wrong image format!\n");return 1;}
24
        colour=fgetc(input)-'0'-5;
25
 
26
        while(!isdigit(buffer=fgetc(input)))
27
                if(buffer=='#') //skip comment
28
                        while(fgetc(input)!='\n');
29
        imwidth=buffer-'0';
30
        while(isdigit(buffer=fgetc(input)))
31
                imwidth=imwidth*10+buffer-'0'; //imwidth
32
 
33
        while(!isdigit(buffer=fgetc(input)))
34
                if(buffer=='#') //skip comment
35
                        while(fgetc(input)!='\n');
36
        imheight=buffer-'0';
37
        while(isdigit(buffer=fgetc(input)))
38
                imheight=imheight*10+buffer-'0'; //imheight
39
        fclose(input);
40
//////////////////////get image size from header (END)//////////////////////////
41
 
42
int x_bit=(int)ceil(log2(imwidth));
43
int y_bit=(int)ceil(log2(imheight));
44
int address_bit=(int)ceil(log2(imwidth/2));
45
int data_bit=2*(x_bit+y_bit);
46
 
47
        FILE *foutput;
48
        if((foutput=fopen("CCL.vh","w"))==NULL){printf("File not open.\n");return 1;}
49
        fprintf(foutput,"`ifndef CCL_vh\n`define CCL_vh\n");
50
        fprintf(foutput,"\tparameter imwidth=%d;\n",imwidth);
51
        fprintf(foutput,"\tparameter imheight=%d;\n",imheight);
52
        fprintf(foutput,"\tparameter x_bit=%d;\n",x_bit);
53
        fprintf(foutput,"\tparameter y_bit=%d;\n",y_bit);
54
        fprintf(foutput,"\tparameter address_bit=%d;\n",address_bit);
55
        fprintf(foutput,"\tparameter data_bit=%d;\n",data_bit);
56
        fprintf(foutput,"\tparameter latency=%d;\n",latency);
57
        fprintf(foutput,"`endif");
58
        fclose(foutput);
59
 
60
        if((foutput=fopen("CCL.h","w"))==NULL){printf("File not open.\n");return 1;}
61
        fprintf(foutput,"#ifndef CCL_h\n#define CCL_h\n");
62
        fprintf(foutput,"\tchar fname[50]=\"%s\";\n",fname);
63
        fprintf(foutput,"\tunsigned int imwidth=%d;\n",imwidth);
64
        fprintf(foutput,"\tunsigned int imheight=%d;\n",imheight);
65
        fprintf(foutput,"\tint x_bit=%d;\n",x_bit);
66
        fprintf(foutput,"\tint y_bit=%d;\n",y_bit);
67
        fprintf(foutput,"\tint address_bit=%d;\n",address_bit);
68
        fprintf(foutput,"\tint data_bit=%d;\n",data_bit);
69
        fprintf(foutput,"\tint latency=%d;\n",latency);
70
        fprintf(foutput,"#endif");
71
        fclose(foutput);
72
 
73
        return 0;
74
}
75
 

powered by: WebSVN 2.1.0

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