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

Subversion Repositories csa

[/] [csa/] [tags/] [arelease/] [rtl/] [key_computer.v] - Blame information for rev 2

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

Line No. Rev Author Line
1 2 Simon111
 
2
 
3
// this module is used to computer a key
4
// author: Simon panti
5
//          mengxipeng@gmail.com
6
// refer:
7
//                      cas.c in vlc opensource project
8
 
9
module key_computer(cw,key);
10
                input   [63:0]   cw;
11
                output  [447:0]  key;
12
 
13
                wire    [63:0]   key1;
14
                wire    [63:0]   key2;
15
                wire    [63:0]   key3;
16
                wire    [63:0]   key4;
17
                wire    [63:0]   key5;
18
                wire    [63:0]   key6;
19
                wire    [63:0]   key7;
20
 
21
                key_perm kp0 (   cw, key7 );
22
                key_perm kp1 ( key7, key6 );
23
                key_perm kp2 ( key6, key5 );
24
                key_perm kp3 ( key5, key4 );
25
                key_perm kp4 ( key4, key3 );
26
                key_perm kp5 ( key3, key2 );
27
                key_perm kp6 ( key2, key1 );
28
 
29
                assign key[64*1-1:64*0]=key2 ^ 64'h0000000000000000;
30
                assign key[64*2-1:64*1]=key3 ^ 64'h0101010101010101;
31
                assign key[64*3-1:64*2]=key4 ^ 64'h0202020202020202;
32
                assign key[64*4-1:64*3]=key5 ^ 64'h0303030303030303;
33
                assign key[64*5-1:64*4]=key6 ^ 64'h0404040404040404;
34
                assign key[64*6-1:64*5]=key7 ^ 64'h0505050505050505;
35
                assign key[64*7-1:64*6]=cw   ^ 64'h0606060606060606;
36
 
37
endmodule

powered by: WebSVN 2.1.0

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