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

Subversion Repositories des

[/] [des/] [trunk/] [rtl/] [verilog/] [perf_opt/] [des3.v] - Blame information for rev 9

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 7 rudi
/////////////////////////////////////////////////////////////////////
2
////                                                             ////
3
////  Tripple DES                                                ////
4
////  Tripple DES Top Level module                               ////
5
////                                                             ////
6
////  Author: Rudolf Usselmann                                   ////
7
////          rudi@asics.ws                                      ////
8
////                                                             ////
9
/////////////////////////////////////////////////////////////////////
10
////                                                             ////
11
//// Copyright (C) 2002 Rudolf Usselmann                         ////
12
////                    rudi@asics.ws                            ////
13
////                                                             ////
14
//// This source file may be used and distributed without        ////
15
//// restriction provided that this copyright statement is not   ////
16
//// removed from the file and that any derivative work contains ////
17
//// the original copyright notice and the associated disclaimer.////
18
////                                                             ////
19
////     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     ////
20
//// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   ////
21
//// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   ////
22
//// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      ////
23
//// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         ////
24
//// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    ////
25
//// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   ////
26
//// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        ////
27
//// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  ////
28
//// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  ////
29
//// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  ////
30
//// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         ////
31
//// POSSIBILITY OF SUCH DAMAGE.                                 ////
32
////                                                             ////
33
/////////////////////////////////////////////////////////////////////
34
 
35
module des3(desOut, desIn, key1, key2, key3, decrypt, clk);
36
output  [63:0]   desOut;
37
input   [63:0]   desIn;
38
input   [55:0]   key1;
39
input   [55:0]   key2;
40
input   [55:0]   key3;
41
input           decrypt;
42
input           clk;
43
 
44
wire    [55:0]   key_a;
45
wire    [55:0]   key_b;
46
wire    [55:0]   key_c;
47
wire    [63:0]   stage1_out, stage2_out;
48
reg     [55:0]   key_b_r [16:0];
49
reg     [55:0]   key_c_r [33:0];
50
integer         i;
51
 
52
assign key_a = decrypt ? key3 : key1;
53
assign key_b = key2;
54
assign key_c = decrypt ? key1 : key3;
55
 
56
always @(posedge clk)
57
        key_b_r[0] <= #1 key_b;
58
 
59
always @(posedge clk)
60
        for(i=0;i<16;i=i+1)
61
                key_b_r[i+1] <= #1 key_b_r[i];
62
 
63
 
64
always @(posedge clk)
65
        key_c_r[0] <= #1 key_c;
66
 
67
always @(posedge clk)
68
        for(i=0;i<33;i=i+1)
69
                key_c_r[i+1] <= #1 key_c_r[i];
70
 
71
des u0( .desOut(stage1_out),    .desIn(desIn),          .key(key_a), .decrypt(decrypt), .clk(clk) );
72
 
73
des u1( .desOut(stage2_out),    .desIn(stage1_out),     .key(key_b_r[16]), .decrypt(!decrypt), .clk(clk) );
74
 
75
des u2( .desOut(desOut),        .desIn(stage2_out),     .key(key_c_r[33]), .decrypt(decrypt),   .clk(clk) );
76
 
77
endmodule
78
 
79
 

powered by: WebSVN 2.1.0

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