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

Subversion Repositories nfcc

[/] [nfcc/] [trunk/] [camellia/] [keyscheduler.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
main (int argc, char *argv[])
15
{
16
int i,c;
17
int Nk,ks,ps;
18
char sNk[4];
19
FILE *f1, *f2;
20
//char *fname1 = "key.lst";
21
char *fname2 = "ckey.lst";
22
//char  key[0xff][0x4f];
23
char  fpt[0xff][0x4f];
24
 
25
Nk = 4;
26
/* remember argc start from 1 not zero and command line is the first array */
27
if (argc > 1 ) {
28
  if (argc == 3) {
29
    fname2 = argv[2];
30
    sscanf(argv[1], "%d", &Nk);
31
    printf("Using Nk(0x%x) key (%s)\n", Nk, fname2);
32
  } else {
33
    printf("Usage %s: Nk key\n", argv[0]);
34
    return 0;
35
  }
36
}
37
 
38
sprintf(sNk, "0x%x", Nk);
39
 
40
if(fname2 && (f2 = fopen(fname2, "rt"))) {
41
  i = 0;
42
  while(fgets(fpt[i],sizeof(fpt[i]),f2) != NULL) {
43
    c = strlen(fpt[i]);
44
    if(fpt[i][c-1] == '\n') fpt[i][c-1] = '\0';
45
    i++;
46
  }
47
  fclose (f2);
48
} else {
49
  fclose (f2);
50
}
51
 
52
ps = i;
53
 
54
DEF_GENPAT("keyscheduler");
55
SETTUNIT("ns");
56
 
57
DECLAR ("clk", ":1", "B", IN , ""           , "" );
58
DECLAR ("rst", ":1", "B", IN , ""           , "" );
59
DECLAR ("ldk", ":1", "B", IN , ""           , "" );
60
DECLAR ("key", ":2", "X", IN , "63 downto 0", "" );
61
DECLAR ( "Nk", ":2", "X", IN , " 3 downto 0", "" );
62
DECLAR (  "w", ":2", "X", OUT, "63 downto 0", "" );
63
DECLAR (  "v", ":1", "B", OUT, ""           , "" );
64
DECLAR ("vss", ":1", "B", IN , ""           , "" );
65
DECLAR ("vdd", ":1", "B", IN , ""           , "" );
66
 
67
AFFECT ("0", "vss", "0b0");
68
AFFECT ("0", "vdd", "0b1");
69
 
70
AFFECT (  "0", "key", "0x0000000000000000");
71
AFFECT (  "0", "rst", "0b1");
72
AFFECT (  "0","ldk", "0b0");
73
AFFECT (  "0",  "Nk",  sNk );
74
AFFECT (  "0", "clk", "0b0");
75
AFFECT ("+50", "clk", "0b1");
76
AFFECT ("+50", "clk", "0b0");
77
AFFECT ( "+0", "rst", "0b0");
78
AFFECT ( "+0","ldk", "0b1");
79
 
80
for (i=0; i < ps; i++)
81
{
82
  AFFECT ( "+0",  "key", fpt[i]);
83
  AFFECT ("+50", "clk", "0b1" );
84
  AFFECT ("+50", "clk", "0b0" );
85
 
86
}
87
 
88
AFFECT ( "+0","ldk", "0b0");
89
AFFECT ( "+0",  "key", "0x0000000000000000");
90
 
91
for (; i < 0x2f; i++)
92
{
93
  AFFECT ("+50", "clk", "0b1" );
94
  AFFECT ("+50", "clk", "0b0" );
95
}
96
 
97
AFFECT ("+50", "clk", "0b1");
98
 
99
SAV_GENPAT ();
100
}
101
 

powered by: WebSVN 2.1.0

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