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

Subversion Repositories csa

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

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 42 simon111
        wire [8*8-1:0] ib;
23
        reg  [8*8-1:0] bco_d;
24
        wire  [8*8-1:0] bco;
25 43 simon111
        reg en_d;
26 42 simon111
 
27 44 simon111
        always @(posedge clk)
28
                en_d<=en;
29 43 simon111
 
30 42 simon111
        always @(posedge clk)
31 43 simon111
                init_d<=init;
32 44 simon111
 
33
        always @(posedge clk)
34 43 simon111
                if(en_d)
35 42 simon111
                        bco_d<=bco;
36 43 simon111
 
37 44 simon111
        assign ib=(init_d)?group:group^stream;
38 42 simon111
 
39 44 simon111
        stream_cypher stream_cypher(
40
                            .clk   (clk)
41
                          , .rst   (rst)
42
                          , .en    (en)
43
                          , .init  (init)
44
                          , .ck    (ck)
45
                          , .sb    (group)
46
                          , .cb    (stream)
47
                          );
48 43 simon111
 
49 44 simon111
        block_decypher block_decypher(
50
                                  .kk (kk)
51
                                , .ib (ib)
52
                                , .bd (bco)
53
                                );
54
 
55
        assign ogroup=group^bco_d^stream;
56
 
57
        assign valid=en_d & ~init_d;
58
        assign obytes=4'h8;
59
 
60
        endmodule

powered by: WebSVN 2.1.0

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