aboutsummaryrefslogtreecommitdiff
path: root/src/rtl/fpga_mkm.v
diff options
context:
space:
mode:
Diffstat (limited to 'src/rtl/fpga_mkm.v')
-rw-r--r--src/rtl/fpga_mkm.v32
1 files changed, 28 insertions, 4 deletions
diff --git a/src/rtl/fpga_mkm.v b/src/rtl/fpga_mkm.v
index eb6172d..e0dc14a 100644
--- a/src/rtl/fpga_mkm.v
+++ b/src/rtl/fpga_mkm.v
@@ -40,6 +40,8 @@
module fpga_mkm(
input wire clk,
+ // SPI slave interface ports.
+ input wire ss,
input wire sclk,
input wire mosi,
output wire miso,
@@ -66,9 +68,14 @@ module fpga_mkm(
localparam CTRL_DONE = 3;
+ localparam MEM_WORDS = 16;
+
+
//----------------------------------------------------------------
// Registers including update variables and write enable.
//----------------------------------------------------------------
+ reg [31 : 0] key_mem [0 : (MEM_WORDS - 1)];
+
reg [21 : 0] alarm_counter_reg = 22'h0;
reg alarm_reg = 1'h0;
@@ -95,8 +102,23 @@ module fpga_mkm(
assign rled4 = alarm_counter_reg[21];
assign gled5 = key_loaded_reg;
- assign miso = miso_reg;
- assign alarm = alarm_reg;
+
+
+ //----------------------------------------------------------------
+ // Module instantiations.
+ //----------------------------------------------------------------
+ fpga_mkm_spi_slave spi_slave(
+ .clk(clk),
+ .ss(ss),
+ .sclk(sclk),
+ .mosi(mosi),
+ .miso(miso),
+ .spi_active(),
+ .rx_byte_available(),
+ .rx_byte(),
+ .tx_byte_load(),
+ .tx_byte()
+ );
//----------------------------------------------------------------
@@ -104,10 +126,12 @@ module fpga_mkm(
//----------------------------------------------------------------
always @ (posedge clk or negedge tamper)
begin : reg_update
+ integer i;
+
if (!tamper)
begin
- // Zeroise the key material!
-
+ for (i = 0 ; i < MEM_WORDS ; i = i + 1)
+ key_mem[i] <= 32'h0;
end
else
begin