[Cryptech-Commits] [user/js/fpga_mkm] branch master updated: Adding inital tb for the SPI slave. Debugging the SPI slave and the FPGA_MKM.
git at cryptech.is
git at cryptech.is
Tue Apr 9 14:11:38 UTC 2019
This is an automated email from the git hooks/post-receive script.
joachim at secworks.se pushed a commit to branch master
in repository user/js/fpga_mkm.
The following commit(s) were added to refs/heads/master by this push:
new 3ad18f9 Adding inital tb for the SPI slave. Debugging the SPI slave and the FPGA_MKM.
3ad18f9 is described below
commit 3ad18f9945aa0f6a617fcd399a0a402db9a28027
Author: Joachim Strömbergson <joachim at assured.se>
AuthorDate: Tue Apr 9 16:10:55 2019 +0200
Adding inital tb for the SPI slave. Debugging the SPI slave and the FPGA_MKM.
---
src/rtl/fpga_mkm.v | 46 ++++++++------
src/rtl/fpga_mkm_spi_slave.v | 5 +-
src/tb/tb_fpga_mkm.v | 6 +-
src/tb/{tb_fpga_mkm.v => tb_fpga_mkm_spi_slave.v} | 74 +++++++++++------------
4 files changed, 72 insertions(+), 59 deletions(-)
diff --git a/src/rtl/fpga_mkm.v b/src/rtl/fpga_mkm.v
index 89825ed..38517e6 100644
--- a/src/rtl/fpga_mkm.v
+++ b/src/rtl/fpga_mkm.v
@@ -86,9 +86,9 @@ module fpga_mkm(
reg [21 : 0] alarm_counter_reg = 22'h0;
- reg alarm_reg = 1'h0;
- reg alarm_new;
- reg alarm_we;
+ reg tamper_reg = 1'h0;
+ reg tamper_new;
+ reg tamper_we;
reg key_loaded_reg = 1'h0;
reg key_loaded_new;
@@ -100,6 +100,14 @@ module fpga_mkm(
reg [1 : 0] fpga_mkm_ctrl_new;
reg fpga_mkm_ctrl_we;
+ wire spi_active;
+ wire rx_byte_available;
+ wire [7 : 0] rx_byte;
+ reg tx_byte_load;
+ reg [7 : 0] tx_byte_reg;
+ reg [7 : 0] tx_byte_new;
+ reg tx_byte_we;
+
//----------------------------------------------------------------
// Concurrent connectivity for ports etc.
@@ -111,7 +119,6 @@ module fpga_mkm(
assign gled5 = key_loaded_reg;
-
//----------------------------------------------------------------
// Module instantiations.
//----------------------------------------------------------------
@@ -121,11 +128,11 @@ module fpga_mkm(
.sclk(sclk),
.mosi(mosi),
.miso(miso),
- .spi_active(),
- .rx_byte_available(),
- .rx_byte(),
- .tx_byte_load(),
- .tx_byte()
+ .spi_active(spi_active),
+ .rx_byte_available(rx_byte_available),
+ .rx_byte(rx_byte),
+ .tx_byte_load(tx_byte),
+ .tx_byte(tx_byte_reg)
);
@@ -138,15 +145,18 @@ module fpga_mkm(
if (!tamper)
begin
- for (i = 0 ; i < MEM_WORDS ; i = i + 1)
- key_mem[i] <= 32'h0;
+ for (i = 0 ; i < MEM_BYTES ; i = i + 1)
+ key_mem[i] <= 8'h0;
+
+ key_loaded_reg <= 1'h0;
+ tamper_reg <= 1'h1;
end
else
begin
alarm_counter_reg <= alarm_counter_reg + 1;
- if (alarm_we)
- alarm_reg <= alarm_new;
+ if (tamper_we)
+ tamper_reg <= tamper_new;
if (key_loaded_we)
key_loaded_reg <= key_loaded_new;
@@ -162,8 +172,8 @@ module fpga_mkm(
//----------------------------------------------------------------
always @*
begin : fpga_mkm_ctrl_fsm
- alarm_new = 1'h0;
- alarm_we = 1'h0;
+ tamper_new = 1'h0;
+ tamper_we = 1'h0;
key_loaded_new = 1'h0;
key_loaded_we = 1'h0;
fpga_mkm_ctrl_new = CTRL_IDLE;
@@ -173,14 +183,16 @@ module fpga_mkm(
CTRL_IDLE:
begin
- if (tamper)
+ if (spi_active)
begin
- fpga_mkm_ctrl_new = CTRL_ALARM;
+ fpga_mkm_ctrl_new = CTRL_CMD;
fpga_mkm_ctrl_we = 1'h1;
end
end
+
+
CTRL_ALARM:
begin
diff --git a/src/rtl/fpga_mkm_spi_slave.v b/src/rtl/fpga_mkm_spi_slave.v
index 1449af2..9a59f9e 100644
--- a/src/rtl/fpga_mkm_spi_slave.v
+++ b/src/rtl/fpga_mkm_spi_slave.v
@@ -59,8 +59,9 @@ module fpga_mkm_spi_slave(
output wire rx_byte_available,
output wire [7 : 0] rx_byte,
- input wire tx_byte_load,
- input wire [7 : 0] tx_byte
+ input wire tx_byte_available,
+ input wire [7 : 0] tx_byte,
+ output wire tx_byte_ack
);
diff --git a/src/tb/tb_fpga_mkm.v b/src/tb/tb_fpga_mkm.v
index 682a99d..226380c 100644
--- a/src/tb/tb_fpga_mkm.v
+++ b/src/tb/tb_fpga_mkm.v
@@ -37,7 +37,7 @@
//
//======================================================================
-module tb_fpga_mklm();
+module tb_fpga_mkm();
//----------------------------------------------------------------
// Parameters.
@@ -96,7 +96,7 @@ module tb_fpga_mklm();
//----------------------------------------------------------------
always
begin : clk_gen
- #CLK_HALF_PERIOD;
+ #(CLK_HALF_PERIOD);
tb_clk = !tb_clk;
end // clk_gen
@@ -185,7 +185,7 @@ module tb_fpga_mklm();
$finish;
end
-endmodule // tb_keywrap_core
+endmodule // tb_fpga_mkm
//======================================================================
// EOF tb_fpga_mkm.v
diff --git a/src/tb/tb_fpga_mkm.v b/src/tb/tb_fpga_mkm_spi_slave.v
similarity index 77%
copy from src/tb/tb_fpga_mkm.v
copy to src/tb/tb_fpga_mkm_spi_slave.v
index 682a99d..d29aa40 100644
--- a/src/tb/tb_fpga_mkm.v
+++ b/src/tb/tb_fpga_mkm_spi_slave.v
@@ -1,8 +1,9 @@
//======================================================================
//
-// tb_fpga_mkm
-// -----------
-// Testbench for the FPGA based Master Key Memory (MKM).
+// tb_fpga_mkm_spi_slave.v
+// -----------------------
+// Testbench for the SPI slave interface for the FPGA based
+// Master Key Memory (MKM).
//
//
// Author: Joachim Strombergson
@@ -37,7 +38,7 @@
//
//======================================================================
-module tb_fpga_mklm();
+module tb_fpga_mkm_spi_slave();
//----------------------------------------------------------------
// Parameters.
@@ -55,38 +56,37 @@ module tb_fpga_mklm();
integer error_ctr;
integer tc_ctr;
- reg tb_clk;
- reg tb_sclk;
- reg tb_mosi;
- wire tb_miso;
- reg tb_tamper;
- wire tb_alarm;
- wire tb_rled1;
- wire tb_rled2;
- wire tb_rled3;
- wire tb_rled4;
- wire tb_gled5;
+ reg tb_clk;
+ reg tb_ss;
+ reg tb_sclk;
+ reg tb_mosi;
+ wire tb_miso;
+ wire tb_spi_active;
+ wire tb_rx_byte_available;
+ wire [7 : 0] tb_rx_byte;
+ reg tb_tx_byte_available;
+ reg [7 : 0] tb_tx_byte;
+ wire tb_tx_byte_ack;
//----------------------------------------------------------------
// Device Under Test.
//----------------------------------------------------------------
- fpga_mkm dut(
- .clk(tb_clk),
+ fpga_mkm_spi_slave dut(
+ .clk(tb_clk),
+ .ss(tb_ss),
+ .sclk(tb_sclk),
+ .mosi(tb_mosi),
+ .miso(tb_miso),
- .sclk(tb_sclk),
- .mosi(tb_mosi),
- .miso(tb_miso),
+ .spi_active(tb_spi_active),
+ .rx_byte_available(tb_rx_byte_available),
+ .rx_byte(tb_rx_byte),
- .tamper(tb_tamper),
- .alarm(tb_alarm),
-
- .rled1(tb_rled1),
- .rled2(tb_rled2),
- .rled3(tb_rled3),
- .rled4(tb_rled4),
- .gled5(tb_gled5)
- );
+ .tx_byte_available(tb_tx_byte_available),
+ .tx_byte(tb_tx_byte),
+ .tx_byte_ack(tb_tx_byte_ack)
+ );
//----------------------------------------------------------------
@@ -96,7 +96,7 @@ module tb_fpga_mklm();
//----------------------------------------------------------------
always
begin : clk_gen
- #CLK_HALF_PERIOD;
+ #(CLK_HALF_PERIOD);
tb_clk = !tb_clk;
end // clk_gen
@@ -146,9 +146,9 @@ module tb_fpga_mklm();
tc_ctr = 0;
tb_clk = 1'h0;
+ tb_ss = 1'h1;
tb_sclk = 1'h0;
tb_mosi = 1'h0;
- tb_tamper = 1'h0;
end
endtask // init_sim
@@ -171,8 +171,8 @@ module tb_fpga_mklm();
//----------------------------------------------------------------
initial
begin
- $display(" -= Testbench for fpga_mkm started =-");
- $display(" ==================================");
+ $display(" -= Testbench for fpga_mkm_spi_slave started =-");
+ $display(" =============================================");
$display("");
init_sim();
@@ -180,13 +180,13 @@ module tb_fpga_mklm();
display_test_results();
$display("");
- $display(" -= Testbench for fpga_mkm completed =-");
- $display(" ====================================");
+ $display(" -= Testbench for fpga_mkm_spi_slave completed =-");
+ $display(" ===============================================");
$finish;
end
-endmodule // tb_keywrap_core
+endmodule // tb_fpga_mkm_spi_slave
//======================================================================
-// EOF tb_fpga_mkm.v
+// EOF tb_fpga_mkm_spi_slave.v
//======================================================================
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Commits
mailing list