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

Subversion Repositories md5

[/] [md5/] [trunk/] [md5_top.v] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 verilogcor
/********************************************************************************
2
* Module Name : md5_top
3
* Description : MD5 computation  top level
4
*
5
*
6
********************************************************************************
7
*          Esencia Technology Proprietary and Confidential
8
*          All rights reserved (c) 2004 by Esencia Technolgy
9
********************************************************************************/
10
 
11
module md5_top (
12
 
13
               //Inputs
14
                 clk,
15
                 rst_n,
16
                 dataVld,
17
                 dataIn,
18
 
19
                //from adders
20
                 ResStateAReg,
21
                 ResStateBReg,
22
                 ResStateCReg,
23
                 ResStateDReg,
24
                 AddRes1,
25
                 AddRes2,
26
 
27
                // from Register file
28
                 StateAReg,
29
                 StateBReg,
30
                 StateCReg,
31
                 StateDReg,
32
                 BlockData,
33
 
34
               //Outputs
35
                // To Adders
36
                 Md5FuncValue,
37
                 TValue,
38
                 XValue,
39
                 AddendState1,
40
                 AddendState2,
41
                 ShiftedAddend,
42
                 RoundNum,
43
 
44
                // To Register file
45
                 Md5Data,
46
                 StateAComb,
47
                 StateBComb,
48
                 StateCComb,
49
                 StateDComb,
50
 
51
                //final output
52
                 msgDgstVld,
53
                 msgDigest
54
                );
55
 
56
`include "ah_params.vh"
57
`include "md5_params.vh"
58
 
59
input                                clk;
60
input                                rst_n;
61
input                                dataVld;
62
input  [DATA_WIDTH - 1:0]            dataIn;
63
input  [STATE_DWIDTH - 1:0]          ResStateAReg;
64
input  [STATE_DWIDTH - 1:0]          ResStateBReg;
65
input  [STATE_DWIDTH - 1:0]          ResStateCReg;
66
input  [STATE_DWIDTH - 1:0]          ResStateDReg;
67
input  [STATE_DWIDTH - 1:0]          AddRes1;
68
input  [STATE_DWIDTH - 1:0]          AddRes2;
69
 
70
input  [STATE_DWIDTH - 1:0]          StateAReg;
71
input  [STATE_DWIDTH - 1:0]          StateBReg;
72
input  [STATE_DWIDTH - 1:0]          StateCReg;
73
input  [STATE_DWIDTH - 1:0]          StateDReg;
74
input  [BLOCK_SIZE-1:0]              BlockData;
75
 
76
output [STATE_DWIDTH - 1:0]          Md5FuncValue;
77
output [STATE_DWIDTH - 1:0]          TValue;
78
output [DATA_WIDTH - 1 :0]           XValue;
79
output [STATE_DWIDTH - 1:0]          AddendState1;
80
output [STATE_DWIDTH - 1:0]          AddendState2;
81
output [STATE_DWIDTH - 1:0]          ShiftedAddend;
82
output [STATE_DWIDTH - 1:0]          StateAComb;
83
output [STATE_DWIDTH - 1:0]          StateBComb;
84
output [STATE_DWIDTH - 1:0]          StateCComb;
85
output [STATE_DWIDTH - 1:0]          StateDComb;
86
output [DATA_WIDTH - 1:0]            Md5Data;
87
output [5:0]                         RoundNum;
88
 
89
output                               msgDgstVld;
90
output [DATA_WIDTH -1:0]             msgDigest;
91
 
92
wire  [5:0]                         RoundNum;
93
wire [DATA_WIDTH - 1:0]             Md5Data;
94
 
95
wire [STATE_DWIDTH - 1:0]          Md5FuncValue;
96
wire [STATE_DWIDTH - 1:0]          TValue;
97
wire [DATA_WIDTH - 1 :0]           XValue;
98
wire [STATE_DWIDTH - 1:0]          AddendState1;
99
wire [STATE_DWIDTH - 1:0]          AddendState2;
100
wire [STATE_DWIDTH - 1:0]          ShiftedAddend;
101
wire [STATE_DWIDTH - 1:0]          StateAComb;
102
wire [STATE_DWIDTH - 1:0]          StateBComb;
103
wire [STATE_DWIDTH - 1:0]          StateCComb;
104
wire [STATE_DWIDTH - 1:0]          StateDComb;
105
wire                               DataVldExt;
106
 
107
md5_ctrl u_md5_ctrl_0 (
108
                      //Inputs
109
                      .clk(clk),
110
                      .rst_n(rst_n),
111
                      .DataVld(dataVld),
112
                      .DataIn(dataIn),
113
                      .ResStateAReg(ResStateAReg),
114
                      .ResStateBReg(ResStateBReg),
115
                      .ResStateCReg(ResStateCReg),
116
                      .ResStateDReg(ResStateDReg),
117
 
118
                      //Outputs
119
                      .MsgDgstVld(msgDgstVld),
120
                      .MsgDigest(msgDigest),
121
                      .DataVldExt(DataVldExt),
122
                      .Md5Data(Md5Data),
123
                      .RoundNum(RoundNum)
124
                     );
125
 
126
md5_comb u_md5_comb_0 (
127
                       //Inputs
128
                       .RoundNum(RoundNum),
129
                       .StateAReg(StateAReg),
130
                       .StateBReg(StateBReg),
131
                       .StateCReg(StateCReg),
132
                       .StateDReg(StateDReg),
133
                       .BlockIn(BlockData),
134
                       .DataVld(DataVldExt),
135
                       .DataIn(dataIn),
136
                       .AddRes1(AddRes1),
137
                       .AddRes2(AddRes2),
138
 
139
                       //Outputs
140
                       .Md5FuncValue(Md5FuncValue),
141
                       .TValue(TValue),
142
                       .XValue(XValue),
143
                       .StateAComb(StateAComb),
144
                       .StateBComb(StateBComb),
145
                       .StateCComb(StateCComb),
146
                       .StateDComb(StateDComb),
147
                       .AddendState1(AddendState1),
148
                       .AddendState2(AddendState2),
149
                       .ShiftedAddend(ShiftedAddend)
150
             );
151
 
152
endmodule

powered by: WebSVN 2.1.0

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