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

Subversion Repositories csa

[/] [csa/] [trunk/] [rtl/] [stream_cypher.v] - Diff between revs 20 and 21

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 20 Rev 21
Line 1... Line 1...
 
 
 
 
// this file implement the stream cypher module
// this file implement the stream cypher module
 
 
module stream_cypher(clk,rst_n,en,init,ck,sb,cb);
module stream_cypher(clk,rst,en,init,ck,sb,cb);
input                 clk;
input                 clk;
input                 rst_n;   // low enable
input                 rst;   // hi enable
input                 en;      // hi enable
input                 en;      // hi enable
input                 init;    // hi enable
input                 init;    // hi enable
input  [8 *8-1:0]     ck;
input  [8 *8-1:0]     ck;
input  [8 *8-1:0]     sb;
input  [8 *8-1:0]     sb;
output [8 *8-1:0]     cb;
output [8 *8-1:0]     cb;
 
 
 
 
// intermediate variable
// intermediate variable
reg                en_d;
 
reg    [10*4-1 : 0]A;
reg    [10*4-1 : 0]A;
reg    [10*4-1 : 0]B;
reg    [10*4-1 : 0]B;
reg    [4-1    : 0]X;
reg    [4-1    : 0]X;
reg    [4-1    : 0]Y;
reg    [4-1    : 0]Y;
reg    [4-1    : 0]Z;
reg    [4-1    : 0]Z;
Line 22... Line 22...
reg    [4-1    : 0]E;
reg    [4-1    : 0]E;
reg    [4-1    : 0]F;
reg    [4-1    : 0]F;
reg                p;
reg                p;
reg                q;
reg                q;
reg                r;
reg                r;
 
reg    [8 *8-1 : 0]cb;
 
 
wire   [10*4-1 : 0]Ao;
wire   [10*4-1 : 0]Ao;
wire   [10*4-1 : 0]Ainit;
wire   [10*4-1 : 0]Ainit;
wire   [10*4-1 : 0]Bo;
wire   [10*4-1 : 0]Bo;
wire   [10*4-1 : 0]Binit;
wire   [10*4-1 : 0]Binit;
Line 36... Line 37...
wire   [4-1    : 0]Eo;
wire   [4-1    : 0]Eo;
wire   [4-1    : 0]Fo;
wire   [4-1    : 0]Fo;
wire               po;
wire               po;
wire               qo;
wire               qo;
wire               ro;
wire               ro;
 
wire   [8 *8-1 : 0]cbo;
 
 
assign Ainit = {
assign Ainit = {
                4'b0,         4'b0,
                4'b0,         4'b0,
        ck[7*4-1:6*4],ck[8*4-1:7*4],
        ck[7*4-1:6*4],ck[8*4-1:7*4],
        ck[5*4-1:4*4],ck[6*4-1:5*4],
        ck[5*4-1:4*4],ck[6*4-1:5*4],
Line 55... Line 57...
        ck[ 9*4-1: 8*4],ck[10*4-1: 9*4]
        ck[ 9*4-1: 8*4],ck[10*4-1: 9*4]
};
};
 
 
always @(posedge clk)
always @(posedge clk)
begin
begin
        if(!rst_n)
        if(rst)
        begin
        begin
                A<= 40'h0000000000;
                A<= 40'h0000000000;
                B<= 40'h0000000000;
                B<= 40'h0000000000;
                X<=  8'h00;
                X<=  8'h00;
                Y<=  8'h00;
                Y<=  8'h00;
Line 68... Line 70...
                E<=  8'h00;
                E<=  8'h00;
                F<=  8'h00;
                F<=  8'h00;
                p<=  8'h00;
                p<=  8'h00;
                q<=  8'h00;
                q<=  8'h00;
                r<=  8'h00;
                r<=  8'h00;
                en_d <= 1'h00;
 
        end
        end
        else
        else
        begin
        begin
                en_d <= en;
                if(en)
                if(en_d)
 
                begin
                begin
 
                        cb <= cbo;
                        A<=  Ao;
                        A<=  Ao;
                        B<=  Bo;
                        B<=  Bo;
                        X<=  Xo;
                        X<=  Xo;
                        Y<=  Yo;
                        Y<=  Yo;
                        Z<=  Zo;
                        Z<=  Zo;
Line 86... Line 87...
                        E<=  Eo;
                        E<=  Eo;
                        F<=  Fo;
                        F<=  Fo;
                        p<=  po;
                        p<=  po;
                        q<=  qo;
                        q<=  qo;
                        r<=  ro;
                        r<=  ro;
 
 
                end
                end
        end
        end
end
end
 
 
 
 
Line 118... Line 118...
                       ,.Yo(Yo)
                       ,.Yo(Yo)
                       ,.Zo(Zo)
                       ,.Zo(Zo)
                       ,.po(po)
                       ,.po(po)
                       ,.qo(qo)
                       ,.qo(qo)
                       ,.ro(ro)
                       ,.ro(ro)
                       ,.cb(cb)
                       ,.cb(cbo)
                );
                );
 
 
endmodule
endmodule
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

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