diff options
Diffstat (limited to 'src/rtl/fpga_mkm.v')
-rw-r--r-- | src/rtl/fpga_mkm.v | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/rtl/fpga_mkm.v b/src/rtl/fpga_mkm.v index 6dee64a..eb6172d 100644 --- a/src/rtl/fpga_mkm.v +++ b/src/rtl/fpga_mkm.v @@ -102,18 +102,26 @@ module fpga_mkm( //---------------------------------------------------------------- // reg_update //---------------------------------------------------------------- - always @ (posedge clk) + always @ (posedge clk or negedge tamper) begin : reg_update - alarm_counter_reg <= alarm_counter_reg + 1; + if (!tamper) + begin + // Zeroise the key material! - if (alarm_we) - alarm_reg <= alarm_new; + end + else + begin + alarm_counter_reg <= alarm_counter_reg + 1; - if (key_loaded_we) - key_loaded_reg <= key_loaded_new; + if (alarm_we) + alarm_reg <= alarm_new; - if (fpga_mkm_ctrl_we) - fpga_mkm_ctrl_reg <= fpga_mkm_ctrl_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 end |