URL
https://opencores.org/ocsvn/aes_highthroughput_lowarea/aes_highthroughput_lowarea/trunk
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 5 |
Rev 7 |
Line 10... |
Line 10... |
//// ////
|
//// ////
|
//// Author(s): ////
|
//// Author(s): ////
|
//// - Luo Dongjun, dongjun_luo@hotmail.com ////
|
//// - Luo Dongjun, dongjun_luo@hotmail.com ////
|
//// ////
|
//// ////
|
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
// uncomment the following define to enable use of distributed RAM implementation
|
|
// for XILINX FPGAs instead of block memory.
|
|
`define XILINX 1
|
|
|
module aes (
|
module aes (
|
clk,
|
clk,
|
reset,
|
reset,
|
i_start,
|
i_start,
|
i_enable,
|
i_enable,
|
Line 80... |
Line 85... |
generate
|
generate
|
for (i=0;i<16;i=i+1)
|
for (i=0;i<16;i=i+1)
|
begin : sbox_block
|
begin : sbox_block
|
sbox u_sbox (
|
sbox u_sbox (
|
.clk(clk),
|
.clk(clk),
|
.reset_n(~reset),
|
.reset(reset),
|
.enable(i_enable),
|
.enable(i_enable),
|
.ende(i_ende),
|
.ende(i_ende),
|
.din(o_data[i*8+7:i*8]),
|
.din(o_data[i*8+7:i*8]),
|
.en_dout(en_sb_data[i*8+7:i*8]),
|
.en_dout(en_sb_data[i*8+7:i*8]),
|
.de_dout(de_sb_data[i*8+7:i*8])
|
.de_dout(de_sb_data[i*8+7:i*8])
|
Line 207... |
Line 212... |
/*****************************************************************************/
|
/*****************************************************************************/
|
// round key generation: the expansion keys are stored in 4 16*32 rams or
|
// round key generation: the expansion keys are stored in 4 16*32 rams or
|
// 2 16*64 rams or 1 16*128 rams
|
// 2 16*64 rams or 1 16*128 rams
|
//
|
//
|
//assign rd_addr[3:0] = i_ende ? (max_round[3:0] - sb_round_cnt2[3:0]) : sb_round_cnt2[3:0];
|
//assign rd_addr[3:0] = i_ende ? (max_round[3:0] - sb_round_cnt2[3:0]) : sb_round_cnt2[3:0];
|
`define XILINX 1
|
|
|
|
assign round_key[127:0] = {rd_data0[63:0],rd_data1[63:0]};
|
assign round_key[127:0] = {rd_data0[63:0],rd_data1[63:0]};
|
|
|
`ifdef XILINX
|
`ifdef XILINX
|
reg [3:0] rd_addr;
|
reg [3:0] rd_addr;
|
Line 288... |
Line 292... |
// Key Expansion module
|
// Key Expansion module
|
//
|
//
|
//
|
//
|
key_exp u_key_exp (
|
key_exp u_key_exp (
|
.clk(clk),
|
.clk(clk),
|
.reset_n(~reset),
|
.reset(reset),
|
.key_in(i_key[255:0]),
|
.key_in(i_key[255:0]),
|
.key_mode(i_key_mode[1:0]),
|
.key_mode(i_key_mode[1:0]),
|
.key_start(i_start),
|
.key_start(i_start),
|
.wr(wr),
|
.wr(wr),
|
.wr_addr(wr_addr[4:0]),
|
.wr_addr(wr_addr[4:0]),
|
© copyright 1999-2025
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.