diff --git a/hw/ip_templates/pinmux/fpv/tb/pinmux_chip_tb.sv.tpl b/hw/ip_templates/pinmux/fpv/tb/pinmux_chip_tb.sv.tpl index 60fffb442cd93..7b407d21124ee 100644 --- a/hw/ip_templates/pinmux/fpv/tb/pinmux_chip_tb.sv.tpl +++ b/hw/ip_templates/pinmux/fpv/tb/pinmux_chip_tb.sv.tpl @@ -78,10 +78,12 @@ module pinmux_chip_tb // Copied from chip_${topname}_asic.sv // TODO: find a better way to automatically generate this FPV testbench via topgen/ipgen. +% if enable_strap_sampling: localparam int Tap0PadIdx = 30; localparam int Tap1PadIdx = 27; localparam int Dft0PadIdx = 25; localparam int Dft1PadIdx = 26; +% endif localparam int TckPadIdx = 38; localparam int TmsPadIdx = 35; localparam int TrstNPadIdx = 39; @@ -89,6 +91,7 @@ module pinmux_chip_tb localparam int TdoPadIdx = 36; // DFT and Debug signal positions in the pinout. localparam pinmux_pkg::target_cfg_t PinmuxTargetCfg = '{ + % if enable_strap_sampling: tck_idx: TckPadIdx, tms_idx: TmsPadIdx, trst_idx: TrstNPadIdx, @@ -98,10 +101,13 @@ module pinmux_chip_tb tap_strap1_idx: Tap1PadIdx, dft_strap0_idx: Dft0PadIdx, dft_strap1_idx: Dft1PadIdx, + % endif + % if enable_usb_wakeup: // TODO: check whether there is a better way to pass these USB-specific params usb_dp_idx: DioUsbdevUsbDp, usb_dn_idx: DioUsbdevUsbDn, usb_sense_idx: MioInUsbdevSense, + % endif // Pad types for attribute WARL behavior dio_pad_type: { BidirStd, // DIO spi_host0_csb diff --git a/hw/ip_templates/pinmux/fpv/tb/pinmux_tb.sv.tpl b/hw/ip_templates/pinmux/fpv/tb/pinmux_tb.sv.tpl index fddc2cba2edee..d57c3d11941f1 100644 --- a/hw/ip_templates/pinmux/fpv/tb/pinmux_tb.sv.tpl +++ b/hw/ip_templates/pinmux/fpv/tb/pinmux_tb.sv.tpl @@ -10,6 +10,7 @@ module pinmux_tb import pinmux_reg_pkg::*; import prim_pad_wrapper_pkg::*; #( +% if enable_strap_sampling: parameter int Tap0PadIdx = 0, parameter int Tap1PadIdx = 1, parameter int Dft0PadIdx = 2, @@ -19,8 +20,11 @@ module pinmux_tb parameter int TrstNPadIdx = 6, parameter int TdiPadIdx = 7, parameter int TdoPadIdx = 8, +% endif +% if enable_usb_wakeup: parameter int DioUsbdevDp = 9, parameter int DioUsbdevDn = 10, +% endif parameter int MioInUsbdevSense = 11, parameter logic [NumAlerts-1:0] AlertAsyncOn = {NumAlerts{1'b1}}, parameter bit SecVolatileRawUnlockEn = 1 @@ -87,6 +91,7 @@ module pinmux_tb ); localparam pinmux_pkg::target_cfg_t PinmuxTargetCfg = '{ + % if enable_strap_sampling: tck_idx: TckPadIdx, tms_idx: TmsPadIdx, trst_idx: TrstNPadIdx, @@ -96,9 +101,12 @@ module pinmux_tb tap_strap1_idx: Tap1PadIdx, dft_strap0_idx: Dft0PadIdx, dft_strap1_idx: Dft1PadIdx, + % endif + % if enable_usb_wakeup: usb_dp_idx: DioUsbdevDp, usb_dn_idx: DioUsbdevDn, usb_sense_idx: MioInUsbdevSense, + % endif // Pad types for attribute WARL behavior dio_pad_type: {NDioPads{BidirStd}}, mio_pad_type: {NMioPads{BidirStd}}, diff --git a/hw/ip_templates/pinmux/rtl/pinmux.sv.tpl b/hw/ip_templates/pinmux/rtl/pinmux.sv.tpl index 0e72fd9f19975..05a68da1ecbb0 100644 --- a/hw/ip_templates/pinmux/rtl/pinmux.sv.tpl +++ b/hw/ip_templates/pinmux/rtl/pinmux.sv.tpl @@ -176,6 +176,7 @@ module pinmux always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs if (!rst_ni) begin dio_pad_attr_q <= '0; + % if enable_strap_sampling: for (int kk = 0; kk < NMioPads; kk++) begin if (kk == TargetCfg.tap_strap0_idx) begin // TAP strap 0 is sampled after reset (and only once for life cycle states that are not @@ -187,6 +188,9 @@ module pinmux mio_pad_attr_q[kk] <= '0; end end + % else: + mio_pad_attr_q <= '0; + % endif end else begin // dedicated pads for (int kk = 0; kk < NDioPads; kk++) begin diff --git a/hw/ip_templates/pinmux/rtl/pinmux_pkg.sv b/hw/ip_templates/pinmux/rtl/pinmux_pkg.sv.tpl similarity index 94% rename from hw/ip_templates/pinmux/rtl/pinmux_pkg.sv rename to hw/ip_templates/pinmux/rtl/pinmux_pkg.sv.tpl index d2df26f6c0c8a..311b4d48f97bf 100644 --- a/hw/ip_templates/pinmux/rtl/pinmux_pkg.sv +++ b/hw/ip_templates/pinmux/rtl/pinmux_pkg.sv.tpl @@ -16,6 +16,7 @@ package pinmux_pkg; // datastructure below serves this purpose. Note that all the indices below are with respect to // the concatenated {DIO, MIO} packed array. typedef struct packed { + % if enable_strap_sampling: integer tck_idx; integer tms_idx; integer trst_idx; @@ -25,9 +26,12 @@ package pinmux_pkg; integer tap_strap1_idx; integer dft_strap0_idx; integer dft_strap1_idx; + % endif + % if enable_usb_wakeup: integer usb_dp_idx; integer usb_dn_idx; integer usb_sense_idx; + % endif pad_type_e [NDioPads-1:0] dio_pad_type; pad_type_e [NMioPads-1:0] mio_pad_type; scan_role_e [NDioPads-1:0] dio_scan_role; @@ -35,6 +39,7 @@ package pinmux_pkg; } target_cfg_t; parameter target_cfg_t DefaultTargetCfg = '{ + % if enable_strap_sampling: tck_idx: 0, tms_idx: 0, trst_idx: 0, @@ -44,9 +49,12 @@ package pinmux_pkg; tap_strap1_idx: 0, dft_strap0_idx: 0, dft_strap1_idx: 0, + % endif + % if enable_usb_wakeup: usb_dp_idx: 0, usb_dn_idx: 0, usb_sense_idx: 0, + % endif dio_pad_type: {NDioPads{BidirStd}}, mio_pad_type: {NMioPads{BidirStd}}, dio_scan_role: {NDioPads{NoScan}}, diff --git a/hw/top_darjeeling/data/autogen/top_darjeeling.gen.hjson b/hw/top_darjeeling/data/autogen/top_darjeeling.gen.hjson index 52dc9270bc384..db92a3336e43a 100644 --- a/hw/top_darjeeling/data/autogen/top_darjeeling.gen.hjson +++ b/hw/top_darjeeling/data/autogen/top_darjeeling.gen.hjson @@ -17375,63 +17375,7 @@ } pinmux: { - special_signals: - [ - { - name: tap0 - pad: MIO0 - desc: TAP strap signal. - idx: 0 - } - { - name: tap1 - pad: MIO1 - desc: TAP strap signal. - idx: 1 - } - { - name: dft0 - pad: MIO2 - desc: DFT strap signal. - idx: 2 - } - { - name: dft1 - pad: MIO3 - desc: DFT strap signal. - idx: 3 - } - { - name: tck - pad: MIO4 - desc: JTAG tck signal. - idx: 4 - } - { - name: tms - pad: MIO5 - desc: JTAG tms signal. - idx: 5 - } - { - name: trst_n - pad: MIO6 - desc: JTAG trst_n signal. - idx: 6 - } - { - name: tdi - pad: MIO7 - desc: JTAG tdi signal. - idx: 7 - } - { - name: tdo - pad: MIO8 - desc: JTAG tdo signal. - idx: 8 - } - ] + special_signals: [] } } { @@ -17481,63 +17425,7 @@ } pinmux: { - special_signals: - [ - { - name: tap0 - pad: MIO0 - desc: TAP strap signal. - idx: 0 - } - { - name: tap1 - pad: MIO1 - desc: TAP strap signal. - idx: 1 - } - { - name: dft0 - pad: MIO2 - desc: DFT strap signal. - idx: 2 - } - { - name: dft1 - pad: MIO3 - desc: DFT strap signal. - idx: 3 - } - { - name: tck - pad: MIO4 - desc: JTAG tck signal. - idx: 4 - } - { - name: tms - pad: MIO5 - desc: JTAG tms signal. - idx: 5 - } - { - name: trst_n - pad: MIO6 - desc: JTAG trst_n signal. - idx: 6 - } - { - name: tdi - pad: MIO7 - desc: JTAG tdi signal. - idx: 7 - } - { - name: tdo - pad: MIO8 - desc: JTAG tdo signal. - idx: 8 - } - ] + special_signals: [] } } ] diff --git a/hw/top_darjeeling/data/top_darjeeling.hjson b/hw/top_darjeeling/data/top_darjeeling.hjson index aeb8e39e0afd0..4f2e41067718e 100644 --- a/hw/top_darjeeling/data/top_darjeeling.hjson +++ b/hw/top_darjeeling/data/top_darjeeling.hjson @@ -1836,19 +1836,7 @@ // parameter will be assigned the corresponding pad index. // // Each entry may have an optional 'desc' key for further description. - special_signals: [ - // Straps - { name: 'tap0', pad: 'MIO0', desc: 'TAP strap signal.' }, - { name: 'tap1', pad: 'MIO1', desc: 'TAP strap signal.' }, - { name: 'dft0', pad: 'MIO2', desc: 'DFT strap signal.' }, - { name: 'dft1', pad: 'MIO3', desc: 'DFT strap signal.' }, - // JTAG - { name: 'tck', pad: 'MIO4', desc: 'JTAG tck signal.' }, - { name: 'tms', pad: 'MIO5', desc: 'JTAG tms signal.' }, - { name: 'trst_n', pad: 'MIO6', desc: 'JTAG trst_n signal.' }, - { name: 'tdi', pad: 'MIO7', desc: 'JTAG tdi signal.' }, - { name: 'tdo', pad: 'MIO8', desc: 'JTAG tdo signal.' }, - ], + special_signals: [], } }, { name: 'cw310', @@ -1870,19 +1858,7 @@ }, pinmux: { - special_signals: [ - // Straps - { name: 'tap0', pad: 'MIO0', desc: 'TAP strap signal.' }, - { name: 'tap1', pad: 'MIO1', desc: 'TAP strap signal.' }, - { name: 'dft0', pad: 'MIO2', desc: 'DFT strap signal.' }, - { name: 'dft1', pad: 'MIO3', desc: 'DFT strap signal.' }, - // JTAG - { name: 'tck', pad: 'MIO4', desc: 'JTAG tck signal.' }, - { name: 'tms', pad: 'MIO5', desc: 'JTAG tms signal.' }, - { name: 'trst_n', pad: 'MIO6', desc: 'JTAG trst_n signal.' }, - { name: 'tdi', pad: 'MIO7', desc: 'JTAG tdi signal.' }, - { name: 'tdo', pad: 'MIO8', desc: 'JTAG tdo signal.' }, - ], + special_signals: [], } } ] diff --git a/hw/top_darjeeling/ip_autogen/pinmux/doc/pinout_asic.md b/hw/top_darjeeling/ip_autogen/pinmux/doc/pinout_asic.md index ed2f747bcba4e..65e2d880b713d 100644 --- a/hw/top_darjeeling/ip_autogen/pinmux/doc/pinout_asic.md +++ b/hw/top_darjeeling/ip_autogen/pinmux/doc/pinout_asic.md @@ -6,100 +6,100 @@ util/topgen.py -t hw/top_darjeeling/data/top_darjeeling.hjson -o hw/top_darjeeli --> ## Pinout Table -|
Pad Name
|Type
|Bank
|Connection
|Special Function
|Pinmux Insel Constant / Muxed Output Index
|Description
| -|:-------------------------------------------------:|:------------------------------------------:|:---------------------------------------:|:---------------------------------------------:|:---------------------------------------------------:|:-------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------:| -|POR_N
|InputStd
|VIO
|manual
|-
|- / -
|System reset
| -|JTAG_TCK
|InputStd
|VIO
|manual
|-
|- / -
|JTAG TCK signal
| -|JTAG_TMS
|InputStd
|VIO
|manual
|-
|- / -
|JTAG TMS signal
| -|JTAG_TDI
|InputStd
|VIO
|manual
|-
|- / -
|JTAG TDI signal
| -|JTAG_TDO
|BidirStd
|VIO
|manual
|-
|- / -
|JTAG TDO signal
| -|JTAG_TRST_N
|InputStd
|VIO
|manual
|-
|- / -
|JTAG TRST_N signal
| -|OTP_EXT_VOLT
|AnalogIn1
|VIO
|manual
|-
|- / -
|OTP external voltage input
| -|SPI_HOST_D0
|BidirStd
|VIO
|direct
|-
|- / -
|SPI host data
| -|SPI_HOST_D1
|BidirStd
|VIO
|direct
|-
|- / -
|SPI host data
| -|SPI_HOST_D2
|BidirStd
|VIO
|direct
|-
|- / -
|SPI host data
| -|SPI_HOST_D3
|BidirStd
|VIO
|direct
|-
|- / -
|SPI host data
| -|SPI_HOST_CLK
|BidirStd
|VIO
|direct
|-
|- / -
|SPI host clock
| -|SPI_HOST_CS_L
|BidirStd
|VIO
|direct
|-
|- / -
|SPI host chip select
| -|SPI_DEV_D0
|BidirStd
|VIO
|direct
|-
|- / -
|SPI device data
| -|SPI_DEV_D1
|BidirStd
|VIO
|direct
|-
|- / -
|SPI device data
| -|SPI_DEV_D2
|BidirStd
|VIO
|direct
|-
|- / -
|SPI device data
| -|SPI_DEV_D3
|BidirStd
|VIO
|direct
|-
|- / -
|SPI device data
| -|SPI_DEV_CLK
|InputStd
|VIO
|direct
|-
|- / -
|SPI device clock
| -|SPI_DEV_CS_L
|InputStd
|VIO
|direct
|-
|- / -
|SPI device chip select
| -|SPI_DEV_TPM_CS_L
|InputStd
|VIO
|direct
|-
|- / -
|SPI device TPM chip select
| -|UART_RX
|InputStd
|VIO
|direct
|-
|- / -
|UART receive
| -|UART_TX
|BidirStd
|VIO
|direct
|-
|- / -
|UART transmit
| -|I2C_SCL
|BidirStd
|VIO
|direct
|-
|- / -
|I2C clock
| -|I2C_SDA
|BidirStd
|VIO
|direct
|-
|- / -
|I2C data
| -|GPIO0
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO1
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO2
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO3
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO4
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO5
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO6
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO7
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO8
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO9
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO10
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO11
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO12
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO13
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO14
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO15
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO16
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO17
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO18
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO19
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO20
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO21
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO22
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO23
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO24
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO25
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO26
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO27
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO28
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO29
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO30
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|GPIO31
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| -|SOC_GPI0
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| -|SOC_GPI1
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| -|SOC_GPI2
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| -|SOC_GPI3
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| -|SOC_GPI4
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| -|SOC_GPI5
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| -|SOC_GPI6
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| -|SOC_GPI7
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| -|SOC_GPI8
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| -|SOC_GPI9
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| -|SOC_GPI10
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| -|SOC_GPI11
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| -|SOC_GPO0
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| -|SOC_GPO1
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| -|SOC_GPO2
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| -|SOC_GPO3
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| -|SOC_GPO4
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| -|SOC_GPO5
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| -|SOC_GPO6
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| -|SOC_GPO7
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| -|SOC_GPO8
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| -|SOC_GPO9
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| -|SOC_GPO10
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| -|SOC_GPO11
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| -|MIO0
|BidirStd
|VIO
|muxed
|tap0
|kTopDarjeelingPinmuxInselMio0 / kTopDarjeelingPinmuxMioOutMio0
|Muxed IO pad / TAP strap signal.
| -|MIO1
|BidirStd
|VIO
|muxed
|tap1
|kTopDarjeelingPinmuxInselMio1 / kTopDarjeelingPinmuxMioOutMio1
|Muxed IO pad / TAP strap signal.
| -|MIO2
|BidirStd
|VIO
|muxed
|dft0
|kTopDarjeelingPinmuxInselMio2 / kTopDarjeelingPinmuxMioOutMio2
|Muxed IO pad / DFT strap signal.
| -|MIO3
|BidirStd
|VIO
|muxed
|dft1
|kTopDarjeelingPinmuxInselMio3 / kTopDarjeelingPinmuxMioOutMio3
|Muxed IO pad / DFT strap signal.
| -|MIO4
|BidirStd
|VIO
|muxed
|tck
|kTopDarjeelingPinmuxInselMio4 / kTopDarjeelingPinmuxMioOutMio4
|Muxed IO pad / JTAG tck signal.
| -|MIO5
|BidirStd
|VIO
|muxed
|tms
|kTopDarjeelingPinmuxInselMio5 / kTopDarjeelingPinmuxMioOutMio5
|Muxed IO pad / JTAG tms signal.
| -|MIO6
|BidirStd
|VIO
|muxed
|trst_n
|kTopDarjeelingPinmuxInselMio6 / kTopDarjeelingPinmuxMioOutMio6
|Muxed IO pad / JTAG trst_n signal.
| -|MIO7
|BidirStd
|VIO
|muxed
|tdi
|kTopDarjeelingPinmuxInselMio7 / kTopDarjeelingPinmuxMioOutMio7
|Muxed IO pad / JTAG tdi signal.
| -|MIO8
|BidirStd
|VIO
|muxed
|tdo
|kTopDarjeelingPinmuxInselMio8 / kTopDarjeelingPinmuxMioOutMio8
|Muxed IO pad / JTAG tdo signal.
| -|MIO9
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio9 / kTopDarjeelingPinmuxMioOutMio9
|Muxed IO pad
| -|MIO10
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio10 / kTopDarjeelingPinmuxMioOutMio10
|Muxed IO pad
| -|MIO11
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio11 / kTopDarjeelingPinmuxMioOutMio11
|Muxed IO pad
| +|Pad Name
|Type
|Bank
|Connection
|Special Function
|Pinmux Insel Constant / Muxed Output Index
|Description
| +|:-------------------------------------------------:|:------------------------------------------:|:---------------------------------------:|:---------------------------------------------:|:---------------------------------------------------:|:-------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------:| +|POR_N
|InputStd
|VIO
|manual
|-
|- / -
|System reset
| +|JTAG_TCK
|InputStd
|VIO
|manual
|-
|- / -
|JTAG TCK signal
| +|JTAG_TMS
|InputStd
|VIO
|manual
|-
|- / -
|JTAG TMS signal
| +|JTAG_TDI
|InputStd
|VIO
|manual
|-
|- / -
|JTAG TDI signal
| +|JTAG_TDO
|BidirStd
|VIO
|manual
|-
|- / -
|JTAG TDO signal
| +|JTAG_TRST_N
|InputStd
|VIO
|manual
|-
|- / -
|JTAG TRST_N signal
| +|OTP_EXT_VOLT
|AnalogIn1
|VIO
|manual
|-
|- / -
|OTP external voltage input
| +|SPI_HOST_D0
|BidirStd
|VIO
|direct
|-
|- / -
|SPI host data
| +|SPI_HOST_D1
|BidirStd
|VIO
|direct
|-
|- / -
|SPI host data
| +|SPI_HOST_D2
|BidirStd
|VIO
|direct
|-
|- / -
|SPI host data
| +|SPI_HOST_D3
|BidirStd
|VIO
|direct
|-
|- / -
|SPI host data
| +|SPI_HOST_CLK
|BidirStd
|VIO
|direct
|-
|- / -
|SPI host clock
| +|SPI_HOST_CS_L
|BidirStd
|VIO
|direct
|-
|- / -
|SPI host chip select
| +|SPI_DEV_D0
|BidirStd
|VIO
|direct
|-
|- / -
|SPI device data
| +|SPI_DEV_D1
|BidirStd
|VIO
|direct
|-
|- / -
|SPI device data
| +|SPI_DEV_D2
|BidirStd
|VIO
|direct
|-
|- / -
|SPI device data
| +|SPI_DEV_D3
|BidirStd
|VIO
|direct
|-
|- / -
|SPI device data
| +|SPI_DEV_CLK
|InputStd
|VIO
|direct
|-
|- / -
|SPI device clock
| +|SPI_DEV_CS_L
|InputStd
|VIO
|direct
|-
|- / -
|SPI device chip select
| +|SPI_DEV_TPM_CS_L
|InputStd
|VIO
|direct
|-
|- / -
|SPI device TPM chip select
| +|UART_RX
|InputStd
|VIO
|direct
|-
|- / -
|UART receive
| +|UART_TX
|BidirStd
|VIO
|direct
|-
|- / -
|UART transmit
| +|I2C_SCL
|BidirStd
|VIO
|direct
|-
|- / -
|I2C clock
| +|I2C_SDA
|BidirStd
|VIO
|direct
|-
|- / -
|I2C data
| +|GPIO0
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO1
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO2
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO3
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO4
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO5
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO6
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO7
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO8
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO9
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO10
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO11
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO12
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO13
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO14
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO15
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO16
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO17
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO18
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO19
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO20
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO21
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO22
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO23
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO24
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO25
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO26
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO27
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO28
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO29
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO30
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|GPIO31
|BidirStd
|VIO
|direct
|-
|- / -
|GPIO pad
| +|SOC_GPI0
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| +|SOC_GPI1
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| +|SOC_GPI2
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| +|SOC_GPI3
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| +|SOC_GPI4
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| +|SOC_GPI5
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| +|SOC_GPI6
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| +|SOC_GPI7
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| +|SOC_GPI8
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| +|SOC_GPI9
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| +|SOC_GPI10
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| +|SOC_GPI11
|InputStd
|VIO
|direct
|-
|- / -
|SoC general purpose input
| +|SOC_GPO0
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| +|SOC_GPO1
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| +|SOC_GPO2
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| +|SOC_GPO3
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| +|SOC_GPO4
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| +|SOC_GPO5
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| +|SOC_GPO6
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| +|SOC_GPO7
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| +|SOC_GPO8
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| +|SOC_GPO9
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| +|SOC_GPO10
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| +|SOC_GPO11
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| +|MIO0
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio0 / kTopDarjeelingPinmuxMioOutMio0
|Muxed IO pad
| +|MIO1
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio1 / kTopDarjeelingPinmuxMioOutMio1
|Muxed IO pad
| +|MIO2
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio2 / kTopDarjeelingPinmuxMioOutMio2
|Muxed IO pad
| +|MIO3
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio3 / kTopDarjeelingPinmuxMioOutMio3
|Muxed IO pad
| +|MIO4
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio4 / kTopDarjeelingPinmuxMioOutMio4
|Muxed IO pad
| +|MIO5
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio5 / kTopDarjeelingPinmuxMioOutMio5
|Muxed IO pad
| +|MIO6
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio6 / kTopDarjeelingPinmuxMioOutMio6
|Muxed IO pad
| +|MIO7
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio7 / kTopDarjeelingPinmuxMioOutMio7
|Muxed IO pad
| +|MIO8
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio8 / kTopDarjeelingPinmuxMioOutMio8
|Muxed IO pad
| +|MIO9
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio9 / kTopDarjeelingPinmuxMioOutMio9
|Muxed IO pad
| +|MIO10
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio10 / kTopDarjeelingPinmuxMioOutMio10
|Muxed IO pad
| +|MIO11
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio11 / kTopDarjeelingPinmuxMioOutMio11
|Muxed IO pad
| ## Pinmux Connectivity |Module / Signal
|Connection
|Pad
|Pinmux Outsel Constant / Peripheral Input Index
|Description
| diff --git a/hw/top_darjeeling/ip_autogen/pinmux/doc/pinout_cw310.md b/hw/top_darjeeling/ip_autogen/pinmux/doc/pinout_cw310.md index df7165451a4a8..76fc9a2ea394d 100644 --- a/hw/top_darjeeling/ip_autogen/pinmux/doc/pinout_cw310.md +++ b/hw/top_darjeeling/ip_autogen/pinmux/doc/pinout_cw310.md @@ -87,15 +87,15 @@ util/topgen.py -t hw/top_darjeeling/data/top_darjeeling.hjson -o hw/top_darjeeli |SOC_GPO9
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| |SOC_GPO10
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| |SOC_GPO11
|BidirStd
|VIO
|direct
|-
|- / -
|SoC general purpose output
| -|MIO0
|BidirStd
|VIO
|muxed
|tap0
|kTopDarjeelingPinmuxInselMio0 / kTopDarjeelingPinmuxMioOutMio0
|Muxed IO pad / TAP strap signal.
| -|MIO1
|BidirStd
|VIO
|muxed
|tap1
|kTopDarjeelingPinmuxInselMio1 / kTopDarjeelingPinmuxMioOutMio1
|Muxed IO pad / TAP strap signal.
| -|MIO2
|BidirStd
|VIO
|muxed
|dft0
|kTopDarjeelingPinmuxInselMio2 / kTopDarjeelingPinmuxMioOutMio2
|Muxed IO pad / DFT strap signal.
| -|MIO3
|BidirStd
|VIO
|muxed
|dft1
|kTopDarjeelingPinmuxInselMio3 / kTopDarjeelingPinmuxMioOutMio3
|Muxed IO pad / DFT strap signal.
| -|MIO4
|BidirStd
|VIO
|muxed
|tck
|kTopDarjeelingPinmuxInselMio4 / kTopDarjeelingPinmuxMioOutMio4
|Muxed IO pad / JTAG tck signal.
| -|MIO5
|BidirStd
|VIO
|muxed
|tms
|kTopDarjeelingPinmuxInselMio5 / kTopDarjeelingPinmuxMioOutMio5
|Muxed IO pad / JTAG tms signal.
| -|MIO6
|BidirStd
|VIO
|muxed
|trst_n
|kTopDarjeelingPinmuxInselMio6 / kTopDarjeelingPinmuxMioOutMio6
|Muxed IO pad / JTAG trst_n signal.
| -|MIO7
|BidirStd
|VIO
|muxed
|tdi
|kTopDarjeelingPinmuxInselMio7 / kTopDarjeelingPinmuxMioOutMio7
|Muxed IO pad / JTAG tdi signal.
| -|MIO8
|BidirStd
|VIO
|muxed
|tdo
|kTopDarjeelingPinmuxInselMio8 / kTopDarjeelingPinmuxMioOutMio8
|Muxed IO pad / JTAG tdo signal.
| +|MIO0
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio0 / kTopDarjeelingPinmuxMioOutMio0
|Muxed IO pad
| +|MIO1
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio1 / kTopDarjeelingPinmuxMioOutMio1
|Muxed IO pad
| +|MIO2
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio2 / kTopDarjeelingPinmuxMioOutMio2
|Muxed IO pad
| +|MIO3
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio3 / kTopDarjeelingPinmuxMioOutMio3
|Muxed IO pad
| +|MIO4
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio4 / kTopDarjeelingPinmuxMioOutMio4
|Muxed IO pad
| +|MIO5
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio5 / kTopDarjeelingPinmuxMioOutMio5
|Muxed IO pad
| +|MIO6
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio6 / kTopDarjeelingPinmuxMioOutMio6
|Muxed IO pad
| +|MIO7
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio7 / kTopDarjeelingPinmuxMioOutMio7
|Muxed IO pad
| +|MIO8
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio8 / kTopDarjeelingPinmuxMioOutMio8
|Muxed IO pad
| |MIO9
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio9 / kTopDarjeelingPinmuxMioOutMio9
|Muxed IO pad
| |MIO10
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio10 / kTopDarjeelingPinmuxMioOutMio10
|Muxed IO pad
| |MIO11
|BidirStd
|VIO
|muxed
|-
|kTopDarjeelingPinmuxInselMio11 / kTopDarjeelingPinmuxMioOutMio11
|Muxed IO pad
| diff --git a/hw/top_darjeeling/ip_autogen/pinmux/fpv/tb/pinmux_chip_tb.sv b/hw/top_darjeeling/ip_autogen/pinmux/fpv/tb/pinmux_chip_tb.sv index f76f2378f5e3b..c3d5792c7f5f7 100644 --- a/hw/top_darjeeling/ip_autogen/pinmux/fpv/tb/pinmux_chip_tb.sv +++ b/hw/top_darjeeling/ip_autogen/pinmux/fpv/tb/pinmux_chip_tb.sv @@ -46,10 +46,6 @@ module pinmux_chip_tb // Copied from chip_darjeeling_asic.sv // TODO: find a better way to automatically generate this FPV testbench via topgen/ipgen. - localparam int Tap0PadIdx = 30; - localparam int Tap1PadIdx = 27; - localparam int Dft0PadIdx = 25; - localparam int Dft1PadIdx = 26; localparam int TckPadIdx = 38; localparam int TmsPadIdx = 35; localparam int TrstNPadIdx = 39; @@ -57,19 +53,6 @@ module pinmux_chip_tb localparam int TdoPadIdx = 36; // DFT and Debug signal positions in the pinout. localparam pinmux_pkg::target_cfg_t PinmuxTargetCfg = '{ - tck_idx: TckPadIdx, - tms_idx: TmsPadIdx, - trst_idx: TrstNPadIdx, - tdi_idx: TdiPadIdx, - tdo_idx: TdoPadIdx, - tap_strap0_idx: Tap0PadIdx, - tap_strap1_idx: Tap1PadIdx, - dft_strap0_idx: Dft0PadIdx, - dft_strap1_idx: Dft1PadIdx, - // TODO: check whether there is a better way to pass these USB-specific params - usb_dp_idx: DioUsbdevUsbDp, - usb_dn_idx: DioUsbdevUsbDn, - usb_sense_idx: MioInUsbdevSense, // Pad types for attribute WARL behavior dio_pad_type: { BidirStd, // DIO spi_host0_csb diff --git a/hw/top_darjeeling/ip_autogen/pinmux/fpv/tb/pinmux_tb.sv b/hw/top_darjeeling/ip_autogen/pinmux/fpv/tb/pinmux_tb.sv index 9e4ce306f1425..dd74e96f5ea8c 100644 --- a/hw/top_darjeeling/ip_autogen/pinmux/fpv/tb/pinmux_tb.sv +++ b/hw/top_darjeeling/ip_autogen/pinmux/fpv/tb/pinmux_tb.sv @@ -10,17 +10,6 @@ module pinmux_tb import pinmux_reg_pkg::*; import prim_pad_wrapper_pkg::*; #( - parameter int Tap0PadIdx = 0, - parameter int Tap1PadIdx = 1, - parameter int Dft0PadIdx = 2, - parameter int Dft1PadIdx = 3, - parameter int TckPadIdx = 4, - parameter int TmsPadIdx = 5, - parameter int TrstNPadIdx = 6, - parameter int TdiPadIdx = 7, - parameter int TdoPadIdx = 8, - parameter int DioUsbdevDp = 9, - parameter int DioUsbdevDn = 10, parameter int MioInUsbdevSense = 11, parameter logic [NumAlerts-1:0] AlertAsyncOn = {NumAlerts{1'b1}}, parameter bit SecVolatileRawUnlockEn = 1 @@ -54,18 +43,6 @@ module pinmux_tb ); localparam pinmux_pkg::target_cfg_t PinmuxTargetCfg = '{ - tck_idx: TckPadIdx, - tms_idx: TmsPadIdx, - trst_idx: TrstNPadIdx, - tdi_idx: TdiPadIdx, - tdo_idx: TdoPadIdx, - tap_strap0_idx: Tap0PadIdx, - tap_strap1_idx: Tap1PadIdx, - dft_strap0_idx: Dft0PadIdx, - dft_strap1_idx: Dft1PadIdx, - usb_dp_idx: DioUsbdevDp, - usb_dn_idx: DioUsbdevDn, - usb_sense_idx: MioInUsbdevSense, // Pad types for attribute WARL behavior dio_pad_type: {NDioPads{BidirStd}}, mio_pad_type: {NMioPads{BidirStd}}, diff --git a/hw/top_darjeeling/ip_autogen/pinmux/rtl/pinmux.sv b/hw/top_darjeeling/ip_autogen/pinmux/rtl/pinmux.sv index 93722d146f9d1..c23fa9bab05b9 100644 --- a/hw/top_darjeeling/ip_autogen/pinmux/rtl/pinmux.sv +++ b/hw/top_darjeeling/ip_autogen/pinmux/rtl/pinmux.sv @@ -115,17 +115,7 @@ module pinmux always_ff @(posedge clk_i or negedge rst_ni) begin : p_regs if (!rst_ni) begin dio_pad_attr_q <= '0; - for (int kk = 0; kk < NMioPads; kk++) begin - if (kk == TargetCfg.tap_strap0_idx) begin - // TAP strap 0 is sampled after reset (and only once for life cycle states that are not - // TEST_UNLOCKED* or RMA). To ensure it gets sampled as 0 unless driven to 1 from an - // external source (and specifically that it gets sampled as 0 when left floating / not - // connected), this enables the pull-down of the pad at reset. - mio_pad_attr_q[kk] <= '{pull_en: 1'b1, default: '0}; - end else begin - mio_pad_attr_q[kk] <= '0; - end - end + mio_pad_attr_q <= '0; end else begin // dedicated pads for (int kk = 0; kk < NDioPads; kk++) begin diff --git a/hw/top_darjeeling/ip_autogen/pinmux/rtl/pinmux_pkg.sv b/hw/top_darjeeling/ip_autogen/pinmux/rtl/pinmux_pkg.sv index d2df26f6c0c8a..a365fc3bbee2e 100644 --- a/hw/top_darjeeling/ip_autogen/pinmux/rtl/pinmux_pkg.sv +++ b/hw/top_darjeeling/ip_autogen/pinmux/rtl/pinmux_pkg.sv @@ -16,18 +16,6 @@ package pinmux_pkg; // datastructure below serves this purpose. Note that all the indices below are with respect to // the concatenated {DIO, MIO} packed array. typedef struct packed { - integer tck_idx; - integer tms_idx; - integer trst_idx; - integer tdi_idx; - integer tdo_idx; - integer tap_strap0_idx; - integer tap_strap1_idx; - integer dft_strap0_idx; - integer dft_strap1_idx; - integer usb_dp_idx; - integer usb_dn_idx; - integer usb_sense_idx; pad_type_e [NDioPads-1:0] dio_pad_type; pad_type_e [NMioPads-1:0] mio_pad_type; scan_role_e [NDioPads-1:0] dio_scan_role; @@ -35,18 +23,6 @@ package pinmux_pkg; } target_cfg_t; parameter target_cfg_t DefaultTargetCfg = '{ - tck_idx: 0, - tms_idx: 0, - trst_idx: 0, - tdi_idx: 0, - tdo_idx: 0, - tap_strap0_idx: 0, - tap_strap1_idx: 0, - dft_strap0_idx: 0, - dft_strap1_idx: 0, - usb_dp_idx: 0, - usb_dn_idx: 0, - usb_sense_idx: 0, dio_pad_type: {NDioPads{BidirStd}}, mio_pad_type: {NMioPads{BidirStd}}, dio_scan_role: {NDioPads{NoScan}}, diff --git a/hw/top_darjeeling/rtl/autogen/chip_darjeeling_asic.sv b/hw/top_darjeeling/rtl/autogen/chip_darjeeling_asic.sv index 45e8afc9364bc..012924aa6ae29 100644 --- a/hw/top_darjeeling/rtl/autogen/chip_darjeeling_asic.sv +++ b/hw/top_darjeeling/rtl/autogen/chip_darjeeling_asic.sv @@ -113,38 +113,9 @@ module chip_darjeeling_asic #( import top_darjeeling_pkg::*; import prim_pad_wrapper_pkg::*; - //////////////////////////// - // Special Signal Indices // - //////////////////////////// - - localparam int Tap0PadIdx = 0; - localparam int Tap1PadIdx = 1; - localparam int Dft0PadIdx = 2; - localparam int Dft1PadIdx = 3; - localparam int TckPadIdx = 4; - localparam int TmsPadIdx = 5; - localparam int TrstNPadIdx = 6; - localparam int TdiPadIdx = 7; - localparam int TdoPadIdx = 8; // DFT and Debug signal positions in the pinout. localparam pinmux_pkg::target_cfg_t PinmuxTargetCfg = '{ - tck_idx: TckPadIdx, - tms_idx: TmsPadIdx, - trst_idx: TrstNPadIdx, - tdi_idx: TdiPadIdx, - tdo_idx: TdoPadIdx, - tap_strap0_idx: Tap0PadIdx, - tap_strap1_idx: Tap1PadIdx, - dft_strap0_idx: Dft0PadIdx, - dft_strap1_idx: Dft1PadIdx, - // TODO: check whether there is a better way to pass these USB-specific params - // The use of these indexes is gated behind a parameter, but to synthesize they - // need to exist even if the code-path is never used (pinmux.sv:UsbWkupModuleEn). - // Hence, set to zero. - usb_dp_idx: 0, - usb_dn_idx: 0, - usb_sense_idx: 0, // Pad types for attribute WARL behavior dio_pad_type: { BidirStd, // DIO soc_proxy_soc_gpo diff --git a/hw/top_darjeeling/rtl/autogen/chip_darjeeling_cw310.sv b/hw/top_darjeeling/rtl/autogen/chip_darjeeling_cw310.sv index 842b8add39690..9c8330c849560 100644 --- a/hw/top_darjeeling/rtl/autogen/chip_darjeeling_cw310.sv +++ b/hw/top_darjeeling/rtl/autogen/chip_darjeeling_cw310.sv @@ -120,38 +120,9 @@ module chip_darjeeling_cw310 #( import top_darjeeling_pkg::*; import prim_pad_wrapper_pkg::*; - //////////////////////////// - // Special Signal Indices // - //////////////////////////// - - localparam int Tap0PadIdx = 0; - localparam int Tap1PadIdx = 1; - localparam int Dft0PadIdx = 2; - localparam int Dft1PadIdx = 3; - localparam int TckPadIdx = 4; - localparam int TmsPadIdx = 5; - localparam int TrstNPadIdx = 6; - localparam int TdiPadIdx = 7; - localparam int TdoPadIdx = 8; // DFT and Debug signal positions in the pinout. localparam pinmux_pkg::target_cfg_t PinmuxTargetCfg = '{ - tck_idx: TckPadIdx, - tms_idx: TmsPadIdx, - trst_idx: TrstNPadIdx, - tdi_idx: TdiPadIdx, - tdo_idx: TdoPadIdx, - tap_strap0_idx: Tap0PadIdx, - tap_strap1_idx: Tap1PadIdx, - dft_strap0_idx: Dft0PadIdx, - dft_strap1_idx: Dft1PadIdx, - // TODO: check whether there is a better way to pass these USB-specific params - // The use of these indexes is gated behind a parameter, but to synthesize they - // need to exist even if the code-path is never used (pinmux.sv:UsbWkupModuleEn). - // Hence, set to zero. - usb_dp_idx: 0, - usb_dn_idx: 0, - usb_sense_idx: 0, // Pad types for attribute WARL behavior dio_pad_type: { BidirStd, // DIO soc_proxy_soc_gpo diff --git a/hw/top_darjeeling/rtl/chip_darjeeling_verilator.sv b/hw/top_darjeeling/rtl/chip_darjeeling_verilator.sv index d077ce17336b1..4f870e4c37767 100644 --- a/hw/top_darjeeling/rtl/chip_darjeeling_verilator.sv +++ b/hw/top_darjeeling/rtl/chip_darjeeling_verilator.sv @@ -33,38 +33,8 @@ module chip_darjeeling_verilator #( import top_darjeeling_pkg::*; import prim_pad_wrapper_pkg::*; - //////////////////////////// - // Special Signal Indices // - //////////////////////////// - - localparam int Tap0PadIdx = 0; - localparam int Tap1PadIdx = 1; - localparam int Dft0PadIdx = 2; - localparam int Dft1PadIdx = 3; - localparam int TckPadIdx = 4; - localparam int TmsPadIdx = 5; - localparam int TrstNPadIdx = 6; - localparam int TdiPadIdx = 7; - localparam int TdoPadIdx = 8; - // DFT and Debug signal positions in the pinout. localparam pinmux_pkg::target_cfg_t PinmuxTargetCfg = '{ - tck_idx: TckPadIdx, - tms_idx: TmsPadIdx, - trst_idx: TrstNPadIdx, - tdi_idx: TdiPadIdx, - tdo_idx: TdoPadIdx, - tap_strap0_idx: Tap0PadIdx, - tap_strap1_idx: Tap1PadIdx, - dft_strap0_idx: Dft0PadIdx, - dft_strap1_idx: Dft1PadIdx, - // TODO: check whether there is a better way to pass these USB-specific params - // The use of these indexes is gated behind a parameter, but to synthesize they - // need to exist even if the code-path is never used (pinmux.sv:UsbWkupModuleEn). - // Hence, set to zero. - usb_dp_idx: 0, - usb_dn_idx: 0, - usb_sense_idx: 0, // Pad types for attribute WARL behavior dio_pad_type: { BidirStd, // DIO soc_proxy_soc_gpo diff --git a/hw/top_darjeeling/templates/chiplevel.sv.tpl b/hw/top_darjeeling/templates/chiplevel.sv.tpl index 7de44617f6b53..2f519023b7bc0 100644 --- a/hw/top_darjeeling/templates/chiplevel.sv.tpl +++ b/hw/top_darjeeling/templates/chiplevel.sv.tpl @@ -124,22 +124,6 @@ module chip_${top["name"]}_${target["name"]} #( // DFT and Debug signal positions in the pinout. localparam pinmux_pkg::target_cfg_t PinmuxTargetCfg = '{ - tck_idx: TckPadIdx, - tms_idx: TmsPadIdx, - trst_idx: TrstNPadIdx, - tdi_idx: TdiPadIdx, - tdo_idx: TdoPadIdx, - tap_strap0_idx: Tap0PadIdx, - tap_strap1_idx: Tap1PadIdx, - dft_strap0_idx: Dft0PadIdx, - dft_strap1_idx: Dft1PadIdx, - // TODO: check whether there is a better way to pass these USB-specific params - // The use of these indexes is gated behind a parameter, but to synthesize they - // need to exist even if the code-path is never used (pinmux.sv:UsbWkupModuleEn). - // Hence, set to zero. - usb_dp_idx: 0, - usb_dn_idx: 0, - usb_sense_idx: 0, // Pad types for attribute WARL behavior dio_pad_type: { <%