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: { <%