25 lines
493 B
Coq
25 lines
493 B
Coq
|
|
||
|
// test taken from aes_core from iwls2005
|
||
|
|
||
|
module aes_key_expand_128(clk, kld, key, wo_0, wo_1, wo_2, wo_3);
|
||
|
|
||
|
input clk, kld;
|
||
|
input [15:0] key;
|
||
|
output [3:0] wo_0, wo_1, wo_2, wo_3;
|
||
|
reg [3:0] w[3:0];
|
||
|
|
||
|
assign wo_0 = w[0];
|
||
|
assign wo_1 = w[1];
|
||
|
assign wo_2 = w[2];
|
||
|
assign wo_3 = w[3];
|
||
|
|
||
|
always @(posedge clk) begin
|
||
|
w[0] <= kld ? key[15:12] : w[0];
|
||
|
w[1] <= kld ? key[11: 8] : w[0]^w[1];
|
||
|
w[2] <= kld ? key[ 7: 4] : w[0]^w[1]^w[2];
|
||
|
w[3] <= kld ? key[ 3: 0] : w[0]^w[1]^w[2]^w[3];
|
||
|
end
|
||
|
|
||
|
endmodule
|
||
|
|