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

Subversion Repositories nfcc

[/] [nfcc/] [trunk/] [kasumi/] [kasumi.c] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 arif_endro
#include <stdio.h>
2
#include <string.h>
3
#include "genpat.h"
4
 
5
char *inttostr(entier)
6
int entier;
7
 {
8
 char *str;
9
 str = (char *) mbkalloc (32 * sizeof (char));
10
 sprintf (str, "%d",entier);
11
 return(str);
12
 }
13
  /*------------------------------*/
14
  /* end of the description       */
15
  /*------------------------------*/
16
 
17
main (int argc, char *argv[])
18
{
19
int i,c;
20
int ks,ps;
21
FILE *f1, *f2;
22
char *fname1 = "key.lst";
23
char *fname2 = "pt.lst";
24
char  key[0xff][0x4f];
25
char  fpt[0xff][0x4f];
26
 
27
/* remember argc start from 1 not zero and command line is the first array */
28
if (argc > 1 ) {
29
  if (argc == 3) {
30
    fname1 = argv[2]; /* key */
31
    fname2 = argv[1]; /* plain text*/
32
    printf("Using plain-text (%s) key (%s)\n", fname2, fname1);
33
  } else {
34
    printf("Usage %s: plain-text key\n", argv[0]);
35
    return 0;
36
  }
37
}
38
 
39
if(fname1 && (f1 = fopen(fname1, "rt"))) {
40
  i = 0;
41
  while(fgets(key[i],sizeof(key[i]),f1) != NULL) {
42
    c = strlen(key[i]);
43
    if(key[i][c-1] == '\n') key[i][c-1] = '\0';
44
    i++;
45
  }
46
  fclose (f1);
47
} else {
48
  fclose (f1);
49
}
50
 
51
ks = i;
52
 
53
if(fname2 && (f2 = fopen(fname2, "rt"))) {
54
  i = 0;
55
  while(fgets(fpt[i],sizeof(fpt[i]),f2) != NULL) {
56
    c = strlen(fpt[i]);
57
    if(fpt[i][c-1] == '\n') fpt[i][c-1] = '\0';
58
    i++;
59
  }
60
  fclose (f2);
61
} else {
62
  fclose (f2);
63
}
64
 
65
ps = i;
66
 
67
DEF_GENPAT("kasumi");
68
SETTUNIT("ns");
69
 
70
/* interface */
71
DECLAR ("clk", ":1", "B", IN , ""           , "" );
72
DECLAR ("rst", ":1", "B", IN , ""           , "" );
73
DECLAR ("ldpt",":1", "B", IN , ""           , "" );
74
DECLAR ( "pt", ":1", "X", IN , "31 downto 0", "" );
75
DECLAR ("ldk", ":1", "B", IN , ""           , "" );
76
DECLAR ("key", ":1", "X", IN , "63 downto 0", "" );
77
DECLAR (  "v", ":1", "B", OUT, ""           , "" );
78
DECLAR ( "ct", ":1", "X", OUT, "63 downto 0", "" );
79
//DECLAR ( "rnd_prb", ":2", "X", OUT, " 1 downto 0", "" );
80
//DECLAR (  "c3b_rst_prb", ":1", "B", OUT, ""           , "" );
81
//DECLAR (  "L_prb", ":2", "X", OUT, "31 downto 0", "" );
82
//DECLAR (  "R_prb", ":2", "X", OUT, "31 downto 0", "" );
83
//DECLAR ( "ikey_prb", ":2", "X", OUT, "15 downto 0", "" );
84
//DECLAR ( "FL_prb", ":2", "X", OUT, "31 downto 0", "" );
85
//DECLAR ( "FO_prb", ":2", "X", OUT, "15 downto 0", "" );
86
//DECLAR ( "FI_prb", ":2", "X", OUT, "15 downto 0", "" );
87
//DECLAR ("even_prb",":1", "B", OUT, ""           , "" );
88
//DECLAR ( "st_prb", ":2", "X", OUT, " 3 downto 0", "" );
89
DECLAR ("vss", ":1", "B", IN , ""           , "" );
90
DECLAR ("vdd", ":1", "B", IN , ""           , "" );
91
 
92
AFFECT ("0", "vss", "0b0");
93
AFFECT ("0", "vdd", "0b1");
94
 
95
AFFECT (  "0",  "pt", "0x0000");
96
AFFECT (  "0", "key", "0x0000000000000000");
97
AFFECT (  "0", "rst", "0b1");
98
AFFECT (  "0","ldpt", "0b0");
99
AFFECT (  "0", "ldk", "0b0");
100
AFFECT (  "0", "clk", "0b0");
101
AFFECT ("+50", "clk", "0b1");
102
AFFECT ("+50", "clk", "0b0");
103
AFFECT ( "+0", "rst", "0b0");
104
AFFECT ( "+0","ldpt", "0b1");
105
AFFECT ( "+0", "ldk", "0b1");
106
 
107
for (i=0; i < ps; i++)
108
{
109
  AFFECT ( "+0",  "pt", fpt[i]);
110
  AFFECT ( "+0",  "key", key[i]);
111
  AFFECT ("+50", "clk", "0b1" );
112
  AFFECT ("+50", "clk", "0b0" );
113
}
114
 
115
AFFECT ( "+0","ldpt", "0b0");
116
AFFECT ( "+0", "ldk", "0b0");
117
AFFECT ( "+0",  "pt", "0x0000");
118
AFFECT ( "+0", "key", "0x0000000000000000");
119
AFFECT ("+50", "clk", "0b1" );
120
AFFECT ("+50", "clk", "0b0" );
121
/*
122
for (i=0; i < ks; i++)
123
{
124
  AFFECT ( "+0", "key", key[i]);
125
  AFFECT ("+50", "clk", "0b1" );
126
  AFFECT ("+50", "clk", "0b0" );
127
}
128
 
129
AFFECT ("+50", "clk", "0b1" );
130
AFFECT ("+50", "clk", "0b0" );
131
AFFECT ( "+0", "key", "0x0000");
132
*/
133
for (i=0; i < 0x50; i++)
134
{
135
  AFFECT ("+50", "clk", "0b1" );
136
  AFFECT ("+50", "clk", "0b0" );
137
}
138
 
139
AFFECT ("+50", "clk", "0b1");
140
 
141
SAV_GENPAT ();
142
}
143
 

powered by: WebSVN 2.1.0

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