[otp_ctrl/top] Add external voltage pad for otp_ctrl Signed-off-by: Michael Schaffner <msf@google.com>
diff --git a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv index 198a138..c3754c1 100644 --- a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv +++ b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_asic.sv
@@ -19,6 +19,7 @@ inout FLASH_TEST_VOLT, // Manual Pad inout FLASH_TEST_MODE0, // Manual Pad inout FLASH_TEST_MODE1, // Manual Pad + inout OTP_EXT_VOLT, // Manual Pad inout SPI_HOST_D0, // Dedicated Pad for spi_host0_sd inout SPI_HOST_D1, // Dedicated Pad for spi_host0_sd inout SPI_HOST_D2, // Dedicated Pad for spi_host0_sd @@ -221,6 +222,7 @@ logic manual_in_flash_test_volt, manual_out_flash_test_volt, manual_oe_flash_test_volt; logic manual_in_flash_test_mode0, manual_out_flash_test_mode0, manual_oe_flash_test_mode0; logic manual_in_flash_test_mode1, manual_out_flash_test_mode1, manual_oe_flash_test_mode1; + logic manual_in_otp_ext_volt, manual_out_otp_ext_volt, manual_oe_otp_ext_volt; pad_attr_t manual_attr_por_n; pad_attr_t manual_attr_usb_p; @@ -230,6 +232,7 @@ pad_attr_t manual_attr_flash_test_volt; pad_attr_t manual_attr_flash_test_mode0; pad_attr_t manual_attr_flash_test_mode1; + pad_attr_t manual_attr_otp_ext_volt; ////////////////////// @@ -244,7 +247,7 @@ padring #( // Padring specific counts may differ from pinmux config due // to custom, stubbed or added pads. - .NDioPads(22), + .NDioPads(23), .NMioPads(47), .PhysicalPads(1), .NIoBanks(int'(IoBankCount)), @@ -263,6 +266,7 @@ scan_role_pkg::DioPadSpiHostD2ScanRole, scan_role_pkg::DioPadSpiHostD1ScanRole, scan_role_pkg::DioPadSpiHostD0ScanRole, + scan_role_pkg::DioPadOtpExtVoltScanRole, scan_role_pkg::DioPadFlashTestMode1ScanRole, scan_role_pkg::DioPadFlashTestMode0ScanRole, scan_role_pkg::DioPadFlashTestVoltScanRole, @@ -336,6 +340,7 @@ IoBankVioa, // SPI_HOST_D2 IoBankVioa, // SPI_HOST_D1 IoBankVioa, // SPI_HOST_D0 + IoBankVcc, // OTP_EXT_VOLT IoBankVcc, // FLASH_TEST_MODE1 IoBankVcc, // FLASH_TEST_MODE0 IoBankVcc, // FLASH_TEST_VOLT @@ -409,6 +414,7 @@ BidirStd, // SPI_HOST_D2 BidirStd, // SPI_HOST_D1 BidirStd, // SPI_HOST_D0 + AnalogIn0, // OTP_EXT_VOLT InputStd, // FLASH_TEST_MODE1 InputStd, // FLASH_TEST_MODE0 AnalogIn0, // FLASH_TEST_VOLT @@ -489,6 +495,7 @@ SPI_HOST_D2, SPI_HOST_D1, SPI_HOST_D0, + OTP_EXT_VOLT, FLASH_TEST_MODE1, FLASH_TEST_MODE0, FLASH_TEST_VOLT, @@ -565,6 +572,7 @@ dio_in[DioSpiHost0Sd2], dio_in[DioSpiHost0Sd1], dio_in[DioSpiHost0Sd0], + manual_in_otp_ext_volt, manual_in_flash_test_mode1, manual_in_flash_test_mode0, manual_in_flash_test_volt, @@ -589,6 +597,7 @@ dio_out[DioSpiHost0Sd2], dio_out[DioSpiHost0Sd1], dio_out[DioSpiHost0Sd0], + manual_out_otp_ext_volt, manual_out_flash_test_mode1, manual_out_flash_test_mode0, manual_out_flash_test_volt, @@ -613,6 +622,7 @@ dio_oe[DioSpiHost0Sd2], dio_oe[DioSpiHost0Sd1], dio_oe[DioSpiHost0Sd0], + manual_oe_otp_ext_volt, manual_oe_flash_test_mode1, manual_oe_flash_test_mode0, manual_oe_flash_test_volt, @@ -637,6 +647,7 @@ dio_attr[DioSpiHost0Sd2], dio_attr[DioSpiHost0Sd1], dio_attr[DioSpiHost0Sd0], + manual_attr_otp_ext_volt, manual_attr_flash_test_mode1, manual_attr_flash_test_mode0, manual_attr_flash_test_volt, @@ -675,6 +686,8 @@ assign manual_oe_flash_test_mode1 = 1'b0; assign manual_out_flash_test_volt = 1'b0; assign manual_oe_flash_test_volt = 1'b0; + assign manual_out_otp_ext_volt = 1'b0; + assign manual_oe_otp_ext_volt = 1'b0; // These pad attributes currently tied off permanently (these are all input-only pads). assign manual_attr_por_n = '0; @@ -683,6 +696,7 @@ assign manual_attr_flash_test_mode0 = '0; assign manual_attr_flash_test_mode1 = '0; assign manual_attr_flash_test_volt = '0; + assign manual_attr_otp_ext_volt = '0; logic unused_manual_sigs; assign unused_manual_sigs = ^{ @@ -690,7 +704,8 @@ manual_in_cc1, manual_in_flash_test_volt, manual_in_flash_test_mode0, - manual_in_flash_test_mode1 + manual_in_flash_test_mode1, + manual_in_otp_ext_volt }; /////////////////////////////// @@ -1128,6 +1143,9 @@ FLASH_TEST_MODE0} ), .flash_test_voltage_h_io ( FLASH_TEST_VOLT ), + // OTP external voltage + .otp_ext_voltage_h_io ( OTP_EXT_VOLT ), + // Multiplexed I/O .mio_in_i ( mio_in ), .mio_out_o ( mio_out ),
diff --git a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_nexysvideo.sv b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_nexysvideo.sv index b435d19..16c3ffb 100644 --- a/hw/top_earlgrey/rtl/autogen/chip_earlgrey_nexysvideo.sv +++ b/hw/top_earlgrey/rtl/autogen/chip_earlgrey_nexysvideo.sv
@@ -239,63 +239,63 @@ ///////////////////////// // Only signals going to non-custom pads need to be tied off. - logic [68:0] unused_sig; + logic [69:0] unused_sig; assign dio_in[DioSpiHost0Sd0] = 1'b0; - assign unused_sig[8] = dio_out[DioSpiHost0Sd0] ^ dio_oe[DioSpiHost0Sd0]; + assign unused_sig[9] = dio_out[DioSpiHost0Sd0] ^ dio_oe[DioSpiHost0Sd0]; assign dio_in[DioSpiHost0Sd1] = 1'b0; - assign unused_sig[9] = dio_out[DioSpiHost0Sd1] ^ dio_oe[DioSpiHost0Sd1]; + assign unused_sig[10] = dio_out[DioSpiHost0Sd1] ^ dio_oe[DioSpiHost0Sd1]; assign dio_in[DioSpiHost0Sd2] = 1'b0; - assign unused_sig[10] = dio_out[DioSpiHost0Sd2] ^ dio_oe[DioSpiHost0Sd2]; + assign unused_sig[11] = dio_out[DioSpiHost0Sd2] ^ dio_oe[DioSpiHost0Sd2]; assign dio_in[DioSpiHost0Sd3] = 1'b0; - assign unused_sig[11] = dio_out[DioSpiHost0Sd3] ^ dio_oe[DioSpiHost0Sd3]; + assign unused_sig[12] = dio_out[DioSpiHost0Sd3] ^ dio_oe[DioSpiHost0Sd3]; assign dio_in[DioSpiHost0Sck] = 1'b0; - assign unused_sig[12] = dio_out[DioSpiHost0Sck] ^ dio_oe[DioSpiHost0Sck]; + assign unused_sig[13] = dio_out[DioSpiHost0Sck] ^ dio_oe[DioSpiHost0Sck]; assign dio_in[DioSpiHost0Csb] = 1'b0; - assign unused_sig[13] = dio_out[DioSpiHost0Csb] ^ dio_oe[DioSpiHost0Csb]; + assign unused_sig[14] = dio_out[DioSpiHost0Csb] ^ dio_oe[DioSpiHost0Csb]; assign dio_in[DioSpiDeviceSd2] = 1'b0; - assign unused_sig[16] = dio_out[DioSpiDeviceSd2] ^ dio_oe[DioSpiDeviceSd2]; + assign unused_sig[17] = dio_out[DioSpiDeviceSd2] ^ dio_oe[DioSpiDeviceSd2]; assign dio_in[DioSpiDeviceSd3] = 1'b0; - assign unused_sig[17] = dio_out[DioSpiDeviceSd3] ^ dio_oe[DioSpiDeviceSd3]; + assign unused_sig[18] = dio_out[DioSpiDeviceSd3] ^ dio_oe[DioSpiDeviceSd3]; assign mio_in[19] = 1'b0; - assign unused_sig[39] = mio_out[19] ^ mio_oe[19]; + assign unused_sig[40] = mio_out[19] ^ mio_oe[19]; assign mio_in[20] = 1'b0; - assign unused_sig[40] = mio_out[20] ^ mio_oe[20]; + assign unused_sig[41] = mio_out[20] ^ mio_oe[20]; assign mio_in[21] = 1'b0; - assign unused_sig[41] = mio_out[21] ^ mio_oe[21]; + assign unused_sig[42] = mio_out[21] ^ mio_oe[21]; assign mio_in[22] = 1'b0; - assign unused_sig[42] = mio_out[22] ^ mio_oe[22]; + assign unused_sig[43] = mio_out[22] ^ mio_oe[22]; assign mio_in[23] = 1'b0; - assign unused_sig[43] = mio_out[23] ^ mio_oe[23]; + assign unused_sig[44] = mio_out[23] ^ mio_oe[23]; assign mio_in[34] = 1'b0; - assign unused_sig[54] = mio_out[34] ^ mio_oe[34]; + assign unused_sig[55] = mio_out[34] ^ mio_oe[34]; assign mio_in[35] = 1'b0; - assign unused_sig[55] = mio_out[35] ^ mio_oe[35]; + assign unused_sig[56] = mio_out[35] ^ mio_oe[35]; assign mio_in[36] = 1'b0; - assign unused_sig[56] = mio_out[36] ^ mio_oe[36]; + assign unused_sig[57] = mio_out[36] ^ mio_oe[36]; assign mio_in[37] = 1'b0; - assign unused_sig[57] = mio_out[37] ^ mio_oe[37]; + assign unused_sig[58] = mio_out[37] ^ mio_oe[37]; assign mio_in[38] = 1'b0; - assign unused_sig[58] = mio_out[38] ^ mio_oe[38]; + assign unused_sig[59] = mio_out[38] ^ mio_oe[38]; assign mio_in[39] = 1'b0; - assign unused_sig[59] = mio_out[39] ^ mio_oe[39]; + assign unused_sig[60] = mio_out[39] ^ mio_oe[39]; assign mio_in[40] = 1'b0; - assign unused_sig[60] = mio_out[40] ^ mio_oe[40]; + assign unused_sig[61] = mio_out[40] ^ mio_oe[40]; assign mio_in[41] = 1'b0; - assign unused_sig[61] = mio_out[41] ^ mio_oe[41]; + assign unused_sig[62] = mio_out[41] ^ mio_oe[41]; assign mio_in[42] = 1'b0; - assign unused_sig[62] = mio_out[42] ^ mio_oe[42]; + assign unused_sig[63] = mio_out[42] ^ mio_oe[42]; assign dio_in[DioSysrstCtrlAonEcRstOutL] = 1'b0; - assign unused_sig[63] = dio_out[DioSysrstCtrlAonEcRstOutL] ^ dio_oe[DioSysrstCtrlAonEcRstOutL]; + assign unused_sig[64] = dio_out[DioSysrstCtrlAonEcRstOutL] ^ dio_oe[DioSysrstCtrlAonEcRstOutL]; assign dio_in[DioSysrstCtrlAonPwrbOut] = 1'b0; - assign unused_sig[64] = dio_out[DioSysrstCtrlAonPwrbOut] ^ dio_oe[DioSysrstCtrlAonPwrbOut]; + assign unused_sig[65] = dio_out[DioSysrstCtrlAonPwrbOut] ^ dio_oe[DioSysrstCtrlAonPwrbOut]; assign mio_in[43] = 1'b0; - assign unused_sig[65] = mio_out[43] ^ mio_oe[43]; + assign unused_sig[66] = mio_out[43] ^ mio_oe[43]; assign mio_in[44] = 1'b0; - assign unused_sig[66] = mio_out[44] ^ mio_oe[44]; + assign unused_sig[67] = mio_out[44] ^ mio_oe[44]; assign mio_in[45] = 1'b0; - assign unused_sig[67] = mio_out[45] ^ mio_oe[45]; + assign unused_sig[68] = mio_out[45] ^ mio_oe[45]; assign mio_in[46] = 1'b0; - assign unused_sig[68] = mio_out[46] ^ mio_oe[46]; + assign unused_sig[69] = mio_out[46] ^ mio_oe[46]; ////////////////////// // Padring Instance //
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv index 9dcdd29..6ca7506 100644 --- a/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv +++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey.sv
@@ -91,6 +91,9 @@ inout [1:0] flash_test_mode_a_io, inout flash_test_voltage_h_io, + // OTP specific voltages + inout otp_ext_voltage_h_io, + input scan_rst_ni, // reset used for test mode input scan_en_i, input lc_ctrl_pkg::lc_tx_t scanmode_i // lc_ctrl_pkg::On for Scan @@ -1499,6 +1502,7 @@ .otp_hw_cfg_o(otp_ctrl_otp_hw_cfg), .tl_i(otp_ctrl_tl_req), .tl_o(otp_ctrl_tl_rsp), + .otp_ext_voltage_h_io, // Clock and reset connections .clk_i (clkmgr_aon_clocks.clk_io_div4_timers),
diff --git a/hw/top_earlgrey/rtl/autogen/top_earlgrey_pkg.sv b/hw/top_earlgrey/rtl/autogen/top_earlgrey_pkg.sv index eaad56c..2984b72 100644 --- a/hw/top_earlgrey/rtl/autogen/top_earlgrey_pkg.sv +++ b/hw/top_earlgrey/rtl/autogen/top_earlgrey_pkg.sv
@@ -709,20 +709,21 @@ DioPadFlashTestVolt = 5, DioPadFlashTestMode0 = 6, DioPadFlashTestMode1 = 7, - DioPadSpiHostD0 = 8, - DioPadSpiHostD1 = 9, - DioPadSpiHostD2 = 10, - DioPadSpiHostD3 = 11, - DioPadSpiHostClk = 12, - DioPadSpiHostCsL = 13, - DioPadSpiDevD0 = 14, - DioPadSpiDevD1 = 15, - DioPadSpiDevD2 = 16, - DioPadSpiDevD3 = 17, - DioPadSpiDevClk = 18, - DioPadSpiDevCsL = 19, - DioPadIor8 = 20, - DioPadIor9 = 21, + DioPadOtpExtVolt = 8, + DioPadSpiHostD0 = 9, + DioPadSpiHostD1 = 10, + DioPadSpiHostD2 = 11, + DioPadSpiHostD3 = 12, + DioPadSpiHostClk = 13, + DioPadSpiHostCsL = 14, + DioPadSpiDevD0 = 15, + DioPadSpiDevD1 = 16, + DioPadSpiDevD2 = 17, + DioPadSpiDevD3 = 18, + DioPadSpiDevClk = 19, + DioPadSpiDevCsL = 20, + DioPadIor8 = 21, + DioPadIor9 = 22, DioPadCount } dio_pad_e;