[prim_otp] Update interface
The OTP interface has to change slightly, to accommodate additional
signals for the closed source OTP wrapper.
Signed-off-by: Michael Schaffner <msf@google.com>
diff --git a/hw/ip/otp_ctrl/rtl/otp_ctrl.sv b/hw/ip/otp_ctrl/rtl/otp_ctrl.sv
index 6e9b584..68258a7 100644
--- a/hw/ip/otp_ctrl/rtl/otp_ctrl.sv
+++ b/hw/ip/otp_ctrl/rtl/otp_ctrl.sv
@@ -632,6 +632,21 @@
assign tl_win_d2h[$high(tl_win_h2d)] = (lc_dft_en[1] == lc_ctrl_pkg::On) ?
tl_win_d2h_gated : '0;
+ // TODO: correctly wire these alerts up
+ logic unused_otp_alert;
+ logic otp_alert_p, otp_alert_n;
+ logic otp_alert_ack, otp_alert_trig;
+ assign unused_otp_alert = otp_alert_p ^
+ otp_alert_n;
+ assign otp_alert_ack = 1'b0;
+ assign otp_alert_trig = 1'b0;
+
+ wire unused_ext_voltage_io;
+
+ // TODO: correctly connect this to life cycle
+ logic ext_voltage_en;
+ assign ext_voltage_en = 1'b0;
+
prim_otp #(
.Width ( OtpWidth ),
.Depth ( OtpDepth ),
@@ -658,7 +673,13 @@
// Read data out
.valid_o ( otp_rvalid ),
.rdata_o ( part_otp_rdata ),
- .err_o ( part_otp_err )
+ .err_o ( part_otp_err ),
+ .ext_voltage_io ( unused_ext_voltage_io ),
+ .ext_voltage_en_i ( ext_voltage_en ),
+ .otp_alert_po ( otp_alert_p ),
+ .otp_alert_no ( otp_alert_n ),
+ .otp_alert_ack_i ( otp_alert_ack ),
+ .otp_alert_trig_i ( otp_alert_trig )
);
logic otp_fifo_valid;
diff --git a/hw/ip/prim_generic/rtl/prim_generic_otp.sv b/hw/ip/prim_generic/rtl/prim_generic_otp.sv
index 7a2d970..f6f07cb 100644
--- a/hw/ip/prim_generic/rtl/prim_generic_otp.sv
+++ b/hw/ip/prim_generic/rtl/prim_generic_otp.sv
@@ -39,7 +39,16 @@
// Response channel
output logic valid_o,
output logic [IfWidth-1:0] rdata_o,
- output err_e err_o
+ output err_e err_o,
+ // External programming voltage
+ inout wire ext_voltage_io, //TODO enable it after the change in prim_otp file
+ input ext_voltage_en_i, // TODO
+ //// alert indication
+ //////////////////////////
+ output otp_alert_po, // TODO otp positive detector alert
+ output otp_alert_no, // TODO otp negative detector alert
+ input otp_alert_ack_i, // TODO otp pulse ack
+ input otp_alert_trig_i // TODO alert force trig by SW
);
// Not supported in open-source emulation model.
@@ -47,6 +56,16 @@
assign unused_pwr_seq_h = pwr_seq_h_i;
assign pwr_seq_o = '0;
+ wire unused_ext_voltage;
+ assign unused_ext_voltage = ext_voltage_io;
+ logic unused_ext_voltage_en;
+ assign unused_ext_voltage_en = ext_voltage_en_i;
+
+ logic unused_alert;
+ assign unused_alert = otp_alert_ack_i ^ otp_alert_trig_i;
+ assign otp_alert_po = 1'b0;
+ assign otp_alert_no = 1'b0;
+
////////////////////////////////////
// TL-UL Test Interface Emulation //
////////////////////////////////////