Skip to content

Commit

Permalink
Output PMA reset to be used to reset external MMCM
Browse files Browse the repository at this point in the history
Switch to XCI
  • Loading branch information
bengineerd committed Jun 4, 2024
1 parent 2e2a28b commit e106a59
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 7 deletions.
11 changes: 7 additions & 4 deletions protocols/pgp/pgp2fc/gtyUltraScale+/rtl/Pgp2fcGtyCoreWrapper.vhd
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ entity Pgp2fcGtyCoreWrapper is
rxReset : in sl;
rxUsrClkActive : in sl;
rxResetDone : out sl;
rxPmaResetDone : out sl;
rxUsrClk : in sl;
rxData : out slv(15 downto 0);
rxDataK : out slv(1 downto 0);
Expand Down Expand Up @@ -210,7 +211,7 @@ architecture mapping of Pgp2fcGtyCoreWrapper is
signal rxPmaReset : sl := '0';
signal txPcsReset : sl := '0';
signal txPmaReset : sl := '0';
signal rxPmaResetDone : sl := '0';
signal rxPmaResetDoneInt : sl := '0';
signal txPmaResetDone : sl := '0';
signal rxByteIsAligned : sl := '0';
signal rxByteReAlign : sl := '0';
Expand Down Expand Up @@ -255,7 +256,7 @@ begin
gtwiz_userclk_tx_active_in(0) => txUsrActive,
gtwiz_userclk_rx_active_in(0) => rxUsrActive,
gtwiz_reset_clk_freerun_in(0) => stableClk,
gtwiz_reset_all_in(0) => stableRst,
gtwiz_reset_all_in(0) => '0',
gtwiz_buffbypass_tx_reset_in(0) => buffBypassTxReset,
gtwiz_buffbypass_tx_start_user_in(0) => buffBypassTxStart,
gtwiz_buffbypass_tx_done_out(0) => buffBypassTxDone,
Expand Down Expand Up @@ -328,7 +329,7 @@ begin
rxoutclk_out(0) => rxOutClkGt,
rxrecclkout_out(0) => rxRecClk,
txoutclk_out(0) => txOutClkGt, -- unused
rxpmaresetdone_out(0) => rxPmaResetDone,
rxpmaresetdone_out(0) => rxPmaResetDoneInt,
rxresetdone_out(0) => rxResetDone,
rxsyncdone_out(0) => rxSyncDone,
txpmaresetdone_out(0) => txPmaResetDone,
Expand Down Expand Up @@ -438,7 +439,9 @@ begin

txctrl2 <= "000000" & txDataK;
txUsrActive <= txUsrClkActive and txPmaResetDone;
rxUsrActive <= rxUsrClkActive and rxPmaResetDone;
rxUsrActive <= rxUsrClkActive and rxPmaResetDoneInt;

rxPmaResetDone <= rxPmaResetDoneInt;

cPllRefClkSel <= ite(SEL_FABRIC_REFCLK_G, "111", "001");

Expand Down
5 changes: 4 additions & 1 deletion protocols/pgp/pgp2fc/gtyUltraScale+/rtl/Pgp2fcGtyUltra.vhd
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ entity Pgp2fcGtyUltra is
-- Rx clocking
pgpRxReset : in sl;
pgpRxResetDone : out sl;
pgpRxPmaResetDone : out sl;
pgpRxOutClk : out sl; -- recovered clock
pgpRxClk : in sl;
pgpRxMmcmLocked : in sl;
Expand Down Expand Up @@ -105,7 +106,7 @@ architecture mapping of Pgp2fcGtyUltra is
signal phyRxInit : sl;

-- PgpTx Signals
signal gtTxUserReset : sl;
signal gtTxUserReset : sl := '0';
signal phyTxLaneOut : Pgp2fcTxPhyLaneOutType;
signal phyTxReady : sl;

Expand All @@ -126,6 +127,7 @@ begin
rstOut => resetGtSync); -- [out]

gtHardReset <= resetGtSync or stableRst;
gtHardReset <= stableRst;

U_RstSync_4 : entity surf.SynchronizerOneShot
generic map (
Expand Down Expand Up @@ -207,6 +209,7 @@ begin
rxReset => gtRxUserReset,
rxUsrClkActive => pgpRxMmcmLocked,
rxResetDone => phyRxReady,
rxPmaResetDone => pgpRxPmaResetDone,
rxUsrClk => pgpRxClk,
rxData => phyRxLaneIn.data,
rxDataK => phyRxLaneIn.dataK,
Expand Down
4 changes: 2 additions & 2 deletions protocols/pgp/pgp2fc/gtyUltraScale+/ruckus.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ if { $::env(VIVADO_VERSION) >= 2020.1 } {

loadSource -lib surf -dir "$::DIR_PATH/rtl"

loadSource -lib surf -path "$::DIR_PATH/ip/Pgp2fcGtyCore.dcp"
#loadIpCore -path "$::DIR_PATH/ip/Pgp2fcGtyCore.xci"
#loadSource -lib surf -path "$::DIR_PATH/ip/Pgp2fcGtyCore.dcp"
loadIpCore -path "$::DIR_PATH/ip/Pgp2fcGtyCore.xci"

} else {
puts "\n\nWARNING: $::DIR_PATH requires Vivado 2020.1 (or later)\n\n"
Expand Down

0 comments on commit e106a59

Please sign in to comment.