URL
https://opencores.org/ocsvn/csa/csa/trunk
Subversion Repositories csa
[/] [csa/] [trunk/] [bench/] [decrypt_tb.v] - Rev 40
Go to most recent revision | Compare with Previous | Blame | View Log
// this is the test bench for decrypt module `include "../bench/timescale.v" module decrypt_tb; reg clk; reg rst; integer bytes; integer out_bytes; reg [ 8*8-1 : 0] even_cw; reg [ 8*8-1 : 0] odd_cw; reg [188*8-1 : 0] encrypted; reg [188*8-1 : 0] decrypted; reg [8*8-1:0] ck; reg even_odd; reg en; reg key_en; reg [ 8-1:0] enc; wire [ 8-1:0] dec; wire invalid; initial begin $read_data( "../test_dat/decrypt.in" ,even_cw ); $read_data( "../test_dat/decrypt.in" ,8 ,even_cw ); $read_data( "../test_dat/decrypt.in" ,16 ,encrypted ); out_bytes = 1; en=0; key_en=0; repeat(14)@(posedge clk); // set even cw @(posedge clk); ck=even_cw; en=0; even_odd=0; @(posedge clk); key_en=1; @(posedge clk); key_en=0; repeat (11) @(posedge clk); // set odd key @(posedge clk); ck=odd_cw; key_en=1; en=0; even_odd=1; @(posedge clk); key_en=0; repeat (11)@(posedge clk); repeat(4)@(posedge clk); // decrypt for(bytes=1;bytes<=188;bytes=bytes+1) begin en=1; enc=encrypted[bytes]; @(posedge clk); en=0; @(posedge clk); end repeat(44) @(posedge clk); // output result $write_data( "../test_dat/decrypt.out.v" ,decrypted[1] ); for(out_bytes=2;out_bytes<=188;out_bytes=out_bytes+1) begin $write_data( "../test_dat/decrypt.out.v" ,"a" ,decrypted[out_bytes] ); end $stop; end always @(posedge clk) if(invalid) begin decrypted[out_bytes]=dec; out_bytes=out_bytes+1; end decrypt b( .clk (clk) , .rst (rst) , .ck (ck) , .key_en (key_en) , .even_odd (even_odd) , .en (en) , .encrypted (enc) , .decrypted (dec) , .invalid (invalid) ); initial begin clk<=1'b0; forever #5 clk=~clk; end initial begin rst<=1'b1; @(posedge clk); @(posedge clk); rst=1'h0; end endmodule
Go to most recent revision | Compare with Previous | Blame | View Log