Skip to content

Commit

Permalink
adapt fmc_amc_eth module to new fmc and amc interfaces definition
Browse files Browse the repository at this point in the history
  • Loading branch information
Shu ZHANG committed Mar 31, 2023
1 parent c6b8103 commit 1b74ccb
Show file tree
Hide file tree
Showing 7 changed files with 216 additions and 554 deletions.
208 changes: 22 additions & 186 deletions modules/fmc_amc_eth/const/fmc_amc_eth_impl.xdc
100644 → 100755

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion modules/fmc_amc_eth/fmc_amc_eth.block.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[.]
description: Ethernet passthrough link between AMC P8-P11 and FMC-3SFP+ module transceivers
description: Ethernet passthrough links between AMC P8-P11 and FMC-4SFP module transceivers
entity: fmc_amc_eth
type: io
interfaces: fmc_i fmc_io fmc_o amc_i amc_o
Expand Down
2 changes: 1 addition & 1 deletion modules/fmc_amc_eth/fmc_amc_eth.rst
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
fmc_amc_eth - Ethernet link between AMC P8-P11 and FMC-SFP modules
FMC_AMC_ETH - Ethernet passthrough links between AMC P8-P11 and FMC-4SFP module transceivers
======================================

Fields
Expand Down
92 changes: 46 additions & 46 deletions modules/fmc_amc_eth/hdl/eth_phy_to_phy.vhd
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
----------------------------------------------------------------------------------
-- Company:
-- Engineer:
-- Company: Synchrotron SOLEIL
-- Engineer: Shu ZHANG
--
-- Create Date: 17:51:18 15/04/2020
-- Design Name:
Expand Down Expand Up @@ -92,10 +92,10 @@ COMPONENT gig_ethernet_pcs_pma_0_example_design

-- Tranceiver Interface
-----------------------
txp : out std_logic; -- Differential +ve of serial transmission from PMA to PMD.
txn : out std_logic; -- Differential -ve of serial transmission from PMA to PMD.
rxp : in std_logic; -- Differential +ve for serial reception from PMD to PMA.
rxn : in std_logic; -- Differential -ve for serial reception from PMD to PMA.
txp : out std_logic; -- Differential +ve of serial transmission from PMA to PMD.
txn : out std_logic; -- Differential -ve of serial transmission from PMA to PMD.
rxp : in std_logic; -- Differential +ve for serial reception from PMD to PMA.
rxn : in std_logic; -- Differential -ve for serial reception from PMD to PMA.

-- GMII Interface (client MAC <=> PCS)
--------------------------------------
Expand All @@ -111,7 +111,7 @@ COMPONENT gig_ethernet_pcs_pma_0_example_design
-- Management: Alternative to MDIO Interface
--------------------------------------------
configuration_vector : in std_logic_vector(4 downto 0); -- Alternative to MDIO interface.
-- General IO's
---------------
status_vector : out std_logic_vector(15 downto 0); -- Core status.
Expand Down Expand Up @@ -194,18 +194,18 @@ constant C_CONFIGURATION_VECTOR : std_logic_vector(4 downto 0):='0'& -- (4)
-- GMII Interface MAC <> ETH
----------------------------
signal gmii_txd : std_logic_vector(7 downto 0); -- Transmit data from client MAC.
signal gmii_tx_en : std_logic; -- Transmit control signal from client MAC.
signal gmii_tx_er : std_logic; -- Transmit control signal from client MAC.
signal gmii_tx_en : std_logic; -- Transmit control signal from client MAC.
signal gmii_tx_er : std_logic; -- Transmit control signal from client MAC.
signal gmii_rxd : std_logic_vector(7 downto 0); -- Received Data to client MAC.
signal gmii_rx_dv : std_logic; -- Received control signal to client MAC.
signal gmii_rx_er : std_logic; -- Received control signal to client MAC.
signal gmii_rx_dv : std_logic; -- Received control signal to client MAC.
signal gmii_rx_er : std_logic; -- Received control signal to client MAC.
signal gmii_tx_clk : std_logic;
signal gmii_rx_clk : std_logic;

-- General IO's
---------------
--signal status_vector : std_logic_vector(15 downto 0); -- Core status.
signal reset : std_logic;
signal reset : std_logic;
signal signal_detect : std_logic; -- Input from PMD to indicate presence of optical input.

attribute keep : string;
Expand Down Expand Up @@ -237,20 +237,20 @@ eth_phy_i : gig_ethernet_pcs_pma_0_example_design
port map(
independent_clock_bufg => clk_i,

gtrefclk => gtrefclk_i,
gtrefclk_bufg => eth_clk2phy_i.gtrefclk_bufg,

txoutclk => eth_phy2clk_o.txoutclk,
rxoutclk => eth_phy2clk_o.rxoutclk,
resetdone => RESETDONE, -- The GT transceiver has completed its reset cycle
cplllock => CPLLLOCK,
mmcm_reset => eth_phy2clk_o.mmcm_reset,
mmcm_locked => eth_clk2phy_i.mmcm_locked, -- Locked indication from MMCM
userclk => eth_clk2phy_i.userclk,
userclk2 => eth_clk2phy_i.userclk2,
rxuserclk => eth_clk2phy_i.rxuserclk,
rxuserclk2 => eth_clk2phy_i.rxuserclk2,
pma_reset => pma_reset_i, -- transceiver PMA reset signal
gtrefclk => gtrefclk_i,
gtrefclk_bufg => eth_clk2phy_i.gtrefclk_bufg,

txoutclk => eth_phy2clk_o.txoutclk,
rxoutclk => eth_phy2clk_o.rxoutclk,
resetdone => RESETDONE, -- The GT transceiver has completed its reset cycle
cplllock => CPLLLOCK,
mmcm_reset => eth_phy2clk_o.mmcm_reset,
mmcm_locked => eth_clk2phy_i.mmcm_locked, -- Locked indication from MMCM
userclk => eth_clk2phy_i.userclk,
userclk2 => eth_clk2phy_i.userclk2,
rxuserclk => eth_clk2phy_i.rxuserclk,
rxuserclk2 => eth_clk2phy_i.rxuserclk2,
pma_reset => pma_reset_i, -- transceiver PMA reset signal
gt0_qplloutclk => eth_clk2phy_i.qplloutclk,
gt0_qplloutrefclk=> eth_clk2phy_i.qplloutrefclk,

Expand Down Expand Up @@ -278,9 +278,9 @@ eth_phy_i : gig_ethernet_pcs_pma_0_example_design

-- General IO's
---------------
status_vector => STATUS_VECTOR, --: out -- Core status.
reset => reset, --: in -- Asynchronous reset for entire core.
signal_detect => signal_detect --: in -- Input from PMD to indicate presence of optical input.
status_vector => STATUS_VECTOR, --: out -- Core status.
reset => reset, --: in -- Asynchronous reset for entire core.
signal_detect => signal_detect --: in -- Input from PMD to indicate presence of optical input.
);

---------------
Expand All @@ -293,20 +293,20 @@ eth_phy_i2 : gig_ethernet_pcs_pma_0_example_design
--This example design assumes that this is of frequency 200MHz.
independent_clock_bufg => clk_i,

gtrefclk => gtrefclk_2_i,
gtrefclk_bufg => eth_clk2phy_2_i.gtrefclk_bufg,

txoutclk => eth_phy2clk_2_o.txoutclk,
rxoutclk => eth_phy2clk_2_o.rxoutclk,
resetdone => RESETDONE_2, -- The GT transceiver has completed its reset cycle
cplllock => CPLLLOCK_2,
mmcm_reset => eth_phy2clk_2_o.mmcm_reset,
mmcm_locked => eth_clk2phy_2_i.mmcm_locked, -- Locked indication from MMCM
userclk => eth_clk2phy_2_i.userclk,
userclk2 => eth_clk2phy_2_i.userclk2,
rxuserclk => eth_clk2phy_2_i.rxuserclk,
rxuserclk2 => eth_clk2phy_2_i.rxuserclk2,
pma_reset => pma_reset_i, -- transceiver PMA reset signal
gtrefclk => gtrefclk_2_i,
gtrefclk_bufg => eth_clk2phy_2_i.gtrefclk_bufg,

txoutclk => eth_phy2clk_2_o.txoutclk,
rxoutclk => eth_phy2clk_2_o.rxoutclk,
resetdone => RESETDONE_2, -- The GT transceiver has completed its reset cycle
cplllock => CPLLLOCK_2,
mmcm_reset => eth_phy2clk_2_o.mmcm_reset,
mmcm_locked => eth_clk2phy_2_i.mmcm_locked, -- Locked indication from MMCM
userclk => eth_clk2phy_2_i.userclk,
userclk2 => eth_clk2phy_2_i.userclk2,
rxuserclk => eth_clk2phy_2_i.rxuserclk,
rxuserclk2 => eth_clk2phy_2_i.rxuserclk2,
pma_reset => pma_reset_i, -- transceiver PMA reset signal
gt0_qplloutclk => eth_clk2phy_2_i.qplloutclk,
gt0_qplloutrefclk=> eth_clk2phy_2_i.qplloutrefclk,

Expand Down Expand Up @@ -335,9 +335,9 @@ eth_phy_i2 : gig_ethernet_pcs_pma_0_example_design

-- General IO's
---------------
status_vector => STATUS_VECTOR_2, --: out -- Core status.
reset => reset, --: in -- Asynchronous reset for entire core.
signal_detect => signal_detect --: in -- Input from PMD to indicate presence of optical input.
status_vector => STATUS_VECTOR_2, --: out -- Core status.
reset => reset, --: in -- Asynchronous reset for entire core.
signal_detect => signal_detect --: in -- Input from PMD to indicate presence of optical input.
);

end structural;
Expand Down
Loading

0 comments on commit 1b74ccb

Please sign in to comment.