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

Subversion Repositories csa

[/] [csa/] [trunk/] [rtl/] [group_decrypt.v] - Blame information for rev 43

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

Line No. Rev Author Line
1 42 simon111
`include "../bench/timescale.v"
2
// this moduel do a decrypt group
3
 
4
module group_decrypt(
5
                          input                    clk
6
                        , input                    rst
7
                        , input                    en
8
                        , input                    dec
9
                        , input                    init
10
                        , input         [ 8*8-1:0] ck
11
                        , input         [56*8-1:0] kk
12
                        , input         [ 8*8-1:0] group
13
                        , input         [   4-1:0] bytes
14
 
15 43 simon111
                        , output                   valid
16
                        , output        [ 8*8-1:0] ogroup
17
                        , output        [   4-1:0] obytes
18 42 simon111
                );
19
 
20
        reg init_d;
21 43 simon111
        wire [8*8-1:0] stream;
22
        reg  [8*8-1:0] stream_d;
23 42 simon111
        wire [8*8-1:0] ib;
24
        reg  [8*8-1:0] bco_d;
25
        wire  [8*8-1:0] bco;
26 43 simon111
        reg en_d;
27 42 simon111
 
28 43 simon111
 
29 42 simon111
        always @(posedge clk)
30
                begin
31 43 simon111
                en_d<=en;
32
                init_d<=init;
33 42 simon111
                if(en)
34
                begin
35 43 simon111
                        stream_d<=stream;
36
                end
37
                if(en_d)
38 42 simon111
                        bco_d<=bco;
39 43 simon111
 
40 42 simon111
                end
41
 
42 43 simon111
assign ib=(init_d)?group:group^stream;
43
 
44 42 simon111
 
45
stream_cypher stream_cypher(
46
                    .clk   (clk)
47
                  , .rst   (rst)
48
                  , .en    (en)
49
                  , .init  (init)
50
                  , .ck    (ck)
51
                  , .sb    (group)
52 43 simon111
                  , .cb    (stream)
53 42 simon111
                  );
54
 
55
block_decypher block_decypher(
56
                          .kk (kk)
57
                        , .ib (ib)
58
                        , .bd (bco)
59
                        );
60
 
61 43 simon111
assign ogroup=group^bco_d^stream;
62
 
63
assign valid=en_d & ~init_d;
64
assign obytes=4'h8;
65
 
66 42 simon111
 
67
endmodule

powered by: WebSVN 2.1.0

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