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

Subversion Repositories gost28147-89

[/] [gost28147-89/] [trunk/] [testbench/] [gost89_pipelined_ecb_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_pipelined_ecb_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  [63:0]  in_e, in_d;
11
  wire [63:0]  out_e, out_d;
12
 
13
  gost89_pipelined_ecb_encrypt
14
    pipelined_ecb_encrypt(clk, sbox, key, in_e, out_e);
15
  gost89_pipelined_ecb_decrypt
16
    pipelined_ecb_decrypt(clk, sbox, key, in_d, out_d);
17
 
18
/*
19
ECB mode:
20
d5a8a608f4f115b4 389eb44a391474c4 379e59c3c96bb2ab 3f38ae3b8f541361
21
d658a36b11cf46eb 7aea1ed18e604249 c35472c91cd78640 3b5834a000fba066
22
*/
23
 
24
  initial begin
25
    $dumpfile("gost89_pipelined_ecb_tb.vcd");
26
    $dumpvars(0, gost89_pipelined_ecb_tb);
27
 
28
    clk = 0;
29
 
30
// One vector
31
    #1;
32
    in_e = 64'h d5a8a608f4f115b4; in_d = 64'h d658a36b11cf46eb;
33
    #64;
34
    if (out_e !== 64'h d658a36b11cf46eb || out_d !== 64'h d5a8a608f4f115b4)
35
      begin $display("E"); $finish; end
36
    $display("OK");
37
 
38
// Three vectors
39
    #4
40
    in_e = 64'h 389eb44a391474c4; in_d = 64'h 7aea1ed18e604249;
41
    #2;
42
    in_e = 64'h 379e59c3c96bb2ab; in_d = 64'h c35472c91cd78640;
43
    #8;
44
    in_e = 64'h 3f38ae3b8f541361; in_d = 64'h 3b5834a000fba066;
45
    #54;
46
    if (out_e !== 64'h 7aea1ed18e604249 || out_d !== 64'h 389eb44a391474c4)
47
      begin $display("E"); $finish; end
48
    $display("OK");
49
    #2;
50
    if (out_e !== 64'h c35472c91cd78640 || out_d !== 64'h 379e59c3c96bb2ab)
51
      begin $display("E"); $finish; end
52
    $display("OK");
53
    #8;
54
    if (out_e !== 64'h 3b5834a000fba066 || out_d !== 64'h 3f38ae3b8f541361)
55
      begin $display("E"); $finish; end
56
    $display("OK");
57
 
58
    #10;
59
    $display("All passed");
60
    $finish;
61
  end
62
endmodule

powered by: WebSVN 2.1.0

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