[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 // ////////////////////////////////////