diff options
Diffstat (limited to 'src/tb')
-rw-r--r-- | src/tb/tb_keywrap_mkmif.v | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/tb/tb_keywrap_mkmif.v b/src/tb/tb_keywrap_mkmif.v index 8d42c6d..8bd3a05 100644 --- a/src/tb/tb_keywrap_mkmif.v +++ b/src/tb/tb_keywrap_mkmif.v @@ -55,6 +55,8 @@ module tb_keywrap_mkm(); integer error_ctr; integer tc_ctr; + integer show_spi; + reg tb_clk; reg tb_reset_n; wire tb_mkm_spi_sclk; @@ -119,6 +121,11 @@ module tb_keywrap_mkm(); begin : sys_monitor cycle_ctr = cycle_ctr + 1; + if (show_spi) + begin + $display("spi_clk: 0x%01x, spi_cs_n: 0x%01x, spi_do: 0x%01x, spi_di: 0x%01x", + tb_mkm_spi_sclk, tb_mkm_spi_cs_n, tb_mkm_spi_do, tb_mkm_spi_di); + end #(CLK_PERIOD); end @@ -135,6 +142,8 @@ module tb_keywrap_mkm(); error_ctr = 0; tc_ctr = 0; + show_spi = 0; + tb_clk = 1'h0; tb_reset_n = 1'h1; tb_mkm_spi_do = 1'h0; @@ -151,6 +160,45 @@ module tb_keywrap_mkm(); //---------------------------------------------------------------- + // reset_dut() + // + // Toggle reset to put the DUT into a well known state. + //---------------------------------------------------------------- + task reset_dut; + begin + $display("TB: Resetting dut."); + tb_reset_n = 0; + #(2 * CLK_PERIOD); + tb_reset_n = 1; + end + endtask // reset_dut + + + //---------------------------------------------------------------- + // test_auto_load + //---------------------------------------------------------------- + task test_auto_load; + begin + tc_ctr = tc_ctr + 1; + + $display("TEST AUTO-LOAD START"); + $display("Check that correct ICV is generated for a single block message."); + + // Observe SPI for a number of cycles. Reset the DUT during monitoring. + show_spi = 1; + #(10 * CLK_PERIOD); + reset_dut(); + #(100 * CLK_PERIOD); + show_spi = 0; + + $display("TEST AUTO-LOAD END"); + $display(""); + end + endtask // auto_load + + + + //---------------------------------------------------------------- // main //---------------------------------------------------------------- initial @@ -160,6 +208,7 @@ module tb_keywrap_mkm(); $display(""); init_sim(); + test_auto_load(); $display(""); $display("*** Keywrap mkmif wrapper testbench done. ***"); |