[Cryptech-Commits] [user/js/fpga_mkm] branch master updated: Starting to add control registers and control FSM needed for the key handling and tamper response.
git at cryptech.is
git at cryptech.is
Tue Feb 12 12:28:21 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 c00b7ab Starting to add control registers and control FSM needed for the key handling and tamper response.
c00b7ab is described below
commit c00b7ab976c5e558ffa043e48d1363d7ae573b0a
Author: Joachim Strömbergson <joachim at assured.se>
AuthorDate: Tue Feb 12 13:28:10 2019 +0100
Starting to add control registers and control FSM needed for the key handling and tamper response.
---
src/rtl/fpga_mkm.v | 90 ++++++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 80 insertions(+), 10 deletions(-)
diff --git a/src/rtl/fpga_mkm.v b/src/rtl/fpga_mkm.v
index 6725ed9..6dee64a 100644
--- a/src/rtl/fpga_mkm.v
+++ b/src/rtl/fpga_mkm.v
@@ -44,34 +44,59 @@ module fpga_mkm(
input wire mosi,
output wire miso,
- // Tamper and alarm
+ // Tamper and alarm.
input wire tamper,
output wire alarm,
+ // We will use red LEDs to indicate tamper event.
output wire rled1,
output wire rled2,
output wire rled3,
output wire rled4,
+
+ // We will use the green LED to indicate loaded key.
output wire gled5
);
+ //----------------------------------------------------------------
+ // Internal constant and parameter definitions.
+ //----------------------------------------------------------------
+ localparam CTRL_IDLE = 0;
+ localparam CTRL_ALARM = 1;
+ localparam CTRL_DONE = 3;
+
+
//----------------------------------------------------------------
// Registers including update variables and write enable.
//----------------------------------------------------------------
- reg [31 : 0] counter_reg = 32'b0;
+ reg [21 : 0] alarm_counter_reg = 22'h0;
+
+ reg alarm_reg = 1'h0;
+ reg alarm_new;
+ reg alarm_we;
+
+ reg key_loaded_reg = 1'h0;
+ reg key_loaded_new;
+ reg key_loaded_we;
+
+ reg miso_reg = 1'h0;
+
+ reg [1 : 0] fpga_mkm_ctrl_reg = CTRL_IDLE;
+ reg [1 : 0] fpga_mkm_ctrl_new;
+ reg fpga_mkm_ctrl_we;
//----------------------------------------------------------------
// Concurrent connectivity for ports etc.
//----------------------------------------------------------------
- assign rled1 = counter_reg[21];
- assign rled2 = counter_reg[22];
- assign rled3 = counter_reg[23];
- assign rled4 = counter_reg[24];
- assign gled5 = counter_reg[25];
+ assign rled1 = alarm_counter_reg[21];
+ assign rled2 = alarm_counter_reg[21];
+ assign rled3 = alarm_counter_reg[21];
+ assign rled4 = alarm_counter_reg[21];
+ assign gled5 = key_loaded_reg;
- assign miso = 1'h0;
- assign alarm = counter_reg[25];
+ assign miso = miso_reg;
+ assign alarm = alarm_reg;
//----------------------------------------------------------------
@@ -79,7 +104,52 @@ module fpga_mkm(
//----------------------------------------------------------------
always @ (posedge clk)
begin : reg_update
- counter_reg <= counter_reg + 1;
+ alarm_counter_reg <= alarm_counter_reg + 1;
+
+ if (alarm_we)
+ alarm_reg <= alarm_new;
+
+ if (key_loaded_we)
+ key_loaded_reg <= key_loaded_new;
+
+ if (fpga_mkm_ctrl_we)
+ fpga_mkm_ctrl_reg <= fpga_mkm_ctrl_new;
+ end
+
+
+ //----------------------------------------------------------------
+ // fpga_mkm_ctrl_fsm
+ //----------------------------------------------------------------
+ always @*
+ begin : fpga_mkm_ctrl_fsm
+ alarm_new = 1'h0;
+ alarm_we = 1'h0;
+ key_loaded_new = 1'h0;
+ key_loaded_we = 1'h0;
+ fpga_mkm_ctrl_new = CTRL_IDLE;
+ fpga_mkm_ctrl_we = 1'h0;
+
+ case (fpga_mkm_ctrl_reg)
+
+ CTRL_IDLE:
+ begin
+ if (tamper)
+ begin
+ fpga_mkm_ctrl_new = CTRL_ALARM;
+ fpga_mkm_ctrl_we = 1'h1;
+ end
+ end
+
+
+ CTRL_ALARM:
+ begin
+
+ end
+
+ default:
+ begin
+ end
+ endcase // case (fpga_mkm_ctrl_reg)
end
endmodule // fpga_mkm
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Commits
mailing list