OpenCores
URL https://opencores.org/ocsvn/gost28147-89/gost28147-89/trunk

Subversion Repositories gost28147-89

[/] [gost28147-89/] [trunk/] [testbench/] [gost89_mac_tb.v] - Blame information for rev 5

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 fanatid
`timescale 1ns / 1ps
2
 
3
module gost89_mac_tb;
4
  reg clk;
5
  always
6
    #1 clk = ~clk;
7
 
8
  reg  [511:0] sbox = 512'h 4a92d80e6b1c7f53eb4c6dfa23810759581da342efc7609b7da1089fe46cb2536c715fd84a9e03b24ba0721d36859cfedb413f590ae7682c1fd057a4923e6b8c;
9
  reg  [255:0] key  = 256'h 0475f6e05038fbfad2c7c390edb3ca3d1547124291ae1e8a2f79cd9ed2bcefbd;
10
  reg          reset, load_data;
11
  reg  [63:0]  in;
12
  wire [31:0]  out;
13
  wire         busy;
14
  wire [31:0]  result = out[31:0];
15
 
16
  gost89_mac mac1(clk, reset, load_data, sbox, key, in, out, busy);
17
 
18
  initial begin
19
    $dumpfile("gost89_mac_tb.vcd");
20
    $dumpvars(0, gost89_mac_tb);
21
 
22
    clk       = 0;
23
    reset     = 0;
24
    load_data = 0;
25
 
26
/* Normal usage
27
4b657e2ef0d2dfa2 af36b591bbd96c85 3569faad243d6fa4
28
b4a50c2c00000000
29
*/
30
    #1
31
    reset = 1;
32
    #2
33
    reset = 0;
34
    #2
35
    in = 64'h 4b657e2ef0d2dfa2;
36
    load_data = 1;
37
    #2;
38
    load_data = 0;
39
 
40
    #34;
41
    in = 64'h af36b591bbd96c85;
42
    load_data = 1;
43
    #2;
44
    load_data = 0;
45
 
46
    #34;
47
    in = 64'h 3569faad243d6fa4;
48
    load_data = 1;
49
    #2;
50
    load_data = 0;
51
 
52
    #34;
53
    if (result !== 32'h b4a50c2c)
54
      begin $display("E"); $finish; end
55
    $display("OK");
56
 
57
/* Reset in processing
58
845fbd32d185bbf2 387172424b8518a3 ba95eadaa69ed200
59
7acc77a200000000
60
*/
61
    reset = 1;
62
    #2
63
    reset = 0;
64
    #2
65
    in = 64'h 4b657e2ef0d2dfa2;
66
    load_data = 1;
67
    #2;
68
    load_data = 0;
69
    #10
70
    reset = 1;
71
    #2
72
    reset = 0;
73
 
74
    #4
75
    in = 64'h 845fbd32d185bbf2;
76
    load_data = 1;
77
    #2;
78
    load_data = 0;
79
 
80
    #34;
81
    in = 64'h 387172424b8518a3;
82
    load_data = 1;
83
    #2;
84
    load_data = 0;
85
 
86
    #34;
87
    in = 64'h ba95eadaa69ed200;
88
    load_data = 1;
89
    #2;
90
    load_data = 0;
91
 
92
    #34;
93
    if (result !== 32'h 7acc77a2)
94
      begin $display("E"); $finish; end
95
    $display("OK");
96
 
97
/* Start with reset
98
ba3d8a2c8fe0307a c1fe2bf562c45b53 c066169b334014e0
99
c9541f2800000000
100
*/
101
    #2
102
    in = 64'h ba3d8a2c8fe0307a;
103
    load_data = 1;
104
    reset = 1;
105
    #2;
106
    load_data = 0;
107
    reset = 0;
108
 
109
    #34;
110
    in = 64'h c1fe2bf562c45b53;
111
    load_data = 1;
112
    #2;
113
    load_data = 0;
114
 
115
    #34;
116
    in = 64'h c066169b334014e0;
117
    load_data = 1;
118
    #2;
119
    load_data = 0;
120
 
121
    #34;
122
    if (result !== 32'h c9541f28)
123
      begin $display("E"); $finish; end
124
    $display("OK");
125
 
126
    #10;
127
    $display("All passed");
128
    $finish;
129
  end
130
endmodule

powered by: WebSVN 2.1.0

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