URL
https://opencores.org/ocsvn/apbtoaes128/apbtoaes128/trunk
Subversion Repositories apbtoaes128
Compare Revisions
- This comparison shows the changes necessary to convert path
/apbtoaes128
- from Rev 13 to Rev 14
- ↔ Reverse comparison
Rev 13 → Rev 14
/trunk/rtl/mix_columns.v
115,8 → 115,10
//===================================================================================== |
generate |
genvar i; |
for(i = 0 ; i < NUM_WORDS; i = i + 1) |
for(i = 0 ; i < NUM_WORDS; i = i + 1) |
begin:WBT |
assign col[i] = mix_in[WORD_SIZE*(i + 1) - 1: WORD_SIZE*i]; |
end |
endgenerate |
|
//===================================================================================== |
125,7 → 127,7
generate |
genvar j; |
for(j = 0; j < NUM_WORDS; j = j + 1) |
begin |
begin:DMCO |
assign sum_p[j] = col[(j + 1)%NUM_WORDS] ^ col[(j + 2)%NUM_WORDS] ^ col[(j + 3)%NUM_WORDS]; |
assign mix_out_enc[ WORD_SIZE*(j + 1) - 1 : WORD_SIZE*j] = aes_mult_02(col[j] ^ col[(j + NUM_WORDS - 1)%NUM_WORDS]) ^ sum_p[j]; |
end |
/trunk/rtl/key_expander.v
103,7 → 103,7
generate |
genvar i; |
for(i = 0; i < KEY_NUM; i = i + 1) |
begin |
begin:KG |
assign key[KEY_NUM - 1 - i] = key_in[KEY_WIDTH*(i + 1) - 1 : KEY_WIDTH*i]; |
end |
endgenerate |
114,7 → 114,7
generate |
genvar j; |
for(j = 0; j < KEY_NUM; j = j + 1) |
begin |
begin:KGO |
if(j == 0) |
assign key_out[KEY_WIDTH*(KEY_NUM - j) - 1 : KEY_WIDTH*(KEY_NUM - j - 1)] = key[j] ^ g_func; |
else |
130,14 → 130,18
//===================================================================================== |
generate |
genvar k; |
for(k = 0; k < KEY_NUM; k = k + 1) |
for(k = 0; k < KEY_NUM; k = k + 1) |
begin:GFIG |
assign rot_in[k] = (enc_dec) ? key[KEY_NUM - 1][WORD*(k + 1) - 1 : WORD*k] : key[KEY_NUM - 1][WORD*(k + 1) - 1 : WORD*k] ^ key[KEY_NUM - 2][WORD*(k + 1) - 1 : WORD*k]; |
end |
endgenerate |
|
generate |
genvar l; |
for(l = 0; l < KEY_NUM; l = l + 1) |
for(l = 0; l < KEY_NUM; l = l + 1) |
begin:GFIG1 |
assign g_in[WORD*(l + 1) - 1 : WORD*l] = rot_in[(KEY_NUM + l - 1)%KEY_NUM]; |
end |
endgenerate |
|
//===================================================================================== |
/trunk/rtl/datapath.v
263,13 → 263,13
); |
|
// IV and BKP Muxs |
always @(*) |
always@(*) |
begin: IV_BKP_MUX |
integer i; |
iv_mux_out = {32{1'b0}}; |
bkp_mux_out = {32{1'b0}}; |
for(i = 0; i < 4; i = i + 1) |
begin |
begin:IVBKP |
if(col_en[i] | iv_sel_rd[i]) |
begin |
iv_mux_out = iv[i]; |
304,7 → 304,7
genvar l; |
|
for(l = 0; l < 4;l=l+1) |
begin |
begin:IV_BKP_REGISTERS |
always @(posedge clk, negedge rst_n) |
begin |
if(!rst_n) |
370,7 → 370,8
// Columns Definition |
generate |
genvar i; |
for(i = 0; i < 4; i = i + 1) |
for(i = 0; i < 4; i = i + 1) |
begin:CD |
always @(posedge clk, negedge rst_n) |
begin |
if(!rst_n) |
378,7 → 379,8
else |
if(col_en[3 - i]) |
col[3 - i] <= col_in[32*(i + 1) - 1 : 32*i]; |
end |
end |
end |
endgenerate |
|
// Shift Rows Operation |
434,7 → 436,8
// Key registers |
generate |
genvar j; |
for(j = 0; j < 4; j = j + 1) |
for(j = 0; j < 4; j = j + 1) |
begin:KR |
always @(posedge clk, negedge rst_n) |
begin |
if(!rst_n) |
450,7 → 453,8
if(key_en_sel[3 - j] || key_init || key_host_en[3 - j]) |
key[3 - j] <= (key_sel_mux) ? key_out[32*(j + 1) - 1 : 32*j] : ( (key_host_en[3 - j]) ? bus_in : key_host[3 - j] ); |
end |
end |
end |
end |
endgenerate |
|
assign key_in = {key[0], key[1], key[2], key[3]}; |
/trunk/rtl/shift_rows.v
96,9 → 96,13
//===================================================================================== |
generate |
genvar l,c; |
for(l = 0; l < ST_LINE; l = l + 1) |
for(c = 0; c < ST_COL; c = c + 1) |
for(l = 0; l < ST_LINE; l = l + 1) |
begin:SMG |
for(c = 0; c < ST_COL; c = c + 1) |
begin:BLOCK |
assign state[l][c] = data_in[ST_WORD*((ST_COL - c)*ST_LINE - l) - 1 : ST_WORD*((ST_COL - c)*ST_LINE - l - 1)]; |
end |
end |
endgenerate |
|
//===================================================================================== |
106,12 → 110,14
//===================================================================================== |
generate |
genvar l1,c1; |
for(l1 = 0; l1 < ST_LINE; l1 = l1 + 1) |
for(l1 = 0; l1 < ST_LINE; l1 = l1 + 1) |
begin:SRO |
for(c1 = 0; c1 < ST_COL; c1 = c1 + 1) |
begin |
begin:BLOCK |
assign state_sft_l[l1][c1] = state[l1][(c1 + l1)%ST_COL]; |
assign state_sft_r[l1][c1] = state[l1][(c1 + (ST_COL - l1))%ST_COL]; |
end |
end |
end |
endgenerate |
|
//===================================================================================== |
119,11 → 125,13
//===================================================================================== |
generate |
genvar l2,c2; |
for(l2 = 0; l2 < ST_LINE; l2 = l2 + 1) |
for(l2 = 0; l2 < ST_LINE; l2 = l2 + 1) |
begin:SMBOT |
for(c2 = 0; c2 < ST_COL; c2 = c2 + 1) |
begin |
begin:BLOCK |
assign data_out_enc[ST_WORD*((ST_COL - c2)*ST_LINE - l2) - 1 : ST_WORD*((ST_COL - c2)*ST_LINE - l2 - 1)] = state_sft_l[l2][c2]; |
assign data_out_dec[ST_WORD*((ST_COL - c2)*ST_LINE - l2) - 1 : ST_WORD*((ST_COL - c2)*ST_LINE - l2 - 1)] = state_sft_r[l2][c2]; |
end |
end |
end |
endgenerate |
endmodule |