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

Subversion Repositories aes_highthroughput_lowarea

[/] [aes_highthroughput_lowarea/] [trunk/] [verilog/] [bench/] [tb.v] - Blame information for rev 6

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 6 motilito
`timescale 1ns / 10ps
2
module tb ();
3
 
4
reg clk;
5
reg reset_n;
6
reg [7:0] din;
7
wire [7:0] dout;
8
 
9
reg key_start;
10
reg [255:0] key_in;
11
reg data_in_valid;
12
reg [127:0] data_in;
13
wire  key_ready;
14
wire  ready_out;
15
reg   enable;
16
initial
17
begin
18
        clk = 1'b1;
19
        key_in = 1'b0;
20
        key_start = 1'b0;
21
        data_in_valid = 1'b0;
22
        reset_n = 1'b0;
23
        enable = 1;
24
        #100;
25
        reset_n = 1'b1;
26
        #100;
27
        din = 8'hae;
28
        @ (posedge clk);
29
        key_start <= 1'b1;
30
        //key_in[255:128] = 128'h2b7e151628aed2a6abf7158809cf4f3c;
31
        //key_in[255:64] = 192'h8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b;
32
        //key_in[255:0] = 256'h603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4;
33
        key_in[255:64] = 192'h000102030405060708090a0b0c0d0e0f1011121314151617;
34
        //key_in[255:0] = 256'h000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f;
35
        @ (posedge clk);
36
        key_start <= 1'b0;
37
        wait (key_ready);
38
        data_in_valid <= 1'b1;
39
        //data_in[127:0] = 128'h3243f6a8885a308d313198a2e0370731;
40
        //data_in[127:0] = 128'h00112233445566778899aabbccddeeff;
41
        //data_in[127:0] = 128'h8ea2b7ca516745bfeafc49904b496089;
42
        data_in[127:0] = 128'hdda97ca4864cdfe06eaf70a0ec0d7191;
43
        //@ (posedge clk);
44
        //data_in[127:0] = 128'h3243f6a8885a308d313198a2e0370734;
45
        //@ (posedge clk);
46
        //data_in_valid <= 1'b0;
47
        //data_in[127:0] = 128'h3243f6a8885a308d313198a2e0370731;
48
        //@ (posedge clk);
49
        //data_in_valid <= 1'b1;
50
        //data_in[127:0] = 128'h3243f6a8885a308d313198a2e0370734;
51
        //data_in[127:0] = 128'h00112233445566778899aabbccddeeff;
52
        @ (posedge clk);
53
        data_in_valid <= 1'b0;
54
        repeat (3) @ (posedge clk);
55
        wait (ready_out);
56
        @ (posedge clk);
57
        //data_in_valid <= 1'b1;
58
        @ (posedge clk);
59
        data_in_valid <= 1'b0;
60
        repeat (6) @(posedge clk);
61
        //enable <= 0;
62
        //repeat (15) @(posedge clk);
63
        //enable <= 1;
64
        #200;
65
        //$display("dout is %h",dout);
66
        din = 8'h1e;
67
        #2000;
68
        //$display("dout is %h",dout);
69
        #100;
70
        $finish;
71
end
72
 
73
/*sbox u_sbox(
74
        .clk(clk),
75
        .reset_n(reset_n),
76
        .din(din),
77
        .ende(1'b1),
78
        .dout(dout));*/
79
//wire wr;
80
//wire [4:0] wr_addr;
81
//wire [63:0] wr_data;
82
 
83
wire [127:0] data_out;
84
aes dut(
85
   .clk(clk),
86
   .reset_n(reset_n),
87
   .i_start(key_start),
88
   .i_enable(enable), //TBD
89
   .i_ende(1'b1),
90
   .i_key(key_in),
91
   .i_key_mode(2'b01),
92
   .i_data(data_in),
93
   .i_data_valid(data_in_valid),
94
   .o_ready(ready_out),
95
   .o_data(data_out),
96
   .o_data_valid(data_out_valid),
97
   .o_key_ready(key_ready)
98
);
99
 
100
/*key_exp u_key_exp (
101
        .clk(clk),
102
        .reset_n(reset_n),
103
        .key_in(key_in),
104
        .key_mode(2'b10),
105
        .key_start(key_start),
106
        .wr(wr),
107
        .wr_addr(wr_addr),
108
        .wr_data(wr_data)
109
);*/
110
 
111
always @ (posedge clk)
112
   if (data_out_valid)
113
      $display("DATA: %16h",data_out);
114
 
115
 
116
always
117
        #10 clk = ~clk;
118
 
119
endmodule

powered by: WebSVN 2.1.0

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