| //============================================================================================ |
| // |
| // (C) COPYRIGHT 2008-2011 SYNOPSYS, INC. |
| // ALL RIGHTS RESERVED |
| // |
| // This software and the associated documentation are confidential and |
| // proprietary to Synopsys, Inc. Your use or disclosure of this |
| // software is subject to the terms and conditions of a written |
| // license agreement between you, or your company, and Synopsys, Inc. |
| // |
| // The entire notice above must be reproduced on all authorized copies. |
| // |
| // Filename : DWC_usb3_params.v |
| // Author : S.Arvind |
| // Release version : 1.85a |
| // Date : $Date: 2011/05/30 07:17:15 $ |
| // File Version : $Revision: 1.1 $ |
| // Description : USB3 Core Parameters |
| // |
| // Modification History: |
| // Date By Version Change Description |
| //============================================================================= |
| // 07/03/07 SA 1.0 Initial Release |
| //============================================================================= |
| |
| |
| |
| /************* Basic Configuration Parameters ************/ |
| |
| |
| // Name: DWC_USB3_MODE |
| // Default: Device (NPI or Non-NPI) |
| // Values: Device (NPI or Non-NPI) (0), Host (1), Device and Host (DRD) (2), |
| // Hub (3) |
| // |
| // Selects controller mode for DWC_usb3. |
| // Choice decides the value of DWC_USB3_MODE in DWC_usb3_params.v file. |
| #define DWC_USB3_MODE 2 |
| |
| |
| // Name: DWC_USB3_EN_ISOC_SUPT |
| // Default: Yes |
| // Values: No (0), Yes (1) |
| // Enabled: (DWC_USB3_MODE == 0 || DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2 || |
| // DWC_USB3_MODE == 4) |
| // |
| // Enables isochronous endpoint capability. |
| // Choice decides the value of DWC_USB3_EN_ISOC_SUPT in DWC_usb3_params.v file. |
| #define DWC_USB3_EN_ISOC_SUPT 1 |
| |
| // euse-pragma attr SymbolicNames {Non-OTG Device} |
| |
| // Name: DWC_USB3_EN_OTG |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: DWC_USB3_MODE !=3 |
| // |
| // Enables OTG capability in USB2.0 Mode. In Device only or Host only mode |
| // when OTG Capability is enabled, only SRP Capability is enabled. |
| // Choice decides the value of DWC_USB3_EN_OTG in DWC_usb3_params.v file. |
| #define DWC_USB3_EN_OTG 0 |
| |
| |
| #define DWC_USB3_EN_OTG_SS 0 |
| |
| |
| // Name: DWC_USB3_MBUS_TYPE |
| // Default: AHB |
| // Values: AHB (0), AXI (1), Reserved2 (2), Native (3), Non Processor |
| // Interface (NPI) (4) |
| // Enabled: DWC_USB3_MODE !=3 |
| // |
| // Selects the SoC Master Bus interface type. The Master bus is used for DMA. |
| // If your SoC is AHB-based, or if you have an AHB to your |
| // SoC bus bridge, select AHB. |
| // If your SoC is AXI-based, or if you have an AXI to your |
| // SoC bus bridge, select AXI. |
| // If your SoC is Non-Processor based, then select NPI. |
| // Otherwise, select the Native bus interface, and design a |
| // bridge from DWC_usb3's Native interface to your SoC bus. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_MBUS_TYPE in DWC_usb3_params.v file. |
| #define DWC_USB3_MBUS_TYPE 1 |
| |
| |
| // Name: DWC_USB3_SBUS_TYPE |
| // Default: AHB |
| // Values: AHB (0), AXI (1), Reserved2 (2), Native (3) |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Selects the SoC Slave Bus interface type. The Slave bus is used for |
| // register programming. |
| // If your SoC is AHB-based, or if you have an AHB to your |
| // SoC bus bridge, select AHB. |
| // Otherwise, select the Native bus interface, and design a |
| // bridge from DWC_usb3's Native interface to your SoC bus. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_SBUS_TYPE in DWC_usb3_params.v file. |
| #define DWC_USB3_SBUS_TYPE 1 |
| |
| |
| // Name: DWC_USB3_MDWIDTH |
| // Default: 64 bits |
| // Values: 32 bits (32), 33 bits (33), 64 bits (64), 128 bits (128) |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Selects data bus width of the Master Bus interface. |
| // For more information, see the databook's "Hardware Integration" |
| // chapter. 33-bit is used only for Hub configuration. |
| // Choice decides the value of DWC_USB3_MDWIDTH in DWC_usb3_params.v file. |
| #define DWC_USB3_MDWIDTH 64 |
| |
| |
| #define DWC_USB3_MDWIDTH_BYTESHFT 3 |
| |
| #define DWC_USB3_MADDR_LO 3 |
| |
| #define DWC_USB3_MDWORDS 2 |
| |
| #define DWC_USB3_MBYTES 8 |
| |
| |
| // Name: DWC_USB3_SDWIDTH |
| // Default: 32 bits |
| // Values: 32 bits (32), 64 bits (64), 128 bits (128) |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Selects the data bus width of the Slave Bus interface. |
| // Note: The slave data bus width must not be larger than the |
| // master data bus width. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_SDWIDTH in DWC_usb3_params.v file. |
| #define DWC_USB3_SDWIDTH 32 |
| |
| |
| // Name: DWC_USB3_AWIDTH |
| // Default: 32 bits |
| // Values: 32 bits (32), 64 bits (64) |
| // Enabled: DWC_USB3_MODE !=3 |
| // |
| // Selects the address bus width of the master and slave interfaces. |
| // If your system address width is 32 bits, then select 32 bits; |
| // if your address bus width is 64 bits, then select 64 bits. |
| // The address width is common for both master and slave interface; |
| // and should be set to meet the DMA master interface requirement. |
| // The slave interface uses only address bits [19:0] others are don't care. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_AWIDTH in DWC_usb3_params.v file. |
| #define DWC_USB3_AWIDTH 32 |
| |
| |
| // Name: DWC_USB3_IDWIDTH |
| // Default: 4 |
| // Values: 1 2 3 4 5 6 7 8 |
| // Enabled: (DWC_USB3_MBUS_TYPE!=0 && DWC_USB3_MODE !=3 && |
| // DWC_USB3_MBUS_TYPE!=4) |
| // |
| // Selects the ID port width of the master bus interface. AXI gate count |
| // is exponentially proportional to the width of this ID. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_IDWIDTH in DWC_usb3_params.v file. |
| #define DWC_USB3_IDWIDTH 4 |
| |
| |
| // Name: DWC_USB3_SIDWIDTH |
| // Default: 4 |
| // Values: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
| // Enabled: (DWC_USB3_SBUS_TYPE!=0 && DWC_USB3_MODE !=3 && |
| // DWC_USB3_MBUS_TYPE!=4) |
| // |
| // Selects the ID port width of the slave bus interface. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_SIDWIDTH in DWC_usb3_params.v file. |
| #define DWC_USB3_SIDWIDTH 14 |
| |
| |
| // Name: DWC_USB3_BURSTWIDTH |
| // Default: 8 |
| // Values: 1 2 3 4 5 6 7 8 |
| // Enabled: ((DWC_USB3_MBUS_TYPE!=0 || DWC_USB3_SBUS_TYPE!=0) && DWC_USB3_MODE |
| // !=3 && DWC_USB3_MBUS_TYPE!=4) |
| // |
| // Selects the Burst port width of the master and slave bus |
| // interfaces. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_BURSTWIDTH in DWC_usb3_params.v file. |
| #define DWC_USB3_BURSTWIDTH 8 |
| |
| |
| // Name: DWC_USB3_DATAINFOWIDTH |
| // Default: 4 |
| // Values: 1 2 3 4 5 6 |
| // Enabled: ((DWC_USB3_MBUS_TYPE!=0 || DWC_USB3_SBUS_TYPE!=0) && DWC_USB3_MODE |
| // !=3 && DWC_USB3_MBUS_TYPE!=4) |
| // |
| // Selects the Data Info port width of the master and slave bus |
| // interfaces. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_DATAINFOWIDTH in DWC_usb3_params.v file. |
| #define DWC_USB3_DATAINFOWIDTH 4 |
| |
| |
| // Name: DWC_USB3_REQINFOWIDTH |
| // Default: 4 |
| // Values: 1 2 3 4 5 6 |
| // Enabled: ((DWC_USB3_MBUS_TYPE!=0 || DWC_USB3_SBUS_TYPE!=0) && DWC_USB3_MODE |
| // !=3 && DWC_USB3_MBUS_TYPE!=4) |
| // |
| // Selects the Request/Response Info port width of the master |
| // and slave bus interfaces. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_REQINFOWIDTH in DWC_usb3_params.v file. |
| #define DWC_USB3_REQINFOWIDTH 4 |
| |
| |
| // Name: DWC_USB3_ASPACEWIDTH |
| // Default: 4 |
| // Values: 1 2 3 4 5 6 |
| // Enabled: ((DWC_USB3_MBUS_TYPE!=0 || DWC_USB3_SBUS_TYPE!=0) && DWC_USB3_MODE |
| // !=3 && DWC_USB3_MBUS_TYPE!=4) |
| // |
| // Selects the Address Space port width of the master and |
| // slave bus interfaces. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_ASPACEWIDTH in DWC_usb3_params.v file. |
| #define DWC_USB3_ASPACEWIDTH 4 |
| |
| |
| #define DWC_USB3_ATOMICWIDTH 4 |
| |
| #define DWC_USB3_MISCWIDTH 4 |
| |
| |
| // Name: DWC_USB3_NUM_OUTSTANDING_TXDMA |
| // Default: 1 |
| // Values: 1 2 |
| // Enabled: DWC_USB3_MODE !=3 && (DWC_USB3_MBUS_TYPE==1 || |
| // DWC_USB3_MBUS_TYPE==3) |
| // |
| // Selects the maximum number of master DMA packet read requests (1KB) the core can issue |
| // on the native bus at a given time. In AHB it is fixed to 1 since AHB does not support multiple outstanding requests |
| // and the burst size are much smaller than 1KB. |
| // This provides performance when designing gaskets for higher latency and larger burst-size buses like PCIe. |
| // Choice decides the value of DWC_USB3_NUM_OUTSTANDING_TXDMA in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_OUTSTANDING_TXDMA 2 |
| |
| |
| // Name: DWC_USB3_NUM_RAMS |
| // Default: 3 |
| // Values: 1 2 3 |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Selects the number of RAMs. |
| // Minimal Configuration Recommendations: |
| // SuperSpeed device and single port host require 2 or 3 RAMs (3 recommended): |
| // RAM0 for registers, descriptor cache, and Rx-buffering; and RAM1 for Tx prefetch. |
| // |
| // SuperSpeed multi-port host requires 2 or 3 RAMs (3 recommended): |
| // RAM0 for registers, descriptor cache; RAM1 for Tx prefetch; and RAM2 for Rx-buffering. |
| // |
| // High-Speed device and host requires 1 RAM (USB 2.0 needs less bandwidth): |
| // RAM0 for registers, descriptor cache, Rx buffering, and Tx prefetch. |
| // |
| // Hub requires 2 dual-port RAMs. |
| // |
| // For SuperSpeed device and host, three 2-Port rams provide the best compromise between |
| // performance, lower clock frequency, and area. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_NUM_RAMS in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_RAMS 2 |
| |
| |
| // Name: DWC_USB3_SPRAM_TYP |
| // Default: 2-Port RAM |
| // Values: 2-Port RAM (0), Single-Port RAM (SPRAM) (1) |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Selects the FIFO Synchronous Static RAM type: |
| // 2-Port (1 port read, 1 port write) or Single-Port (SPRAM). |
| // Select 2-port RAM for performance-sensitive applications |
| // or if your system bus frequency is low (e.g., below 66 MHz). |
| // Select single-port RAM for area-sensitive applications. |
| // Depending on your memory compiler and RAM size, the |
| // area of a true dual-port RAM is 1.2-1.8 times larger than |
| // a single-port RAM of the same RAM size. The 2-port RAMs are |
| // normally a little larger than SPRAM but much smaller than DPRAM. |
| // When SPRAM is selected, the same port is shared by both |
| // the MAC and AHB. The MAC has priority over the AHB, so |
| // busy cycles are inserted on the AHB Master interface |
| // during simultaneous MAC and AHB accesses to the RAM. |
| // For SuperSpeed device and host, three 2-Port RAMs provides the best compromise between |
| // performance, lower clock frequency, and area. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_SPRAM_TYP in DWC_usb3_params.v file. |
| #define DWC_USB3_SPRAM_TYP 0 |
| |
| |
| // Name: DWC_USB3_EN_PWROPT |
| // Default: No Power Optimization |
| // Values: No Power Optimization (0), Clock Gating Only (1), Reserved1 (2) |
| // Enabled: DWC_USB3_MODE ==0 && DWC_USB3_MBUS_TYPE !=4 |
| // |
| // Specifies the power optimization mode. |
| // If Clock Gating Only is selected, RAM and PHY clocks are gated |
| // when the core is inactive during U1, U2, or U3 states. |
| // If Two Power Rails Support is selected, in addition to clock |
| // gating, most of the core can be be powered down to minimize |
| // power leakage during U2 or U3 states. Only a small portion of |
| // the core is active to check for the wakeup. Also, isolation |
| // power clamps are instantiated on the ports from the power-down |
| // module to always ON modules. During synthesis, you can map these |
| // modules to your library-specific cells. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_EN_PWROPT in DWC_usb3_params.v file. |
| #define DWC_USB3_EN_PWROPT 0 |
| |
| |
| #define DWC_USB3_EN_PWROPT_N 1 |
| |
| |
| // Name: DWC_USB3_MAC_PHY_CLKS_SYNC |
| // Default: No |
| // Values: No (0), Yes (1) |
| // |
| // Specifies whether the MAC clock and the PHY clock are |
| // synchronous to each other. If they are not synchronous, |
| // clock-domain-crossing synchronizers are instantiated |
| // between them and false paths are set between the two clocks |
| // are in synthesis. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_MAC_PHY_CLKS_SYNC in DWC_usb3_params.v file. |
| #define DWC_USB3_MAC_PHY_CLKS_SYNC 0 |
| |
| |
| #define DWC_USB3_MAC3_BUS_CLKS_SYNC 0 |
| |
| |
| // Name: DWC_USB3_MAC_RAM_CLKS_SYNC |
| // Default: No |
| // Values: No (0), Yes (1) |
| // |
| // Specifies whether the MAC clock and the RAM clock are |
| // synchronous to each other. If they are not synchronous, |
| // clock-domain-crossing synchronizers are instantiated |
| // between them and false paths are set between the two |
| // clocks in synthesis. Because the MAC clock is used for |
| // packet timing calculations, this clock must be fixed |
| // at a frequency equal to or greater than the PHY clock |
| // frequency, which is nominally 66 MHz. This solution |
| // is recommended when you do not want to connect the PHY clock |
| // to the MAC clock in order to avoid using a PLL to generate |
| // a 2x MAC clock. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_MAC_RAM_CLKS_SYNC in DWC_usb3_params.v file. |
| #define DWC_USB3_MAC_RAM_CLKS_SYNC 0 |
| |
| |
| // Name: DWC_USB3_RAM_BUS_CLKS_SYNC |
| // Default: No |
| // Values: No (0), Yes (1) |
| // |
| // Specifies whether the RAM clock and the Bus clock are |
| // synchronous to each other. If they are not synchronous, |
| // clock-domain-crossing synchronizers are instantiated |
| // between them and false paths are set between the two |
| // clocks in synthesis. Because the MAC clock is used for |
| // packet timing calculations, this clock must be fixed at |
| // a frequency equal to or greater than the PHY clock frequency, |
| // which is nominally 66 MHz. This solution is recommended when |
| // when you do not want to connect the PHY clock to the MAC clock |
| // in order to avoid using a PLL to generate a 2x MAC clock. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_RAM_BUS_CLKS_SYNC in DWC_usb3_params.v file. |
| #define DWC_USB3_RAM_BUS_CLKS_SYNC 0 |
| |
| |
| // Name: DWC_USB3_SYNC_RST |
| // Default: Asynchronous |
| // Values: Asynchronous (0), Synchronous (1) |
| // |
| // Specifies either asynchronous or synchronous reset coding |
| // style for all clocked always blocks in the RTL. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Synchronous reset mode is not HW tested. |
| // Choice decides the value of DWC_USB3_SYNC_RST in DWC_usb3_params.v file. |
| #define DWC_USB3_SYNC_RST 0 |
| |
| |
| // Name: DWC_USB3_RM_OPT_FEATURES |
| // Default: No |
| // Values: No (0), Yes (1) |
| // |
| // Specifies whether to remove optional features. When this |
| // parameter is enabled, the User ID register, General Purpose |
| // Input/Output ports, and SOF toggle and counter ports are |
| // removed to reduce area by 0.6K gates. The SOF toggle and |
| // counter ports are required if you plan to use the DWC_usb3 |
| // in a Device Wire Adapter (DWA) design where the SOF count |
| // value is used to synchronize the USB 2.0 host controller |
| // SOF timer in the DWA. |
| // Choice decides the value of DWC_USB3_RM_OPT_FEATURES in DWC_usb3_params.v file. |
| #define DWC_USB3_RM_OPT_FEATURES 0 |
| |
| |
| // Name: DWC_USB3_USERID |
| // Default: 0x12345678 |
| // Values: 0x0, ..., 0xffffffff |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the Global User ID (GUID) register's power-on |
| // initialization value. After power-up, the software can change |
| // this value. This register can be used as either a scratch |
| // pad or identification register. |
| // For more information, see the databook's "Control and Status |
| // Registers" chapter. |
| // Choice decides the value of DWC_USB3_USERID in DWC_usb3_params.v file. |
| #define DWC_USB3_USERID 32'h12345678 |
| |
| |
| // Name: DWC_USB3_GUCTL |
| // Default: 0x8010 |
| // Values: 0x0, ..., 0xffffffff |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specified the global User Specific Control Register's power-on |
| // initialization value. After power-up, the software can change |
| // this value. |
| // For more information, see the databook's "Control and Status |
| // Registers" chapter. |
| // Choice decides the value of DWC_USB3_USERID in DWC_usb3_params.v file. |
| #define DWC_USB3_GUCTL 32'h8010 |
| |
| |
| // Name: DWC_USB3_CSR_RAL_BASE_ADDR_VERIF_ONLY |
| // Default: 0x100000 |
| // Values: 0x0, ..., 0xffffffff |
| // |
| // change to allow CSR to be remapped |
| #define DWC_USB3_CSR_RAL_BASE_ADDR_VERIF_ONLY 64'h100000 |
| |
| /********** PHY Specific Parameters ***********/ |
| |
| |
| // Name: DWC_USB3_SSPHY_INTERFACE |
| // Default: PIPE3 |
| // Values: None (0), PIPE3 (1) |
| // Enabled: 0 |
| // |
| // Specifies the SuperSpeed PHY interface. In USB 2.0 only |
| // mode, choose None. Otherwise, select the PIPE3 interface. |
| // Choice decides the value of DWC_USB3_SSPHY_INTERFACE in DWC_usb3_params.v file. |
| #define DWC_USB3_SSPHY_INTERFACE 1 |
| // euse-pragma attr Label SuperSpeed PHY Interface? |
| |
| |
| // Name: DWC_USB3_SSPHY_INTERFACE_NUM_PIPE |
| // Default: No Additional Pipeline |
| // Values: No Additional Pipeline (0), 1 stage of Additional Pipeline (1), 2 |
| // stages of Additional Pipeline (2) |
| // Enabled: DWC_USB3_SSPHY_INTERFACE ==1 |
| // |
| // Insert additional pipelines in the Rx and Tx of the PIPE interface. |
| // This may be required in the Off chip PHY interface to meet Timing on the pipe |
| // interface. In the src/pwrm/DWC_usb3_pwrm_u3piu module, the following additional pipeline register control the pipelining: |
| // phy_pipe3_rx_stage1, phy_pipe3_rx_stage2, phy_pipe3_tx_stage1, and phy_pipe3_tx_stage2. |
| // Choice decides the number of pipelines to be added. |
| #define DWC_USB3_SSPHY_INTERFACE_NUM_PIPE 0 |
| |
| // euse-pragma attr CheckExpr[@DWC_USB3_HSPHY_INTERFACE!=0] {[check_license -available DWC-USB30-SRC] || [check_license -available DWC-USB30-DEV-SRC] || [check_license -available DWC-USB30-HOST-SRC] || [check_license -available DWC-USB30] || [check_license -available DWC-USB30-DEV] || [check_license -available DWC-USB30-HOST] || [check_license -available DWC-USB30-SE-SRC] || [check_license -available DWC-USB30-SE]} |
| // euse-pragma attr CheckExprMessage[@DWC_USB3_MODE<=2] "Site does not have DWC-USB30-SRC or DWC-USB30-DEV-SRC or DWC-USB30-HOST-SRC or DWC-USB30 or DWC-USB30-DEV or DWC-USB30-HOST key" |
| //// reuse-pragma attr CheckExpr[@DWC_USB3_HSPHY_INTERFACE == 0 && (@DWC_USB3_MODE !=3 && @DWC_USB3_MODE !=4)] @DWC_USB3_SINGLE_POINT==1 |
| //// euse-pragma attr CheckExprMessage[@DWC_USB3_HSPHY_INTERFACE == 0] "Splits cannot be enabled in FS Only Mode" |
| |
| // Name: DWC_USB3_HSPHY_INTERFACE |
| // Default: UTMI+ |
| // Values: None (0), UTMI+ (1), ULPI (2), UTMI+ and ULPI (3) |
| // Enabled: DWC_USB3_MODE !=3 |
| // |
| // Specifies the High-Speed PHY interface(s). Choose both |
| // UTMI+ and ULPI if you are not sure whether a UTMI+ or |
| // ULPI off-chip PHY will be used in the product, or if you |
| // have an on-chip UTMI+ PHY and want to bring out the ULPI |
| // interface as a backup in case the on-chip PHY fails. Because |
| // the MAC connects to the UTMI+ interface, choosing an ULPI |
| // interface adds about 1.5K gates for the ULPI-to-UTMI+ |
| // conversion logic. If the UTMI+ and ULPI option is chosen, |
| // the software can select either interface. |
| // Choice decides the value of DWC_USB3_HSPHY_INTERFACE in DWC_usb3_params.v file. |
| #define DWC_USB3_HSPHY_INTERFACE 1 |
| |
| |
| #define DWC_USB3_ULPI_DDR 0 |
| |
| // euse-pragma attr CheckExpr[@DWC_USB3_HSPHY_INTERFACE != 1 && @DWC_USB3_HSPHY_INTERFACE != 3] @DWC_USB3_FSPHY_INTERFACE!=2 |
| // euse-pragma attr CheckExpr[@DWC_USB3_HSPHY_INTERFACE != 2 && @DWC_USB3_HSPHY_INTERFACE != 3] @DWC_USB3_FSPHY_INTERFACE != 3 |
| // euse-pragma attr CheckExprMessage[@DWC_USB3_HSPHY_INTERFACE!=2 && @DWC_USB3_HSPHY_INTERFACE!=3] "Since there is no ULPI Interface FS Pin sharing with ULPI is not possible" |
| // euse-pragma attr Enabled {@DWC_USB3_MODE !=3} |
| |
| // Name: DWC_USB3_FSPHY_INTERFACE |
| // Default: None |
| // Values: None (0), Dedicated FS (1), FS pins shared with UTMI+ (2), FS pins |
| // shared with ULPI (3) |
| // Enabled: 0 |
| // |
| // Specifies the USB 1.1 Full-Speed Serial Transceiver |
| // interface. You can choose dedicated USB 1.1 FS pins, |
| // or the pins can be shared with a UTMI+ or ULPI interface. |
| // Implement both an FS transceiver interface and an HS PHY |
| // interface if you want to use the same chip in FS and HS |
| // products. You can also have the FS interface as a backup in case |
| // the on-chip high-speed PHY fails. Selecting the Dedicated |
| // FS interface adds about 3.5K gates. |
| // Choice decides the value of DWC_USB3_FSPHY_INTERFACE in DWC_usb3_params.v file. |
| #define DWC_USB3_FSPHY_INTERFACE 0 |
| |
| // euse-pragma attr CheckExpr[@DWC_USB3_HSPHY_INTERFACE == 2 || @DWC_USB3_HSPHY_INTERFACE == 3] @DWC_USB3_HSPHY_DWIDTH!=1 |
| // euse-pragma attr CheckExprMessage[@DWC_USB3_HSPHY_INTERFACE == 2 || @DWC_USB3_HSPHY_INTERFACE == 3] "When Using ULPI PHY, you must choose 8-bit or 8/16-bit data width in order to meet USB turnaround time" |
| |
| // Name: DWC_USB3_HSPHY_DWIDTH |
| // Default: 8/16 bits |
| // Values: 8 bits (0), 16 bits (1), 8/16 bits (2) |
| // Enabled: DWC_USB3_MODE !=3 |
| // |
| // Specifies the data width of the UTMI+ PHY interface. |
| // Choose either 8 bits or 16 bits if your UTMI+ PHY only |
| // supports one of these. If you are not sure which PHY |
| // you will be using in your product, choose 8/16 bits |
| // (software selectable). Choosing 8 bits or 16 bits only |
| // reduces area by 0.5K gates. Running the MAC UTMI+ |
| // interface at 16 bits will consume less power because |
| // the MAC runs at 30 MHz instead of 60 MHz. When a ULPI PHY |
| // is used, an internal wrapper converts ULPI to UTMI+. Since |
| // the ULPI-to-UTMI+ wrapper adds additional delay when |
| // the ULPI PHY is selected, only 8-bit mode should be used. |
| // (To meet USB turnaround time, select either a hardware-fixed |
| // 8-bit mode using this parameter, or 8-bit mode using software |
| // when 8/16 bit mode is selected for hardware.) |
| // Choice decides the value of DWC_USB3_HSPHY_DWIDTH in DWC_usb3_params.v file. |
| #define DWC_USB3_HSPHY_DWIDTH 2 |
| |
| // use-pragma attr CheckExpr[@DWC_USB3_ENABLE_LPM!=0] {[check_license -available DWC-HSOTG-LPM] } |
| // use-pragma attr CheckExprMessage[@DWC_USB3_ENABLE_LPM!=0] "Site does not have DWC-HSOTG-LPM key" |
| |
| // Name: DWC_USB3_ENABLE_LPM |
| // Default: LPM capable Core |
| // Values: Non-LPM Capable Core (0), LPM capable Core (1) |
| // Enabled: DWC_USB3_MODE !=3 |
| // |
| // Selects the Link Power Management (LPM) mode of operation for DWC_otg. |
| // LPM Mode in device modes increases area by X-Y gates |
| // LPM Mode in host modes increases area by A-B gates |
| // Note that special license DWC-HSOTG-LPM is required to enable this feature. |
| // Choice decides the value of DWC_USB3_ENABLE_LPM in DWC_usb3_params.v file. |
| #define DWC_USB3_ENABLE_LPM 1 |
| |
| |
| // Name: DWC_USB3_ENABLE_HSIC |
| // Default: Non-HSIC Capable Core |
| // Values: Non-HSIC Capable Core (0), HSIC capable Core (1) |
| // Enabled: DWC_USB3_HSPHY_INTERFACE == 1 || DWC_USB3_HSPHY_INTERFACE == 3 |
| // |
| // Selects the High Speed Interchip (HSIC) mode of operation for DWC_usb3. |
| // HSIC Mode in device modes increases area by P-Q gates |
| // HSIC Mode in host modes increases area by C-D gates |
| // Note that special license DWC-USB30-HSIC is required to enable this feature. |
| // Choice decides the value of DWC_USB3_ENABLE_HSIC in DWC_usb3_params.v file. |
| #define DWC_USB3_ENABLE_HSIC 0 |
| |
| // euse-pragma attr Enabled @DWC_USB3_FSPHY_INTERFACE!=0 |
| // use-pragma attr CheckExpr[@DWC_USB3_ENABLE_IC_USB!=0] {[check_license -available DWC-HSOTG-FS-ICUSB] } |
| // use-pragma attr CheckExprMessage[@DWC_USB3_ENABLE_IC_USB!=0] "Site does not have DWC-HSOTG-FS-ICUSB key" |
| // euse-pragma attr Enabled {@DWC_USB3_MODE !=3} |
| |
| // Name: DWC_USB3_ENABLE_IC_USB |
| // Default: None |
| // Values: None (0), IC_USB interface (1) |
| // Enabled: 0 |
| // |
| // Specifies the IC_USB Full-Speed Serial Transceiver interface. You can |
| // choose dedicated USB 1.1 FS pins, or the IC_USB additional interface. |
| // Implement both an FS transceiver interface and an IC_USB transceiver |
| // interface if you want to use the same chip in FS and IC_USB products. |
| // Selecting the IC_USB interface adds about 400 gates. |
| // Note that special license DWC-HSOTG-FS-ICUSB is required to enable this feature. |
| // Choice decides the value of DWC_USB3_ENABLE_IC_USB in DWC_usb3_params.v file. |
| #define DWC_USB3_ENABLE_IC_USB 0 |
| |
| // euse-pragma attr Enabled {@DWC_USB3_MODE !=3} |
| |
| // Name: DWC_USB3_SELECT_IC_USB |
| // Default: FS_USB interface |
| // Values: FS_USB interface (0), IC_USB interface (1) |
| // Enabled: 0 |
| // |
| // Specifies the initial mode of the controller when IC_USB is enabled. |
| // Select IC_USB interface if controller needs to come up with IC_USB mode as default |
| // Select FS_USB interface if controller needs to come up with FS_USB mode as default |
| // Choice decides the value of DWC_USB3_SELECT_IC_USB in DWC_usb3_params.v file. |
| #define DWC_USB3_SELECT_IC_USB 0 |
| |
| |
| // Name: DWC_USB3_I2C_INTERFACE |
| // Default: No |
| // Values: No (0), I2C Only (1), I2C and UTMI+ OTG (2) |
| // Enabled: DWC_USB3_MODE !=3 |
| // |
| // Specifies whether the I2C interface is enabled. On the |
| // USB 1.1 Full-Speed Transceiver interface, I2C is required |
| // for OTG functionality and this parameter also controls |
| // which signals will be used for OTG. If enabled, I2C signals |
| // can be used for OTG control instead of, or in addition to, |
| // the UTMI+ OTG signals (software selectable). Using the I2C |
| // interface reduces the OTG pin count from 11 to 3. |
| // The I2C interface is also used for CarKit applications in OTG |
| // and non-OTG configurations. If CarKit mode is used with the FS |
| // Transceiver interface, the I2C interface must be enabled to |
| // access CarKit registers. |
| // This feature adds about 1.5K gates. |
| // Choice decides the value of DWC_USB3_I2C_INTERFACE in DWC_usb3_params.v file. |
| #define DWC_USB3_I2C_INTERFACE 0 |
| |
| |
| // Name: DWC_USB3_FAST_TAT_EN |
| // Default: UTMI Fast_TAT disabled |
| // Values: UTMI Fast_TAT disabled (0), UTMI Fast_TAT enabled (1) |
| // Enabled: (DWC_USB3_HSPHY_INTERFACE == 1 || DWC_USB3_HSPHY_INTERFACE == 3) |
| // |
| // Enable this parameter only if you require 16-bit UTMI support |
| // In multi-port mode, this parameter can be enabled only if all your USB2.0 port clocks are synchronous to each other. |
| // If your USB2.0 port clocks are asynchronous to each other, then enabling this would cause functional failures. |
| // |
| // Selects the USB2.0 Device FAST Turnaround logic for UTMI 16-bit mode. |
| // The USB specification defines the High-Speed turn around delay to |
| // be 192 bit times, which translates into 12 PHY clocks at 30 MHz. |
| // Typically, the PHY will take 7 PHY clocks, leaving 5 PHY clocks |
| // to the controller. Without this FAST_TAT feature enabled, |
| // for IN transactions, when operating at a RAM clock of 60 MHz |
| // the USB3 device core can take up to 7 clocks for its response. |
| // In this case, the UTMI PHY must consume no more than 5 clocks for |
| // the Receive End Delay and Transmit Start Delay, combined. |
| // If the UTMI PHY cannot guarantee that the total time consumed for |
| // the Receive End Delay and Transmit Start Delay is 5 PHY clock |
| // cycles or less, then the turn-around delay may be higher than 192 |
| // HS bit times. As a result, the USB host may timeout (if the |
| // device is connected to the 5th hub in a 5-tier hub topology) for |
| // a data packet returned by the USB3 device core for an IN token. |
| // Enabling this option optimizes/eliminates some registers in the |
| // device mac/ptl path and host mode clock-crossing FIFO, thereby achieving faster turn-around. |
| // |
| // NOTE: If you plan to use ULPI mode only or UTMI 8-bit mode only, |
| // then do not enable this option. |
| // NOTE: Selecting this option and running the core at UTMI 8-bit mode |
| // (i.e., 60MHz) could pose synthesis/timing challenges. |
| // Depending on your UTMI PHY time consumption and your ram clock |
| // frequency select this option. |
| // Choice decides the value of DWC_USB3_FAST_TAT_EN in DWC_usb3_params.v file. |
| #define DWC_USB3_FAST_TAT_EN 0 |
| |
| |
| // Name: DWC_USB3_VENDOR_CTL_INTERFACE |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: (DWC_USB3_HSPHY_INTERFACE==1 || DWC_USB3_HSPHY_INTERFACE == 3) && |
| // DWC_USB3_MODE !=3 |
| // |
| // Specifies whether the UTMI+ PHY Vendor Control interface is |
| // enabled. For ULPI PHYs, since there are no additional ports |
| // Vendor Control is always enabled. |
| // Choice decides the value of DWC_USB3_VENDOR_CTL_INTERFACE in DWC_usb3_params.v file. |
| #define DWC_USB3_VENDOR_CTL_INTERFACE 0 |
| |
| // euse-pragma attr Enabled {@DWC_USB3_MODE !=3} |
| |
| // Name: DWC_USB3_ULPI_CARKIT |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: 0 |
| // |
| // Specifies whether the CarKit is enabled for interface. |
| // If enabled, the software uses the ULPI interface for |
| // ULPI PHY internal register access. Software can access ULPI |
| // PHY internal registers using register read/writes to DWC_usb3. |
| // Choice decides the value of DWC_USB3_ULPI_CARKIT in DWC_usb3_params.v file. |
| #define DWC_USB3_ULPI_CARKIT 0 |
| |
| |
| // Name: DWC_USB3_GUSB2PHYCFG_INIT |
| // Default: 0x2400 |
| // Values: 0x0, ..., 0xffffffff |
| // Enabled: (DWC_USB3_HSPHY_INTERFACE!=0 || DWC_USB3_FSPHY_INTERFACE!=0) && |
| // DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the Global USB2 PHY Configuration Register's (GUSB2PHYCFG) |
| // power-on initialization value. The GUSB2PHYCFG register defines USB2 PHY configuration. |
| // The bits other than defined here must be 0. The different fields are: |
| // bit[13:10] - USB 2.0 Turnaround Time. 4'h5 - 16-bit UTMI+, 4'h9 - 8-bit UTMI+/ULPI. |
| // bit[9] - Reserved |
| // bit[8] - The application uses this bit to control utmi_sleep_n assertion to the PHY in the L1 state. 1'b0 - Disable, 1'b1 - Enable. |
| // bit[7] - 1'b0 USB2.0 High Speed (UTMI/ULPI), 1'b1 - USB1.1 Full Speed |
| // bit[6] - When set, USB2.0 PHY enters Suspend mode if Suspend conditions are valid. 1'b0 - Disable, 1'b1 - Enable. |
| // bit[5] - 1'b0 - 6-Pin Unidirectional FS, 1'b1 - 3-Pin Bidirectional FS |
| // bit[4] - 1'b0 - 0 - UTMI, 1'b1 - ULPI |
| // bit[3] - UTMI Mode: 1'b0 8-bit UTMI, 1'b1 - 16-bit UTMI; ULPI Mode - Should be 1'b0 |
| // bit[2:0] - HS/FS Timeout Calibration |
| // If you use a standard driver, such as the xHCI driver from Microsoft, you must initialize |
| // this register to meet your system requirements before synthesizing the core. If you are |
| // developing your own xHCI host driver, then this register can be configured by your driver. |
| // For more information, see the databook's "Control and Status Registers" chapter. |
| // Choice decides the value of DWC_USB3_GUSB2PHYCFG_INIT in DWC_usb3_params.v file. |
| #define DWC_USB3_GUSB2PHYCFG_INIT 32'h2400 |
| |
| |
| // Name: DWC_USB3_GUSB3PIPECTL_INIT |
| // Default: 0x248002 |
| // Values: 0x0, ..., 0xffffffff |
| // Enabled: (DWC_USB3_SSPHY_INTERFACE!=0) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the Global USB3 PIPE Control Register's (GUSB3PIPECTL) |
| // power-on initialization value. The GUSB3PIPECTL register defines USB3 PIPE Control. |
| // Refer to PIPE3 Specification for more details. The bits other than defined here must be 0. The different fields are: |
| // bit[24] - When set, the core will always request PHY power change from P0 to P1/P2/P3 during U0 to U1/U2/U3 |
| // transition. If this bit is 0 and immediate Ux exit (remote initiated or Locally initiated) happens, |
| // Core may not request P1/P2/P3 power state change. For Synopsys PHY this should be enabled. For non-Synopsys PHY, |
| // check with your PHY vendor. |
| // bit[23] - If DWC_USB3_GUSB3PIPECTL_INIT[22] is set and link is in U3 or Rx.Detect state, core will start |
| // receiver detection on rising edge of this bit. For Downstream port only. This feature should not be used |
| // during normal operation. |
| // bit[22] - When set, the core will not do receiver detection in U3/Rx.Detect. DWC_USB3_GUSB3PIPECTL_INIT[23] |
| // should be used to start receiver detection manually. For Downstream port only. This feature should not be |
| // enabled for normal operation. Contact Synopsys if have to use this feature. |
| // bit[21:19] - Delay P0 to P1/P2/P3 request when entering U1/U2/U3 until (DWC_USB3_GUSB3PIPECTL_INIT[21:19]*8) 8B10B |
| // error happens or Pipe3_RxValid drops. DWC_USB3_GUSB3PIPECTL_INIT[18] must be "1" to enable |
| // this functionality. This should be 3'h100 for Synopsys PHY. |
| // bit[18] - Delay P1/P2/P3 transition when entering U1/U2/U3 until rxelecIdle is 1 and Rxvalid is 0. |
| // 1 - Delay P1/P2/P3 transition. |
| // 0 - Do not delay P1/P2/P3 based on rxelecIdle and Rxvalid. |
| // This should be '1' for Synopsys PHY. |
| // bit[17] - Enable USB3.0 SS PHY Suspend. |
| // bit[16:15] - PIPE Data Width. The clock after reset, these bits will reflect the values of the "pipe3_DataBusWidth" port. |
| // 2'b00 - 32-bit, 2'b01 - 16-bit, 2'b10 - 8-bit |
| // bit[14] - In link state U2, abort receiver detection if remote partner starts U2 exit |
| // bit[13] - No Rx Detect If RxElecIdle Low, when set the core will skip Rx Detection if pipe3_RxElecIdle is low. |
| // Skipping means waiting for the appropriate timeout and then repeating the operation. |
| // bit[12] - LFPS P0 Align, when set the core will deassert LFPS transmission on the same clock edge that it requests |
| // Phy power state 0 when exiting U1, U2, or U3 low power states. Otherwise, LFPS transmission will be asserted |
| // one clock earlier. In addition, the core will request symbol transmission two pipe3_rx_pclks after |
| // the PHY asserts PhyStatus when the PHY has switched from the P1 or P2 to P0 state. |
| // bit[11] - P3 P2 Transitions OK, when set the core will transition directly from Phy power states P2 to P3, and from |
| // P3 to P2. Otherwise, P0 will always be entered between P2 and P3 as defined in the PIPE3 specification. |
| // For Synopsys PHY this should be "0". |
| // bit[10] - P3 Exit Signal in P2, when set the core will always change the Phy power state to P2, before attempting |
| // a U3 exit handshake. Otherwise, the Phy power state will not be changed during U3 exit signaling. |
| // bit[9] - LFPS Filter Value, when set filter LFPS reception with pipe3_RxVaid in PHY power state P0, i.e ignore LFPS |
| // reception from the PHY unless both pipe3_Rxelecidle and pipe3_RxValid are deasserted. |
| // bit[6] - Tx Swing, 1'b0 - Full Swing, 1'b1 - Low Swing |
| // bit[5:3] - Tx Margin, 3'b000 - Normal, 3'b001 - 800-1200mV Full Swing/400-700mV Half Swing, 3'b010, 3'b011 - Vendor Defined, |
| // 3'b101 - 3'b111 - 200-400mV Full Swing/100-200mV Half Swing |
| // bit[2:1] - Tx Deemphasis, 2'b00 - -6DB, 2'b01 - -3.5DB, 2'b10 - No Deemphesis, 2'b11 - Reserved |
| // bit[0] - PHY Elasticity Mode, 1'b0 - Nominal Half Full Buffer, 1'b1 - Nominal Empty Buffer |
| // If you use a standard driver, such as the xHCI driver from Microsoft, you must initialize |
| // this register to meet your system requirements before synthesizing the core. If you are |
| // developing your own xHCI host driver, then this register can be configured by your driver. |
| // For more information, see the databook's "Control and Status Registers" chapter. |
| // Choice decides the value of DWC_USB3_GUSB3PIPECTL_INIT in DWC_usb3_params.v file. |
| #define DWC_USB3_GUSB3PIPECTL_INIT 32'h1240002 |
| |
| |
| // Name: DWC_USB3_PIPE_RXTERM_RESET_VAL |
| // Default: 0 |
| // Values: 0 1 |
| // Enabled: DWC_USB3_SSPHY_INTERFACE!=0 |
| // |
| // Determines the value of the pipe3_RxTermination signal while |
| // hardware reset is asserted. |
| #define DWC_USB3_PIPE_RXTERM_RESET_VAL 0 |
| |
| |
| // Name: DWC_USB3_SUSPEND_ON_DISCONNECT_EN |
| // Default: 0 |
| // Values: 0 1 |
| // Enabled: (DWC_USB3_HSPHY_INTERFACE!=0 || DWC_USB3_FSPHY_INTERFACE!=0) && |
| // (DWC_USB3_MBUS_TYPE!=4) && (DWC_USB3_MODE==1 || |
| // DWC_USB3_MODE==2) |
| // |
| // For USB2.0 ports enable suspend during disconnect. This will save |
| // power when no devices are connected to USB2.0 port. |
| #define DWC_USB3_SUSPEND_ON_DISCONNECT_EN 0 |
| |
| |
| // Name: DWC_USB3_RXDET_IN_P3_DS |
| // Default: 0 |
| // Values: 0 1 |
| // Enabled: (DWC_USB3_SSPHY_INTERFACE!=0) && (DWC_USB3_MODE!=0) |
| // |
| // For downstream port, Allow Receiver detection in PHY power state P3. |
| // Please check whether your PHY supports this feature. Even though this feature is supported in Synopsys PHY, some of the exiting Synopsys PHY test chips |
| // do not support this. Check with Synopsys whether a particular test chip supports this feature before enabling this feature for FPGA hardware validation. |
| #define DWC_USB3_RXDET_IN_P3_DS 0 |
| |
| /********** Device Specific Parameters ***********/ |
| |
| |
| // Name: DWC_USB3_DEVICE_NUM_INT |
| // Default: 1 |
| // Values: 1 2 4 8 16 32 |
| // Enabled: DWC_USB3_MODE !=1 && DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Selects the number of Event Buffers in device mode. Each Event Buffer will also have a separate interrupt. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_DEVICE_NUM_INT in DWC_usb3_params.v file. |
| #define DWC_USB3_DEVICE_NUM_INT 1 |
| |
| |
| // Name: DWC_USB3_NUM_EPS |
| // Default: 8 |
| // Values: 4, ..., 32 |
| // Enabled: DWC_USB3_MODE !=1 && DWC_USB3_MODE !=3 |
| // |
| // Specifies the number of Device mode single directional endpoints, including |
| // OUT and IN control endpoint 0 which is always present. The DWC_usb3 core |
| // provides flexible endpoint configuration, where an endpoint can be mapped to |
| // any USB IN or OUT endpoint. For example if you need 3 bi-directional endpoints |
| // then you need to choose 6 single directional endpoint configuration. |
| // Choose the maximum possible number of endpoints that must be supported for all |
| // configurations and alternate settings. Specifying additional |
| // endpoints is not useful because the core will not use the |
| // excess registers, resulting in increased gate count but no |
| // gain in performance. If area is not a concern, and you want |
| // a flexible design that can be used in multiple applications, |
| // instantiate all 16 IN and 16 OUT endpoints. The default value of 8 endpoints reflects |
| // the UASP mass-storage class plus an ISOC application requirement: |
| // Control-OUT, Control-IN, Bulk-Data-OUT, Bulk-Data-IN, Bulk-Command-OUT, Bulk-Status-IN, |
| // ISOC-OUT, and ISOC-IN. The cost of an OUT/IN endpoint is 2.5/3.5Kgates plus transfer resource cache. |
| // Choice decides the value of DWC_USB3_NUM_EPS in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_EPS 8 |
| |
| |
| // Name: DWC_USB3_NUM_IN_EPS |
| // Default: 4 |
| // Values: 2, ..., 16 |
| // Enabled: DWC_USB3_MODE != 1 && DWC_USB3_MODE !=3 |
| // |
| // Specifies the maximum number of Device mode IN endpoints |
| // active at any time, including control endpoint 0, which is always |
| // present. This parameter determines the number of Device mode |
| // TxFIFOs to be instantiated and Tx RAM allocated. The default value of 4 IN |
| // endpoints reflects the UASP mass-storage class plus an ISOC application |
| // requirement: |
| // Control-IN, Bulk-Data-IN, Bulk-Status-IN, and ISOC-IN. |
| // Choice decides the value of DWC_USB3_NUM_IN_EPS in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_IN_EPS 4 |
| |
| |
| #define DWC_USB3_NUM_OUT_EPS 4 |
| |
| |
| // Name: DWC_USB3_CACHE_TOTAL_XFER_RESOURCES |
| // Default: 8 |
| // Values: 4, ..., 127 |
| // Enabled: DWC_USB3_MODE != 1 && DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Selects the maximum number of transfer resources in the core (must be at |
| // least equal to the number of unidirectional endpoints configured). |
| // It is recommended that 10 resources be allocated for each Stream endpoint |
| // and one for non Stream endpoints. |
| // For more information, see the databook's "Hardware Integration" |
| // chapter. The default value of 8 endpoints reflects |
| // the UASP mass-storage class plus an ISOC application requirement: |
| // 1 transfer resource for each of the Control-OUT, Control-IN, Bulk-Command-OUT, ISOC-OUT, ISOC-IN endpoints and |
| // 10 transfer resource for each of the Bulk-Data-OUT, Bulk-Data-IN, Bulk-Status-IN endpoints. |
| // The cost of a transfer resource is (Number of cached TRBs * 16 + 32) bytes of cache memory. |
| // Choice decides the value of DWC_USB3_CACHE_TOTAL_XFER_RESOURCES in DWC_usb3_params.v file. |
| #define DWC_USB3_CACHE_TOTAL_XFER_RESOURCES 8 |
| |
| |
| // Name: DWC_USB3_CACHE_TRBS_PER_TRANSFER |
| // Default: 4 |
| // Values: 2, ..., 32 |
| // Enabled: DWC_USB3_MODE != 1 && DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Selects the number of TRBs per transfer that can be cached within the |
| // core. It is recommended that the endpoint cache be able to hold one |
| // burst amount of TRBs. If your application buffer size is less than the |
| // packet size, then the TRB cache must also have at least one packet |
| // amount of TRBs for correct operation. |
| // The cost of TRB cache, 16 * Number of cached TRBs bytes. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_CACHE_TRBS_PER_TRANSFER in DWC_usb3_params.v file. |
| #define DWC_USB3_CACHE_TRBS_PER_TRANSFER 8 |
| |
| |
| // Name: DWC_USB3_PERIODIC_PARAMS |
| // Default: 0x0 |
| // Values: 0x0, ..., 0x3ff |
| // Enabled: DWC_USB3_MODE == 0 || DWC_USB3_MODE == 2 |
| // |
| // Specifies the Periodic Parameter register's power-on initialization |
| // value, which contains the System Exit Latency (SEL). After |
| // power-up, the software can change this value via the "Set Periodic |
| // Parameters" device generic command. |
| // For more information, see the databook's "Control and Status |
| // Registers" chapter. |
| // Choice decides the value of DWC_USB3_PERIODIC_PARAMS in DWC_usb3_params.v file. |
| #define DWC_USB3_PERIODIC_PARAMS 32'h0 |
| |
| |
| // Name: DWC_USB3_EN_COMPANION_USB2_CTRL |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: (DWC_USB3_MODE == 0 && DWC_USB3_MBUS_TYPE!=4) |
| // |
| // Enables companion USB2.0 controller support. This feature is supported only in Non-NPI Device mode. |
| // For USB2.0 functions, an external USB2.0 controller can provide the support instead the DWC_usb3 controller. |
| // When this mode is selected, you are responsible to validate the DWC_usb3 core with your USB2.0 controller and |
| // check all the SS, HS, FS fallback modes are working. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_EN_ISOC_SUPT in DWC_usb3_params.v file. |
| #define DWC_USB3_EN_COMPANION_USB2_CTRL 0 |
| |
| |
| // Name: DWC_USB3_EXT_BUFF_CONTROL |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: ((DWC_USB3_MODE == 0) || (DWC_USB3_MODE == 2)) |
| // |
| // Enables Device External Buffer Control Sideband Controls |
| #define DWC_USB3_EXT_BUFF_CONTROL 0 |
| |
| /********** Device NPI Specific Parameters ***********/ |
| |
| |
| // Name: DWC_USB3_NPI_RX_STATUS_DEPTH |
| // Default: 16 |
| // Values: 8 16 32 |
| // Enabled: DWC_USB3_MODE ==0 && DWC_USB3_MBUS_TYPE ==4 |
| // |
| // Selects OUT Endpoints Common Rx Status FIFO Depth |
| #define DWC_USB3_NPI_RX_STATUS_DEPTH 16 |
| |
| |
| // Name: DWC_USB3_NPI_TX_STATUS_DEPTH |
| // Default: 6 |
| // Values: 4 5 6 7 8 16 |
| // Enabled: DWC_USB3_MODE ==0 && DWC_USB3_MBUS_TYPE ==4 |
| // |
| // Selects IN Endpoints Tx Status FIFO Depth (one per IN EP) |
| #define DWC_USB3_NPI_TX_STATUS_DEPTH 6 |
| |
| |
| // Name: DWC_USB3_ULPI_VENDOR_CTL_INTERFACE |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: (DWC_USB3_HSPHY_INTERFACE==2 || DWC_USB3_HSPHY_INTERFACE == 3) && |
| // DWC_USB3_MBUS_TYPE==4 |
| // |
| // Specifies whether the NPI Mode ULPI PHY Vendor Control interface is |
| // enabled. |
| // Choice decides the value of DWC_USB3_ULPI_VENDOR_CTL_INTERFACE in DWC_usb3_params.v file. |
| #define DWC_USB3_ULPI_VENDOR_CTL_INTERFACE 0 |
| |
| |
| // Name: DWC_USB3_NPI_USE_BMU_SIM |
| // Default: Yes |
| // Values: No (0), Yes (1) |
| // Enabled: DWC_USB3_MODE ==0 && DWC_USB3_MBUS_TYPE==4 |
| // |
| // Specifies whether to use the NPI Buffer Management (DWC_usb3_npi_bufm.v) module in the simulation. When enabled, |
| // the BMU module will also be used in the simulation and the NPI BFMs will drive the BMU interface. When not enabled, |
| // the NPI interface will be exercised. |
| // directly. This affects only the simulation. |
| #define DWC_USB3_NPI_USE_BMU_SIM 1 |
| |
| |
| // Name: DWC_USB3_NPI_LARGEST_IN_EP_FIFO_DEPTH |
| // Default: 1024 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_MODE ==0 && DWC_USB3_MBUS_TYPE ==4 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // The largest IN Endpoint FIFO Depth |
| #define DWC_USB3_NPI_LARGEST_IN_EP_FIFO_DEPTH 1024 |
| |
| |
| // Name: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: DWC_USB3_MODE ==0 && DWC_USB3_MBUS_TYPE ==4 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Enables Dynamic FIFO depth. The BMU FIFO depth can be static or dynamic. |
| // If Dynamic FIFO depth is chosen, then the npi_tx_fifo_depth and npi_tx_fifo_depth_reconfig signals |
| // configure the depth. The clock after reset the npi_tx_fifo_depth will be used to configure the depth of each FIFO. |
| // After reset, the application can use npi_tx_fifo_depth_reconfig (one clock pulse) to reconfigure the FIFO. |
| // Tx FIFO-0 depth should not be changed. When npi_tx_fifo_depth_reconfig is asserted for one clock, it will take |
| // "DWC_USB3_NUM_IN_EPS+1" clocks to configure the FIFOs. |
| #define DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN 0 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP0_FIFO_DEPTH |
| // Default: 128 |
| // Values: 32, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 0 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 0 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP0_FIFO_DEPTH 128 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP1_FIFO_DEPTH |
| // Default: 1024 |
| // Values: 32, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 1 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 1 FIFO Depth |
| // For UASP Data Endpoint which supports burst, 4 packets are recommended. |
| #define DWC_USB3_NPI_IN_EP1_FIFO_DEPTH 1024 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP2_FIFO_DEPTH |
| // Default: 768 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 2 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 2 FIFO Depth |
| // For UASP status Endpoint 256 byte is sufficient. |
| #define DWC_USB3_NPI_IN_EP2_FIFO_DEPTH 768 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP3_FIFO_DEPTH |
| // Default: 256 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 3 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 3 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP3_FIFO_DEPTH 256 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP4_FIFO_DEPTH |
| // Default: 0 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 4 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 4 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP4_FIFO_DEPTH 0 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP5_FIFO_DEPTH |
| // Default: 0 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 5 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 5 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP5_FIFO_DEPTH 0 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP6_FIFO_DEPTH |
| // Default: 0 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 6 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 6 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP6_FIFO_DEPTH 0 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP7_FIFO_DEPTH |
| // Default: 0 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 7 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 7 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP7_FIFO_DEPTH 0 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP8_FIFO_DEPTH |
| // Default: 0 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 8 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 8 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP8_FIFO_DEPTH 0 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP9_FIFO_DEPTH |
| // Default: 0 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 9 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 9 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP9_FIFO_DEPTH 0 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP10_FIFO_DEPTH |
| // Default: 0 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 10 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 10 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP10_FIFO_DEPTH 0 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP11_FIFO_DEPTH |
| // Default: 0 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 11 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 11 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP11_FIFO_DEPTH 0 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP12_FIFO_DEPTH |
| // Default: 0 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 12 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 12 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP12_FIFO_DEPTH 0 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP13_FIFO_DEPTH |
| // Default: 0 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 13 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 13 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP13_FIFO_DEPTH 0 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP14_FIFO_DEPTH |
| // Default: 0 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 14 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 14 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP14_FIFO_DEPTH 0 |
| |
| |
| // Name: DWC_USB3_NPI_IN_EP15_FIFO_DEPTH |
| // Default: 0 |
| // Values: 0, ..., 8192 |
| // Enabled: DWC_USB3_NPI_DYNAMIC_FIFO_DEPTH_EN ==0 && DWC_USB3_MODE ==0 && |
| // DWC_USB3_MBUS_TYPE ==4 && DWC_USB3_NUM_IN_EPS > 15 && |
| // DWC_USB3_NPI_USE_BMU_SIM |
| // |
| // Selects IN Endpoint 15 FIFO Depth |
| #define DWC_USB3_NPI_IN_EP15_FIFO_DEPTH 0 |
| |
| |
| |
| /********** Host Specific Parameters ***********/ |
| |
| |
| // Name: DWC_USB3_NUM_DEVICE_SUPT |
| // Default: 64 |
| // Values: 1, ..., 127 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) |
| // |
| // Specifies the number of devices supported. The value you |
| // choose does not increase the DWC_usb3's gate count, but the |
| // memory requirements increase to store context information. |
| // 32 bytes of internal RAM is required for each device supported. |
| // For more information, see the databook's "Area, Speed, and |
| // Power for DWC_usb3 Configurations" appendix. |
| // Choice decides the value of DWC_USB3_NUM_DEVICE_SUPT in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_DEVICE_SUPT 16 |
| |
| |
| // Name: DWC_USB3_HOST_NUM_INTERRUPTER_SUPT |
| // Default: 1 |
| // Values: 1, ..., 1024 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) |
| // |
| // Specifies the number of interrupters supported. The value you |
| // choose affects the gate count and memory requirements of DWC_usb3. |
| // 100 bytes of internal RAM is required for each interrupter. |
| // For more information, see the "Area, Speed, and |
| // Power for DWC_usb3 Configurations" appendix in the Databook. |
| // Choice decides the value of DWC_USB3_HOST_NUM_INTERRUPTER_SUPT in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_NUM_INTERRUPTER_SUPT 1 |
| |
| |
| // Name: DWC_USB3_HOST_NUM_U2_ROOT_PORTS |
| // Default: 1 |
| // Values: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) |
| // |
| // Specifies the number of USB2 Root Hub ports. |
| // The area of a USB 2.0 port is about 9K gates. |
| // Choice decides the value of DWC_USB3_HOST_NUM_U2_ROOT_PORTS in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_NUM_U2_ROOT_PORTS 1 |
| |
| |
| // Name: DWC_USB3_HOST_NUM_U3_ROOT_PORTS |
| // Default: 1 |
| // Values: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) |
| // |
| // Specifies the number of USB 3.0 Root Hub ports. |
| // The area of a USB3 port is about 52K gates. |
| // Choice decides the value of DWC_USB3_HOST_NUM_U3_ROOT_PORTS in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_NUM_U3_ROOT_PORTS 1 |
| |
| // euse-pragma attr DefaultValue = (((@DWC_USB3_MODE==1) | (@DWC_USB3_MODE==2)) && (@DWC_USB3_HOST_NUM_U3_ROOT_PORTS != 1))? 1 : 0 |
| |
| // Name: DWC_USB3_COMMON_USB3_PCLK_EXIST |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && |
| // DWC_USB3_HOST_NUM_U3_ROOT_PORTS != 1 |
| // |
| // Specifies whether your USB 3.0 Multi-Port PHY provides a common PHY clock for multiport support |
| // which is active when any port is not in low-power state. If your USB 3.0 Multi-Port PHY provides |
| // a common pipe clock, it should be connected to "pipe3_common_rx_pclk" and "pipe3_common_tx_pclk" ports. |
| // If your USB 3.0 Multi-Port PHY does not provide a common PHY clock, then Port-0 clock will be used by the core |
| // for generating internal mac clock. |
| // Choice decides the value of DWC_USB3_COMMON_USB3_PCLK_EXIST in DWC_usb3_params.v file. |
| #define DWC_USB3_COMMON_USB3_PCLK_EXIST 0 |
| |
| // euse-pragma attr DefaultValue = (((@DWC_USB3_MODE==1) | (@DWC_USB3_MODE==2)) && (@DWC_USB3_HOST_NUM_U2_ROOT_PORTS != 1))? 1 : 0 |
| |
| // Name: DWC_USB3_COMMON_USB2_PCLK_EXIST |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && |
| // DWC_USB3_HOST_NUM_U2_ROOT_PORTS != 1 |
| // |
| // Specifies whether your Multi-Port USB 2.0 PHY provides a common PHY clock for multiport support |
| // which is active when any port is not in low-power state. If your USB 2.0 Multi-Port PHY provides |
| // a common PHY clock, it should be connected to "usb2_phy_clk". |
| // If your USB 2.0 Multi-Port PHY does not provide a common PHY clock, then Port-0 clock will be used by the core |
| // for generating internal mac2 clock. |
| // Choice decides the value of DWC_USB3_COMMON_USB2_PCLK_EXIST in DWC_usb3_params.v file. |
| #define DWC_USB3_COMMON_USB2_PCLK_EXIST 0 |
| |
| // euse-pragma attr DefaultValue = 1 |
| |
| // Name: DWC_USB3_NUM_SS_USB_INSTANCES |
| // Default: 1 |
| // Values: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && |
| // DWC_USB3_HOST_NUM_U3_ROOT_PORTS != 1 |
| // |
| // Specifies the number of SuperSpeed USB Bus-Instances. When the number of |
| // SuperSpeed USB Bus-Instances is equal to the number of USB 3.0 ports, you |
| // can do concurrent USB 3.0 transfers on each port. For example, if you |
| // have 4 ports and 4 SuperSpeed USB Bus-Instances, then in concurrent mode your |
| // effective data rate is 32 Gbps (8 Gbps * 4). The area overhead of a |
| // SuperSpeed USB Bus-Instance is about 80K gates. When compared to the area of |
| // the PHY, which is about 400K gates per port, this is negligible, but the |
| // performance increase is multifold. For example, if you have 4 ports, 1 port |
| // can be connected to a USB 3.0 drive, another port can be connected to a |
| // display, and 2 more more ports can be used as general purpose I/O interface. |
| // Here, each port has a guaranteed throughput of 8 Gbps (or 4 Gbps simplex). |
| // Choice decides the value of DWC_USB3_NUM_SS_USB_INSTANCES in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_SS_USB_INSTANCES 1 |
| |
| // euse-pragma attr DefaultValue = 1 |
| |
| // Name: DWC_USB3_NUM_HS_USB_INSTANCES |
| // Default: 1 |
| // Values: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && |
| // DWC_USB3_HOST_NUM_U2_ROOT_PORTS != 1 |
| // |
| // Specifies the number of High-Speed USB Bus-Instances. When the number of |
| // High-Speed USB Bus-Instances is equal to the number of root ports, you can do |
| // concurrent High-Speed transfers on each port. For example, if you have 4 |
| // ports and 4 High-Speed USB Bus-Instances, then in concurrent mode your |
| // effective data rate is 1.92 Gbps (480 Mbps * 4). The area overhead of a |
| // HighSpeed USB Bus-Instance is about 60K gates. |
| // Choice decides the value of DWC_USB3_NUM_HS_USB_INSTANCES in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_HS_USB_INSTANCES 1 |
| |
| // euse-pragma attr DefaultValue = 1 |
| |
| // Name: DWC_USB3_NUM_FSLS_USB_INSTANCES |
| // Default: 1 |
| // Values: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
| // Enabled: 0 |
| // |
| // Specifies the number of Full/Low-Speed USB Bus-Instances. When the number of |
| // Full/Low-Speed USB Bus-Instances is equal to the number of root ports, you can do |
| // concurrent FS transfers on each port. For example, if you have 4 ports and |
| // 4 Full/Low-Speed USB Bus-Instances, then in concurrent mode your effective |
| // data rate is 48 Mbps for Full-Speed or 6 Mbps for Low-Speed. The area overhead of a |
| // Full/Low Speed USB Bus-Instance is about 50K gates. |
| // Choice decides the value of DWC_USB3_NUM_FSLS_USB_INSTANCES in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_FSLS_USB_INSTANCES 1 |
| // euse-pragma attr Enabled {(@DWC_USB3_MODE == 1 || @DWC_USB3_MODE == 2) && @DWC_USB3_HOST_NUM_U2_ROOT_PORTS != 1} |
| |
| |
| // Name: DWC_USB3_HOST_NUM_CACHE_EP_PER_SS_INSTANCE |
| // Default: 8 |
| // Values: 1, ..., 32 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) |
| // |
| // Specifies the number of SuperSpeed endpoints that can be cached for each |
| // SuperSpeed USB Bus-Instance. (136 + DWC_USB3_HOST_NUM_CACHE_TRB_PER_SS_EP * 16) bytes of internal RAM |
| // are allocated for each super speed endpoint cache. |
| // Choice decides the value of DWC_USB3_HOST_NUM_CACHE_EP_PER_SS_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_NUM_CACHE_EP_PER_SS_INSTANCE 8 |
| |
| |
| // Name: DWC_USB3_HOST_NUM_CACHE_TRB_PER_SS_EP |
| // Default: 16 |
| // Values: 2, ..., 126 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) |
| // |
| // Specifies the number of TRBs that can be cached in the core for each cached |
| // SuperSpeed endpoint. 16 bytes of internal RAM are allocated for each cached |
| // TRB. The TRB cache must be large enough to hold TRBs (including Link TRBs) |
| // for at least one maximum-packet-size packet. For better performance or when system latency |
| // is large, TRB cache for maximum-burst-size of packets is recommended. |
| // Choice decides the value of DWC_USB3_HOST_NUM_CACHE_TRB_PER_SS_EP in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_NUM_CACHE_TRB_PER_SS_EP 16 |
| |
| |
| // Name: DWC_USB3_HOST_NUM_CACHE_EP_PER_HS_INSTANCE |
| // Default: 4 |
| // Values: 1, ..., 32 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) |
| // |
| // Specifies the number of High-Speed endpoints that can be cached for each |
| // High-Speed USB Bus-Instance. (120 + DWC_USB3_HOST_NUM_CACHE_TRB_PER_HS_EP * 16) bytes of internal RAM |
| // are allocated for each high speed endpoint cache. |
| // If the system bus latency is more than 2.1uS, then at least 20 endpoint cache and the following |
| // " Number of Cached TRBs for Each Cached High-Speed Endpoint" parameter size can be reduced |
| // to 10 from 16 for optimized ram size. |
| // Choice decides the value of DWC_USB3_HOST_NUM_CACHE_EP_PER_HS_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_NUM_CACHE_EP_PER_HS_INSTANCE 2 |
| |
| |
| // Name: DWC_USB3_HOST_NUM_CACHE_TRB_PER_HS_EP |
| // Default: 16 |
| // Values: 2, ..., 126 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) |
| // |
| // Specifies the number of TRBs that can be cached in the core for each cached |
| // High-Speed endpoint. 16 bytes of internal RAM are allocated for each cached |
| // TRB. The TRB cache must be large enough to hold TRBs (including Link TRBs) |
| // for at least one maximum-packet-size packet. For better performance, or when system latency |
| // is large, TRB cache for maximum-burst-size of packets is recommended. |
| // Choice decides the value of DWC_USB3_HOST_NUM_CACHE_TRB_PER_HS_EP in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_NUM_CACHE_TRB_PER_HS_EP 8 |
| |
| |
| // Name: DWC_USB3_HOST_NUM_CACHE_EP_PER_FSLS_INSTANCE |
| // Default: 2 |
| // Values: 1, ..., 32 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) |
| // |
| // Specifies the number of Full/Low-Speed endpoints that can be cached for |
| // each Full/Low-Speed USB Bus-Instance. (120 + DWC_USB3_HOST_NUM_CACHE_TRB_PER_FSLS_EP * 16) bytes of |
| // internal RAM are allocated for each full/low speed endpoint cache. |
| // Choice decides the value of DWC_USB3_HOST_NUM_CACHE_EP_PER_FSLS_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_NUM_CACHE_EP_PER_FSLS_INSTANCE 2 |
| |
| |
| // Name: DWC_USB3_HOST_NUM_CACHE_TRB_PER_FSLS_EP |
| // Default: 16 |
| // Values: 2, ..., 126 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) |
| // |
| // Specifies the number of TRBs that can be cached in the core for each |
| // cached Full/Low-Speed endpoint. 16 bytes of internal RAM are allocated for |
| // each cached TRB. The TRB cache must be large enough to hold TRBs (including Link TRBs) |
| // for at least one maximum-packet-size packet. For better performance, or when system latency |
| // is large, TRB cache for more than one packets is recommended. |
| // Choice decides the value of DWC_USB3_HOST_NUM_CACHE_TRB_PER_FSLS_EP in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_NUM_CACHE_TRB_PER_FSLS_EP 8 |
| |
| |
| // Name: DWC_USB3_HOST_NUM_PERIODIC_EP |
| // Default: 32 |
| // Values: 0, ..., 510 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) |
| // |
| // Specifies the number of periodic endpoints for all USB Bus-Instance. 20 |
| // bytes of internal RAM are required for each periodic endpoint. |
| // Choice decides the value of DWC_USB3_HOST_NUM_PERIODIC_EP_PER_USB_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_NUM_PERIODIC_EP 32 |
| |
| |
| #define DWC_USB3_MPS 1024 |
| |
| |
| // Name: DWC_USB3_NUM_RXF_SS_PKTS |
| // Default: 3 |
| // Values: 1, ..., 32 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the SuperSpeed RxFIFO in number of 1024-byte packets. |
| // Each SuperSpeed USB Bus-Instance would require one RxFIFO. For example, if you have 2 SS Bus-Instances and chose |
| // 3 for this parameter, then 6144 bytes of RAM is allocated for SS RxFIFO. |
| // Each 1024 bytes provides a 2.1us latency tolerance. |
| // If the system bus latency is more than 2.1uS, then at least a 5 to 6 packet buffer is recommended. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_NUM_RXF_SS_PKTS in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_RXF_SS_PKTS 6 |
| |
| |
| #define DWC_USB3_HOST_RXFIFO_DEPTH_PER_SS_INSTANCE 768 |
| |
| // euse-pragma attr DefaultValue = ((@DWC_USB3_MDWIDTH >= 64) ? 1 : 0) |
| |
| // Name: DWC_USB3_BMU_SRCBUF_TYPE |
| // Default: 0 |
| // Values: 0 1 |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 && DWC_USB3_MDWIDTH >= |
| // 64 |
| // |
| // Specifies alternate implementation of BMU-PTL Source Buffers. |
| // 0: The FIFOs are 32 bits wide and synthesized into flops. |
| // 1: The FIFO's are RAM data width; this allows a slower RAM clk for FPGA. |
| // This applies only when DWC_USB3_MDWIDTH is 64 or 128. The DWC_USB3_BMU_SRCBUF_TYPE and |
| // the DWC_USB3_BMU_SNKBUF_TYPE be enable or disabled at the same time. |
| // It is recommended to enable this for fpga testing when DWC_USB3_MDWIDTH is 64 or 128 bits. This allows you |
| // to run ram_clk at lower than 125MHz for FPGA validation. |
| // For more information, see the databook's Section B.12. |
| // Choice decides the value of DWC_USB3_BMU_PTL_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_BMU_SRCBUF_TYPE 0 |
| |
| // euse-pragma attr DefaultValue = ((@DWC_USB3_MDWIDTH >= 64) ? 1 : 0) |
| |
| // Name: DWC_USB3_BMU_SNKBUF_TYPE |
| // Default: 0 |
| // Values: 0 1 |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 && DWC_USB3_MDWIDTH >= |
| // 64 |
| // |
| // Specifies alternate implementation of BMU-PTL Sink Buffers. |
| // 0: The FIFOs are 32 bits wide and synthesized into flops. |
| // 1: The FIFO's are RAM data width; this allows a slower RAM clk for FPGA |
| // This applies only when DWC_USB3_MDWIDTH is 64 or 128. The DWC_USB3_BMU_SRCBUF_TYPE and |
| // the DWC_USB3_BMU_SNKBUF_TYPE be enable or disabled at the same time. |
| // It is recommended to enable this for fpga testing when DWC_USB3_MDWIDTH is 64 or 128 bits. This allows you |
| // to run ram_clk at lower than 125MHz for FPGA validation. |
| // For more information, see the databook's section B.12. |
| // Choice decides the value of DWC_USB3_BMU_PTL_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_BMU_SNKBUF_TYPE 0 |
| |
| |
| // Name: DWC_USB3_BMU_PTL_DEPTH |
| // Default: 8 |
| // Values: 2 4 8 16 |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the depth of the BMU-PTL Source/Sink Buffers. |
| // The FIFOs are 32 bits wide and synthesized into flops. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_BMU_PTL_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_BMU_PTL_DEPTH 8 |
| |
| |
| // Name: DWC_USB3_NUM_RXF_HS_PKTS |
| // Default: 2 |
| // Values: 1, ..., 16 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the High-Speed RxFIFO in number of 1024-byte packets. |
| // Each High-Speed USB Bus-Instance would require one RxFIFO. For example, if you have 2 HS Bus-Instances and chose |
| // 2 for this parameter, then 4096 bytes of RAM is allocated for HS RxFIFO. |
| // Since HS ISOC max packet size is 1024, at least 2048 bytes should be allocated for HS RxFIFO. |
| // Each 1024 bytes provides 20us latency tolerance. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_NUM_RXF_HS_PKTS in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_RXF_HS_PKTS 2 |
| |
| |
| #define DWC_USB3_HOST_RXFIFO_DEPTH_PER_HS_INSTANCE 260 |
| |
| |
| // Name: DWC_USB3_NUM_RXF_FSLS_PKTS |
| // Default: 1 |
| // Values: 1, ..., 4 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the Full-Speed/Low-Speed RxFIFO in number of 1024-byte packets. |
| // Each Full-Speed/Low-Speed USB Bus-Instance would require one RxFIFO. For example, if you have 1 HS Bus-Instances and chose |
| // 1 for this parameter, then 1024 bytes of RAM is allocated for FS/LS RxFIFO. |
| // Since FS ISOC max payload size is 1023, at least 1024 bytes should be allocated for FS/LS RxFIFO. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_NUM_RXF_FSLS_PKTS in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_RXF_FSLS_PKTS 1 |
| |
| |
| #define DWC_USB3_HOST_RXFIFO_DEPTH_PER_FSLS_INSTANCE 132 |
| |
| |
| // Name: DWC_USB3_NUM_TXF_SS_PKTS |
| // Default: 4 |
| // Values: 1, ..., 32 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the SuperSpeed TxFIFO in number of 1024-byte packets. |
| // Each SuperSpeed USB Bus-Instance would require one TxFIFO. For example, if you have 2 SS Bus-Instances and chose |
| // 4 for this parameter, then 8182 bytes of RAM is allocated for SS TxFIFO. |
| // In PCIe application, the read access has more latency than write. It is recommended to allocate more TxFIFO than RxFIFO |
| // which gives better area and performance trade off. |
| // Each 1024byte provides a 2.1us latency tolerance. |
| // If the system bus latency is more than 2.1uS, then at least a 5 to 6 packet buffer is recommended. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_NUM_TXF_SS_PKTS in DWC_usb3_params.v file. |
| // Specifies the size of the TXFIFO for each host SS USB Bus-Instance. |
| // For more information, see the databook's "Hardware Integration" |
| // chapter. |
| // Choice decides the value of DWC_USB3_HOST_TXFIFO_DEPTH_PER_SS_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_TXF_SS_PKTS 7 |
| |
| |
| #define DWC_USB3_HOST_TXFIFO_DEPTH_PER_SS_INSTANCE 904 |
| |
| |
| // Name: DWC_USB3_NUM_TXF_HS_PKTS |
| // Default: 2 |
| // Values: 1, ..., 16 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the High-Speed TxFIFO in number of 1024-byte packets. |
| // Each High-Speed USB Bus-Instance would require one TxFIFO. For example, if you have 2 HS Bus-Instances and chose |
| // 2 for this parameter, then 4096 bytes of RAM is allocated for HS TxFIFO. |
| // Since HS ISOC max packet size is 1024, at least 2048 bytes should be allocated for HS TxFIFO. |
| // Each 1024 bytes provides 20us latency tolerance. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_NUM_TXF_HS_PKTS in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_TXF_HS_PKTS 2 |
| |
| |
| #define DWC_USB3_HOST_TXFIFO_DEPTH_PER_HS_INSTANCE 259 |
| |
| |
| // Name: DWC_USB3_NUM_TXF_FSLS_PKTS |
| // Default: 1 |
| // Values: 1, ..., 4 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the Full-Speed/Low-Speed TxFIFO in number of 1024-byte packets. |
| // Each Full-Speed/Low-Speed USB Bus-Instance would require one TxFIFO. For example, if you have 1 HS Bus-Instances and chose |
| // 1 for this parameter, then 1024 bytes of RAM is allocated for FS/LS TxFIFO. |
| // Since FS ISOC max payload size is 1023, at least 1024 bytes should be allocated for FS/LS TxFIFO. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_NUM_TXF_FSLS_PKTS in DWC_usb3_params.v file. |
| #define DWC_USB3_NUM_TXF_FSLS_PKTS 1 |
| |
| |
| #define DWC_USB3_HOST_TXFIFO_DEPTH_PER_FSLS_INSTANCE 130 |
| |
| |
| // Name: DWC_USB3_HOST_RXMSG_DEPTH_PER_SS_INSTANCE |
| // Default: 16 |
| // Values: 16 32 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the BMU Protocol Status Queue for each host SS USB Bus-Instance. |
| // They are actually the PTL Message Sink Buffers. |
| // The FIFOs are 64 bits wide and synthesized into flops. |
| // For more information, see the databook's "Hardware Integration" |
| // chapter. |
| // Choice decides the value of DWC_USB3_HOST_RXMSG_DEPTH_PER_SS_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_RXMSG_DEPTH_PER_SS_INSTANCE 16 |
| |
| |
| // Name: DWC_USB3_LEGACY_SUPT |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) |
| // |
| // Specifies whether to enable Legacy Keyboard/Mice BIOS support (IRQ and Address 60/64 I/O access). |
| // This is different from the xHCI's SMI Legacy feature specified in the section 7.1 of xHCI specification. |
| // The xHCI's SMI Legacy feature is always enabled. |
| // Likely just xHCI's SMI Legacy feature is enough for most applications and this Legacy Keyboard/Mice BIOS support |
| // is normally not needed. This implements the features required in: |
| // "Universal Serial Bus PC Legacy Compatibility Specification 0.9 Draft Revision May 30, 1996". |
| #define DWC_USB3_LEGACY_SUPT 0 |
| |
| |
| // Name: DWC_USB3_GSBUSCFG0_INIT |
| // Default: 0x1 |
| // Values: 0x0, ..., 0xffffffff |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the Global System Bus Configuration Register-0's (GSBUSCFG0) |
| // power-on initialization value. The GSBUSCFG0 register defines the system bus configuration. |
| // The bits other than defined here must be 0. The different fields are: |
| // bit[31:28] AHB-prot/AXI-cache/OCP-ReqInfo for Data Read |
| // bit[27:24] AHB-prot/AXI-cache/OCP-ReqInfo for Descriptor Read |
| // bit[23:20] AHB-prot/AXI-cache/OCP-ReqInfo for Data Write |
| // bit[19:16] AHB-prot/AXI-cache/OCP-ReqInfo for Descriptor Write |
| // bit[15] 1'b1 - Read back the Last word of the descriptor write before setting the |
| // XferComplete interrupt |
| // bit[14] 1'b1 - For AXI/OCP interface, force only one request to be sent on the bus at a time |
| // bit[12] 1'b1 - Enable BUS-GM Store-and-Forward mode |
| // bit[11] 1'b1 - Data Access is Big Endian |
| // bit[10] 1'b1 - Descriptor Access is Big Endian |
| // bit[9] 1'b1 - Data Write is Posted |
| // bit[8] 1'b1 - Descriptor Write is Posted |
| // bit[7] 1'b1 - Enable INCR256 Burst Type |
| // bit[6] 1'b1 - Enable INCR128 Burst Type |
| // bit[5] 1'b1 - Enable INCR64 Burst Type |
| // bit[4] 1'b1 - Enable INCR32 Burst Type |
| // bit[3] 1'b1 - Enable INCR16 Burst Type |
| // bit[2] 1'b1 - Enable INCR8 Burst Type |
| // bit[1] 1'b1 - Enable INCR4 Burst Type |
| // bit[0] 1'b1 - Enable Undefined Length INCR Burst Type |
| // If you use a standard driver, such as the xHCI driver from Microsoft, you must initialize |
| // this register to meet your system requirements before synthesizing the core. If you are |
| // developing your own xHCI host driver, then this register must be configured by your driver. |
| // For more information, see the "Control and Status Registers" chapter in the Databook. |
| // Choice decides the value of DWC_USB3_GSBUSCFG0_INIT in DWC_usb3_params.v file. |
| #define DWC_USB3_GSBUSCFG0_INIT 32'h1 |
| |
| |
| // Name: DWC_USB3_GSBUSCFG1_INIT |
| // Default: 0x300 |
| // Values: 0x0, ..., 0xffffffff |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the Global System Bus Configuration Register-1's (GSBUSCFG1) |
| // power-on initialization value. The GSBUSCFG1 register defines the system bus configuration. |
| // The bits other than defined here must be 0. The different fields are: |
| // bit [7:4] OCP Address Space for Data |
| // bit [3:0] OCP Address Space for Descriptor |
| // If you use a standard driver, such as the xHCI driver from Microsoft, you must initialize |
| // this register to meet your system requirements before synthesizing the core. If you are |
| // developing your own xHCI host driver, then this register must be configured by your driver. |
| // For more information, see the "Control and Status Registers" chapter in the Databook. |
| // Choice decides the value of DWC_USB3_GSBUSCFG1_INIT in DWC_usb3_params.v file. |
| #define DWC_USB3_GSBUSCFG1_INIT 32'h300 |
| |
| |
| // Name: DWC_USB3_GTXTHRCFG_INIT |
| // Default: 0x0 |
| // Values: 0x0, ..., 0xffffffff |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the Global Transmit Threshold Configuration Register (GTXTHRCFG) |
| // power-on initialization value. This register contains threshold enable bits |
| // and threshold count fields. To enable USB or DMA byte or packet thresholding |
| // upon power-on, then you need to update this value. |
| // For more information, see the "Control and Status Registers" chapter in the Databook. |
| // Choice decides the value of DWC_USB3_GTXTHRCFG_INIT in DWC_usb3_params.v file. |
| #define DWC_USB3_GTXTHRCFG_INIT 32'h0 |
| //`efine DWC_USB3_GTXTHRCFG_INIT ((2 << 24) + ((`DWC_USB3_MPS >> (`DWC_USB3_MADDR_LO+1)) << 16)) + (8 << 0) |
| |
| |
| // Name: DWC_USB3_GRXTHRCFG_INIT |
| // Default: 0x0 |
| // Values: 0x0, ..., 0xffffffff |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the Global Receive Threshold Configuration Register (GRXTHRCFG) |
| // power-on initialization value. This register contains threshold enable bits |
| // and threshold count fields. To enable USB or DMA byte or packet thresholding |
| // upon power-on, then you need to update this value. |
| // For more information, see the "Control and Status Registers" chapter in the Databook. |
| // Choice decides the value of DWC_USB3_GRXTHRCFG_INIT in DWC_usb3_params.v file. |
| #define DWC_USB3_GRXTHRCFG_INIT 32'h0 |
| //`efine DWC_USB3_GRXTHRCFG_INIT (2 << 24) + (8 << 0) |
| |
| |
| // Name: DWC_USB3_GCTL_INIT |
| // Default: 0x30c02000 |
| // Values: 0x0, ..., 0xffffffff |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the Global Control Register-1's (GCTL) power-on initialization value. |
| // bit [31:19] - Suspend Clock Scaledown value (suspend_clk_period/mac3_clk_period) |
| // bit [18:17] - Reserved |
| // bit [16] - Attempt 3 SS connection |
| // bit [15:14] - SOF Scaledown Value |
| // bit [13:12] Port Capability Direction |
| // 2'b01 - for Host configurations |
| // 2'b10 - for Device configurations |
| // 2'b11 - for OTG configurations |
| // bit [7:6] RAM Clock Select |
| // 2'b00: bus clock |
| // 2'b01: pipe clock |
| // 2'b10: pipe/2 clock |
| // 2'b11: mac2 clock |
| // bit [5:4] Scaledown Mode |
| // bit [3] 1'b0 - Enable Scrambling |
| // 1'b1 - Disable Scrambling |
| // bit [2] 1'b0 - Clamp the interface signals of SS modules. |
| // 1'b1 - No clamp the interface signals of SS modules. |
| // bit [1] 1'b0 - Clamp the interface signals of the HS/FS/LS modules |
| // 1'b1 - No clamp the interface signals of the HS/FS/LS modules |
| // bit [0] 1'b0 - Enable internal clock gating. |
| // 1'b1 - Disable internal clock gating. |
| // If you use a standard driver, such as the xHCI driver from Microsoft, you must initialize |
| // this register to meet your system requirements before synthesizing the core. If you are |
| // developing your own xHCI host driver, then this register must be configured by your driver. |
| // For more information, see the "Control and Status Registers" chapter in the Databook. |
| // Choice decides the value of DWC_USB3_GCTL_INIT in DWC_usb3_params.v file. |
| #define DWC_USB3_GCTL_INIT 32'h30c02000 |
| |
| |
| // Name: DWC_USB3_HOST_EN_EXTERNAL_CAP |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Enables extended capabilities to be implemented outside the core. |
| // If enabled, a read to the first DWORD of the last internal extended capability (currently the "xHCI |
| // Supported Protocol Capability" for USB 3.0) will return a value of 4 in the "Next Capability Pointer" field. This |
| // will indicate to software that there is another capability 4 DWORDs after this capability (for example, at address |
| // N+16 where N is the address of this DWORD). |
| // If disabled, a read to the same DWORD will return 0 in the "Next Capability Pointer" field. This indicates there are |
| // no more capabilities. |
| // If enabled, an external address decoder that snoops the xHC slave interface will need to be implemented. If it sees |
| // an access to N+16 or greater, the slave access is re-routed to a piece of hardware which returns the external |
| // capability pointer register of the new capability and also handles reads/writes to this new capability and the |
| // side-effects. |
| #define DWC_USB3_HOST_EN_EXTERNAL_CAP 0 |
| |
| /********** Hub Specific Parameters ***********/ |
| |
| |
| // Name: DWC_USB3_HUB_NUM_PORTS |
| // Default: 1 |
| // Values: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
| // Enabled: DWC_USB3_MODE == 3 |
| // |
| // Specifies the number of down-stream Hub ports. This includes both |
| // USB 3.0 and USB 2.0 ports. The area of a USB 3.0 port is about |
| // xKGates, and the area of an USB 2.0 port is yKGates. |
| // Choice decides the value of DWC_USB3_HUB_NUM_PORTS in DWC_usb3_params.v file. |
| #define DWC_USB3_HUB_NUM_PORTS 1 |
| |
| |
| // Name: DWC_USB3_HUB_NUM_U3_PORTS |
| // Default: 4 |
| // Values: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
| // Enabled: DWC_USB3_MODE == 3 |
| // |
| // Specifies the number of USB 3.0 capable down-stream Hub ports. |
| // Choice decides the value of DWC_USB3_HUB_NUM_U3_PORTS in DWC_usb3_params.v file. |
| #define DWC_USB3_HUB_NUM_U3_PORTS 4 |
| |
| |
| // Name: DWC_USB3_EN_HUB_SFLASH_SUPT |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: DWC_USB3_MODE == 3 |
| // |
| // Specifies whether Xilinx Serial Flash-RAM/PROM support is required to |
| // load Hub Descriptors. |
| // The memory requirements for the Hub descriptor is 256bytes (2048bits). |
| // Refer to Xilinx website for a Serial Flash/PROM that meets your |
| // requirements. Most Xilinx Serial Flash/PROM are much |
| // larger in size than the required 2048bits. |
| // Choice decides the value of DWC_USB3_EN_HUB_SFLASH_SUPT in DWC_usb3_params.v file. |
| #define DWC_USB3_EN_HUB_SFLASH_SUPT 0 |
| |
| |
| // Name: DWC_USB3_HUB_SFLASH_DIVFACTOR |
| // Default: 16 |
| // Values: 4, ..., 128 |
| // Enabled: DWC_USB3_MODE == 3 |
| // |
| // Specifies the MAC clock(125MHz) to Serial Flash/PROM clock divide factor. |
| // The typical Xilinx Serial Flash/PROM memory operating frequency range |
| // is 2.5 to 20 MHz. Refer to Xilinx website for a Serial Flash/PROM that |
| // meets your requirements. |
| // Choice decides the value of DWC_USB3_HUB_SFLASH_DIVFACTOR in DWC_usb3_params.v file. |
| #define DWC_USB3_HUB_SFLASH_DIVFACTOR 16 |
| |
| |
| // Name: DWC_USB3_JTAG_INTERFACE |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: DWC_USB3_MODE ==3 |
| // |
| // Specifies whether JTAG debug interface is enabled. |
| // Choice decides the value of DWC_USB3_JTAG_INTERFACE in DWC_usb3_params.v file. |
| #define DWC_USB3_JTAG_INTERFACE 0 |
| |
| |
| // Name: DWC_USB3_HUB_NUM_RXHEADERS |
| // Default: 4 |
| // Values: 4 8 |
| // Enabled: DWC_USB3_MODE ==3 |
| // |
| // Specifies the number of Headers in each Rx Header Buffers |
| // Choice decides the value of DWC_USB3_HUB_NUM_RXHEADERS in DWC_usb3_params.v file. |
| #define DWC_USB3_HUB_NUM_RXHEADERS 4 |
| |
| |
| // Name: DWC_USB3_HUB_NUM_TXHEADERS |
| // Default: 4 |
| // Values: 4 8 |
| // Enabled: DWC_USB3_MODE ==3 |
| // |
| // Specifies the number of Headers in each Tx Header Buffers |
| // Choice decides the value of DWC_USB3_HUB_NUM_TXHEADERS in DWC_usb3_params.v file. |
| #define DWC_USB3_HUB_NUM_TXHEADERS 4 |
| |
| |
| // Name: DWC_USB3_HUB_NUM_UPSTRMRX_DATAPKTS |
| // Default: 1 |
| // Values: 1 2 3 4 5 6 7 8 |
| // Enabled: DWC_USB3_MODE ==3 |
| // |
| // Specifies the number of packets in Upstream Rx Data Packet Buffer. Each packet |
| // requires 1024 bytes of space. |
| // Choice decides the value of DWC_USB3_HUB_NUM_UPSTRMRX_DATAPKTS in DWC_usb3_params.v file. |
| #define DWC_USB3_HUB_NUM_UPSTRMRX_DATAPKTS 1 |
| |
| |
| // Name: DWC_USB3_HUB_NUM_UPSTRMTX_DATAPKTS |
| // Default: 1 |
| // Values: 1 2 3 4 5 6 7 8 |
| // Enabled: DWC_USB3_MODE ==3 |
| // |
| // Specifies the number Packets in Upstream Tx Data Packet Buffer. Each packet needs 1024 bytes of space. |
| // Choice decides the value of DWC_USB3_HUB_NUM_UPSTRMTX_DATAPKTS in DWC_usb3_params.v file. |
| #define DWC_USB3_HUB_NUM_UPSTRMTX_DATAPKTS 1 |
| |
| |
| // Name: DWC_USB3_HUB_DESC_DEPTH |
| // Default: 64 |
| // Values: 64 128 256 |
| // Enabled: DWC_USB3_MODE ==3 |
| // |
| // Specifies the depth of the Descriptor ROM or Serial-Flash in 32-bit Dwords. |
| // For example a value of 64 represents a 256byte (64 * 4) ROM. |
| // Choice decides the value of DWC_USB3_HUB_DESC_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_HUB_DESC_DEPTH 64 |
| |
| |
| // Name: DWC_USB3_HUB_DESC_SS_START_DEPTH |
| // Default: 0 |
| // Values: 0 64 128 |
| // Enabled: DWC_USB3_MODE ==3 |
| // |
| // Specifies the starting depth of the Descriptor ROM or Serial-Flash in 32-bit Dwords used for DWC_usb3 core. |
| // If you share the same ROM or Serial-Flash between USB2.0 hub and USB3.0 SS Hub, the lower portion |
| // of the ROM or Serial-Flash will have data for the USB2.0 Hub and the upper part will have data for the SS Hub. |
| // The DWC_usb3 controller will read the entire RAM or Serial-Flash but will use only the data from this depth. |
| // The DWC_usb3 controller provides the USB2.0 descriptors to the USB2.0 controller through the "hub_usb2_desc" interface. |
| #define DWC_USB3_HUB_DESC_SS_START_DEPTH 0 |
| |
| |
| #define DWC_USB3_NUM_ROOT_PORTS 1 |
| |
| |
| #define DWC_USB3_NUM_U2_ROOT_PORTS 1 |
| |
| |
| #define DWC_USB3_NUM_U3_ROOT_PORTS 1 |
| |
| |
| #define DWC_USB3_EN_HUB_SFLASH_SUPT_SIM 0 |
| |
| |
| // Name: DWC_USB3_HUB_ENABLE_SCRAMBLING |
| // Default: Disable |
| // Values: Disable (0), Enable (1) |
| // Enabled: DWC_USB3_MODE ==3 |
| // |
| // This option only affects the Simulation. |
| // This controls if scrambling is enabled/disabled when running hub tests in coreConsultant. |
| // This directly controls the hub_enable_scrambling input pin of the Hub. |
| // 0 - A value of 0 will be assigned to "hub_enable_scrambling" input to disable scrambling on all ports. |
| // 1 - A value of 1 will be assigned to "hub_enable_scrambling" input to enable scrambling on all ports. |
| #define DWC_USB3_HUB_ENABLE_SCRAMBLING 0 |
| |
| |
| |
| /********** Advanced Parameters ***********/ |
| |
| |
| // Name: DWC_USB3_BMU_LSP_DEPTH |
| // Default: 4 |
| // Values: 1 4 8 |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the depth of the BMU-LSP Status Buffer. |
| // The FIFO is 26 bits wide and synthesized into flops. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_BMU_LSP_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_BMU_LSP_DEPTH 4 |
| |
| |
| // Name: DWC_USB3_WBUFF |
| // Default: 4 |
| // Values: 3 4 5 6 7 8 |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the depth of the AHB-GM Buffers. |
| // The FIFOs are 32/64/128 bits wide, matching the bus master |
| // data width, and synthesized into flops. |
| // For more information, see the databook's "Hardware Integration" chapter in the Databook. |
| // Choice decides the value of DWC_USB3_WBUFF in DWC_usb3_params.v file. |
| #define DWC_USB3_WBUFF 4 |
| |
| |
| #define DWC_USB3_RBUFF 2 |
| |
| |
| #define DWC_USB3_COMBO 0 |
| |
| |
| #define DWC_USB3_MAX_RREQ 16 |
| |
| #define DWC_USB3_MAX_WREQ 16 |
| |
| #define DWC_USB3_WRESP_BUFF 4 |
| |
| #define DWC_USB3_WREQ_BUFF 4 |
| |
| #define DWC_USB3_RREQ_BUFF 4 |
| |
| |
| #define DWC_USB3_MPS_TXF0 512 |
| |
| #define DWC_USB3_NUM_RXF_PKTS 3 |
| |
| #define DWC_USB3_NUM_TXF_PKTS 3 |
| |
| #define DWC_USB3_TXDMA_CMD_FIFO_DEPTH 2 |
| |
| #define DWC_USB3_TXDMA_CMD_MSEG_FIFO_DEPTH 1 |
| |
| #define DWC_USB3_RXDMA_CMD_FIFO_DEPTH 1 |
| |
| #define DWC_USB3_RXDMA_CMD_MSEG_FIFO_DEPTH 1 |
| |
| #define DWC_USB3_DFDMA_CMD_FIFO_DEPTH 2 |
| |
| #define DWC_USB3_DWDMA_CMD_FIFO_DEPTH 2 |
| |
| |
| // Name: DWC_USB3_BMU_BUSGM_DEPTH |
| // Default: 8 |
| // Values: 4 8 |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the depth of the BMU-BUSGM Source/Sink Buffers. |
| // The FIFOs are 32/64/128 bits wide, matching the bus master |
| // data width, and synthesized into flops. The "AHB Master Source/Sink Buffer" and |
| // "BMU-BUSGM Source/Sink Buffers" combined together should be large enough to |
| // to meet your bus burst without waitstates. This provides rate-matching between |
| // bus clock and ram clock domains. The area of 16, 32-bit register is around 5KGates. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_BMU_BUSGM_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_BMU_BUSGM_DEPTH 8 |
| |
| |
| // Name: DWC_USB3_RXQ_FIFO_DEPTH |
| // Default: 16 |
| // Values: 16 32 64 |
| // Enabled: DWC_USB3_MODE ==0 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the BMU Rx Request Queue. |
| // The specified depth is allocated in the Data FIFO RAM |
| // 32/64/128 bits wide) and defines the number of Rx commands |
| // the Scheduler can queue to the BMU. A typical Rx command |
| // comprises 2 to 4 32-bit DWORDs. |
| // After power-up, software can dynamically change the memory |
| // allocation among the Rx Data FIFO, Tx Data FIFO, and |
| // Rx Request Queue. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_RXQ_FIFO_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_RXQ_FIFO_DEPTH 16 |
| //`efine DWC_USB3_RXQ_FIFO_DEPTH ((`DWC_USB3_NUM_RXF_PKTS+2) * `DWC_USB3_RXDMA_CMD_FIFO_DEPTH) |
| |
| |
| // Name: DWC_USB3_HOST_RXQ_DEPTH_PER_SS_INSTANCE |
| // Default: 62 |
| // Values: 2, ..., 1024 |
| // Enabled: DWC_USB3_MODE ==1 |
| // |
| // Specifies the size of the BMU Rx Request Queue for each host SS USB Bus-Instance. |
| // The specified depth is allocated in the Data FIFO RAM |
| // 32/64/128 bits wide) and defines the number of Rx commands |
| // the Scheduler can queue to the BMU. A typical Rx command |
| // comprises 2 or 4 32-bit DWORDs. |
| // After power-up, software can dynamically change the memory |
| // allocation among the Rx Data FIFO, Tx Data FIFO, and |
| // Rx Request Queue. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_HOST_RXQ_DEPTH_PER_SS_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_RXQ_DEPTH_PER_SS_INSTANCE 62 |
| |
| |
| // Name: DWC_USB3_HOST_RXQ_DEPTH_PER_HS_INSTANCE |
| // Default: 20 |
| // Values: 2, ..., 1024 |
| // Enabled: DWC_USB3_MODE ==1 |
| // |
| // Specifies the size of the BMU Rx Request Queue for each host HS USB Bus-Instance. |
| // The specified depth is allocated in the Data FIFO RAM |
| // 32/64/128 bits wide) and defines the number of Rx commands |
| // the Scheduler can queue to the BMU. A typical Rx command |
| // comprises 2 or 4 32-bit DWORDs. |
| // After power-up, software can dynamically change the memory |
| // allocation among the Rx Data FIFO, Tx Data FIFO, and |
| // Rx Request Queue. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_HOST_RXQ_DEPTH_PER_HS_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_RXQ_DEPTH_PER_HS_INSTANCE 20 |
| |
| |
| // Name: DWC_USB3_HOST_RXQ_DEPTH_PER_FSLS_INSTANCE |
| // Default: 16 |
| // Values: 2, ..., 1024 |
| // Enabled: DWC_USB3_MODE ==1 |
| // |
| // Specifies the size of the BMU Rx Request Queue for each host FS/LS USB Bus-Instance. |
| // The specified depth is allocated in the Data FIFO RAM |
| // 32/64/128 bits wide) and defines the number of Rx commands |
| // the Scheduler can queue to the BMU. A typical Rx command |
| // comprises 2 or 4 32-bit DWORDs. |
| // After power-up, software can dynamically change the memory |
| // allocation among the Rx Data FIFO, Tx Data FIFO, and |
| // Rx Request Queue. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_HOST_RXQ_DEPTH_PER_FSLS_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_RXQ_DEPTH_PER_FSLS_INSTANCE 16 |
| |
| |
| // Name: DWC_USB3_TXQ_FIFO_DEPTH |
| // Default: 16 |
| // Values: 16 32 |
| // Enabled: DWC_USB3_MODE ==0 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the BMU Tx Request Queue. |
| // The specified depth is allocated in the Data FIFO RAM |
| // (32/64/128 bits wide) and defines the number of Tx commands |
| // the Scheduler can queue to the BMU. A typical Tx command |
| // comprises 3 or 5 32-bit DWORDs. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_TXQ_FIFO_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_TXQ_FIFO_DEPTH 16 |
| //#define DWC_USB3_TXQ_FIFO_DEPTH ((`DWC_USB3_NUM_TXF_PKTS+2) * `DWC_USB3_TXDMA_CMD_FIFO_DEPTH) |
| |
| |
| // Name: DWC_USB3_HOST_TXQ_DEPTH_PER_SS_INSTANCE |
| // Default: 141 |
| // Values: 2, ..., 1024 |
| // Enabled: DWC_USB3_MODE ==1 |
| // |
| // Specifies the size of the BMU Tx Request Queue for each host SS USB Bus-Instance. |
| // The specified depth is allocated in the Data FIFO RAM |
| // (32/64/128 bits wide) and defines the number of Tx commands |
| // the Scheduler can queue to the BMU. A typical Tx command |
| // comprises 3 or 5 32-bit DWORDs. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_HOST_TXQ_DEPTH_PER_SS_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_TXQ_DEPTH_PER_SS_INSTANCE 141 |
| |
| |
| // Name: DWC_USB3_HOST_TXQ_DEPTH_PER_HS_INSTANCE |
| // Default: 26 |
| // Values: 2, ..., 1024 |
| // Enabled: DWC_USB3_MODE ==1 |
| // |
| // Specifies the size of the BMU Tx Request Queue for each host HS USB Bus-Instance. |
| // The specified depth is allocated in the Data FIFO RAM |
| // (32/64/128 bits wide) and defines the number of Tx commands |
| // the Scheduler can queue to the BMU. A typical Tx command |
| // comprises 3 or 5 32-bit DWORDs. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_HOST_TXQ_DEPTH_PER_HS_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_TXQ_DEPTH_PER_HS_INSTANCE 26 |
| |
| |
| // Name: DWC_USB3_HOST_TXQ_DEPTH_PER_FSLS_INSTANCE |
| // Default: 18 |
| // Values: 2, ..., 1024 |
| // Enabled: DWC_USB3_MODE ==1 |
| // |
| // Specifies the size of the BMU Tx Request Queue for each host FS/LS USB Bus-Instance. |
| // The specified depth is allocated in the Data FIFO RAM |
| // (32/64/128 bits wide) and defines the number of Tx commands |
| // the Scheduler can queue to the BMU. A typical Tx command |
| // comprises 3 or 5 32-bit DWORDs. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_HOST_TXQ_DEPTH_PER_SS_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_TXQ_DEPTH_PER_FSLS_INSTANCE 18 |
| |
| |
| // Name: DWC_USB3_TXPFL_FIFO_DEPTH |
| // Default: 1 |
| // Values: 1 |
| // Enabled: DWC_USB3_MODE ==1 |
| // |
| // Specifies the size of the BMU Tx Packet Flush Queue. |
| // The specified depth is allocated in flop-based FIFO |
| // (1 bit wide) and defines the number of Tx Packet Flush commands |
| // the Scheduler can queue to the BMU. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_TXPFL_FIFO_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_TXPFL_FIFO_DEPTH 1 |
| |
| |
| // Name: DWC_USB3_DWQ_FIFO_DEPTH |
| // Default: 32 |
| // Values: 4, ..., 1024 |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the BMU Descriptor Write Queue. |
| // The specified depth is allocated in the Data FIFO RAM |
| // (32/64/128 bits wide) and defines the number of descriptor write |
| // commands the Scheduler can queue to the BMU. A typical descriptor |
| // write command comprises five 32-bit DWORDs. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_DWQ_FIFO_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_DWQ_FIFO_DEPTH 32 |
| //#define DWC_USB3_DWQ_FIFO_DEPTH (`DWC_USB3_DWDMA_CMD_FIFO_DEPTH * (2 + `DWC_USB3_NUM_TXFIFO + (`DWC_USB3_NUM_RXF_PKTS * `DWC_USB3_NUM_RXFIFO))) |
| |
| |
| // Name: DWC_USB3_DFQ_FIFO_DEPTH |
| // Default: 16 |
| // Values: 4, ..., 1024 |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the BMU Descriptor Fetch Request Queue. |
| // The specified depth is allocated in the Data FIFO RAM |
| // (32/64/128 bits wide) and defines the number of descriptor fetch |
| // commands the Scheduler can queue to the BMU. A typical descriptor |
| // fetch command comprises three 32-bit DWORDs. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_DFQ_FIFO_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_DFQ_FIFO_DEPTH 16 |
| //#define DWC_USB3_DFQ_FIFO_DEPTH (`DWC_USB3_DFDMA_CMD_FIFO_DEPTH * (`DWC_USB3_NUM_TXFIFO + (`DWC_USB3_NUM_RXF_PKTS * `DWC_USB3_NUM_RXFIFO))) |
| |
| |
| // Name: DWC_USB3_PSQ_FIFO_DEPTH |
| // Default: 32 |
| // Values: 16 32 |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the BMU Protocol Status Queue. |
| // The specified depth is allocated in the Data FIFO RAM |
| // (32/64/128 bits wide) and defines the number of header and status |
| // dwords the PTL can queue to the LSP. For each RX packet, the PTL |
| // queues a total of two entries: one header and one status. For each |
| // TX packet, the PTL queues one entry for the status. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_PSQ_FIFO_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_PSQ_FIFO_DEPTH 32 |
| |
| |
| // Name: DWC_USB3_DEV_RXMSG_FIFO_DEPTH |
| // Default: 4 |
| // Values: 4 |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the Device-mode BMU RX Message Buffer. |
| // It is actually the PTL Message Sink Buffers. |
| // The FIFO is 32 bits wide and synthesized into flops. |
| // Choice decides the value of DWC_USB3_DEV_RXMSG_FIFO_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_DEV_RXMSG_FIFO_DEPTH 4 |
| |
| // MAC requires RXFIFO space of 1KB packet + three 8-byte setup packets + 16 byte synchronization delay |
| |
| #define DWC_USB3_DEV_RXFIFO_OK_SPACE_MARGIN 10 |
| |
| #define DWC_USB3_DEV_RXFIFO_OK_SPACE 266 |
| |
| #define DWC_USB3_HOST_RXFIFO_OK_SPACE 256 |
| |
| |
| |
| // Name: DWC_USB3_HOST_RXMSG_DEPTH_PER_HS_INSTANCE |
| // Default: 8 |
| // Values: 8 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the BMU Protocol Status Queue for each host HS USB Bus-Instance. |
| // They are actually the PTL Message Sink Buffers. |
| // The FIFOs are 64 bits wide and synthesized into flops. |
| // For more information, see the databook's "Hardware Integration" |
| // chapter. |
| // Choice decides the value of DWC_USB3_HOST_RXMSG_DEPTH_PER_HS_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_RXMSG_DEPTH_PER_HS_INSTANCE 8 |
| |
| |
| // Name: DWC_USB3_HOST_RXMSG_DEPTH_PER_FSLS_INSTANCE |
| // Default: 2 |
| // Values: 2 |
| // Enabled: (DWC_USB3_MODE == 1 || DWC_USB3_MODE == 2) && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // Specifies the size of the BMU Protocol Status Queue for each host FS/LS USB Bus-Instance. |
| // They are actually the PTL Message Sink Buffers. |
| // The FIFOs are 64 bits wide and synthesized into flops. |
| // For more information, see the databook's "Hardware Integration" |
| // chapter. |
| // Choice decides the value of DWC_USB3_HOST_RXMSG_DEPTH_PER_FSLS_INSTANCE in DWC_usb3_params.v file. |
| #define DWC_USB3_HOST_RXMSG_DEPTH_PER_FSLS_INSTANCE 2 |
| |
| |
| // Name: DWC_USB3_PIU_RING_BUFFER_DEPTH_P2 |
| // Default: 4 |
| // Values: 3 4 5 |
| // Enabled: DWC_USB3_NUM_U3_ROOT_PORTS!=1 |
| // |
| // Specifies the depth of the PIPE3 PIU Tx and Rx ring buffers. |
| // The ring buffers are 32 bits wide and synthesized into flops. |
| // For more information, see the databook's "Hardware Integration" chapter. |
| // Choice decides the value of DWC_USB3_PIU_RING_DEPTH_P2 in DWC_usb3_params.v file. |
| // Ring buffer depth will be 2**value of the parameter |
| #define DWC_USB3_PIU_RING_BUFFER_DEPTH_P2 4 |
| |
| |
| |
| //------------------------------------------------------------------------------------------ |
| // Macros |
| //------------------------------------------------------------------------------------------ |
| // Extra parentheses ensure correct order of operations for complex expressions |
| |
| // Returns minimum/maximum value |
| #define DWC_USB3_MIN_CB(a, b) (((a) < (b)) ? (a): (b)) |
| #define DWC_USB3_MAX_CB(a, b) (((a) > (b)) ? (a): (b)) |
| |
| #define DWC_USB3_LOG2(a) (((a)<=2) ? 1: ((a)<=4) ? 2: ((a)<=8) ? 3: ((a)<=16) ? 4: ((a)<=32) ? 5: ((a)<=64) ? 6: ((a)<=128) ? 7: ((a)<=256) ? 8: ((a)<=512) ? 9: ((a)<=1024) ? 10: ((a)<=2048) ? 11: ((a)<=4096) ? 12: ((a)<=8192) ? 13: ((a)<=16384) ? 14: ((a)<=32768) ? 15: ((a)<=65536) ? 16: ((a)<=131072) ? 17: ((a)<=262144 ? 18: ((a)<=524288) ? 19: 20)) |
| #define DWC_USB3_LOG2P1(a) `DWC_USB3_LOG2(a+1) |
| |
| #define DWC_USB3_ALIGN_MDW(a) ((((a) + 15) >> 4) << 4) |
| //#define DWC_USB3_ALIGN_MDW(a) ((((a) + (`DWC_USB3_MDWIDTH-8)/8) >> `DWC_USB3_MDWIDTH_BYTESHFT) << `DWC_USB3_MDWIDTH_BYTESHFT) |
| |
| //------------------------------------------------------------------------------------------ |
| // Derived Params |
| //------------------------------------------------------------------------------------------ |
| |
| #define DWC_USB3_RIQ_FIFO_DEPTH 34 |
| |
| #define DWC_USB3_HOST_RIQ_DEPTH_PER_SS_INSTANCE 64 |
| |
| #define DWC_USB3_HOST_RIQ_DEPTH_PER_HS_INSTANCE 22 |
| |
| #define DWC_USB3_HOST_RIQ_DEPTH_PER_FSLS_INSTANCE 34 |
| |
| #define DWC_USB3_DEV_RXMSG_FIFO_DEPTH_LOG2P1 3 |
| |
| #define DWC_USB3_HOST_RXMSG_DEPTH_PER_SS_INSTANCE_LOG2P1 5 |
| |
| #define DWC_USB3_HOST_RXMSG_DEPTH_PER_HS_INSTANCE_LOG2P1 4 |
| |
| #define DWC_USB3_HOST_RXMSG_DEPTH_PER_FSLS_INSTANCE_LOG2P1 2 |
| |
| |
| #define DWC_USB3_HOST_RXMSG_FIFO_DEPTH 16 |
| |
| |
| #define DWC_USB3_MAX_RXMSG_FIFO_DEPTH 16 |
| |
| #define DWC_USB3_MAX_RXMSG_FIFO_LOG2P1 6 |
| |
| |
| #define DWC_USB3_MAX_PSQ_FIFO_DEPTH 32 |
| |
| #define DWC_USB3_PSQ_FIFO_LOG2 5 |
| |
| #define DWC_USB3_PSQ_FIFO_LOG2P1 6 |
| |
| |
| //------------------------------------------------------------------------------------------ |
| // RAM Allocation |
| //------------------------------------------------------------------------------------------ |
| |
| #define DWC_USB3_NUM_TXFIFO_HOST 3 |
| |
| #define DWC_USB3_NUM_TXFIFO_SDRD 4 |
| |
| #define DWC_USB3_NUM_TXFIFO 4 |
| |
| #define DWC_USB3_NUM_RXFIFO 3 |
| |
| |
| #define DWC_USB3_NUM_TXFIFO_LOG2 2 |
| |
| #define DWC_USB3_NUM_RXFIFO_LOG2 2 |
| |
| #define DWC_USB3_NUM_TXFIFO_LOG2P1 3 |
| |
| #define DWC_USB3_NUM_RXFIFO_LOG2P1 2 |
| |
| #define DWC_USB3_RIQ_FIFO_LOG2 7 |
| |
| #define DWC_USB3_RIQ_FIFO_LOG2P1 8 |
| |
| |
| #define DWC_USB3_TXQ_FIFO_DEVICE_DEPTH 64 |
| |
| #define DWC_USB3_TXQ_FIFO_HOST_DEPTH 185 |
| |
| #define DWC_USB3_TXQ_FIFO_DRD_DEPTH 201 |
| |
| #define DWC_USB3_TXQ_FIFO_ALL_DEPTH 201 |
| |
| #define DWC_USB3_RXQ_FIFO_ALL_DEPTH 98 |
| |
| #define DWC_USB3_RIQ_FIFO_ALL_DEPTH 120 |
| |
| |
| #define DWC_USB3_TXQ_MAX_SEGMENTS 8 |
| |
| |
| #define DWC_USB3_TXQ_FIFO_LOG2 9 |
| |
| #define DWC_USB3_TXQ_FIFO_LOG2P1 9 |
| |
| #define DWC_USB3_TXPFL_FIFO_LOG2 1 |
| |
| #define DWC_USB3_TXPFL_FIFO_LOG2P1 1 |
| |
| #define DWC_USB3_RXQ_FIFO_LOG2 7 |
| |
| #define DWC_USB3_RXQ_FIFO_LOG2P1 7 |
| |
| |
| #define DWC_USB3_DFQ_FIFO_LOG2 4 |
| |
| #define DWC_USB3_DFQ_FIFO_LOG2P1 5 |
| |
| #define DWC_USB3_DWQ_FIFO_LOG2 5 |
| |
| #define DWC_USB3_DWQ_FIFO_LOG2P1 6 |
| |
| |
| #define DWC_USB3_NPI_RX_STATUS_DEPTH_LOG2 4 |
| |
| #define DWC_USB3_NPI_RX_STATUS_DEPTH_LOG2P1 5 |
| |
| #define DWC_USB3_NPI_TX_STATUS_DEPTH_LOG2 3 |
| |
| #define DWC_USB3_NPI_TX_STATUS_DEPTH_LOG2P1 3 |
| |
| |
| #define DWC_USB3_NPI_IN_EP0_FIFO_LOG2 7 |
| |
| #define DWC_USB3_NPI_IN_EP0_FIFO_LOG2P1 8 |
| |
| #define DWC_USB3_NPI_IN_EP1_FIFO_LOG2 10 |
| |
| #define DWC_USB3_NPI_IN_EP1_FIFO_LOG2P1 11 |
| |
| #define DWC_USB3_NPI_IN_EP2_FIFO_LOG2 10 |
| |
| #define DWC_USB3_NPI_IN_EP2_FIFO_LOG2P1 10 |
| |
| #define DWC_USB3_NPI_IN_EP3_FIFO_LOG2 8 |
| |
| #define DWC_USB3_NPI_IN_EP3_FIFO_LOG2P1 9 |
| |
| #define DWC_USB3_NPI_IN_EP4_FIFO_LOG2 1 |
| |
| #define DWC_USB3_NPI_IN_EP4_FIFO_LOG2P1 1 |
| |
| #define DWC_USB3_NPI_IN_EP5_FIFO_LOG2 1 |
| |
| #define DWC_USB3_NPI_IN_EP5_FIFO_LOG2P1 1 |
| |
| #define DWC_USB3_NPI_IN_EP6_FIFO_LOG2 1 |
| |
| #define DWC_USB3_NPI_IN_EP6_FIFO_LOG2P1 1 |
| |
| #define DWC_USB3_NPI_IN_EP7_FIFO_LOG2 1 |
| |
| #define DWC_USB3_NPI_IN_EP7_FIFO_LOG2P1 1 |
| |
| |
| #define DWC_USB3_NPI_IN_EP8_FIFO_LOG2 1 |
| |
| #define DWC_USB3_NPI_IN_EP8_FIFO_LOG2P1 1 |
| |
| #define DWC_USB3_NPI_IN_EP9_FIFO_LOG2 1 |
| |
| #define DWC_USB3_NPI_IN_EP9_FIFO_LOG2P1 1 |
| |
| #define DWC_USB3_NPI_IN_EP10_FIFO_LOG2 1 |
| |
| #define DWC_USB3_NPI_IN_EP10_FIFO_LOG2P1 1 |
| |
| #define DWC_USB3_NPI_IN_EP11_FIFO_LOG2 1 |
| |
| #define DWC_USB3_NPI_IN_EP11_FIFO_LOG2P1 1 |
| |
| #define DWC_USB3_NPI_IN_EP12_FIFO_LOG2 1 |
| |
| #define DWC_USB3_NPI_IN_EP12_FIFO_LOG2P1 1 |
| |
| #define DWC_USB3_NPI_IN_EP13_FIFO_LOG2 1 |
| |
| #define DWC_USB3_NPI_IN_EP13_FIFO_LOG2P1 1 |
| |
| #define DWC_USB3_NPI_IN_EP14_FIFO_LOG2 1 |
| |
| #define DWC_USB3_NPI_IN_EP14_FIFO_LOG2P1 1 |
| |
| #define DWC_USB3_NPI_IN_EP15_FIFO_LOG2 1 |
| |
| #define DWC_USB3_NPI_IN_EP15_FIFO_LOG2P1 1 |
| |
| #define DWC_USB3_NPI_LARGEST_IN_EP_FIFO_LOG2 10 |
| |
| #define DWC_USB3_NPI_LARGEST_IN_EP_FIFO_LOG2P1 11 |
| |
| // MBYTES Depth of Queues defined in cC |
| // MBYTES Address (fixed) of Queues |
| |
| #define DWC_USB3_ADDR_TXQ 0 |
| |
| #define DWC_USB3_ADDR_RXQ 201 |
| |
| #define DWC_USB3_ADDR_RIQ 299 |
| |
| #define DWC_USB3_ADDR_DFQ 419 |
| |
| #define DWC_USB3_ADDR_DWQ 435 |
| |
| #define DWC_USB3_ADDR_PSQ 467 |
| |
| |
| #define DWC_USB3_CACHE_BCU_ENTRY_SIZE 0 |
| |
| // Byte Depth of CSR and Cache RAM Regions |
| |
| #define DWC_USB3_CACHE_BCU_DEPTH 0 |
| |
| #define DWC_USB3_RCSR_GLOBAL_DEPTH 16 |
| |
| #define DWC_USB3_RCSR_DEVICE_DEPTH 128 |
| |
| #define DWC_USB3_RCSR_HOST_DEPTH 144 |
| |
| #define DWC_USB3_CACHE_EP_DEPTH 128 |
| |
| #define DWC_USB3_CACHE_DEVICE_DEPTH 16 |
| |
| #define DWC_USB3_CACHE_STREAMS_DEPTH 1280 |
| |
| |
| #define DWC_USB3_HCACHE_SCRATCH_PAD_SIZE 64 |
| |
| #define DWC_USB3_HCACHE_EPINFO_BITMAP_SIZE_PER_SLOT 16 |
| |
| #define DWC_USB3_HCACHE_EPTYPE_BITMAP_SIZE_PER_SLOT 8 |
| |
| #define DWC_USB3_HCACHE_SS_EPHEADER_SIZE 96 |
| |
| #define DWC_USB3_HCACHE_HS_EPHEADER_SIZE 80 |
| |
| #define DWC_USB3_HCACHE_FSLS_EPHEADER_SIZE 80 |
| |
| #define DWC_USB3_HCACHE_TR_SIZE 8 |
| |
| #define DWC_USB3_HCACHE_PERIODIC_EPINFO_SIZE 20 |
| |
| #define DWC_USB3_HCACHE_PERIODIC_SLOTINFO_SIZE 4 |
| |
| #define DWC_USB3_HOST_NUM_CACHE_TRB_PER_SS_EP_INT 18 |
| |
| #define DWC_USB3_HOST_NUM_CACHE_TRB_PER_HS_EP_INT 10 |
| |
| #define DWC_USB3_HOST_NUM_CACHE_TRB_PER_FSLS_EP_INT 10 |
| |
| #define DWC_USB3_HCACHE_EPINFO_BITMAP_SIZE 272 |
| |
| #define DWC_USB3_HCACHE_EPTYPE_BITMAP_SIZE 136 |
| |
| #define DWC_USB3_HCACHE_PERIODIC_LIST_SIZE 640 |
| |
| #define DWC_USB3_HCACHE_SLOT_LIST_SIZE 68 |
| |
| #define DWC_USB3_HCACHE_FSLS_EP_SIZE 480 |
| |
| #define DWC_USB3_HCACHE_FSLS_TRQ_SIZE 16 |
| |
| #define DWC_USB3_HCACHE_FSLS_TMPTRB_SIZE 16 |
| |
| #define DWC_USB3_HCACHE_HS_EP_SIZE 480 |
| |
| #define DWC_USB3_HCACHE_HS_TRQ_SIZE 16 |
| |
| #define DWC_USB3_HCACHE_HS_TMPTRB_SIZE 16 |
| |
| #define DWC_USB3_HCACHE_SS_EP_SIZE 3072 |
| |
| #define DWC_USB3_HCACHE_SS_TRQ_SIZE 64 |
| |
| #define DWC_USB3_HCACHE_SS_TMPTRB_SIZE 16 |
| |
| //--------------------------- |
| //Command Handler Cache sizes |
| //--------------------------- |
| |
| #define DWC_USB3_HCACHE_CMD_RING_POINTER_SIZE 8 |
| |
| #define DWC_USB3_HCACHE_CMD_STORE_SIZE 16 |
| |
| #define DWC_USB3_HCACHE_SLOT_TABLE_SIZE 4 |
| |
| #define DWC_USB3_HCACHE_DEVICE_CONTEXT_ADDR_SIZE 8 |
| |
| #define DWC_USB3_HCACHE_DEVICE_SLOT_CONTEXT_SIZE 32 |
| |
| #define DWC_USB3_HCACHE_DEVICE_EP_CONTEXT_SIZE 36 |
| |
| #define DWC_USB3_HCACHE_INPUT_CONTROL_CONTEXT_SIZE 8 |
| |
| #define DWC_USB3_HCACHE_INPUT_SLOT_CONTEXT_SIZE 20 |
| |
| #define DWC_USB3_HCACHE_INPUT_EP_CONTEXT_SIZE 20 |
| |
| #define DWC_USB3_HCACHE_DEVICE_ADDRESS_TABLE_SIZE 16 |
| |
| #define DWC_USB3_HCACHE_SLOT_ID_SIZE 128 |
| |
| #define DWC_USB3_HCACHE_SCRATCH_PAD_ADDR_SIZE 16 |
| |
| #define DWC_USB3_HCACHE_HUB_CONTEXT_ADDR_SIZE 8 |
| |
| #define DWC_USB3_HCACHE_HUB_SLOT_CONTEXT_SIZE 16 |
| |
| #define DWC_USB3_HCACHE_DEVICE_BASE_ADDR_SIZE 136 |
| |
| #define DWC_USB3_HCACHE_PRIMARY_STREAM_CONTEXT_ADDR_SIZE 16 |
| |
| #define DWC_USB3_HCACHE_SECONDARY_STREAM_CONTEXT_ADDR_SIZE 16 |
| |
| #define DWC_USB3_HCACHE_PORT_BANDWIDTH_CONTEXT_SIZE 4 |
| //#define DWC_USB3_HCACHE_PORT_BANDWIDTH_CONTEXT_SIZE 16*3 //16bytes for each one of the speeds |
| //#define DWC_USB3_HCACHE_BI_BANDWIDTH_SIZE (16)*4 //4bytes for each one of the instances |
| |
| #define DWC_USB3_HCACHE_BI_BANDWIDTH_SIZE 12 |
| |
| #define DWC_USB3_HCACHE_HCMD_TRB_SIZE 16 |
| //End of Command Handler Cache Size definitions |
| |
| |
| |
| #define DWC_USB3_HCACHE_HERH_DATA_SIZE 68 |
| |
| #define DWC_USB3_HCACHE_HALM_DATA_SIZE 320 |
| |
| // Byte Address (fixed) of CSRs and Cache |
| |
| #define DWC_USB3_ADDR_CACHE_BCU 3992 |
| |
| #define DWC_USB3_ADDR_RCSR_GLOBAL 4000 |
| |
| |
| #define DWC_USB3_ADDR_RCSR_DEVICE 4016 |
| |
| #define DWC_USB3_ADDR_CACHE_EP 4144 |
| |
| #define DWC_USB3_ADDR_CACHE_DEVICE 4272 |
| |
| #define DWC_USB3_ADDR_CACHE_STREAMS 4288 |
| |
| #define DWC_USB3_ADDR_CACHE_HOST 5568 |
| |
| |
| #define DWC_USB3_ADDR_RCSR_HOST 4016 |
| |
| #define DWC_USB3_HCACHE_SCRATCH_PAD 4160 |
| |
| #define DWC_USB3_HCACHE_EPINFO_BITMAP 4224 |
| |
| #define DWC_USB3_HCACHE_EPTYPE_BITMAP 4496 |
| |
| #define DWC_USB3_HCACHE_PERIODIC_LIST 4632 |
| |
| #define DWC_USB3_HCACHE_SLOT_LIST 5272 |
| |
| #define DWC_USB3_HCACHE_FSLS_EP 5340 |
| |
| #define DWC_USB3_HCACHE_FSLS_TRQ 5820 |
| |
| #define DWC_USB3_HCACHE_FSLS_TMPTRB 5836 |
| |
| #define DWC_USB3_HCACHE_HS_EP 5852 |
| |
| #define DWC_USB3_HCACHE_HS_TRQ 6332 |
| |
| #define DWC_USB3_HCACHE_HS_TMPTRB 6348 |
| |
| #define DWC_USB3_HCACHE_SS_EP 6364 |
| |
| #define DWC_USB3_HCACHE_SS_TRQ 9436 |
| |
| #define DWC_USB3_HCACHE_SS_TMPTRB 9500 |
| |
| /////////////////////////////////////////////////////////////////////////////////// |
| // Command Handler & HDNH Cache Pointers // |
| /////////////////////////////////////////////////////////////////////////////////// |
| |
| #define DWC_USB3_HCACHE_CMD_HANDLER 9520 |
| |
| #define DWC_USB3_HCACHE_CMD_RING_POINTER 9536 |
| |
| #define DWC_USB3_HCACHE_SLOT_TABLE 9552 |
| |
| #define DWC_USB3_HCACHE_DEVICE_CONTEXT_ADDR 9568 |
| |
| #define DWC_USB3_HCACHE_DEVICE_SLOT_CONTEXT 9584 |
| |
| #define DWC_USB3_HCACHE_DEVICE_EP_CONTEXT 9616 |
| |
| #define DWC_USB3_HCACHE_INPUT_SLOT_CONTEXT 9664 |
| |
| #define DWC_USB3_HCACHE_INPUT_EP_CONTEXT 9696 |
| |
| #define DWC_USB3_HCACHE_INPUT_CONTROL_CONTEXT 9728 |
| |
| #define DWC_USB3_HCACHE_DEVICE_ADDRESS_TABLE 9744 |
| |
| #define DWC_USB3_HCACHE_SCRATCH_PAD_ADDR 9760 |
| |
| #define DWC_USB3_HCACHE_HUB_CONTEXT_ADDR 9776 |
| |
| #define DWC_USB3_HCACHE_PRIMARY_STREAM_CONTEXT_ADDR 9792 |
| |
| #define DWC_USB3_HCACHE_SECONDARY_STREAM_CONTEXT_ADDR 9808 |
| |
| #define DWC_USB3_HCACHE_PORT_BANDWIDTH_CONTEXT 9824 |
| |
| #define DWC_USB3_HCACHE_BI_BANDWIDTH 9840 |
| |
| #define DWC_USB3_HCACHE_HCMD_TRB 9856 |
| |
| #define DWC_USB3_HCACHE_HUB_SLOT_CONTEXT 9872 |
| |
| #define DWC_USB3_HCACHE_DEVICE_BASE_ADDR 9888 |
| |
| #define DWC_USB3_HCACHE_SLOT_ID 10032 |
| |
| |
| #define DWC_USB3_HCACHE_CMD_HANDLER_SIZE 640 |
| |
| |
| #define DWC_USB3_HCACHE_HUB_DEVICE_ADDR 9776 |
| |
| /////////////////////// End of Command Handler Address Map ///////////////////////////////////////////////////////// |
| |
| |
| |
| #define DWC_USB3_HCACHE_HERH_DATA 10172 |
| //#define DWC_USB3_HCACHE_HERH_DATA `DWC_USB3_HCACHE_DEVICE_CONTEXT_ADDR |
| |
| |
| #define DWC_USB3_HCACHE_HALM_DATA 10240 |
| |
| |
| #define DWC_USB3_HOST_CACHEEND_ADDR 10560 |
| |
| |
| #define DWC_USB3_DCACHE_DEPTH_DEV 696 |
| |
| #define DWC_USB3_DCACHE_DEPTH_HST 1320 |
| |
| #define DWC_USB3_DCACHE_DEPTH_DRD 1320 |
| |
| |
| #define DWC_USB3_DCACHE_DEPTH 1320 |
| |
| |
| // Name: DWC_USB3_DCACHE_DEPTH_INFO |
| // Default: 1320 |
| // Values: 32, ..., 32768 |
| // Enabled: 0 |
| // |
| // This informational (read-only) value defines the minimum RAM0 requirement |
| // for Cache, Register, and internal queues mapped into RAM0. |
| // When RAM0 is shared with the TXFIFOs and/or RXFIFOs, take the sum of this |
| // base value and the required TXFIFO and/or RXFIFO depths to find the total RAM0 depth. |
| // Choice decides the value of DWC_USB3_DCACHE_DEPTH_INFO in DWC_usb3_params.v file. |
| #define DWC_USB3_DCACHE_DEPTH_INFO 1320 |
| |
| |
| #define DWC_USB3_DEV_RXFIFO_DEPTH_DEFAULT 389 |
| |
| #define DWC_USB3_DEV_TXFIFO0_DEPTH 66 |
| |
| #define DWC_USB3_DEV_TXFIFOX_DEPTH_DEFAULT 388 |
| |
| |
| #define DWC_USB3_HOST_RXF_ALL_DEPTH 1160 |
| |
| #define DWC_USB3_RXF_ALL_DEPTH_DEFAULT 1160 |
| |
| |
| #define DWC_USB3_DEV_TXF_ALL_DEPTH_DEFAULT 1230 |
| |
| #define DWC_USB3_HOST_TXF_ALL_DEPTH 1293 |
| |
| #define DWC_USB3_TXF_ALL_DEPTH_DEFAULT 1293 |
| |
| |
| #define DWC_USB3_RAM0_DEPTH_DEFAULT 2480 |
| |
| |
| #define DWC_USB3_NPI_TX_FIFO_DEPTH 2176 |
| |
| |
| #define DWC_USB3_RAM1_DEPTH_DEFAULT 1293 |
| |
| #define DWC_USB3_RAM2_DEPTH_DEFAULT 1160 |
| |
| |
| // Name: DWC_USB3_RAM0_DEPTH |
| // Default: 2480 |
| // Values: 32, ..., 32768 |
| // |
| // Specifies the depth of RAM0. In Device, Host, and DRD configuration RAM1 |
| // contains: |
| // 3 RAM Config: Contains Descriptor Cache. |
| // 2 RAM Config: Contains Descriptor Cache and RxFIFOs. |
| // 1 RAM Config: Contains Descriptor Cache, RxFIFOs, and TxFIFOs. |
| // In Hub configuration, RAM0 contains Hub descriptors and Upstream Tx Data |
| // Packets. |
| // For Device, Host, or DRD configuration, this should have minimum space for Cache |
| // (previous parameter default value) plus additional RxFIFO ram space in 2 RAM configuration |
| // plus TxFIFO ram space in 1-RAM configuration. At least three max packet size RxFIFO is recommended. |
| // In two RAM configuration, the RAM0 depth should be: |
| // Device: (DWC_USB3_DCACHE_DEPTH_INFO + 3 * 1024 + 40 to 64)/MDWidth-Bytes. |
| // The additional 40-64-bytes are used in Device configuration for holding up to 3 back to back SETUP packets and provide clock-crossing |
| // delay margin. When Master Bus width is 128-bits, 64 bytes is needed else 40 bytes is needed. |
| // If the system latency is more than 2.1uS, then a 5 to 6 packet FIFO is recommended instead 3 for a burstable SuperSpeed IN endpoint. |
| // |
| // Host: (DWC_USB3_DCACHE_DEPTH_INFO + 3* 1024 (SS RxFIFO) + 2*1024 (HS RxFIFO) + 1024 (FS/LS RxFIFO))/MDWIDTH-Byte |
| // |
| // For more information, see the databook's "Hardware Integration" chapter in the Databook. |
| // Choice decides the value of DWC_USB3_RAM0_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_RAM0_DEPTH 2608 |
| |
| |
| // Name: DWC_USB3_RAM1_DEPTH |
| // Default: 1293 |
| // Values: 32, ..., 32768 |
| // Enabled: (DWC_USB3_NUM_RAMS > 1) |
| // |
| // Specifies the depth of RAM1. In Device, Host, and DRD configuration RAM1 |
| // contains: |
| // 3 RAM Config: Contains TxFIFOs. |
| // 2 RAM Config: Contains TxFIFOs. |
| // In Hub configuration RAM1 contains the Upstream Rx Data Packets. |
| // Device: |
| // In Device configuration 512 bytes for Control IN endpoint and 3 packet each of the other burstable IN endpoints is recommended. |
| // For example if you have 2 Bulk in endpoint in addition to |
| // Control endpoint, the RAM1 Depth requirement is: ((512+2*MDWidth-Bytes) + (2 * (3 * (1024+MDWidth-Bytes)) + MDWidth-Bytes))/MDWidth-Bytes + Tx-EP * MDWidth-Bytes. |
| // If the system latency is more than 2.1uS, then a 5 to 6 packet FIFO is recommended instead 3 for a burstable SuperSpeed IN endpoint. |
| // |
| // Host: ((3 * (1024 + MDWIDTH-Bytes) + MDWIDTH-Bytes) (SS Tx FIFOs) + (2 * (1024 + MDWIDTH-Bytes) + MDWIDTH-Bytes) (HS Tx FIFOs) + (1 * (1024 + MDWIDTH-Bytes) + MDWIDTH-Bytes) (FS/LS Tx FIFOs))/MDWIDTH-Bytes |
| // |
| // In addition to data, each Tx-FIFO also stores additional information and hence MDWidth-Bytes needed for each packet plus MDWidth-Bytes for each FIFO. |
| // For more information, see the databook's "Hardware Integration" chapter in the Databook. |
| // Choice decides the value of DWC_USB3_RAM1_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_RAM1_DEPTH 1293 |
| |
| |
| |
| // Name: DWC_USB3_RAM2_DEPTH |
| // Default: 1160 |
| // Values: 32, ..., 32768 |
| // Enabled: (DWC_USB3_NUM_RAMS > 2 && DWC_USB3_MODE !=3) |
| // |
| // Specifies the depth of RAM2. |
| // 3 RAM config: Contains RxFIFOs. |
| // The RAM2 depth should be: |
| // Device: (DWC_USB3_DCACHE_DEPTH_INFO + 3 * 1024 + 40 to 64)/MDWidth-Bytes. |
| // The additional 40-64-bytes are used in Device configuration for holding up to 3 back to back SETUP packets and provide clock-crossing |
| // delay margin. When Master Bus width is 128-bits, 64 bytes is needed else 40 bytes is needed. |
| // If the system latency is more thn 2.1uS, then a 5 to 6 packet FIFO is recommended instead 3. |
| // |
| // Host: (DWC_USB3_DCACHE_DEPTH_INFO + 3* 1024 (SS RxFIFO) + 2*1024 (HS RxFIFO) + 1024 (FS/LS RxFIFO))/MDWIDTH-Byte |
| // For more information, see the databook's "Hardware Integration" chapter in the |
| // Databook. |
| // Choice decides the value of DWC_USB3_RAM2_DEPTH in DWC_usb3_params.v file. |
| #define DWC_USB3_RAM2_DEPTH 1160 |
| |
| |
| |
| #define DWC_USB3_ADDR_RXF 1320 |
| |
| |
| #define DWC_USB3_DEV_RXFIFO_DEPTH 1288 |
| |
| |
| #define DWC_USB3_ADDR_TXF 0 |
| |
| #define DWC_USB3_ADDR_HOST_TXF 0 |
| |
| |
| #define DWC_USB3_DEV_TXFIFOX_DEPTH 409 |
| |
| #define DWC_USB3_DEV_TXF_ALL_DEPTH 1293 |
| |
| |
| #define DWC_USB3_RXF_ALL_DEPTH 1288 |
| |
| #define DWC_USB3_TXF_ALL_DEPTH 1293 |
| |
| /* function [31:0] log2(input [31:0] val); |
| begin |
| for (log2=0; val>0; log2=log2+1) |
| val = val >> 1; |
| end |
| endfunction |
| */ |
| |
| |
| #define DWC_USB3_DCARAM_DEPTH 2608 |
| |
| #define DWC_USB3_RXFRAM_DEPTH 2608 |
| |
| #define DWC_USB3_TXFRAM_DEPTH 1293 |
| |
| #define DWC_USB3_DCARAM_A 12 |
| |
| #define DWC_USB3_RXFRAM_A 12 |
| |
| #define DWC_USB3_TXFRAM_A 11 |
| |
| #define DWC_USB3_DCARAM_A_LOG2P1 12 |
| |
| #define DWC_USB3_RXFRAM_A_LOG2P1 12 |
| |
| #define DWC_USB3_TXFRAM_A_LOG2P1 11 |
| |
| |
| #define DWC_USB3_RAM0_A 12 |
| |
| #define DWC_USB3_RAM0_A_LOG2P1 12 |
| |
| #define DWC_USB3_RAM1_A 11 |
| |
| #define DWC_USB3_RAM1_A_LOG2P1 11 |
| |
| #define DWC_USB3_RAM2_A 11 |
| |
| #define DWC_USB3_RAM2_A_LOG2P1 11 |
| |
| |
| #define DWC_USB3_ROM_A 6 |
| |
| #define DWC_UPTXDATA_FIFO_SIZE 2544 |
| |
| #define DWC_USB3_UPTXDATA_FIFO_A 12 |
| |
| #define DWC_USB3_UPTXDATA_FIFO_A_LOG2P1 12 |
| |
| #define DWC_USB3_HUB_NUM_TXHEADERS_LOG2P1 3 |
| |
| #define DWC_USB3_HUB_NUM_RXHEADERS_A 2 |
| |
| #define DWC_USB3_HUB_NUM_RXHEADERS_LOG2P1 3 |
| |
| #define DWC_USB3_NUM_U3_ROOT_PORTS_A 1 |
| |
| |
| // Name: DWC_USB3_EN_DBG_PORTS |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: DWC_USB3_MODE !=3 |
| // |
| // This parameter is used at Synopsys for FPGA hardware |
| // validation of the core. You can use these ports during |
| // driver development with an FPGA platform. |
| // When this parameter is 1, internal signals mictor1[31:0], |
| // mictor2[31:0], mictor3[31:0], and mictor_sel[3:0] are |
| // brought out of the core. Three 32-bit mictor connectors |
| // on the FPGA board can be hooked to logic analyzer PODs. |
| // The FPGA board also has a DIP switch, which is used to |
| // dynamically multiplex out different internal debug signals. |
| // Choice decides the value of DWC_USB3_EN_DBG_PORTS in DWC_usb3_params.v file. |
| #define DWC_USB3_EN_DBG_PORTS 0 |
| |
| |
| // Name: DWC_USB3_EN_FPGA |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: DWC_USB3_MODE !=3 |
| // |
| // This parameter is used at Synopsys for FPGA Device and Host hardware |
| // validation of the core. You can use this parameter during |
| // driver development with an FPGA platform. |
| // Set this parameter to 1 to improve FPGA timing by |
| // - adding a pipeline on RX data path in the PTL |
| // - adding a pipeline on cache/DMA requst in LSP BARB |
| // - adding a pipeline on address generation in LSP HCMD |
| // - adding a pipeline in the MAC |
| // Choice decides the value of DWC_USB3_EN_FPGA in DWC_usb3_params.v file. |
| #define DWC_USB3_EN_FPGA 0 |
| |
| |
| // Name: DWC_USB3_EN_LOG_PHYS_EP_SUPT |
| // Default: Yes |
| // Values: No (0), Yes (1) |
| // Enabled: DWC_USB3_MODE != 1 && DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // This parameter is used at Synopsys for FPGA Device hardware |
| // validation of the core. You can use this parameter during |
| // driver development with an FPGA platform. |
| // Set this parameter to 0 to improve FPGA timing. |
| // Selects whether the device core supports a flexible or fixed logical->physical endpoint mapping |
| // A fixed mapping improves timing and may reduce gate count (5K gate reduction) |
| // Choice decides the value of DWC_USB3_EN_LOG_PHYS_EP_SUPT in DWC_usb3_params.v file. |
| #define DWC_USB3_EN_LOG_PHYS_EP_SUPT 1 |
| |
| |
| // Name: DWC_USB3_ATSPEED_DFT |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // This parameter enables additional at speed DFT Control signals. This creates additional dft_* ports to control clocks. |
| // By default, even when this parameter is not enabled, at speed DFT is enabled and "scan_mode" port controls scan by-pass. |
| // This parameter controls only whether additional inputs are used to control clock muxes, clock-gate cell, and reset bypass. |
| // Choice decides the value of DWC_USB3_ATSPEED_DFT in DWC_usb3_params.v file. |
| #define DWC_USB3_ATSPEED_DFT 0 |
| |
| |
| // Name: DWC_USB3_PIPE_32BIT_ONLY |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: DWC_USB3_MBUS_TYPE!=4 |
| // |
| // If your PIPE interface is always 32-bits @125MHz, then mac3_clk will be set to pipe3_rx_pclk. |
| // This avoids the clock dividers and muliplexers on the mac3_clk and simplifies the DFT and clock insertion. |
| // If you enable this, please make sure the DWC_USB3_GUSB3PIPECTL_INIT parameter bit[16:15] are 2'b00 to match this. |
| // Choice decides the value of DWC_USB3_PIPE_32BIT_ONLY in DWC_usb3_params.v file. |
| #define DWC_USB3_PIPE_32BIT_ONLY 0 |
| |
| |
| // Name: DWC_USB3_RAM_CLK_TO_BUS_CLK |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE!=4 |
| // |
| // This parameter enables if you plan to always connect bus_clk_early to ram_clk. |
| // The bus_clk_early SHOULD BE GREATER THAN OR EQUAL to 125MHz during SuperSpeed operation and |
| // greater than or equal to 60MHz during USB2.0 operation. If the above conditions are not met then |
| // it would cause functional FAILURE. This parameter avoids the clock dividers and muliplexers on the ram_clk |
| // and simplifies the DFT and clock insertion. |
| // Choice decides the value of DWC_USB3_RAM_CLK_TO_BUS_CLK in DWC_usb3_params.v file. |
| #define DWC_USB3_RAM_CLK_TO_BUS_CLK 0 |
| |
| //------------------------------------------------------------ |
| // Gate count reduction parameters |
| //------------------------------------------------------------ |
| |
| |
| // Name: DWC_USB3_EN_STREAM_SUPT |
| // Default: 1 |
| // Values: -2147483648, ..., 2147483647 |
| // |
| // Selects whether the device core supports stream-capable bulk endpoints (12K gate reduction when coupled with |
| // disabling isoc support) |
| #define DWC_USB3_EN_STREAM_SUPT 1 |
| |
| |
| // Name: DWC_USB3_EN_INTERRUPT_SUPT |
| // Default: 1 |
| // Values: -2147483648, ..., 2147483647 |
| // |
| // Selects whether the device core supports interrupt endpoints (7K gate reduction when coupled with disabling isoc |
| // support) |
| #define DWC_USB3_EN_INTERRUPT_SUPT 1 |
| |
| |
| // Name: DWC_USB3_EN_LSP_DEBUG |
| // Default: 1 |
| // Values: -2147483648, ..., 2147483647 |
| // |
| // Selects whether debug registers for the List Processor (LSP) are |
| // enabled (1K gate reduction) |
| #define DWC_USB3_EN_LSP_DEBUG 1 |
| |
| |
| // Name: DWC_USB3_OUTEP_BYTECNT_W |
| // Default: 29 |
| // Values: -2147483648, ..., 2147483647 |
| // |
| // The number of bits used to store the TRB bytecount for OUT endpoints. Default is 24 (width of BUFSIZ field in a |
| // TRB) + 5 (32 is the maximum number of TRBs per transfer resource) = 29 bits (1K gate reduction when reduced to 17) |
| #define DWC_USB3_OUTEP_BYTECNT_W 29 |
| |
| /************* Internal Parameters ************/ |
| // DWC_USB3_SYNC_VERIF_EN=1 enable delay randomization |
| // DWC_USB3_SYNC_FIFO_DSYNC_EDGE/DWC_USB3_SYNC_DSYNC_EDGE=3 - all posedge, 4 - 1st stage negedge (Dsync Flops Only) |
| // DWC_USB3_SYNC_TOGGLE_EDGE=1 - all posedge, 2 - 1st stage negedge (Toggle Synchronizer Only) |
| // DWC_USB3_SYNC_RAND_TYPE=1 - 0 to 1.9 clk delay randomization; 1 - 0 - 0.9 clk delay randomization |
| // Synchronizer Randomization |
| |
| #define DWC_USB3_SYNC_VERIF_EN 0 |
| |
| #define DWC_USB3_SYNC_FIFO_DSYNC_EDGE 4 |
| |
| #define DWC_USB3_SYNC_DSYNC_EDGE 4 |
| |
| #define DWC_USB3_SYNC_DSYNC_PEDGE 3 |
| |
| #define DWC_USB3_SYNC_TOGGLE_EDGE 2 |
| |
| #define DWC_USB3_SYNC_RAND_TYPE 1 |
| |
| |
| #define DWC_USB3_BYPASS_SF_INIT 0 |
| |
| |
| #define DWC_USB3_VERSION 50 |
| |
| // BMU Clock Frequency in MHz; Not used in RTL - Only For Simulation |
| |
| #define DWC_USB3_BUS_CLK_FREQ 250 |
| |
| #define DWC_USB3_BUS_CLK_PERIOD 4000 |
| |
| |
| #define DWC_USB3_MAC_CLK_FREQ 125 |
| |
| #define DWC_USB3_MAC_CLK_PERIOD 8000 |
| |
| |
| #define DWC_USB3_MAC3_CLK_FREQ 125 |
| |
| #define DWC_USB3_MAC3_CLK_PERIOD 8000 |
| |
| |
| #define DWC_USB3_MAC2_CLK_FREQ 60 |
| |
| #define DWC_USB3_MAC2_CLK_PERIOD 16666.6 |
| #define DWC_USB3_MAC2_CLK_PERIOD_INT 16666 // 1000 * TIMESCALE /DWC_USB3_BUS_MAC2_FREQ |
| |
| |
| #define DWC_USB3_BUS_CLK_FREQ_HOST_DUPLEX_MIN_REAL 86 |
| |
| |
| #define DWC_USB3_BUS_CLK_FREQ_DEV_DUPLEX_MIN_REAL 78 |
| |
| |
| #define DWC_USB3_BUS_CLK_FREQ_DUPLEX_MIN_REAL 86 |
| |
| |
| #define DWC_USB3_BUS_CLK_FREQ_DUPLEX_MIN 86 |
| // ((`DWC_USB3_BUS_CLK_FREQ_DUPLEX_MIN_REAL + 0.99) - ((`DWC_USB3_BUS_CLK_FREQ_DUPLEX_MIN_REAL + 0.99) % 1)) |
| |
| |
| #define DWC_USB3_BUS_CLK_FREQ_MIN 86 |
| |
| |
| #define DWC_USB3_RAM_CLK_FREQ_MIN 125 |
| |
| |
| #define DWC_USB3_RAM_CLK_FREQ 250 |
| |
| #define DWC_USB3_RAM_CLK_PERIOD 4000 |
| |
| |
| #define DWC_USB3_HOST_CLK_FREQ 125 |
| |
| |
| #define DWC_USB3_PIPE_CLK_PERIOD 2000 |
| |
| |
| #define DWC_USB3_ADP_CLK_FREQ 4.125 |
| |
| #define DWC_USB3_ADP_CLK_PERIOD 66 |
| |
| |
| #define DWC_USB3_GTECH_default_delay 0 |
| |
| #define GTECH_default_delay 0 |
| |
| |
| #define DWC_USB3_BUS_MDWIDTH 64 |
| |
| #define DWC_USB3_BUS_SDWIDTH 32 |
| |
| |
| #define DWC_USB3_EN_DESC_DMA 0 |
| |
| // euse-pragma attr Visible false |
| //#define DWC_USB3_DESC_DMA_EN 0 |
| |
| |
| #define DWC_USB3_INEPS 16 |
| |
| |
| #define DWC_USB3_OUTEPS 16 |
| |
| |
| #define DWC_USB3_H 1'h1 |
| |
| |
| #define DWC_USB3_L 1'h0 |
| |
| #define DWC_USB3_HOST_CAP_REG_LEN 'h20 |
| |
| |
| |
| #define DWC_USB3_HC_RUNTIME_REGISTER_SPACE_OFFSET 32'h440 |
| |
| #define DWC_USB3_HC_DOORBELL_ARRAY_OFFSET 1152 |
| |
| |
| #define DWC_USB3_HC_EXTCAP_USBLEGSUP_OFFSET 2176 |
| |
| #define DWC_USB3_HC_EXTCAP_SUPT_PRTL_20_OFFSET 2192 |
| |
| #define DWC_USB3_HC_EXTCAP_SUPT_PRTL_30_OFFSET 2208 |
| |
| #define DWC_USB3_HC_EXTCAP_DBC_OFFSET 2224 |
| |
| |
| #define DWC_USB3_HC_CAPLENGTH 32'h20 |
| |
| #define DWC_USB3_HC_HCIVERSION 32'h96 |
| |
| #define DWC_USB3_HC_MAXSLOTS 16 |
| |
| #define DWC_USB3_HC_CC_MAXSLOTS 16 |
| |
| |
| #define DWC_USB3_HC_MAXINTRS 1 |
| |
| #define DWC_USB3_HC_CC_MAXINTRS 1 |
| |
| |
| #define DWC_USB3_HOST_NUM_ROOT_PORTS 2 |
| |
| |
| #define DWC_USB3_HOST_NUM_U2_ROOT_PORTS_PIN 1 |
| |
| #define DWC_USB3_HOST_NUM_U3_ROOT_PORTS_PIN 1 |
| |
| #define DWC_USB3_HOST_NUM_ROOT_PORTS_PIN 2 |
| |
| |
| #define DWC_USB3_HC_MAXPORTS 2 |
| |
| |
| //#define DWC_USB3_HC_CC_MAXPORTS `DWC_USB3_HC_MAXPORTS |
| |
| #define DWC_USB3_HC_CC_MAXPORTS 2 |
| |
| |
| #define DWC_USB3_HC_IST 32'h1 |
| |
| #define DWC_USB3_HC_ERSTMAX 15 |
| |
| #define DWC_USB3_HC_IOCINTERVAL 0 |
| |
| #define DWC_USB3_HC_SPR 1 |
| |
| #define DWC_USB3_HC_MAXSCRATCHPADBUFS 1 |
| |
| #define DWC_USB3_HC_U1_DEVICE_EXIT_LATENCY 32'ha |
| |
| #define DWC_USB3_HC_U2_DEVICE_EXIT_LATENCY 32'h7ff |
| |
| #define DWC_USB3_HC_AC64 0 |
| |
| #define DWC_USB3_HC_BNC 0 |
| |
| #define DWC_USB3_HC_CSZ 1 |
| |
| #define DWC_USB3_HC_PPC 1 |
| |
| #define DWC_USB3_HC_PIND 0 |
| |
| #define DWC_USB3_HC_LHRC 0 |
| |
| #define DWC_USB3_HC_LTC 1 |
| |
| #define DWC_USB3_HC_NSS 0 |
| |
| #define DWC_USB3_HC_FSE 0 |
| |
| #define DWC_USB3_HC_SBD 0 |
| |
| #define DWC_USB3_HC_MAXPSASIZE 15 |
| |
| #define DWC_USB3_HC_XECP 544 |
| |
| #define DWC_USB3_HC_PAGE_SIZE 1 |
| |
| #define DWC_USB3_HC_DBOFF 1152 |
| |
| #define DWC_USB3_HC_RTSOFF 1088 |
| |
| |
| #define DWC_USB3_NO_P3_INIT 1 |
| |
| |
| #define DWC_USB3_NO_P3 1 |
| |
| |
| |
| |
| |
| |
| |
| #define DWC_USB3_CC_HS_PHYSEL 0 |
| |
| |
| #define DWC_USB3_CSR_ACCESS_TIMEOUT 17'h1ffff |
| |
| |
| // Name: DWC_USB3_EN_ADP |
| // Default: External ADP |
| // Values: External ADP (0), Internal ADP (1) |
| // Enabled: DWC_USB3_EN_OTG ==1 |
| // |
| // Enables Internal ADP capability of the USB3 core. |
| // Choice decides the value of DWC_USB3_EN_ADP in DWC_usb3_params.v file. |
| #define DWC_USB3_EN_ADP 0 |
| |
| |
| // Name: DWC_USB3_EN_BC |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: DWC_USB3_MODE !=3 && DWC_USB3_MBUS_TYPE != 4 |
| // |
| // Enables Battery Charging (ACA) capability. |
| // Choice decides the value of DWC_USB3_EN_BC in DWC_usb3_params.v file. |
| #define DWC_USB3_EN_BC 0 |
| |
| |
| // Name: DWC_USB3_EN_BUS_FILTERS |
| // Default: No |
| // Values: No (0), Yes (1) |
| // Enabled: DWC_USB3_MODE !=3 |
| // |
| // Enables Bus Filters for on the following OTG control inputs from the PHY |
| // 1. utmiotg_iddig |
| // 2. utmiotg_avalid |
| // 3. utmiotg_vbusvalid |
| // 4. utmisrp_bvalid |
| // 5. utmisrp_sessend |
| // Choice decides the value of DWC_USB3_EN_BUS_FILTERS in DWC_usb3_params.v file. |
| #define DWC_USB3_EN_BUS_FILTERS 1 |
| |
| //----------------------------------------------------------------------------------------------- |
| // Mappings for the top-level "debug" port |
| //----------------------------------------------------------------------------------------------- |
| |
| #define DWC_USB3_DEBUGIO_LINK_SUB_STATE 0 |
| |
| #define DWC_USB3_DEBUGIO_LINK_SUB_STATE_W 4 |
| |
| |
| #define DWC_USB3_DEBUGIO_LINK_STATE 4 |
| |
| #define DWC_USB3_DEBUGIO_LINK_STATE_W 4 |
| |
| |
| #define DWC_USB3_DEBUGIO_SOF_NUM 8 |
| |
| #define DWC_USB3_DEBUGIO_SOF_NUM_W 19 |
| |
| |
| #define DWC_USB3_DEBUGIO_DEV_BUS_ERR 27 |
| |
| #define DWC_USB3_DEBUGIO_DEV_BUS_ERR_W 1 |
| |
| // 8+ 6*U2 ports |
| |
| #define DWC_USB3_DEBUGIO_U2_STATES_W 14 |
| |
| |
| #define DWC_USB3_NUM_U2TIS 2 |
| |
| |
| #define DWC_USB3_DEBUG_WIDTH 55 |
| |