From 1e2de2f8063fb88b69defc17241d3a389b5091f4 Mon Sep 17 00:00:00 2001 From: Jan Michel Date: Fri, 10 Feb 2023 13:44:08 +0100 Subject: [PATCH] update ecp5 media interfaces with 2-link interface on any dual --- .../ecp5/chan0_0/serdes_sync_0.vhd | 2 +- .../ecp5/chan0_1/serdes_sync_1.vhd | 436 ++++ .../ecp5/chan1_0/serdes_sync_1.ipx | 6 + .../ecp5/chan1_0/serdes_sync_1.lpc | 98 + .../ecp5/dual_serdes/serdes0/serdes0.vhd | 2 +- .../ecp5/dual_serdes/serdes1/serdes1.vhd | 2 +- .../ecp5/dual_serdes_1/dual_serdes_1.vhd | 285 +++ .../ecp5/dual_serdes_1/serdes0/serdes0.lpc | 97 + .../ecp5/dual_serdes_1/serdes0/serdes0.ngd | Bin 0 -> 389501 bytes .../ecp5/dual_serdes_1/serdes0/serdes0.ngo | Bin 0 -> 201409 bytes .../ecp5/dual_serdes_1/serdes0/serdes0.vhd | 435 ++++ .../dual_serdes_1/serdes0/serdes0_ngd.asd | 1 + .../dual_serdes_1/serdes0/serdes0_softlogic.v | 2003 +++++++++++++++++ .../serdes1/serdes1.ipx | 0 .../ecp5/dual_serdes_1/serdes1/serdes1.lpc | 97 + .../ecp5/dual_serdes_1/serdes1/serdes1.ngd | Bin 0 -> 252668 bytes .../ecp5/dual_serdes_1/serdes1/serdes1.ngo | Bin 0 -> 132921 bytes .../ecp5/dual_serdes_1/serdes1/serdes1.vhd | 396 ++++ .../dual_serdes_1/serdes1/serdes1_ngd.asd | 1 + .../dual_serdes_1/serdes1/serdes1_softlogic.v | 943 ++++++++ media_interfaces/med_ecp5_sfp_sync_2.vhd | 93 +- 21 files changed, 4892 insertions(+), 5 deletions(-) create mode 100644 media_interfaces/ecp5/chan0_1/serdes_sync_1.vhd create mode 100644 media_interfaces/ecp5/chan1_0/serdes_sync_1.ipx create mode 100644 media_interfaces/ecp5/chan1_0/serdes_sync_1.lpc create mode 100644 media_interfaces/ecp5/dual_serdes_1/dual_serdes_1.vhd create mode 100644 media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.lpc create mode 100644 media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.ngd create mode 100644 media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.ngo create mode 100644 media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.vhd create mode 100644 media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0_ngd.asd create mode 100644 media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0_softlogic.v rename media_interfaces/ecp5/{dual_serdes => dual_serdes_1}/serdes1/serdes1.ipx (100%) create mode 100644 media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1.lpc create mode 100644 media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1.ngd create mode 100644 media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1.ngo create mode 100644 media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1.vhd create mode 100644 media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1_ngd.asd create mode 100644 media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1_softlogic.v diff --git a/media_interfaces/ecp5/chan0_0/serdes_sync_0.vhd b/media_interfaces/ecp5/chan0_0/serdes_sync_0.vhd index c8b0baa..c68011e 100644 --- a/media_interfaces/ecp5/chan0_0/serdes_sync_0.vhd +++ b/media_interfaces/ecp5/chan0_0/serdes_sync_0.vhd @@ -159,7 +159,7 @@ begin pll_lol <= pll_lol_c; DCU0_inst: component DCUA generic map (D_MACROPDB=>"0b1",D_IB_PWDNB=>"0b1", D_XGE_MODE=>"0b0",D_LOW_MARK=>"0d4",D_HIGH_MARK=>"0d12",D_BUS8BIT_SEL=>"0b0", - D_CDR_LOL_SET=>"0b11",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", + D_CDR_LOL_SET=>"0b00",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", D_BITCLK_ND_EN=>"0b0",D_BITCLK_FROM_ND_EN=>"0b0",D_SYNC_LOCAL_EN=>"0b1", D_SYNC_ND_EN=>"0b0",CH0_UC_MODE=>"0b1",CH0_PCIE_MODE=>"0b0",CH0_RIO_MODE=>"0b0", CH0_WA_MODE=>"0b0",CH0_INVERT_RX=>"0b0",CH0_INVERT_TX=>"0b0",CH0_PRBS_SELECTION=>"0b0", diff --git a/media_interfaces/ecp5/chan0_1/serdes_sync_1.vhd b/media_interfaces/ecp5/chan0_1/serdes_sync_1.vhd new file mode 100644 index 0000000..3375432 --- /dev/null +++ b/media_interfaces/ecp5/chan0_1/serdes_sync_1.vhd @@ -0,0 +1,436 @@ + +-- +-- Verific VHDL Description of module DCUA +-- + +-- DCUA is a black-box. Cannot print a valid VHDL entity description for it + +-- +-- Verific VHDL Description of module serdes_sync_0rsl_core +-- + +-- serdes_sync_0rsl_core is a black-box. Cannot print a valid VHDL entity description for it + +-- +-- Verific VHDL Description of module serdes_sync_0sll_core +-- + +-- serdes_sync_0sll_core is a black-box. Cannot print a valid VHDL entity description for it + +-- +-- Verific VHDL Description of module serdes_sync_0 +-- + +library ieee ; +use ieee.std_logic_1164.all ; + +library ecp5um ; +use ecp5um.components.all ; + +entity serdes_sync_1 is + port (hdoutp: out std_logic; + hdoutn: out std_logic; + hdinp: in std_logic; + hdinn: in std_logic; + rxrefclk: in std_logic; + rx_pclk: out std_logic; + tx_pclk: out std_logic; + txdata: in std_logic_vector(7 downto 0); + tx_k: in std_logic_vector(0 downto 0); + tx_force_disp: in std_logic_vector(0 downto 0); + tx_disp_sel: in std_logic_vector(0 downto 0); + rxdata: out std_logic_vector(7 downto 0); + rx_k: out std_logic_vector(0 downto 0); + rx_disp_err: out std_logic_vector(0 downto 0); + rx_cv_err: out std_logic_vector(0 downto 0); + tx_idle_c: in std_logic; + signal_detect_c: in std_logic; + rx_los_low_s: out std_logic; + lsm_status_s: out std_logic; + rx_cdr_lol_s: out std_logic; + sli_rst: in std_logic; + tx_pwrup_c: in std_logic; + rx_pwrup_c: in std_logic; + sci_wrdata: in std_logic_vector(7 downto 0); + sci_addr: in std_logic_vector(5 downto 0); + sci_rddata: out std_logic_vector(7 downto 0); + sci_en_dual: in std_logic; + sci_sel_dual: in std_logic; + sci_en: in std_logic; + sci_sel: in std_logic; + sci_rd: in std_logic; + sci_wrn: in std_logic; + sci_int: out std_logic; + cyawstn: in std_logic; + serdes_pdb: in std_logic; + pll_refclki: in std_logic; + rsl_disable: in std_logic; + rsl_rst: in std_logic; + serdes_rst_dual_c: in std_logic; + rst_dual_c: in std_logic; + tx_serdes_rst_c: in std_logic; + tx_pcs_rst_c: in std_logic; + pll_lol: out std_logic; + rsl_tx_rdy: out std_logic; + rx_serdes_rst_c: in std_logic; + rx_pcs_rst_c: in std_logic; + rsl_rx_rdy: out std_logic + ); + +end entity serdes_sync_1; + +architecture v1 of serdes_sync_1 is + component serdes_sync_0rsl_core is + generic (pnum_channels: integer := 1; + pprotocol: string := "G8B10B"; + pserdes_mode: string := "RX AND TX"; + pport_tx_rdy: string := "ENABLED"; + pwait_tx_rdy: integer := 3000; + pport_rx_rdy: string := "ENABLED"; + pwait_rx_rdy: integer := 3000); + port (rui_rst: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(132) + rui_serdes_rst_dual_c: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(133) + rui_rst_dual_c: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(134) + rui_rsl_disable: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(135) + rui_tx_ref_clk: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(137) + rui_tx_serdes_rst_c: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(138) + rui_tx_pcs_rst_c: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(139) + rdi_pll_lol: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(140) + rui_rx_ref_clk: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(142) + rui_rx_serdes_rst_c: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(143) + rui_rx_pcs_rst_c: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(144) + rdi_rx_los_low_s: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(145) + rdi_rx_cdr_lol_s: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(146) + rdo_serdes_rst_dual_c: out std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(149) + rdo_rst_dual_c: out std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(150) + ruo_tx_rdy: out std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(152) + rdo_tx_serdes_rst_c: out std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(153) + rdo_tx_pcs_rst_c: out std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(154) + ruo_rx_rdy: out std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(156) + rdo_rx_serdes_rst_c: out std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(157) + rdo_rx_pcs_rst_c: out std_logic_vector(3 downto 0) -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(158) + ); + + end component serdes_sync_0rsl_core; -- syn_black_box=1 -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(88) + component serdes_sync_0sll_core is + generic (PPROTOCOL: string := "G8B10B"; + PLOL_SETTING: integer := 1; + PDYN_RATE_CTRL: string := "DISABLED"; + PPCIE_MAX_RATE: string := "2.5"; + PDIFF_VAL_LOCK: integer := 20; + PDIFF_VAL_UNLOCK: integer := 132; + PPCLK_TC: integer := 65536; + PDIFF_DIV11_VAL_LOCK: integer := 0; + PDIFF_DIV11_VAL_UNLOCK: integer := 0; + PPCLK_DIV11_TC: integer := 0); + port (sli_rst: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(125) + sli_refclk: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(126) + sli_pclk: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(127) + sli_div2_rate: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(128) + sli_div11_rate: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(129) + sli_gear_mode: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(130) + sli_cpri_mode: in std_logic_vector(2 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(131) + sli_pcie_mode: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(132) + slo_plol: out std_logic -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(135) + ); + + end component serdes_sync_0sll_core; -- syn_black_box=1 -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(107) + signal n48,n47,n1,n2,n3,n4,rx_pclk_c,tx_pclk_c,n5,n6,n7,n8,n9, + n10,n11,n12,rx_los_low_s_c,n13,n14,n15,n16,rx_cdr_lol_s_c,n17, + n18,rsl_tx_pcs_rst_c,rsl_rx_pcs_rst_c,rsl_rx_serdes_rst_c,rsl_rst_dual_c, + rsl_serdes_rst_dual_c,rsl_tx_serdes_rst_c,n19,n20,n21,n22,n23, + n24,n25,n26,n27,n28,n29,n30,n31,n32,n33,n34,n35,n36,n37, + n38,n39,n40,n41,n42,n43,n44,n45,n46,n49,n106,n105,n50,n51, + n52,n53,n54,n55,n56,n57,n58,n59,n60,n61,n62,n63,n64,n65, + n66,n67,n68,n69,n70,n71,n72,n73,n74,n75,n76,n77,n78,n79, + n80,n81,n82,n83,n84,n85,n86,n87,n88,n89,n90,n91,n92,n93, + n94,n95,n96,n97,n98,n99,n100,n101,n102,n103,n104,n115,n114, + n113,pll_lol_c,n125,n124,n116,n117,n118,n119,n120,n121,n122, + n123,\_Z\,n127,n126,gnd,pwr : std_logic; + attribute LOC : string; + attribute LOC of DCU0_inst : label is "DCU0"; + attribute CHAN : string; + attribute CHAN of DCU0_inst : label is "CH1"; +begin + rx_pclk <= rx_pclk_c; + tx_pclk <= tx_pclk_c; + rx_los_low_s <= rx_los_low_s_c; + rx_cdr_lol_s <= rx_cdr_lol_s_c; + pll_lol <= pll_lol_c; + DCU0_inst: component DCUA generic map (D_MACROPDB=>"0b1",D_IB_PWDNB=>"0b1", + D_XGE_MODE=>"0b0",D_LOW_MARK=>"0d4",D_HIGH_MARK=>"0d12",D_BUS8BIT_SEL=>"0b0", + D_CDR_LOL_SET=>"0b11",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", + D_BITCLK_ND_EN=>"0b0",D_BITCLK_FROM_ND_EN=>"0b0",D_SYNC_LOCAL_EN=>"0b1", + D_SYNC_ND_EN=>"0b0",CH1_UC_MODE=>"0b1",CH1_PCIE_MODE=>"0b0",CH1_RIO_MODE=>"0b0", + CH1_WA_MODE=>"0b0",CH1_INVERT_RX=>"0b0",CH1_INVERT_TX=>"0b0",CH1_PRBS_SELECTION=>"0b0", + CH1_GE_AN_ENABLE=>"0b0",CH1_PRBS_LOCK=>"0b0",CH1_PRBS_ENABLE=>"0b0", + CH1_ENABLE_CG_ALIGN=>"0b1",CH1_TX_GEAR_MODE=>"0b0",CH1_RX_GEAR_MODE=>"0b0", + CH1_PCS_DET_TIME_SEL=>"0b00",CH1_PCIE_EI_EN=>"0b0",CH1_TX_GEAR_BYPASS=>"0b0", + CH1_ENC_BYPASS=>"0b0",CH1_SB_BYPASS=>"0b0",CH1_RX_SB_BYPASS=>"0b0", + CH1_WA_BYPASS=>"0b0",CH1_DEC_BYPASS=>"0b0",CH1_CTC_BYPASS=>"0b1", + CH1_RX_GEAR_BYPASS=>"0b0",CH1_LSM_DISABLE=>"0b0",CH1_MATCH_2_ENABLE=>"0b0", + CH1_MATCH_4_ENABLE=>"0b1",CH1_MIN_IPG_CNT=>"0b11",CH1_CC_MATCH_1=>"0x1BC", + CH1_CC_MATCH_2=>"0x11C",CH1_CC_MATCH_3=>"0x11C",CH1_CC_MATCH_4=>"0x11C", + CH1_UDF_COMMA_MASK=>"0x0ff",CH1_UDF_COMMA_A=>"0x083",CH1_UDF_COMMA_B=>"0x07C", + CH1_RX_DCO_CK_DIV=>"0b000",CH1_RCV_DCC_EN=>"0b0",CH1_TPWDNB=>"0b1", + CH1_RATE_MODE_TX=>"0b0",CH1_RTERM_TX=>"0d19",CH1_TX_CM_SEL=>"0b00", + CH1_TDRV_PRE_EN=>"0b0",CH1_TDRV_SLICE0_SEL=>"0b00",CH1_TDRV_SLICE1_SEL=>"0b00", + CH1_TDRV_SLICE2_SEL=>"0b01",CH1_TDRV_SLICE3_SEL=>"0b01",CH1_TDRV_SLICE4_SEL=>"0b01", + CH1_TDRV_SLICE5_SEL=>"0b00",CH1_TDRV_SLICE0_CUR=>"0b000",CH1_TDRV_SLICE1_CUR=>"0b000", + CH1_TDRV_SLICE2_CUR=>"0b11",CH1_TDRV_SLICE3_CUR=>"0b11",CH1_TDRV_SLICE4_CUR=>"0b01", + CH1_TDRV_SLICE5_CUR=>"0b00",CH1_TDRV_DAT_SEL=>"0b00",CH1_TX_DIV11_SEL=>"0b0", + CH1_RPWDNB=>"0b1",CH1_RATE_MODE_RX=>"0b0",CH1_RX_DIV11_SEL=>"0b0", + CH1_SEL_SD_RX_CLK=>"0b1",CH1_FF_RX_H_CLK_EN=>"0b0",CH1_FF_RX_F_CLK_DIS=>"0b0", + CH1_FF_TX_H_CLK_EN=>"0b0",CH1_FF_TX_F_CLK_DIS=>"0b0",CH1_TDRV_POST_EN=>"0b0", + CH1_TX_POST_SIGN=>"0b0",CH1_TX_PRE_SIGN=>"0b0",CH1_REQ_LVL_SET=>"0b00", + CH1_REQ_EN=>"0b0",CH1_RTERM_RX=>"0d22",CH1_RXTERM_CM=>"0b11",CH1_PDEN_SEL=>"0b1", + CH1_RXIN_CM=>"0b11",CH1_LEQ_OFFSET_SEL=>"0b0",CH1_LEQ_OFFSET_TRIM=>"0b000", + CH1_RLOS_SEL=>"0b1",CH1_RX_LOS_LVL=>"0b000",CH1_RX_LOS_CEQ=>"0b11", + CH1_RX_LOS_HYST_EN=>"0b0",CH1_RX_LOS_EN=>"0b1",CH1_LDR_RX2CORE_SEL=>"0b0", + CH1_LDR_CORE2TX_SEL=>"0b0",D_TX_MAX_RATE=>"2",CH1_CDR_MAX_RATE=>"2", + CH1_TXAMPLITUDE=>"0d800",CH1_TXDEPRE=>"DISABLED",CH1_TXDEPOST=>"DISABLED", + CH1_PROTOCOL=>"G8B10B",D_ISETLOS=>"0d0",D_SETIRPOLY_AUX=>"0b10",D_SETICONST_AUX=>"0b01", + D_SETIRPOLY_CH=>"0b10",D_SETICONST_CH=>"0b10",D_REQ_ISET=>"0b001", + D_PD_ISET=>"0b00",D_DCO_CALIB_TIME_SEL=>"0b00",CH1_CDR_CNT4SEL=>"0b00", + CH1_CDR_CNT8SEL=>"0b00",CH1_DCOATDCFG=>"0b00",CH1_DCOATDDLY=>"0b00", + CH1_DCOBYPSATD=>"0b1",CH1_DCOCALDIV=>"0b000",CH1_DCOCTLGI=>"0b011", + CH1_DCODISBDAVOID=>"0b0",CH1_DCOFLTDAC=>"0b00",CH1_DCOFTNRG=>"0b001", + CH1_DCOIOSTUNE=>"0b010",CH1_DCOITUNE=>"0b00",CH1_DCOITUNE4LSB=>"0b010", + CH1_DCOIUPDNX2=>"0b1",CH1_DCONUOFLSB=>"0b100",CH1_DCOSCALEI=>"0b01", + CH1_DCOSTARTVAL=>"0b010",CH1_DCOSTEP=>"0b11",CH1_BAND_THRESHOLD=>"0d0", + CH1_AUTO_FACQ_EN=>"0b1",CH1_AUTO_CALIB_EN=>"0b1",CH1_CALIB_CK_MODE=>"0b0", + CH1_REG_BAND_OFFSET=>"0d0",CH1_REG_BAND_SEL=>"0d0",CH1_REG_IDAC_SEL=>"0d0", + CH1_REG_IDAC_EN=>"0b0",D_CMUSETISCL4VCO=>"0b000",D_CMUSETI4VCO=>"0b00", + D_CMUSETINITVCT=>"0b00",D_CMUSETZGM=>"0b000",D_CMUSETP2AGM=>"0b000", + D_CMUSETP1GM=>"0b000",D_CMUSETI4CPZ=>"0d3",D_CMUSETI4CPP=>"0d3",D_CMUSETICP4Z=>"0b101", + D_CMUSETICP4P=>"0b01",D_CMUSETBIASI=>"0b00",D_SETPLLRC=>"0d1",CH1_RX_RATE_SEL=>"0d10", + D_REFCK_MODE=>"0b001",D_TX_VCO_CK_DIV=>"0b000",D_PLL_LOL_SET=>"0b01", + D_RG_EN=>"0b0",D_RG_SET=>"0b00") + port map (CH0_HDINP=>n106,CH1_HDINP=>hdinp,CH0_HDINN=>n106,CH1_HDINN=>hdinn, + D_TXBIT_CLKP_FROM_ND=>n47,D_TXBIT_CLKN_FROM_ND=>n47,D_SYNC_ND=>n47,D_TXPLL_LOL_FROM_ND=>n47, + CH0_RX_REFCLK=>n106,CH1_RX_REFCLK=>rxrefclk,CH0_FF_RXI_CLK=>n105,CH1_FF_RXI_CLK=>rx_pclk_c, + CH0_FF_TXI_CLK=>n105,CH1_FF_TXI_CLK=>tx_pclk_c,CH0_FF_EBRD_CLK=>n105, + CH1_FF_EBRD_CLK=>n48,CH0_FF_TX_D_0=>n106,CH1_FF_TX_D_0=>txdata(0),CH0_FF_TX_D_1=>n106, + CH1_FF_TX_D_1=>txdata(1),CH0_FF_TX_D_2=>n106,CH1_FF_TX_D_2=>txdata(2), + CH0_FF_TX_D_3=>n106,CH1_FF_TX_D_3=>txdata(3),CH0_FF_TX_D_4=>n106,CH1_FF_TX_D_4=>txdata(4), + CH0_FF_TX_D_5=>n106,CH1_FF_TX_D_5=>txdata(5),CH0_FF_TX_D_6=>n106,CH1_FF_TX_D_6=>txdata(6), + CH0_FF_TX_D_7=>n106,CH1_FF_TX_D_7=>txdata(7),CH0_FF_TX_D_8=>n106,CH1_FF_TX_D_8=>tx_k(0), + CH0_FF_TX_D_9=>n106,CH1_FF_TX_D_9=>tx_force_disp(0),CH0_FF_TX_D_10=>n106, + CH1_FF_TX_D_10=>tx_disp_sel(0),CH0_FF_TX_D_11=>n106,CH1_FF_TX_D_11=>n47, + CH0_FF_TX_D_12=>n106,CH1_FF_TX_D_12=>n106,CH0_FF_TX_D_13=>n106,CH1_FF_TX_D_13=>n106, + CH0_FF_TX_D_14=>n106,CH1_FF_TX_D_14=>n106,CH0_FF_TX_D_15=>n106,CH1_FF_TX_D_15=>n106, + CH0_FF_TX_D_16=>n106,CH1_FF_TX_D_16=>n106,CH0_FF_TX_D_17=>n106,CH1_FF_TX_D_17=>n106, + CH0_FF_TX_D_18=>n106,CH1_FF_TX_D_18=>n106,CH0_FF_TX_D_19=>n106,CH1_FF_TX_D_19=>n106, + CH0_FF_TX_D_20=>n106,CH1_FF_TX_D_20=>n106,CH0_FF_TX_D_21=>n106,CH1_FF_TX_D_21=>n106, + CH0_FF_TX_D_22=>n106,CH1_FF_TX_D_22=>n106,CH0_FF_TX_D_23=>n106,CH1_FF_TX_D_23=>n47, + CH0_FFC_EI_EN=>n106,CH1_FFC_EI_EN=>tx_idle_c,CH0_FFC_PCIE_DET_EN=>n106, + CH1_FFC_PCIE_DET_EN=>n47,CH0_FFC_PCIE_CT=>n106,CH1_FFC_PCIE_CT=>n47,CH0_FFC_SB_INV_RX=>n106, + CH1_FFC_SB_INV_RX=>n106,CH0_FFC_ENABLE_CGALIGN=>n106,CH1_FFC_ENABLE_CGALIGN=>n106, + CH0_FFC_SIGNAL_DETECT=>n106,CH1_FFC_SIGNAL_DETECT=>signal_detect_c,CH0_FFC_FB_LOOPBACK=>n106, + CH1_FFC_FB_LOOPBACK=>n47,CH0_FFC_SB_PFIFO_LP=>n106,CH1_FFC_SB_PFIFO_LP=>n47, + CH0_FFC_PFIFO_CLR=>n106,CH1_FFC_PFIFO_CLR=>n47,CH0_FFC_RATE_MODE_RX=>n106, + CH1_FFC_RATE_MODE_RX=>n106,CH0_FFC_RATE_MODE_TX=>n106,CH1_FFC_RATE_MODE_TX=>n106, + CH0_FFC_DIV11_MODE_RX=>n106,CH1_FFC_DIV11_MODE_RX=>n47,CH0_FFC_DIV11_MODE_TX=>n106, + CH1_FFC_DIV11_MODE_TX=>n47,CH0_FFC_RX_GEAR_MODE=>n106,CH1_FFC_RX_GEAR_MODE=>n47, + CH0_FFC_TX_GEAR_MODE=>n106,CH1_FFC_TX_GEAR_MODE=>n47,CH0_FFC_LDR_CORE2TX_EN=>n106, + CH1_FFC_LDR_CORE2TX_EN=>n106,CH0_FFC_LANE_TX_RST=>n106,CH1_FFC_LANE_TX_RST=>rsl_tx_pcs_rst_c, + CH0_FFC_LANE_RX_RST=>n106,CH1_FFC_LANE_RX_RST=>rsl_rx_pcs_rst_c,CH0_FFC_RRST=>n106, + CH1_FFC_RRST=>rsl_rx_serdes_rst_c,CH0_FFC_TXPWDNB=>n106,CH1_FFC_TXPWDNB=>tx_pwrup_c, + CH0_FFC_RXPWDNB=>n106,CH1_FFC_RXPWDNB=>rx_pwrup_c,CH0_LDR_CORE2TX=>n106, + CH1_LDR_CORE2TX=>n106,D_SCIWDATA0=>sci_wrdata(0),D_SCIWDATA1=>sci_wrdata(1), + D_SCIWDATA2=>sci_wrdata(2),D_SCIWDATA3=>sci_wrdata(3),D_SCIWDATA4=>sci_wrdata(4), + D_SCIWDATA5=>sci_wrdata(5),D_SCIWDATA6=>sci_wrdata(6),D_SCIWDATA7=>sci_wrdata(7), + D_SCIADDR0=>sci_addr(0),D_SCIADDR1=>sci_addr(1),D_SCIADDR2=>sci_addr(2), + D_SCIADDR3=>sci_addr(3),D_SCIADDR4=>sci_addr(4),D_SCIADDR5=>sci_addr(5), + D_SCIENAUX=>sci_en_dual,D_SCISELAUX=>sci_sel_dual,CH0_SCIEN=>n106,CH1_SCIEN=>sci_en, + CH0_SCISEL=>n106,CH1_SCISEL=>sci_sel,D_SCIRD=>sci_rd,D_SCIWSTN=>sci_wrn, + D_CYAWSTN=>cyawstn,D_FFC_SYNC_TOGGLE=>n106,D_FFC_DUAL_RST=>rsl_rst_dual_c, + D_FFC_MACRO_RST=>rsl_serdes_rst_dual_c,D_FFC_MACROPDB=>serdes_pdb,D_FFC_TRST=>rsl_tx_serdes_rst_c, + CH0_FFC_CDR_EN_BITSLIP=>n106,CH1_FFC_CDR_EN_BITSLIP=>n47,D_SCAN_ENABLE=>n47, + D_SCAN_IN_0=>n47,D_SCAN_IN_1=>n47,D_SCAN_IN_2=>n47,D_SCAN_IN_3=>n47, + D_SCAN_IN_4=>n47,D_SCAN_IN_5=>n47,D_SCAN_IN_6=>n47,D_SCAN_IN_7=>n47, + D_SCAN_MODE=>n47,D_SCAN_RESET=>n47,D_CIN0=>n47,D_CIN1=>n47,D_CIN2=>n47, + D_CIN3=>n47,D_CIN4=>n47,D_CIN5=>n47,D_CIN6=>n47,D_CIN7=>n47,D_CIN8=>n47, + D_CIN9=>n47,D_CIN10=>n47,D_CIN11=>n47,CH0_HDOUTP=>n50,CH1_HDOUTP=>hdoutp, + CH0_HDOUTN=>n51,CH1_HDOUTN=>hdoutn,D_TXBIT_CLKP_TO_ND=>n1,D_TXBIT_CLKN_TO_ND=>n2, + D_SYNC_PULSE2ND=>n3,D_TXPLL_LOL_TO_ND=>n4,CH0_FF_RX_F_CLK=>n52,CH1_FF_RX_F_CLK=>n5, + CH0_FF_RX_H_CLK=>n53,CH1_FF_RX_H_CLK=>n6,CH0_FF_TX_F_CLK=>n54,CH1_FF_TX_F_CLK=>n7, + CH0_FF_TX_H_CLK=>n55,CH1_FF_TX_H_CLK=>n8,CH0_FF_RX_PCLK=>n56,CH1_FF_RX_PCLK=>rx_pclk_c, + CH0_FF_TX_PCLK=>n57,CH1_FF_TX_PCLK=>tx_pclk_c,CH0_FF_RX_D_0=>n58,CH1_FF_RX_D_0=>rxdata(0), + CH0_FF_RX_D_1=>n59,CH1_FF_RX_D_1=>rxdata(1),CH0_FF_RX_D_2=>n60,CH1_FF_RX_D_2=>rxdata(2), + CH0_FF_RX_D_3=>n61,CH1_FF_RX_D_3=>rxdata(3),CH0_FF_RX_D_4=>n62,CH1_FF_RX_D_4=>rxdata(4), + CH0_FF_RX_D_5=>n63,CH1_FF_RX_D_5=>rxdata(5),CH0_FF_RX_D_6=>n64,CH1_FF_RX_D_6=>rxdata(6), + CH0_FF_RX_D_7=>n65,CH1_FF_RX_D_7=>rxdata(7),CH0_FF_RX_D_8=>n66,CH1_FF_RX_D_8=>rx_k(0), + CH0_FF_RX_D_9=>n67,CH1_FF_RX_D_9=>rx_disp_err(0),CH0_FF_RX_D_10=>n68, + CH1_FF_RX_D_10=>rx_cv_err(0),CH0_FF_RX_D_11=>n69,CH1_FF_RX_D_11=>n9,CH0_FF_RX_D_12=>n70, + CH1_FF_RX_D_12=>n71,CH0_FF_RX_D_13=>n72,CH1_FF_RX_D_13=>n73,CH0_FF_RX_D_14=>n74, + CH1_FF_RX_D_14=>n75,CH0_FF_RX_D_15=>n76,CH1_FF_RX_D_15=>n77,CH0_FF_RX_D_16=>n78, + CH1_FF_RX_D_16=>n79,CH0_FF_RX_D_17=>n80,CH1_FF_RX_D_17=>n81,CH0_FF_RX_D_18=>n82, + CH1_FF_RX_D_18=>n83,CH0_FF_RX_D_19=>n84,CH1_FF_RX_D_19=>n85,CH0_FF_RX_D_20=>n86, + CH1_FF_RX_D_20=>n87,CH0_FF_RX_D_21=>n88,CH1_FF_RX_D_21=>n89,CH0_FF_RX_D_22=>n90, + CH1_FF_RX_D_22=>n91,CH0_FF_RX_D_23=>n92,CH1_FF_RX_D_23=>n10,CH0_FFS_PCIE_DONE=>n93, + CH1_FFS_PCIE_DONE=>n11,CH0_FFS_PCIE_CON=>n94,CH1_FFS_PCIE_CON=>n12,CH0_FFS_RLOS=>n95, + CH1_FFS_RLOS=>rx_los_low_s_c,CH0_FFS_LS_SYNC_STATUS=>n96,CH1_FFS_LS_SYNC_STATUS=>lsm_status_s, + CH0_FFS_CC_UNDERRUN=>n97,CH1_FFS_CC_UNDERRUN=>n13,CH0_FFS_CC_OVERRUN=>n98, + CH1_FFS_CC_OVERRUN=>n14,CH0_FFS_RXFBFIFO_ERROR=>n99,CH1_FFS_RXFBFIFO_ERROR=>n15, + CH0_FFS_TXFBFIFO_ERROR=>n100,CH1_FFS_TXFBFIFO_ERROR=>n16,CH0_FFS_RLOL=>n101, + CH1_FFS_RLOL=>rx_cdr_lol_s_c,CH0_FFS_SKP_ADDED=>n102,CH1_FFS_SKP_ADDED=>n17, + CH0_FFS_SKP_DELETED=>n103,CH1_FFS_SKP_DELETED=>n18,CH0_LDR_RX2CORE=>n104, + CH1_LDR_RX2CORE=>n115,D_SCIRDATA0=>sci_rddata(0),D_SCIRDATA1=>sci_rddata(1), + D_SCIRDATA2=>sci_rddata(2),D_SCIRDATA3=>sci_rddata(3),D_SCIRDATA4=>sci_rddata(4), + D_SCIRDATA5=>sci_rddata(5),D_SCIRDATA6=>sci_rddata(6),D_SCIRDATA7=>sci_rddata(7), + D_SCIINT=>sci_int,D_SCAN_OUT_0=>n19,D_SCAN_OUT_1=>n20,D_SCAN_OUT_2=>n21, + D_SCAN_OUT_3=>n22,D_SCAN_OUT_4=>n23,D_SCAN_OUT_5=>n24,D_SCAN_OUT_6=>n25, + D_SCAN_OUT_7=>n26,D_COUT0=>n27,D_COUT1=>n28,D_COUT2=>n29,D_COUT3=>n30, + D_COUT4=>n31,D_COUT5=>n32,D_COUT6=>n33,D_COUT7=>n34,D_COUT8=>n35,D_COUT9=>n36, + D_COUT10=>n37,D_COUT11=>n38,D_COUT12=>n39,D_COUT13=>n40,D_COUT14=>n41, + D_COUT15=>n42,D_COUT16=>n43,D_COUT17=>n44,D_COUT18=>n45,D_COUT19=>n46, + D_REFCLKI=>pll_refclki,D_FFS_PLOL=>n49); + n48 <= '1' ; + n47 <= '0' ; + n1 <= 'Z' ; + n2 <= 'Z' ; + n3 <= 'Z' ; + n4 <= 'Z' ; + n5 <= 'Z' ; + n6 <= 'Z' ; + n7 <= 'Z' ; + n8 <= 'Z' ; + n9 <= 'Z' ; + n10 <= 'Z' ; + n11 <= 'Z' ; + n12 <= 'Z' ; + n13 <= 'Z' ; + n14 <= 'Z' ; + n15 <= 'Z' ; + n16 <= 'Z' ; + n17 <= 'Z' ; + n18 <= 'Z' ; + n19 <= 'Z' ; + n20 <= 'Z' ; + n21 <= 'Z' ; + n22 <= 'Z' ; + n23 <= 'Z' ; + n24 <= 'Z' ; + n25 <= 'Z' ; + n26 <= 'Z' ; + n27 <= 'Z' ; + n28 <= 'Z' ; + n29 <= 'Z' ; + n30 <= 'Z' ; + n31 <= 'Z' ; + n32 <= 'Z' ; + n33 <= 'Z' ; + n34 <= 'Z' ; + n35 <= 'Z' ; + n36 <= 'Z' ; + n37 <= 'Z' ; + n38 <= 'Z' ; + n39 <= 'Z' ; + n40 <= 'Z' ; + n41 <= 'Z' ; + n42 <= 'Z' ; + n43 <= 'Z' ; + n44 <= 'Z' ; + n45 <= 'Z' ; + n46 <= 'Z' ; + n49 <= 'Z' ; + n106 <= '0' ; + n105 <= '1' ; + n50 <= 'Z' ; + n51 <= 'Z' ; + n52 <= 'Z' ; + n53 <= 'Z' ; + n54 <= 'Z' ; + n55 <= 'Z' ; + n56 <= 'Z' ; + n57 <= 'Z' ; + n58 <= 'Z' ; + n59 <= 'Z' ; + n60 <= 'Z' ; + n61 <= 'Z' ; + n62 <= 'Z' ; + n63 <= 'Z' ; + n64 <= 'Z' ; + n65 <= 'Z' ; + n66 <= 'Z' ; + n67 <= 'Z' ; + n68 <= 'Z' ; + n69 <= 'Z' ; + n70 <= 'Z' ; + n71 <= 'Z' ; + n72 <= 'Z' ; + n73 <= 'Z' ; + n74 <= 'Z' ; + n75 <= 'Z' ; + n76 <= 'Z' ; + n77 <= 'Z' ; + n78 <= 'Z' ; + n79 <= 'Z' ; + n80 <= 'Z' ; + n81 <= 'Z' ; + n82 <= 'Z' ; + n83 <= 'Z' ; + n84 <= 'Z' ; + n85 <= 'Z' ; + n86 <= 'Z' ; + n87 <= 'Z' ; + n88 <= 'Z' ; + n89 <= 'Z' ; + n90 <= 'Z' ; + n91 <= 'Z' ; + n92 <= 'Z' ; + n93 <= 'Z' ; + n94 <= 'Z' ; + n95 <= 'Z' ; + n96 <= 'Z' ; + n97 <= 'Z' ; + n98 <= 'Z' ; + n99 <= 'Z' ; + n100 <= 'Z' ; + n101 <= 'Z' ; + n102 <= 'Z' ; + n103 <= 'Z' ; + n104 <= 'Z' ; + n115 <= 'Z' ; + rsl_inst: component serdes_sync_0rsl_core port map (rui_rst=>rsl_rst,rui_serdes_rst_dual_c=>serdes_rst_dual_c, + rui_rst_dual_c=>rst_dual_c,rui_rsl_disable=>rsl_disable,rui_tx_ref_clk=>pll_refclki, + rui_tx_serdes_rst_c=>tx_serdes_rst_c,rui_tx_pcs_rst_c(3)=>n125, + rui_tx_pcs_rst_c(2)=>n125,rui_tx_pcs_rst_c(1)=>n125,rui_tx_pcs_rst_c(0)=>tx_pcs_rst_c, + rdi_pll_lol=>pll_lol_c,rui_rx_ref_clk=>rxrefclk,rui_rx_serdes_rst_c(3)=>n125, + rui_rx_serdes_rst_c(2)=>n125,rui_rx_serdes_rst_c(1)=>n125,rui_rx_serdes_rst_c(0)=>rx_serdes_rst_c, + rui_rx_pcs_rst_c(3)=>n125,rui_rx_pcs_rst_c(2)=>n125,rui_rx_pcs_rst_c(1)=>n125, + rui_rx_pcs_rst_c(0)=>rx_pcs_rst_c,rdi_rx_los_low_s(3)=>n125,rdi_rx_los_low_s(2)=>n125, + rdi_rx_los_low_s(1)=>n125,rdi_rx_los_low_s(0)=>rx_los_low_s_c, + rdi_rx_cdr_lol_s(3)=>n125,rdi_rx_cdr_lol_s(2)=>n125,rdi_rx_cdr_lol_s(1)=>n125, + rdi_rx_cdr_lol_s(0)=>rx_cdr_lol_s_c,rdo_serdes_rst_dual_c=>rsl_serdes_rst_dual_c, + rdo_rst_dual_c=>rsl_rst_dual_c,ruo_tx_rdy=>rsl_tx_rdy,rdo_tx_serdes_rst_c=>rsl_tx_serdes_rst_c, + rdo_tx_pcs_rst_c(3)=>n116,rdo_tx_pcs_rst_c(2)=>n117,rdo_tx_pcs_rst_c(1)=>n118, + rdo_tx_pcs_rst_c(0)=>rsl_tx_pcs_rst_c,ruo_rx_rdy=>rsl_rx_rdy,rdo_rx_serdes_rst_c(3)=>n119, + rdo_rx_serdes_rst_c(2)=>n120,rdo_rx_serdes_rst_c(1)=>n121,rdo_rx_serdes_rst_c(0)=>rsl_rx_serdes_rst_c, + rdo_rx_pcs_rst_c(3)=>n122,rdo_rx_pcs_rst_c(2)=>n123,rdo_rx_pcs_rst_c(1)=>\_Z\, + rdo_rx_pcs_rst_c(0)=>rsl_rx_pcs_rst_c); + n114 <= '1' ; + n113 <= '0' ; + n125 <= '0' ; + n124 <= '1' ; + n116 <= 'Z' ; + n117 <= 'Z' ; + n118 <= 'Z' ; + n119 <= 'Z' ; + n120 <= 'Z' ; + n121 <= 'Z' ; + n122 <= 'Z' ; + n123 <= 'Z' ; + \_Z\ <= 'Z' ; + sll_inst: component serdes_sync_0sll_core port map (sli_rst=>sli_rst,sli_refclk=>pll_refclki, + sli_pclk=>tx_pclk_c,sli_div2_rate=>gnd,sli_div11_rate=>gnd,sli_gear_mode=>gnd, + sli_cpri_mode(2)=>gnd,sli_cpri_mode(1)=>gnd,sli_cpri_mode(0)=>gnd, + sli_pcie_mode=>gnd,slo_plol=>pll_lol_c); + n127 <= '1' ; + n126 <= '0' ; + gnd <= '0' ; + pwr <= '1' ; + +end architecture v1; + diff --git a/media_interfaces/ecp5/chan1_0/serdes_sync_1.ipx b/media_interfaces/ecp5/chan1_0/serdes_sync_1.ipx new file mode 100644 index 0000000..5f446bc --- /dev/null +++ b/media_interfaces/ecp5/chan1_0/serdes_sync_1.ipx @@ -0,0 +1,6 @@ + + + + + + diff --git a/media_interfaces/ecp5/chan1_0/serdes_sync_1.lpc b/media_interfaces/ecp5/chan1_0/serdes_sync_1.lpc new file mode 100644 index 0000000..bbee5da --- /dev/null +++ b/media_interfaces/ecp5/chan1_0/serdes_sync_1.lpc @@ -0,0 +1,98 @@ +[Device] +Family=ecp5um +PartType=LFE5UM-85F +PartName=LFE5UM-85F-8BG381C +SpeedGrade=8 +Package=CABGA381 +OperatingCondition=COM +Status=P + +[IP] +VendorName=Lattice Semiconductor Corporation +CoreType=LPM +CoreStatus=Demo +CoreName=PCS +CoreRevision=8.2 +ModuleName=serdes_sync_1 +SourceFormat=VHDL +ParameterFileVersion=1.0 +Date=11/09/2020 +Time=18:01:17 + +[Parameters] +Verilog=0 +VHDL=1 +EDIF=1 +Destination=Synplicity +Expression=BusA(0 to 7) +Order=Big Endian [MSB:LSB] +IO=0 +PROTOCOL=G8B10B +NUM_CHS=1 +CH_MODE=Rx and Tx +TX_MAX_RATE=2 +TXPLLMULT=10X +REFCLK_RATE=200.0000 +TXPLLLOLTHRESHOLD=1 +CDR_MAX_RATE=2 +CDR_MULT=10X +RX_RATE_DIV=Full Rate +CDR_REF_RATE=200.0000 +RX_LINE_RATE=2.0000 +RX_DATA_WIDTH=8/10-Bit +RX_FICLK_RATE=200.0000 +RXLDR=Off +CDRLOLRANGE=3 +TX_LINE_RATE=2.0000 +TX_RATE_DIV=Full Rate +TX_DATA_WIDTH=8/10-Bit +TX_FICLK_RATE=200.0000 +TXLDR=Off +IO_TYPE=G8B10B +TXAMPLITUDE=800 +TXDIFFTERM=50 ohms +TXDEPRE=Disabled +TXDEPOST=Disabled +RXDIFFTERM=50 ohms +RXCOUPLING=AC +LEQ=Disabled +RXLOSTHRESHOLD=0 +TXINVPOL=Non-invert +TX8B10B=Enabled +TXFIFO_ENABLE=Enabled +RXINVPOL=Non-invert +RX8B10B=Enabled +RXFIFO_ENABLE=Enabled +RXLSM=Enabled +RXWA=Barrel Shift +RXSC=K28P157 +RXCOMMAA=0010000011 +RXCOMMAB=0001111100 +RXCOMMAM=0011111111 +RXCTC=Disabled +RXCTCMATCHPATTERN=M4-S4 +RXCTCBYTEN=0 00H +RXCTCBYTEN1=0 00H +RXCTCBYTEN2=0 00H +RXCTCBYTEN3=0 00H +;RXMCAENABLE=Disabled +;ACHARA=0 00H +;ACHARB=0 00H +;ACHARM=0 00H +LOOPBACK=Disabled +RCSRC=Disabled +LOSPORT=Enabled +CDRLOLACTION=Full Recalibration +RSTSEQSEL=Enabled +PPORT_TX_RDY=Enabled +PWAIT_TX_RDY=3000 +PPORT_RX_RDY=Enabled +PWAIT_RX_RDY=3000 +SCIPORT=Enabled +SOFTLOL=Enabled + +[FilesGenerated] +serdes_sync_1.pp=pp +serdes_sync_1.tft=tft +serdes_sync_1.txt=pcs_module +serdes_sync_1.sym=sym diff --git a/media_interfaces/ecp5/dual_serdes/serdes0/serdes0.vhd b/media_interfaces/ecp5/dual_serdes/serdes0/serdes0.vhd index d769bb8..0651ba5 100644 --- a/media_interfaces/ecp5/dual_serdes/serdes0/serdes0.vhd +++ b/media_interfaces/ecp5/dual_serdes/serdes0/serdes0.vhd @@ -159,7 +159,7 @@ begin pll_lol <= pll_lol_c; DCU0_inst: component DCUA generic map (D_MACROPDB=>"0b1",D_IB_PWDNB=>"0b1", D_XGE_MODE=>"0b0",D_LOW_MARK=>"0d4",D_HIGH_MARK=>"0d12",D_BUS8BIT_SEL=>"0b0", - D_CDR_LOL_SET=>"0b11",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", + D_CDR_LOL_SET=>"0b00",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", D_BITCLK_ND_EN=>"0b0",D_BITCLK_FROM_ND_EN=>"0b0",D_SYNC_LOCAL_EN=>"0b1", D_SYNC_ND_EN=>"0b0",CH0_UC_MODE=>"0b1",CH0_PCIE_MODE=>"0b0",CH0_RIO_MODE=>"0b0", CH0_WA_MODE=>"0b0",CH0_INVERT_RX=>"0b0",CH0_INVERT_TX=>"0b0",CH0_PRBS_SELECTION=>"0b0", diff --git a/media_interfaces/ecp5/dual_serdes/serdes1/serdes1.vhd b/media_interfaces/ecp5/dual_serdes/serdes1/serdes1.vhd index 39c1ff9..f3193c3 100644 --- a/media_interfaces/ecp5/dual_serdes/serdes1/serdes1.vhd +++ b/media_interfaces/ecp5/dual_serdes/serdes1/serdes1.vhd @@ -127,7 +127,7 @@ begin rx_cdr_lol_s <= rx_cdr_lol_s_c; DCU0_inst: component DCUA generic map (D_MACROPDB=>"0b1",D_IB_PWDNB=>"0b1", D_XGE_MODE=>"0b0",D_LOW_MARK=>"0d4",D_HIGH_MARK=>"0d12",D_BUS8BIT_SEL=>"0b0", - D_CDR_LOL_SET=>"0b11",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", + D_CDR_LOL_SET=>"0b00",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", D_BITCLK_ND_EN=>"0b0",D_BITCLK_FROM_ND_EN=>"0b0",D_SYNC_LOCAL_EN=>"0b1", D_SYNC_ND_EN=>"0b0",CH1_UC_MODE=>"0b1",CH1_PCIE_MODE=>"0b0",CH1_RIO_MODE=>"0b0", CH1_WA_MODE=>"0b0",CH1_INVERT_RX=>"0b0",CH1_INVERT_TX=>"0b0",CH1_PRBS_SELECTION=>"0b0", diff --git a/media_interfaces/ecp5/dual_serdes_1/dual_serdes_1.vhd b/media_interfaces/ecp5/dual_serdes_1/dual_serdes_1.vhd new file mode 100644 index 0000000..9a4b74c --- /dev/null +++ b/media_interfaces/ecp5/dual_serdes_1/dual_serdes_1.vhd @@ -0,0 +1,285 @@ + + + +-- +-- Verific VHDL Description of module dual_serdes +-- + +library ieee ; +use ieee.std_logic_1164.all ; + +entity dual_serdes_1 is + port (serdes0_rx_cv_err: out std_logic_vector(0 downto 0); + serdes0_rx_disp_err: out std_logic_vector(0 downto 0); + serdes0_rx_k: out std_logic_vector(0 downto 0); + serdes0_rxdata: out std_logic_vector(7 downto 0); + serdes0_tx_disp_sel: in std_logic_vector(0 downto 0); + serdes0_tx_force_disp: in std_logic_vector(0 downto 0); + serdes0_tx_k: in std_logic_vector(0 downto 0); + serdes0_txdata: in std_logic_vector(7 downto 0); + serdes1_rx_cv_err: out std_logic_vector(0 downto 0); + serdes1_rx_disp_err: out std_logic_vector(0 downto 0); + serdes1_rx_k: out std_logic_vector(0 downto 0); + serdes1_rxdata: out std_logic_vector(7 downto 0); + serdes1_sci_addr: in std_logic_vector(5 downto 0); + serdes1_sci_rddata: out std_logic_vector(7 downto 0); + serdes1_sci_wrdata: in std_logic_vector(7 downto 0); + serdes1_tx_disp_sel: in std_logic_vector(0 downto 0); + serdes1_tx_force_disp: in std_logic_vector(0 downto 0); + serdes1_tx_k: in std_logic_vector(0 downto 0); + serdes1_txdata: in std_logic_vector(7 downto 0); + serdes0_hdinn: in std_logic; + serdes0_hdinp: in std_logic; + serdes0_hdoutn: out std_logic; + serdes0_hdoutp: out std_logic; + serdes0_lsm_status_s: out std_logic; + serdes0_pll_lol: out std_logic; + serdes0_rsl_disable: in std_logic; + serdes0_rsl_rst: in std_logic; + serdes0_rsl_rx_rdy: out std_logic; + serdes0_rsl_tx_rdy: out std_logic; + serdes0_rst_dual_c: in std_logic; + serdes0_rx_cdr_lol_s: out std_logic; + serdes0_rx_los_low_s: out std_logic; + serdes0_rx_pclk: out std_logic; + serdes0_rx_pcs_rst_c: in std_logic; + serdes0_rx_pwrup_c: in std_logic; + serdes0_rx_serdes_rst_c: in std_logic; + serdes0_rxrefclk: in std_logic; + serdes0_sci_en: in std_logic; + serdes0_sci_sel: in std_logic; + serdes0_serdes_rst_dual_c: in std_logic; + serdes0_signal_detect_c: in std_logic; + serdes0_tx_idle_c: in std_logic; + serdes0_tx_pclk: out std_logic; + serdes0_tx_pcs_rst_c: in std_logic; + serdes0_tx_pwrup_c: in std_logic; + serdes0_tx_serdes_rst_c: in std_logic; + serdes1_cyawstn: in std_logic; + serdes1_hdinn: in std_logic; + serdes1_hdinp: in std_logic; + serdes1_hdoutn: out std_logic; + serdes1_hdoutp: out std_logic; + serdes1_lsm_status_s: out std_logic; + serdes1_pll_refclki: in std_logic; + serdes1_rsl_disable: in std_logic; + serdes1_rsl_rst: in std_logic; + serdes1_rsl_rx_rdy: out std_logic; + serdes1_rsl_tx_rdy: out std_logic; + serdes1_rst_dual_c: in std_logic; + serdes1_rx_cdr_lol_s: out std_logic; + serdes1_rx_los_low_s: out std_logic; + serdes1_rx_pclk: out std_logic; + serdes1_rx_pcs_rst_c: in std_logic; + serdes1_rx_pwrup_c: in std_logic; + serdes1_rx_serdes_rst_c: in std_logic; + serdes1_rxrefclk: in std_logic; + serdes1_sci_en: in std_logic; + serdes1_sci_en_dual: in std_logic; + serdes1_sci_rd: in std_logic; + serdes1_sci_sel: in std_logic; + serdes1_sci_sel_dual: in std_logic; + serdes1_sci_wrn: in std_logic; + serdes1_serdes_pdb: in std_logic; + serdes1_serdes_rst_dual_c: in std_logic; + serdes1_signal_detect_c: in std_logic; + serdes1_tx_idle_c: in std_logic; + serdes1_tx_pclk: out std_logic; + serdes1_tx_pcs_rst_c: in std_logic; + serdes1_tx_pwrup_c: in std_logic; + serdes1_tx_serdes_rst_c: in std_logic + ); + +end entity dual_serdes_1; +architecture dual_serdes_syn of dual_serdes_1 is + component serdes1_0 is + port (rx_cv_err: out std_logic_vector(0 downto 0); + rx_disp_err: out std_logic_vector(0 downto 0); + rx_k: out std_logic_vector(0 downto 0); + rxdata: out std_logic_vector(7 downto 0); + sci_addr: in std_logic_vector(5 downto 0); + sci_rddata: out std_logic_vector(7 downto 0); + sci_wrdata: in std_logic_vector(7 downto 0); + tx_disp_sel: in std_logic_vector(0 downto 0); + tx_force_disp: in std_logic_vector(0 downto 0); + tx_k: in std_logic_vector(0 downto 0); + txdata: in std_logic_vector(7 downto 0); + cyawstn: in std_logic; + hdinn: in std_logic; + hdinp: in std_logic; + hdoutn: out std_logic; + hdoutp: out std_logic; + lsm_status_s: out std_logic; + pll_lol: out std_logic; + pll_refclki: in std_logic; + rsl_disable: in std_logic; + rsl_rst: in std_logic; + rsl_rx_rdy: out std_logic; + rsl_tx_rdy: out std_logic; + rst_dual_c: in std_logic; + rx_cdr_lol_s: out std_logic; + rx_los_low_s: out std_logic; + rx_pclk: out std_logic; + rx_pcs_rst_c: in std_logic; + rx_pwrup_c: in std_logic; + rx_serdes_rst_c: in std_logic; + rxrefclk: in std_logic; + sci_en: in std_logic; + sci_en_dual: in std_logic; + sci_int: out std_logic; + sci_rd: in std_logic; + sci_sel: in std_logic; + sci_sel_dual: in std_logic; + sci_wrn: in std_logic; + serdes_pdb: in std_logic; + serdes_rst_dual_c: in std_logic; + signal_detect_c: in std_logic; + sli_rst: in std_logic; + tx_idle_c: in std_logic; + tx_pclk: out std_logic; + tx_pcs_rst_c: in std_logic; + tx_pwrup_c: in std_logic; + tx_serdes_rst_c: in std_logic + ); + + end component serdes1_0; -- not_need_bbox=true + + + component serdes1_1 is + port (rx_cv_err: out std_logic_vector(0 downto 0); + rx_disp_err: out std_logic_vector(0 downto 0); + rx_k: out std_logic_vector(0 downto 0); + rxdata: out std_logic_vector(7 downto 0); + sci_addr: in std_logic_vector(5 downto 0); + sci_rddata: out std_logic_vector(7 downto 0); + sci_wrdata: in std_logic_vector(7 downto 0); + tx_disp_sel: in std_logic_vector(0 downto 0); + tx_force_disp: in std_logic_vector(0 downto 0); + tx_k: in std_logic_vector(0 downto 0); + txdata: in std_logic_vector(7 downto 0); + cyawstn: in std_logic; + hdinn: in std_logic; + hdinp: in std_logic; + hdoutn: out std_logic; + hdoutp: out std_logic; + lsm_status_s: out std_logic; + pll_lol: in std_logic; + pll_refclki: in std_logic; + rsl_disable: in std_logic; + rsl_rst: in std_logic; + rsl_rx_rdy: out std_logic; + rsl_tx_rdy: out std_logic; + rst_dual_c: in std_logic; + rx_cdr_lol_s: out std_logic; + rx_los_low_s: out std_logic; + rx_pclk: out std_logic; + rx_pcs_rst_c: in std_logic; + rx_pwrup_c: in std_logic; + rx_serdes_rst_c: in std_logic; + rxrefclk: in std_logic; + sci_en: in std_logic; + sci_en_dual: in std_logic; + sci_int: out std_logic; + sci_rd: in std_logic; + sci_sel: in std_logic; + sci_sel_dual: in std_logic; + sci_wrn: in std_logic; + serdes_pdb: in std_logic; + serdes_rst_dual_c: in std_logic; + signal_detect_c: in std_logic; + tx_idle_c: in std_logic; + tx_pclk: out std_logic; + tx_pcs_rst_c: in std_logic; + tx_pwrup_c: in std_logic; + tx_serdes_rst_c: in std_logic + ); + + end component serdes1_1; -- not_need_bbox=true + + + signal i_serdes0_sci_rddata : std_logic_vector(7 downto 0); + signal o_serdes0_sci_rddata : std_logic_vector(7 downto 0); + signal i_serdes1_sci_rddata : std_logic_vector(7 downto 0); + signal i_serdes0_pll_lol,i_serdes1_pll_lol,o_serdes1_pll_lol,i_serdes0_sci_int, + o_serdes0_sci_int,i_serdes1_sci_int,o_serdes1_sci_int,sli_rst_wire0, + gnd : std_logic; +begin + serdes1_sci_rddata <= i_serdes1_sci_rddata; + serdes0_pll_lol <= i_serdes0_pll_lol; + sli_rst_wire0 <= serdes0_serdes_rst_dual_c OR serdes0_tx_serdes_rst_c OR (NOT serdes1_serdes_pdb) OR (NOT serdes0_tx_pwrup_c) OR (NOT serdes1_tx_pwrup_c); + serdes0_inst: component serdes1_0 port map (rx_cv_err(0)=>serdes0_rx_cv_err(0), + rx_disp_err(0)=>serdes0_rx_disp_err(0),rx_k(0)=>serdes0_rx_k(0), + rxdata(7)=>serdes0_rxdata(7),rxdata(6)=>serdes0_rxdata(6),rxdata(5)=>serdes0_rxdata(5), + rxdata(4)=>serdes0_rxdata(4),rxdata(3)=>serdes0_rxdata(3),rxdata(2)=>serdes0_rxdata(2), + rxdata(1)=>serdes0_rxdata(1),rxdata(0)=>serdes0_rxdata(0),sci_addr(5)=>serdes1_sci_addr(5), + sci_addr(4)=>serdes1_sci_addr(4),sci_addr(3)=>serdes1_sci_addr(3), + sci_addr(2)=>serdes1_sci_addr(2),sci_addr(1)=>serdes1_sci_addr(1), + sci_addr(0)=>serdes1_sci_addr(0),sci_rddata(7)=>i_serdes0_sci_rddata(7), + sci_rddata(6)=>i_serdes0_sci_rddata(6),sci_rddata(5)=>i_serdes0_sci_rddata(5), + sci_rddata(4)=>i_serdes0_sci_rddata(4),sci_rddata(3)=>i_serdes0_sci_rddata(3), + sci_rddata(2)=>i_serdes0_sci_rddata(2),sci_rddata(1)=>i_serdes0_sci_rddata(1), + sci_rddata(0)=>i_serdes0_sci_rddata(0),sci_wrdata(7)=>serdes1_sci_wrdata(7), + sci_wrdata(6)=>serdes1_sci_wrdata(6),sci_wrdata(5)=>serdes1_sci_wrdata(5), + sci_wrdata(4)=>serdes1_sci_wrdata(4),sci_wrdata(3)=>serdes1_sci_wrdata(3), + sci_wrdata(2)=>serdes1_sci_wrdata(2),sci_wrdata(1)=>serdes1_sci_wrdata(1), + sci_wrdata(0)=>serdes1_sci_wrdata(0),tx_disp_sel(0)=>serdes0_tx_disp_sel(0), + tx_force_disp(0)=>serdes0_tx_force_disp(0),tx_k(0)=>serdes0_tx_k(0), + txdata(7)=>serdes0_txdata(7),txdata(6)=>serdes0_txdata(6),txdata(5)=>serdes0_txdata(5), + txdata(4)=>serdes0_txdata(4),txdata(3)=>serdes0_txdata(3),txdata(2)=>serdes0_txdata(2), + txdata(1)=>serdes0_txdata(1),txdata(0)=>serdes0_txdata(0),cyawstn=>serdes1_cyawstn, + hdinn=>serdes0_hdinn,hdinp=>serdes0_hdinp,hdoutn=>serdes0_hdoutn, + hdoutp=>serdes0_hdoutp,lsm_status_s=>serdes0_lsm_status_s,pll_lol=>i_serdes0_pll_lol, + pll_refclki=>serdes1_pll_refclki,rsl_disable=>serdes0_rsl_disable, + rsl_rst=>serdes0_rsl_rst,rsl_rx_rdy=>serdes0_rsl_rx_rdy,rsl_tx_rdy=>serdes0_rsl_tx_rdy, + rst_dual_c=>serdes0_rst_dual_c,rx_cdr_lol_s=>serdes0_rx_cdr_lol_s, + rx_los_low_s=>serdes0_rx_los_low_s,rx_pclk=>serdes0_rx_pclk,rx_pcs_rst_c=>serdes0_rx_pcs_rst_c, + rx_pwrup_c=>serdes0_rx_pwrup_c,rx_serdes_rst_c=>serdes0_rx_serdes_rst_c, + rxrefclk=>serdes0_rxrefclk,sci_en=>serdes0_sci_en,sci_en_dual=>serdes1_sci_en_dual, + sci_int=>i_serdes0_sci_int,sci_rd=>serdes1_sci_rd,sci_sel=>serdes0_sci_sel, + sci_sel_dual=>serdes1_sci_sel_dual,sci_wrn=>serdes1_sci_wrn,serdes_pdb=>serdes1_serdes_pdb, + serdes_rst_dual_c=>serdes0_serdes_rst_dual_c,signal_detect_c=>serdes0_signal_detect_c, + sli_rst=>sli_rst_wire0,tx_idle_c=>serdes0_tx_idle_c,tx_pclk=>serdes0_tx_pclk, + tx_pcs_rst_c=>serdes0_tx_pcs_rst_c,tx_pwrup_c=>serdes0_tx_pwrup_c, + tx_serdes_rst_c=>serdes0_tx_serdes_rst_c); + serdes1_inst: component serdes1_1 port map (rx_cv_err(0)=>serdes1_rx_cv_err(0), + rx_disp_err(0)=>serdes1_rx_disp_err(0),rx_k(0)=>serdes1_rx_k(0), + rxdata(7)=>serdes1_rxdata(7),rxdata(6)=>serdes1_rxdata(6),rxdata(5)=>serdes1_rxdata(5), + rxdata(4)=>serdes1_rxdata(4),rxdata(3)=>serdes1_rxdata(3),rxdata(2)=>serdes1_rxdata(2), + rxdata(1)=>serdes1_rxdata(1),rxdata(0)=>serdes1_rxdata(0),sci_addr(5)=>serdes1_sci_addr(5), + sci_addr(4)=>serdes1_sci_addr(4),sci_addr(3)=>serdes1_sci_addr(3), + sci_addr(2)=>serdes1_sci_addr(2),sci_addr(1)=>serdes1_sci_addr(1), + sci_addr(0)=>serdes1_sci_addr(0),sci_rddata(7)=>i_serdes1_sci_rddata(7), + sci_rddata(6)=>i_serdes1_sci_rddata(6),sci_rddata(5)=>i_serdes1_sci_rddata(5), + sci_rddata(4)=>i_serdes1_sci_rddata(4),sci_rddata(3)=>i_serdes1_sci_rddata(3), + sci_rddata(2)=>i_serdes1_sci_rddata(2),sci_rddata(1)=>i_serdes1_sci_rddata(1), + sci_rddata(0)=>i_serdes1_sci_rddata(0),sci_wrdata(7)=>serdes1_sci_wrdata(7), + sci_wrdata(6)=>serdes1_sci_wrdata(6),sci_wrdata(5)=>serdes1_sci_wrdata(5), + sci_wrdata(4)=>serdes1_sci_wrdata(4),sci_wrdata(3)=>serdes1_sci_wrdata(3), + sci_wrdata(2)=>serdes1_sci_wrdata(2),sci_wrdata(1)=>serdes1_sci_wrdata(1), + sci_wrdata(0)=>serdes1_sci_wrdata(0),tx_disp_sel(0)=>serdes1_tx_disp_sel(0), + tx_force_disp(0)=>serdes1_tx_force_disp(0),tx_k(0)=>serdes1_tx_k(0), + txdata(7)=>serdes1_txdata(7),txdata(6)=>serdes1_txdata(6),txdata(5)=>serdes1_txdata(5), + txdata(4)=>serdes1_txdata(4),txdata(3)=>serdes1_txdata(3),txdata(2)=>serdes1_txdata(2), + txdata(1)=>serdes1_txdata(1),txdata(0)=>serdes1_txdata(0),cyawstn=>serdes1_cyawstn, + hdinn=>serdes1_hdinn,hdinp=>serdes1_hdinp,hdoutn=>serdes1_hdoutn, + hdoutp=>serdes1_hdoutp,lsm_status_s=>serdes1_lsm_status_s,pll_lol=>i_serdes1_pll_lol, + pll_refclki=>serdes1_pll_refclki,rsl_disable=>serdes1_rsl_disable, + rsl_rst=>serdes1_rsl_rst,rsl_rx_rdy=>serdes1_rsl_rx_rdy,rsl_tx_rdy=>serdes1_rsl_tx_rdy, + rst_dual_c=>serdes1_rst_dual_c,rx_cdr_lol_s=>serdes1_rx_cdr_lol_s, + rx_los_low_s=>serdes1_rx_los_low_s,rx_pclk=>serdes1_rx_pclk,rx_pcs_rst_c=>serdes1_rx_pcs_rst_c, + rx_pwrup_c=>serdes1_rx_pwrup_c,rx_serdes_rst_c=>serdes1_rx_serdes_rst_c, + rxrefclk=>serdes1_rxrefclk,sci_en=>serdes1_sci_en,sci_en_dual=>serdes1_sci_en_dual, + sci_int=>i_serdes1_sci_int,sci_rd=>serdes1_sci_rd,sci_sel=>serdes1_sci_sel, + sci_sel_dual=>serdes1_sci_sel_dual,sci_wrn=>serdes1_sci_wrn,serdes_pdb=>serdes1_serdes_pdb, + serdes_rst_dual_c=>serdes1_serdes_rst_dual_c,signal_detect_c=>serdes1_signal_detect_c, + tx_idle_c=>serdes1_tx_idle_c,tx_pclk=>serdes1_tx_pclk,tx_pcs_rst_c=>serdes1_tx_pcs_rst_c, + tx_pwrup_c=>serdes1_tx_pwrup_c,tx_serdes_rst_c=>serdes1_tx_serdes_rst_c); + gnd <= '0' ; + +end architecture dual_serdes_syn; -- sbp_module=true +--synthesis translate_off +configuration dual_serdes_config of dual_serdes_1 is +for dual_serdes_sim +end for; +end dual_serdes_config; +--synthesis translate_on diff --git a/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.lpc b/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.lpc new file mode 100644 index 0000000..490c1c6 --- /dev/null +++ b/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.lpc @@ -0,0 +1,97 @@ +[Device] +Family=ecp5um +OperatingCondition=COM +Package=CABGA381 +PartName=LFE5UM-45F-8BG381C +PartType=LFE5UM-45F +SpeedGrade=8 +Status=P +[IP] +CoreName=PCS +CoreRevision=8.2 +CoreStatus=Demo +CoreType=LPM +Date=11/23/2020 +ModuleName=serdes1_0 +ParameterFileVersion=1.0 +SourceFormat=vhdl +Time=19:09:52 +VendorName=Lattice Semiconductor Corporation +[Parameters] +;ACHARA=0 00H +;ACHARB=0 00H +;ACHARM=0 00H +;RXMCAENABLE=Disabled +CDRLOLACTION=Full Recalibration +CDRLOLRANGE=3 +CDR_MAX_RATE=2 +CDR_MULT=10X +CDR_REF_RATE=200.0000 +CH_MODE=Rx and Tx +Destination=Synplicity +EDIF=1 +Expression=BusA(0 to 7) +IO=0 +IO_TYPE=G8B10B +LEQ=Disabled +LOOPBACK=Disabled +LOSPORT=Enabled +NUM_CHS=1 +Order=Big Endian [MSB:LSB] +PPORT_RX_RDY=Enabled +PPORT_TX_RDY=Enabled +PROTOCOL=G8B10B +PWAIT_RX_RDY=3000 +PWAIT_TX_RDY=3000 +RCSRC=Disabled +REFCLK_RATE=200.0000 +RSTSEQSEL=Enabled +RX8B10B=Enabled +RXCOMMAA=0010000011 +RXCOMMAB=0001111100 +RXCOMMAM=0011111111 +RXCOUPLING=AC +RXCTC=Disabled +RXCTCBYTEN=0 00H +RXCTCBYTEN1=0 00H +RXCTCBYTEN2=0 00H +RXCTCBYTEN3=0 00H +RXCTCMATCHPATTERN=M4-S4 +RXDIFFTERM=50 ohms +RXFIFO_ENABLE=Enabled +RXINVPOL=Non-invert +RXLDR=Off +RXLOSTHRESHOLD=0 +RXLSM=Enabled +RXSC=K28P157 +RXWA=Barrel Shift +RX_DATA_WIDTH=8/10-Bit +RX_FICLK_RATE=200.0000 +RX_LINE_RATE=2.0000 +RX_RATE_DIV=Full Rate +SCIPORT=Enabled +SOFTLOL=Enabled +TX8B10B=Enabled +TXAMPLITUDE=600 +TXDEPOST=Disabled +TXDEPRE=Disabled +TXDIFFTERM=50 ohms +TXFIFO_ENABLE=Enabled +TXINVPOL=Non-invert +TXLDR=Off +TXPLLLOLTHRESHOLD=1 +TXPLLMULT=10X +TX_DATA_WIDTH=8/10-Bit +TX_FICLK_RATE=200.0000 +TX_LINE_RATE=2.0000 +TX_MAX_RATE=2 +TX_RATE_DIV=Full Rate +VHDL=1 +Verilog=0 +[FilesGenerated] +serdes0.pp=pp +serdes0.sym=sym +serdes0.tft=tft +serdes0.txt=pcs_module +[SYSTEMPNR] +LN0=DCU1_CH0 diff --git a/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.ngd b/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.ngd new file mode 100644 index 0000000000000000000000000000000000000000..18c3d4b2fc9ec440ea21b685045ea3349d86f65b GIT binary patch literal 389501 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 literal 0 HcmV?d00001 diff --git a/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.ngo b/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.ngo new file mode 100644 index 0000000000000000000000000000000000000000..b205295c8154ade5c5c82311369c66da604f92ef GIT binary patch literal 201409 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�kx0DdL1?vGj04PqEZ+ zLbF*~IH5T#C7jUHEFGNCGb|OHkjB!$3C(3G;DqL}^lw7*S?V{T1uX5G&_b5-P3T#c z?oH@9mg-IDd6wo)Xc0^CCbXEPcN1E|Qo9Mgz|y)2y~t9!2`y#m+=P~~>}^63mbp!6 NIm_B6w1OpR{~tbConrt1 literal 0 HcmV?d00001 diff --git a/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.vhd b/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.vhd new file mode 100644 index 0000000..d62e2ee --- /dev/null +++ b/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0.vhd @@ -0,0 +1,435 @@ + +-- +-- Verific VHDL Description of module DCUA +-- + +-- DCUA is a black-box. Cannot print a valid VHDL entity description for it + +-- +-- Verific VHDL Description of module serdes0rsl_core +-- + +-- serdes0rsl_core is a black-box. Cannot print a valid VHDL entity description for it + +-- +-- Verific VHDL Description of module serdes0sll_core +-- + +-- serdes0sll_core is a black-box. Cannot print a valid VHDL entity description for it + +-- +-- Verific VHDL Description of module serdes0 +-- + +library ieee ; +use ieee.std_logic_1164.all ; + +library ecp5um ; +use ecp5um.components.all ; + +entity serdes1_0 is + port (hdoutp: out std_logic; + hdoutn: out std_logic; + hdinp: in std_logic; + hdinn: in std_logic; + rxrefclk: in std_logic; + rx_pclk: out std_logic; + tx_pclk: out std_logic; + txdata: in std_logic_vector(7 downto 0); + tx_k: in std_logic_vector(0 downto 0); + tx_force_disp: in std_logic_vector(0 downto 0); + tx_disp_sel: in std_logic_vector(0 downto 0); + rxdata: out std_logic_vector(7 downto 0); + rx_k: out std_logic_vector(0 downto 0); + rx_disp_err: out std_logic_vector(0 downto 0); + rx_cv_err: out std_logic_vector(0 downto 0); + tx_idle_c: in std_logic; + signal_detect_c: in std_logic; + rx_los_low_s: out std_logic; + lsm_status_s: out std_logic; + rx_cdr_lol_s: out std_logic; + sli_rst: in std_logic; + tx_pwrup_c: in std_logic; + rx_pwrup_c: in std_logic; + sci_wrdata: in std_logic_vector(7 downto 0); + sci_addr: in std_logic_vector(5 downto 0); + sci_rddata: out std_logic_vector(7 downto 0); + sci_en_dual: in std_logic; + sci_sel_dual: in std_logic; + sci_en: in std_logic; + sci_sel: in std_logic; + sci_rd: in std_logic; + sci_wrn: in std_logic; + sci_int: out std_logic; + cyawstn: in std_logic; + serdes_pdb: in std_logic; + pll_refclki: in std_logic; + rsl_disable: in std_logic; + rsl_rst: in std_logic; + serdes_rst_dual_c: in std_logic; + rst_dual_c: in std_logic; + tx_serdes_rst_c: in std_logic; + tx_pcs_rst_c: in std_logic; + pll_lol: out std_logic; + rsl_tx_rdy: out std_logic; + rx_serdes_rst_c: in std_logic; + rx_pcs_rst_c: in std_logic; + rsl_rx_rdy: out std_logic + ); + +end entity serdes1_0; + +architecture v1 of serdes1_0 is + component serdes1_0rsl_core is + generic (pnum_channels: integer := 1; + pprotocol: string := "G8B10B"; + pserdes_mode: string := "RX AND TX"; + pport_tx_rdy: string := "ENABLED"; + pwait_tx_rdy: integer := 3000; + pport_rx_rdy: string := "ENABLED"; + pwait_rx_rdy: integer := 3000); + port (rui_rst: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(132) + rui_serdes_rst_dual_c: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(133) + rui_rst_dual_c: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(134) + rui_rsl_disable: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(135) + rui_tx_ref_clk: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(137) + rui_tx_serdes_rst_c: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(138) + rui_tx_pcs_rst_c: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(139) + rdi_pll_lol: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(140) + rui_rx_ref_clk: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(142) + rui_rx_serdes_rst_c: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(143) + rui_rx_pcs_rst_c: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(144) + rdi_rx_los_low_s: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(145) + rdi_rx_cdr_lol_s: in std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(146) + rdo_serdes_rst_dual_c: out std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(149) + rdo_rst_dual_c: out std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(150) + ruo_tx_rdy: out std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(152) + rdo_tx_serdes_rst_c: out std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(153) + rdo_tx_pcs_rst_c: out std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(154) + ruo_rx_rdy: out std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(156) + rdo_rx_serdes_rst_c: out std_logic_vector(3 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(157) + rdo_rx_pcs_rst_c: out std_logic_vector(3 downto 0) -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(158) + ); + + end component serdes1_0rsl_core; -- syn_black_box=1 -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/rsl_core_syn.v(88) + component serdes1_0sll_core is + generic (PPROTOCOL: string := "G8B10B"; + PLOL_SETTING: integer := 1; + PDYN_RATE_CTRL: string := "DISABLED"; + PPCIE_MAX_RATE: string := "2.5"; + PDIFF_VAL_LOCK: integer := 20; + PDIFF_VAL_UNLOCK: integer := 132; + PPCLK_TC: integer := 65536; + PDIFF_DIV11_VAL_LOCK: integer := 0; + PDIFF_DIV11_VAL_UNLOCK: integer := 0; + PPCLK_DIV11_TC: integer := 0); + port (sli_rst: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(125) + sli_refclk: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(126) + sli_pclk: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(127) + sli_div2_rate: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(128) + sli_div11_rate: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(129) + sli_gear_mode: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(130) + sli_cpri_mode: in std_logic_vector(2 downto 0); -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(131) + sli_pcie_mode: in std_logic; -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(132) + slo_plol: out std_logic -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(135) + ); + + end component serdes1_0sll_core; -- syn_black_box=1 -- /d/jspc29/lattice/diamond/3.11_x64/ispfpga/sa5p00/data/sll_core_template.v(107) + signal n48,n47,n1,n2,n3,n4,rx_pclk_c,tx_pclk_c,n5,n6,n7,n8,n9, + n10,n11,n12,rx_los_low_s_c,n13,n14,n15,n16,rx_cdr_lol_s_c,n17, + n18,rsl_tx_pcs_rst_c,rsl_rx_pcs_rst_c,rsl_rx_serdes_rst_c,rsl_rst_dual_c, + rsl_serdes_rst_dual_c,rsl_tx_serdes_rst_c,n19,n20,n21,n22,n23, + n24,n25,n26,n27,n28,n29,n30,n31,n32,n33,n34,n35,n36,n37, + n38,n39,n40,n41,n42,n43,n44,n45,n46,n49,n106,n105,n50,n51, + n52,n53,n54,n55,n56,n57,n58,n59,n60,n61,n62,n63,n64,n65, + n66,n67,n68,n69,n70,n71,n72,n73,n74,n75,n76,n77,n78,n79, + n80,n81,n82,n83,n84,n85,n86,n87,n88,n89,n90,n91,n92,n93, + n94,n95,n96,n97,n98,n99,n100,n101,n102,n103,n104,n115,n114, + n113,pll_lol_c,n125,n124,n116,n117,n118,n119,n120,n121,n122, + n123,\_Z\,n127,n126,gnd,pwr : std_logic; + attribute LOC : string; + attribute LOC of DCU0_inst : label is "DCU1"; + attribute CHAN : string; + attribute CHAN of DCU0_inst : label is "CH0"; +begin + rx_pclk <= rx_pclk_c; + tx_pclk <= tx_pclk_c; + rx_los_low_s <= rx_los_low_s_c; + rx_cdr_lol_s <= rx_cdr_lol_s_c; + pll_lol <= pll_lol_c; + DCU0_inst: component DCUA generic map (D_MACROPDB=>"0b1",D_IB_PWDNB=>"0b1", + D_XGE_MODE=>"0b0",D_LOW_MARK=>"0d4",D_HIGH_MARK=>"0d12",D_BUS8BIT_SEL=>"0b0", + D_CDR_LOL_SET=>"0b00",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", + D_BITCLK_ND_EN=>"0b0",D_BITCLK_FROM_ND_EN=>"0b0",D_SYNC_LOCAL_EN=>"0b1", + D_SYNC_ND_EN=>"0b0",CH0_UC_MODE=>"0b1",CH0_PCIE_MODE=>"0b0",CH0_RIO_MODE=>"0b0", + CH0_WA_MODE=>"0b0",CH0_INVERT_RX=>"0b0",CH0_INVERT_TX=>"0b0",CH0_PRBS_SELECTION=>"0b0", + CH0_GE_AN_ENABLE=>"0b0",CH0_PRBS_LOCK=>"0b0",CH0_PRBS_ENABLE=>"0b0", + CH0_ENABLE_CG_ALIGN=>"0b1",CH0_TX_GEAR_MODE=>"0b0",CH0_RX_GEAR_MODE=>"0b0", + CH0_PCS_DET_TIME_SEL=>"0b00",CH0_PCIE_EI_EN=>"0b0",CH0_TX_GEAR_BYPASS=>"0b0", + CH0_ENC_BYPASS=>"0b0",CH0_SB_BYPASS=>"0b0",CH0_RX_SB_BYPASS=>"0b0", + CH0_WA_BYPASS=>"0b0",CH0_DEC_BYPASS=>"0b0",CH0_CTC_BYPASS=>"0b1", + CH0_RX_GEAR_BYPASS=>"0b0",CH0_LSM_DISABLE=>"0b0",CH0_MATCH_2_ENABLE=>"0b0", + CH0_MATCH_4_ENABLE=>"0b1",CH0_MIN_IPG_CNT=>"0b11",CH0_CC_MATCH_1=>"0x1BC", + CH0_CC_MATCH_2=>"0x11C",CH0_CC_MATCH_3=>"0x11C",CH0_CC_MATCH_4=>"0x11C", + CH0_UDF_COMMA_MASK=>"0x0ff",CH0_UDF_COMMA_A=>"0x083",CH0_UDF_COMMA_B=>"0x07C", + CH0_RX_DCO_CK_DIV=>"0b000",CH0_RCV_DCC_EN=>"0b0",CH0_TPWDNB=>"0b1", + CH0_RATE_MODE_TX=>"0b0",CH0_RTERM_TX=>"0d19",CH0_TX_CM_SEL=>"0b00", + CH0_TDRV_PRE_EN=>"0b0",CH0_TDRV_SLICE0_SEL=>"0b01",CH0_TDRV_SLICE1_SEL=>"0b00", + CH0_TDRV_SLICE2_SEL=>"0b01",CH0_TDRV_SLICE3_SEL=>"0b01",CH0_TDRV_SLICE4_SEL=>"0b00", + CH0_TDRV_SLICE5_SEL=>"0b00",CH0_TDRV_SLICE0_CUR=>"0b011",CH0_TDRV_SLICE1_CUR=>"0b000", + CH0_TDRV_SLICE2_CUR=>"0b11",CH0_TDRV_SLICE3_CUR=>"0b10",CH0_TDRV_SLICE4_CUR=>"0b00", + CH0_TDRV_SLICE5_CUR=>"0b00",CH0_TDRV_DAT_SEL=>"0b00",CH0_TX_DIV11_SEL=>"0b0", + CH0_RPWDNB=>"0b1",CH0_RATE_MODE_RX=>"0b0",CH0_RX_DIV11_SEL=>"0b0", + CH0_SEL_SD_RX_CLK=>"0b1",CH0_FF_RX_H_CLK_EN=>"0b0",CH0_FF_RX_F_CLK_DIS=>"0b0", + CH0_FF_TX_H_CLK_EN=>"0b0",CH0_FF_TX_F_CLK_DIS=>"0b0",CH0_TDRV_POST_EN=>"0b0", + CH0_TX_POST_SIGN=>"0b0",CH0_TX_PRE_SIGN=>"0b0",CH0_REQ_LVL_SET=>"0b00", + CH0_REQ_EN=>"0b0",CH0_RTERM_RX=>"0d22",CH0_RXTERM_CM=>"0b11",CH0_PDEN_SEL=>"0b1", + CH0_RXIN_CM=>"0b11",CH0_LEQ_OFFSET_SEL=>"0b0",CH0_LEQ_OFFSET_TRIM=>"0b000", + CH0_RLOS_SEL=>"0b1",CH0_RX_LOS_LVL=>"0b000",CH0_RX_LOS_CEQ=>"0b11", + CH0_RX_LOS_HYST_EN=>"0b0",CH0_RX_LOS_EN=>"0b1",CH0_LDR_RX2CORE_SEL=>"0b0", + CH0_LDR_CORE2TX_SEL=>"0b0",D_TX_MAX_RATE=>"2",CH0_CDR_MAX_RATE=>"2", + CH0_TXAMPLITUDE=>"0d600",CH0_TXDEPRE=>"DISABLED",CH0_TXDEPOST=>"DISABLED", + CH0_PROTOCOL=>"G8B10B",D_ISETLOS=>"0d0",D_SETIRPOLY_AUX=>"0b10",D_SETICONST_AUX=>"0b01", + D_SETIRPOLY_CH=>"0b10",D_SETICONST_CH=>"0b10",D_REQ_ISET=>"0b001", + D_PD_ISET=>"0b00",D_DCO_CALIB_TIME_SEL=>"0b00",CH0_CDR_CNT4SEL=>"0b00", + CH0_CDR_CNT8SEL=>"0b00",CH0_DCOATDCFG=>"0b00",CH0_DCOATDDLY=>"0b00", + CH0_DCOBYPSATD=>"0b1",CH0_DCOCALDIV=>"0b000",CH0_DCOCTLGI=>"0b011", + CH0_DCODISBDAVOID=>"0b0",CH0_DCOFLTDAC=>"0b00",CH0_DCOFTNRG=>"0b001", + CH0_DCOIOSTUNE=>"0b010",CH0_DCOITUNE=>"0b00",CH0_DCOITUNE4LSB=>"0b010", + CH0_DCOIUPDNX2=>"0b1",CH0_DCONUOFLSB=>"0b100",CH0_DCOSCALEI=>"0b01", + CH0_DCOSTARTVAL=>"0b010",CH0_DCOSTEP=>"0b11",CH0_BAND_THRESHOLD=>"0d0", + CH0_AUTO_FACQ_EN=>"0b1",CH0_AUTO_CALIB_EN=>"0b1",CH0_CALIB_CK_MODE=>"0b0", + CH0_REG_BAND_OFFSET=>"0d0",CH0_REG_BAND_SEL=>"0d0",CH0_REG_IDAC_SEL=>"0d0", + CH0_REG_IDAC_EN=>"0b0",D_CMUSETISCL4VCO=>"0b000",D_CMUSETI4VCO=>"0b00", + D_CMUSETINITVCT=>"0b00",D_CMUSETZGM=>"0b000",D_CMUSETP2AGM=>"0b000", + D_CMUSETP1GM=>"0b000",D_CMUSETI4CPZ=>"0d3",D_CMUSETI4CPP=>"0d3",D_CMUSETICP4Z=>"0b101", + D_CMUSETICP4P=>"0b01",D_CMUSETBIASI=>"0b00",D_SETPLLRC=>"0d1",CH0_RX_RATE_SEL=>"0d10", + D_REFCK_MODE=>"0b001",D_TX_VCO_CK_DIV=>"0b000",D_PLL_LOL_SET=>"0b01", + D_RG_EN=>"0b0",D_RG_SET=>"0b00") + port map (CH0_HDINP=>hdinp,CH1_HDINP=>n106,CH0_HDINN=>hdinn,CH1_HDINN=>n106, + D_TXBIT_CLKP_FROM_ND=>n47,D_TXBIT_CLKN_FROM_ND=>n47,D_SYNC_ND=>n47,D_TXPLL_LOL_FROM_ND=>n47, + CH0_RX_REFCLK=>rxrefclk,CH1_RX_REFCLK=>n106,CH0_FF_RXI_CLK=>rx_pclk_c, + CH1_FF_RXI_CLK=>n105,CH0_FF_TXI_CLK=>tx_pclk_c,CH1_FF_TXI_CLK=>n105,CH0_FF_EBRD_CLK=>n48, + CH1_FF_EBRD_CLK=>n105,CH0_FF_TX_D_0=>txdata(0),CH1_FF_TX_D_0=>n106,CH0_FF_TX_D_1=>txdata(1), + CH1_FF_TX_D_1=>n106,CH0_FF_TX_D_2=>txdata(2),CH1_FF_TX_D_2=>n106,CH0_FF_TX_D_3=>txdata(3), + CH1_FF_TX_D_3=>n106,CH0_FF_TX_D_4=>txdata(4),CH1_FF_TX_D_4=>n106,CH0_FF_TX_D_5=>txdata(5), + CH1_FF_TX_D_5=>n106,CH0_FF_TX_D_6=>txdata(6),CH1_FF_TX_D_6=>n106,CH0_FF_TX_D_7=>txdata(7), + CH1_FF_TX_D_7=>n106,CH0_FF_TX_D_8=>tx_k(0),CH1_FF_TX_D_8=>n106,CH0_FF_TX_D_9=>tx_force_disp(0), + CH1_FF_TX_D_9=>n106,CH0_FF_TX_D_10=>tx_disp_sel(0),CH1_FF_TX_D_10=>n106, + CH0_FF_TX_D_11=>n47,CH1_FF_TX_D_11=>n106,CH0_FF_TX_D_12=>n106,CH1_FF_TX_D_12=>n106, + CH0_FF_TX_D_13=>n106,CH1_FF_TX_D_13=>n106,CH0_FF_TX_D_14=>n106,CH1_FF_TX_D_14=>n106, + CH0_FF_TX_D_15=>n106,CH1_FF_TX_D_15=>n106,CH0_FF_TX_D_16=>n106,CH1_FF_TX_D_16=>n106, + CH0_FF_TX_D_17=>n106,CH1_FF_TX_D_17=>n106,CH0_FF_TX_D_18=>n106,CH1_FF_TX_D_18=>n106, + CH0_FF_TX_D_19=>n106,CH1_FF_TX_D_19=>n106,CH0_FF_TX_D_20=>n106,CH1_FF_TX_D_20=>n106, + CH0_FF_TX_D_21=>n106,CH1_FF_TX_D_21=>n106,CH0_FF_TX_D_22=>n106,CH1_FF_TX_D_22=>n106, + CH0_FF_TX_D_23=>n47,CH1_FF_TX_D_23=>n106,CH0_FFC_EI_EN=>tx_idle_c,CH1_FFC_EI_EN=>n106, + CH0_FFC_PCIE_DET_EN=>n47,CH1_FFC_PCIE_DET_EN=>n106,CH0_FFC_PCIE_CT=>n47, + CH1_FFC_PCIE_CT=>n106,CH0_FFC_SB_INV_RX=>n106,CH1_FFC_SB_INV_RX=>n106, + CH0_FFC_ENABLE_CGALIGN=>n106,CH1_FFC_ENABLE_CGALIGN=>n106,CH0_FFC_SIGNAL_DETECT=>signal_detect_c, + CH1_FFC_SIGNAL_DETECT=>n106,CH0_FFC_FB_LOOPBACK=>n47,CH1_FFC_FB_LOOPBACK=>n106, + CH0_FFC_SB_PFIFO_LP=>n47,CH1_FFC_SB_PFIFO_LP=>n106,CH0_FFC_PFIFO_CLR=>n47, + CH1_FFC_PFIFO_CLR=>n106,CH0_FFC_RATE_MODE_RX=>n106,CH1_FFC_RATE_MODE_RX=>n106, + CH0_FFC_RATE_MODE_TX=>n106,CH1_FFC_RATE_MODE_TX=>n106,CH0_FFC_DIV11_MODE_RX=>n47, + CH1_FFC_DIV11_MODE_RX=>n106,CH0_FFC_DIV11_MODE_TX=>n47,CH1_FFC_DIV11_MODE_TX=>n106, + CH0_FFC_RX_GEAR_MODE=>n47,CH1_FFC_RX_GEAR_MODE=>n106,CH0_FFC_TX_GEAR_MODE=>n47, + CH1_FFC_TX_GEAR_MODE=>n106,CH0_FFC_LDR_CORE2TX_EN=>n106,CH1_FFC_LDR_CORE2TX_EN=>n106, + CH0_FFC_LANE_TX_RST=>rsl_tx_pcs_rst_c,CH1_FFC_LANE_TX_RST=>n106,CH0_FFC_LANE_RX_RST=>rsl_rx_pcs_rst_c, + CH1_FFC_LANE_RX_RST=>n106,CH0_FFC_RRST=>rsl_rx_serdes_rst_c,CH1_FFC_RRST=>n106, + CH0_FFC_TXPWDNB=>tx_pwrup_c,CH1_FFC_TXPWDNB=>n106,CH0_FFC_RXPWDNB=>rx_pwrup_c, + CH1_FFC_RXPWDNB=>n106,CH0_LDR_CORE2TX=>n106,CH1_LDR_CORE2TX=>n106,D_SCIWDATA0=>sci_wrdata(0), + D_SCIWDATA1=>sci_wrdata(1),D_SCIWDATA2=>sci_wrdata(2),D_SCIWDATA3=>sci_wrdata(3), + D_SCIWDATA4=>sci_wrdata(4),D_SCIWDATA5=>sci_wrdata(5),D_SCIWDATA6=>sci_wrdata(6), + D_SCIWDATA7=>sci_wrdata(7),D_SCIADDR0=>sci_addr(0),D_SCIADDR1=>sci_addr(1), + D_SCIADDR2=>sci_addr(2),D_SCIADDR3=>sci_addr(3),D_SCIADDR4=>sci_addr(4), + D_SCIADDR5=>sci_addr(5),D_SCIENAUX=>sci_en_dual,D_SCISELAUX=>sci_sel_dual, + CH0_SCIEN=>sci_en,CH1_SCIEN=>n106,CH0_SCISEL=>sci_sel,CH1_SCISEL=>n106, + D_SCIRD=>sci_rd,D_SCIWSTN=>sci_wrn,D_CYAWSTN=>cyawstn,D_FFC_SYNC_TOGGLE=>n106, + D_FFC_DUAL_RST=>rsl_rst_dual_c,D_FFC_MACRO_RST=>rsl_serdes_rst_dual_c, + D_FFC_MACROPDB=>serdes_pdb,D_FFC_TRST=>rsl_tx_serdes_rst_c,CH0_FFC_CDR_EN_BITSLIP=>n47, + CH1_FFC_CDR_EN_BITSLIP=>n106,D_SCAN_ENABLE=>n47,D_SCAN_IN_0=>n47,D_SCAN_IN_1=>n47, + D_SCAN_IN_2=>n47,D_SCAN_IN_3=>n47,D_SCAN_IN_4=>n47,D_SCAN_IN_5=>n47, + D_SCAN_IN_6=>n47,D_SCAN_IN_7=>n47,D_SCAN_MODE=>n47,D_SCAN_RESET=>n47, + D_CIN0=>n47,D_CIN1=>n47,D_CIN2=>n47,D_CIN3=>n47,D_CIN4=>n47,D_CIN5=>n47, + D_CIN6=>n47,D_CIN7=>n47,D_CIN8=>n47,D_CIN9=>n47,D_CIN10=>n47,D_CIN11=>n47, + CH0_HDOUTP=>hdoutp,CH1_HDOUTP=>n50,CH0_HDOUTN=>hdoutn,CH1_HDOUTN=>n51, + D_TXBIT_CLKP_TO_ND=>n1,D_TXBIT_CLKN_TO_ND=>n2,D_SYNC_PULSE2ND=>n3,D_TXPLL_LOL_TO_ND=>n4, + CH0_FF_RX_F_CLK=>n5,CH1_FF_RX_F_CLK=>n52,CH0_FF_RX_H_CLK=>n6,CH1_FF_RX_H_CLK=>n53, + CH0_FF_TX_F_CLK=>n7,CH1_FF_TX_F_CLK=>n54,CH0_FF_TX_H_CLK=>n8,CH1_FF_TX_H_CLK=>n55, + CH0_FF_RX_PCLK=>rx_pclk_c,CH1_FF_RX_PCLK=>n56,CH0_FF_TX_PCLK=>tx_pclk_c, + CH1_FF_TX_PCLK=>n57,CH0_FF_RX_D_0=>rxdata(0),CH1_FF_RX_D_0=>n58,CH0_FF_RX_D_1=>rxdata(1), + CH1_FF_RX_D_1=>n59,CH0_FF_RX_D_2=>rxdata(2),CH1_FF_RX_D_2=>n60,CH0_FF_RX_D_3=>rxdata(3), + CH1_FF_RX_D_3=>n61,CH0_FF_RX_D_4=>rxdata(4),CH1_FF_RX_D_4=>n62,CH0_FF_RX_D_5=>rxdata(5), + CH1_FF_RX_D_5=>n63,CH0_FF_RX_D_6=>rxdata(6),CH1_FF_RX_D_6=>n64,CH0_FF_RX_D_7=>rxdata(7), + CH1_FF_RX_D_7=>n65,CH0_FF_RX_D_8=>rx_k(0),CH1_FF_RX_D_8=>n66,CH0_FF_RX_D_9=>rx_disp_err(0), + CH1_FF_RX_D_9=>n67,CH0_FF_RX_D_10=>rx_cv_err(0),CH1_FF_RX_D_10=>n68,CH0_FF_RX_D_11=>n9, + CH1_FF_RX_D_11=>n69,CH0_FF_RX_D_12=>n70,CH1_FF_RX_D_12=>n71,CH0_FF_RX_D_13=>n72, + CH1_FF_RX_D_13=>n73,CH0_FF_RX_D_14=>n74,CH1_FF_RX_D_14=>n75,CH0_FF_RX_D_15=>n76, + CH1_FF_RX_D_15=>n77,CH0_FF_RX_D_16=>n78,CH1_FF_RX_D_16=>n79,CH0_FF_RX_D_17=>n80, + CH1_FF_RX_D_17=>n81,CH0_FF_RX_D_18=>n82,CH1_FF_RX_D_18=>n83,CH0_FF_RX_D_19=>n84, + CH1_FF_RX_D_19=>n85,CH0_FF_RX_D_20=>n86,CH1_FF_RX_D_20=>n87,CH0_FF_RX_D_21=>n88, + CH1_FF_RX_D_21=>n89,CH0_FF_RX_D_22=>n90,CH1_FF_RX_D_22=>n91,CH0_FF_RX_D_23=>n10, + CH1_FF_RX_D_23=>n92,CH0_FFS_PCIE_DONE=>n11,CH1_FFS_PCIE_DONE=>n93,CH0_FFS_PCIE_CON=>n12, + CH1_FFS_PCIE_CON=>n94,CH0_FFS_RLOS=>rx_los_low_s_c,CH1_FFS_RLOS=>n95, + CH0_FFS_LS_SYNC_STATUS=>lsm_status_s,CH1_FFS_LS_SYNC_STATUS=>n96,CH0_FFS_CC_UNDERRUN=>n13, + CH1_FFS_CC_UNDERRUN=>n97,CH0_FFS_CC_OVERRUN=>n14,CH1_FFS_CC_OVERRUN=>n98, + CH0_FFS_RXFBFIFO_ERROR=>n15,CH1_FFS_RXFBFIFO_ERROR=>n99,CH0_FFS_TXFBFIFO_ERROR=>n16, + CH1_FFS_TXFBFIFO_ERROR=>n100,CH0_FFS_RLOL=>rx_cdr_lol_s_c,CH1_FFS_RLOL=>n101, + CH0_FFS_SKP_ADDED=>n17,CH1_FFS_SKP_ADDED=>n102,CH0_FFS_SKP_DELETED=>n18, + CH1_FFS_SKP_DELETED=>n103,CH0_LDR_RX2CORE=>n104,CH1_LDR_RX2CORE=>n115, + D_SCIRDATA0=>sci_rddata(0),D_SCIRDATA1=>sci_rddata(1),D_SCIRDATA2=>sci_rddata(2), + D_SCIRDATA3=>sci_rddata(3),D_SCIRDATA4=>sci_rddata(4),D_SCIRDATA5=>sci_rddata(5), + D_SCIRDATA6=>sci_rddata(6),D_SCIRDATA7=>sci_rddata(7),D_SCIINT=>sci_int, + D_SCAN_OUT_0=>n19,D_SCAN_OUT_1=>n20,D_SCAN_OUT_2=>n21,D_SCAN_OUT_3=>n22, + D_SCAN_OUT_4=>n23,D_SCAN_OUT_5=>n24,D_SCAN_OUT_6=>n25,D_SCAN_OUT_7=>n26, + D_COUT0=>n27,D_COUT1=>n28,D_COUT2=>n29,D_COUT3=>n30,D_COUT4=>n31,D_COUT5=>n32, + D_COUT6=>n33,D_COUT7=>n34,D_COUT8=>n35,D_COUT9=>n36,D_COUT10=>n37,D_COUT11=>n38, + D_COUT12=>n39,D_COUT13=>n40,D_COUT14=>n41,D_COUT15=>n42,D_COUT16=>n43, + D_COUT17=>n44,D_COUT18=>n45,D_COUT19=>n46,D_REFCLKI=>pll_refclki,D_FFS_PLOL=>n49); + n48 <= '1' ; + n47 <= '0' ; + n1 <= 'Z' ; + n2 <= 'Z' ; + n3 <= 'Z' ; + n4 <= 'Z' ; + n5 <= 'Z' ; + n6 <= 'Z' ; + n7 <= 'Z' ; + n8 <= 'Z' ; + n9 <= 'Z' ; + n10 <= 'Z' ; + n11 <= 'Z' ; + n12 <= 'Z' ; + n13 <= 'Z' ; + n14 <= 'Z' ; + n15 <= 'Z' ; + n16 <= 'Z' ; + n17 <= 'Z' ; + n18 <= 'Z' ; + n19 <= 'Z' ; + n20 <= 'Z' ; + n21 <= 'Z' ; + n22 <= 'Z' ; + n23 <= 'Z' ; + n24 <= 'Z' ; + n25 <= 'Z' ; + n26 <= 'Z' ; + n27 <= 'Z' ; + n28 <= 'Z' ; + n29 <= 'Z' ; + n30 <= 'Z' ; + n31 <= 'Z' ; + n32 <= 'Z' ; + n33 <= 'Z' ; + n34 <= 'Z' ; + n35 <= 'Z' ; + n36 <= 'Z' ; + n37 <= 'Z' ; + n38 <= 'Z' ; + n39 <= 'Z' ; + n40 <= 'Z' ; + n41 <= 'Z' ; + n42 <= 'Z' ; + n43 <= 'Z' ; + n44 <= 'Z' ; + n45 <= 'Z' ; + n46 <= 'Z' ; + n49 <= 'Z' ; + n106 <= '0' ; + n105 <= '1' ; + n50 <= 'Z' ; + n51 <= 'Z' ; + n52 <= 'Z' ; + n53 <= 'Z' ; + n54 <= 'Z' ; + n55 <= 'Z' ; + n56 <= 'Z' ; + n57 <= 'Z' ; + n58 <= 'Z' ; + n59 <= 'Z' ; + n60 <= 'Z' ; + n61 <= 'Z' ; + n62 <= 'Z' ; + n63 <= 'Z' ; + n64 <= 'Z' ; + n65 <= 'Z' ; + n66 <= 'Z' ; + n67 <= 'Z' ; + n68 <= 'Z' ; + n69 <= 'Z' ; + n70 <= 'Z' ; + n71 <= 'Z' ; + n72 <= 'Z' ; + n73 <= 'Z' ; + n74 <= 'Z' ; + n75 <= 'Z' ; + n76 <= 'Z' ; + n77 <= 'Z' ; + n78 <= 'Z' ; + n79 <= 'Z' ; + n80 <= 'Z' ; + n81 <= 'Z' ; + n82 <= 'Z' ; + n83 <= 'Z' ; + n84 <= 'Z' ; + n85 <= 'Z' ; + n86 <= 'Z' ; + n87 <= 'Z' ; + n88 <= 'Z' ; + n89 <= 'Z' ; + n90 <= 'Z' ; + n91 <= 'Z' ; + n92 <= 'Z' ; + n93 <= 'Z' ; + n94 <= 'Z' ; + n95 <= 'Z' ; + n96 <= 'Z' ; + n97 <= 'Z' ; + n98 <= 'Z' ; + n99 <= 'Z' ; + n100 <= 'Z' ; + n101 <= 'Z' ; + n102 <= 'Z' ; + n103 <= 'Z' ; + n104 <= 'Z' ; + n115 <= 'Z' ; + rsl_inst: component serdes1_0rsl_core port map (rui_rst=>rsl_rst,rui_serdes_rst_dual_c=>serdes_rst_dual_c, + rui_rst_dual_c=>rst_dual_c,rui_rsl_disable=>rsl_disable,rui_tx_ref_clk=>pll_refclki, + rui_tx_serdes_rst_c=>tx_serdes_rst_c,rui_tx_pcs_rst_c(3)=>n125, + rui_tx_pcs_rst_c(2)=>n125,rui_tx_pcs_rst_c(1)=>n125,rui_tx_pcs_rst_c(0)=>tx_pcs_rst_c, + rdi_pll_lol=>pll_lol_c,rui_rx_ref_clk=>rxrefclk,rui_rx_serdes_rst_c(3)=>n125, + rui_rx_serdes_rst_c(2)=>n125,rui_rx_serdes_rst_c(1)=>n125,rui_rx_serdes_rst_c(0)=>rx_serdes_rst_c, + rui_rx_pcs_rst_c(3)=>n125,rui_rx_pcs_rst_c(2)=>n125,rui_rx_pcs_rst_c(1)=>n125, + rui_rx_pcs_rst_c(0)=>rx_pcs_rst_c,rdi_rx_los_low_s(3)=>n125,rdi_rx_los_low_s(2)=>n125, + rdi_rx_los_low_s(1)=>n125,rdi_rx_los_low_s(0)=>rx_los_low_s_c, + rdi_rx_cdr_lol_s(3)=>n125,rdi_rx_cdr_lol_s(2)=>n125,rdi_rx_cdr_lol_s(1)=>n125, + rdi_rx_cdr_lol_s(0)=>rx_cdr_lol_s_c,rdo_serdes_rst_dual_c=>rsl_serdes_rst_dual_c, + rdo_rst_dual_c=>rsl_rst_dual_c,ruo_tx_rdy=>rsl_tx_rdy,rdo_tx_serdes_rst_c=>rsl_tx_serdes_rst_c, + rdo_tx_pcs_rst_c(3)=>n116,rdo_tx_pcs_rst_c(2)=>n117,rdo_tx_pcs_rst_c(1)=>n118, + rdo_tx_pcs_rst_c(0)=>rsl_tx_pcs_rst_c,ruo_rx_rdy=>rsl_rx_rdy,rdo_rx_serdes_rst_c(3)=>n119, + rdo_rx_serdes_rst_c(2)=>n120,rdo_rx_serdes_rst_c(1)=>n121,rdo_rx_serdes_rst_c(0)=>rsl_rx_serdes_rst_c, + rdo_rx_pcs_rst_c(3)=>n122,rdo_rx_pcs_rst_c(2)=>n123,rdo_rx_pcs_rst_c(1)=>\_Z\, + rdo_rx_pcs_rst_c(0)=>rsl_rx_pcs_rst_c); + n114 <= '1' ; + n113 <= '0' ; + n125 <= '0' ; + n124 <= '1' ; + n116 <= 'Z' ; + n117 <= 'Z' ; + n118 <= 'Z' ; + n119 <= 'Z' ; + n120 <= 'Z' ; + n121 <= 'Z' ; + n122 <= 'Z' ; + n123 <= 'Z' ; + \_Z\ <= 'Z' ; + sll_inst: component serdes1_0sll_core port map (sli_rst=>sli_rst,sli_refclk=>pll_refclki, + sli_pclk=>tx_pclk_c,sli_div2_rate=>gnd,sli_div11_rate=>gnd,sli_gear_mode=>gnd, + sli_cpri_mode(2)=>gnd,sli_cpri_mode(1)=>gnd,sli_cpri_mode(0)=>gnd, + sli_pcie_mode=>gnd,slo_plol=>pll_lol_c); + n127 <= '1' ; + n126 <= '0' ; + gnd <= '0' ; + pwr <= '1' ; + +end architecture v1; + diff --git a/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0_ngd.asd b/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0_ngd.asd new file mode 100644 index 0000000..c265c78 --- /dev/null +++ b/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0_ngd.asd @@ -0,0 +1 @@ +[ActiveSupport NGD] diff --git a/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0_softlogic.v b/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0_softlogic.v new file mode 100644 index 0000000..690b332 --- /dev/null +++ b/media_interfaces/ecp5/dual_serdes_1/serdes0/serdes0_softlogic.v @@ -0,0 +1,2003 @@ + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2016 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : RSL- Reset Sequence Logic +// File : rsl_core.v +// Title : Top-level file for RSL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : BM +// Mod. Date : October 28, 2013 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : BM +// Mod. Date : November 06, 2013 +// Changes Made : Tx/Rx separation, ready port code exclusion +// ----------------------------------------------------------------------------- +// Version : 1.2 +// Author(s) : BM +// Mod. Date : June 13, 2014 +// Changes Made : Updated Rx PCS reset method +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// Version : 1.3 +// Author(s) : UA +// Mod. Date : Dec 19, 2014 +// Changes Made : Added new parameter fro PCIE +// ----------------------------------------------------------------------------- +// Version : 1.31 +// Author(s) : BM/UM +// Mod. Date : Feb 23, 2016 +// Changes Made : Behavior of rx_rdy output modified. The output rx_rdy +// and the rx_rdy wait counter are reset to zero on +// LOL or LOS. Reverted back the counter value change for PCIE. +// ----------------------------------------------------------------------------- +// Version : 1.4 +// Author(s) : EB +// Mod. Date: : March 21, 2017 +// Changes Made : +// ----------------------------------------------------------------------------- +// Version : 1.5 +// Author(s) : ES +// Mod. Date: : May 8, 2017 +// Changes Made : Implemented common RSL behaviour as proposed by BM. +// ============================================================================= + +`timescale 1ns/10ps + +module serdes1_0rsl_core ( + // ------------ Inputs + // Common + rui_rst, // Active high reset for the RSL module + rui_serdes_rst_dual_c, // SERDES macro reset user command + rui_rst_dual_c, // PCS dual reset user command + rui_rsl_disable, // Active high signal that disables all reset outputs of RSL + // Tx + rui_tx_ref_clk, // Tx reference clock + rui_tx_serdes_rst_c, // Tx SERDES reset user command + rui_tx_pcs_rst_c, // Tx lane reset user command + rdi_pll_lol, // Tx PLL Loss of Lock status input from the SERDES + // Rx + rui_rx_ref_clk, // Rx reference clock + rui_rx_serdes_rst_c, // SERDES Receive channel reset user command + rui_rx_pcs_rst_c, // Rx lane reset user command + rdi_rx_los_low_s, // Receive loss of signal status input from SERDES + rdi_rx_cdr_lol_s, // Receive CDR loss of lock status input from SERDES + + // ------------ Outputs + // Common + rdo_serdes_rst_dual_c, // SERDES macro reset command output + rdo_rst_dual_c, // PCS dual reset command output + // Tx + ruo_tx_rdy, // Tx lane ready status output + rdo_tx_serdes_rst_c, // SERDES Tx reset command output + rdo_tx_pcs_rst_c, // PCS Tx lane reset command output + // Rx + ruo_rx_rdy, // Rx lane ready status output + rdo_rx_serdes_rst_c, // SERDES Rx channel reset command output + rdo_rx_pcs_rst_c // PCS Rx lane reset command output + ); + +// ------------ Module parameters +`ifdef NUM_CHANNELS + parameter pnum_channels = `NUM_CHANNELS; // 1,2,4 +`else + parameter pnum_channels = 1; +`endif + +`ifdef PCIE + parameter pprotocol = "PCIE"; +`else + parameter pprotocol = ""; +`endif + +`ifdef RX_ONLY + parameter pserdes_mode = "RX ONLY"; +`else + `ifdef TX_ONLY + parameter pserdes_mode = "TX ONLY"; + `else + parameter pserdes_mode = "RX AND TX"; + `endif +`endif + +`ifdef PORT_TX_RDY + parameter pport_tx_rdy = "ENABLED"; +`else + parameter pport_tx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_TX_RDY + parameter pwait_tx_rdy = `WAIT_TX_RDY; +`else + parameter pwait_tx_rdy = 3000; +`endif + +`ifdef PORT_RX_RDY + parameter pport_rx_rdy = "ENABLED"; +`else + parameter pport_rx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_RX_RDY + parameter pwait_rx_rdy = `WAIT_RX_RDY; +`else + parameter pwait_rx_rdy = 3000; +`endif + +// ------------ Local parameters + localparam wa_num_cycles = 1024; + localparam dac_num_cycles = 3; + localparam lreset_pwidth = 3; // reset pulse width-1, default=4-1=3 + localparam lwait_b4_trst = 781250; // 5ms wait with worst-case Fmax=156 MHz + localparam lwait_b4_trst_s = 781; // for simulation + localparam lplol_cnt_width = 20; // width for lwait_b4_trst + localparam lwait_after_plol0 = 4; + localparam lwait_b4_rrst = 180224; // total calibration time + localparam lrrst_wait_width = 20; + localparam lwait_after_rrst = 800000; // For CPRI- unused + localparam lwait_b4_rrst_s = 460; // wait cycles provided by design team + localparam lrlol_cnt_width = 19; // width for lwait_b4_rrst + localparam lwait_after_lols = (16384 * dac_num_cycles) + wa_num_cycles; // 16384 cycles * dac_num_cycles + 1024 cycles + localparam lwait_after_lols_s = 150; // wait cycles provided by design team + localparam llols_cnt_width = 18; // lols count width + localparam lrdb_max = 15; // maximum debounce count + localparam ltxr_wait_width = 12; // width of tx ready wait counter + localparam lrxr_wait_width = 12; // width of tx ready wait counter + +// ------------ input ports + input rui_rst; + input rui_serdes_rst_dual_c; + input rui_rst_dual_c; + input rui_rsl_disable; + + input rui_tx_ref_clk; + input rui_tx_serdes_rst_c; + input [3:0] rui_tx_pcs_rst_c; + input rdi_pll_lol; + + input rui_rx_ref_clk; + input [3:0] rui_rx_serdes_rst_c; + input [3:0] rui_rx_pcs_rst_c; + input [3:0] rdi_rx_los_low_s; + input [3:0] rdi_rx_cdr_lol_s; + +// ------------ output ports + output rdo_serdes_rst_dual_c; + output rdo_rst_dual_c; + + output ruo_tx_rdy; + output rdo_tx_serdes_rst_c; + output [3:0] rdo_tx_pcs_rst_c; + + output ruo_rx_rdy; + output [3:0] rdo_rx_serdes_rst_c; + output [3:0] rdo_rx_pcs_rst_c; + +// ------------ Internal registers and wires + // inputs + wire rui_rst; + wire rui_serdes_rst_dual_c; + wire rui_rst_dual_c; + wire rui_rsl_disable; + wire rui_tx_ref_clk; + wire rui_tx_serdes_rst_c; + wire [3:0] rui_tx_pcs_rst_c; + wire rdi_pll_lol; + wire rui_rx_ref_clk; + wire [3:0] rui_rx_serdes_rst_c; + wire [3:0] rui_rx_pcs_rst_c; + wire [3:0] rdi_rx_los_low_s; + wire [3:0] rdi_rx_cdr_lol_s; + + // outputs + wire rdo_serdes_rst_dual_c; + wire rdo_rst_dual_c; + wire ruo_tx_rdy; + wire rdo_tx_serdes_rst_c; + wire [3:0] rdo_tx_pcs_rst_c; + wire ruo_rx_rdy; + wire [3:0] rdo_rx_serdes_rst_c; + wire [3:0] rdo_rx_pcs_rst_c; + + // internal signals + // common + wire rsl_enable; + wire [lplol_cnt_width-1:0] wait_b4_trst; + wire [lrlol_cnt_width-1:0] wait_b4_rrst; + wire [llols_cnt_width-1:0] wait_after_lols; + reg pll_lol_p1; + reg pll_lol_p2; + reg pll_lol_p3; + // ------------ Tx + // rdo_tx_serdes_rst_c + reg [lplol_cnt_width-1:0] plol_cnt; + wire plol_cnt_tc; + + reg [2:0] txs_cnt; + reg txs_rst; + wire txs_cnt_tc; + // rdo_tx_pcs_rst_c + wire plol_fedge; + wire plol_redge; + reg waita_plol0; + reg [2:0] plol0_cnt; + wire plol0_cnt_tc; + reg [2:0] txp_cnt; + reg txp_rst; + wire txp_cnt_tc; + // ruo_tx_rdy + wire dual_or_serd_rst; + wire tx_any_pcs_rst; + wire tx_any_rst; + reg txsr_appd /* synthesis syn_keep=1 */; + reg txdpr_appd; + reg [pnum_channels-1:0] txpr_appd; + reg txr_wt_en; + reg [ltxr_wait_width-1:0] txr_wt_cnt; + wire txr_wt_tc; + reg ruo_tx_rdyr; + + // ------------ Rx + wire comb_rlos; + wire comb_rlol; + //wire rlols; + wire rx_all_well; + + //reg rlols_p1; + //reg rlols_p2; + //reg rlols_p3; + + reg rlol_p1; + reg rlol_p2; + reg rlol_p3; + reg rlos_p1; + reg rlos_p2; + reg rlos_p3; + + //reg [3:0] rdb_cnt; + //wire rdb_cnt_max; + //wire rdb_cnt_zero; + //reg rlols_db; + //reg rlols_db_p1; + + reg [3:0] rlol_db_cnt; + wire rlol_db_cnt_max; + wire rlol_db_cnt_zero; + reg rlol_db; + reg rlol_db_p1; + + reg [3:0] rlos_db_cnt; + wire rlos_db_cnt_max; + wire rlos_db_cnt_zero; + reg rlos_db; + reg rlos_db_p1; + + // rdo_rx_serdes_rst_c + reg [lrlol_cnt_width-1:0] rlol1_cnt; + wire rlol1_cnt_tc; + reg [2:0] rxs_cnt; + reg rxs_rst; + wire rxs_cnt_tc; + reg [lrrst_wait_width-1:0] rrst_cnt; + wire rrst_cnt_tc; + reg rrst_wait; + // rdo_rx_pcs_rst_c + //wire rlols_fedge; + //wire rlols_redge; + wire rlol_fedge; + wire rlol_redge; + wire rlos_fedge; + wire rlos_redge; + + reg wait_calib; + reg waita_rlols0; + reg [llols_cnt_width-1:0] rlols0_cnt; + wire rlols0_cnt_tc; + reg [2:0] rxp_cnt; + reg rxp_rst; + wire rxp_cnt_tc; + + wire rx_any_serd_rst; + reg [llols_cnt_width-1:0] rlolsz_cnt; + wire rlolsz_cnt_tc; + reg [2:0] rxp_cnt2; + reg rxp_rst2; + wire rxp_cnt2_tc; + reg [15:0] data_loop_b_cnt; + reg data_loop_b; + wire data_loop_b_tc; + + // ruo_rx_rdy + reg [pnum_channels-1:0] rxsr_appd; + reg [pnum_channels-1:0] rxpr_appd; + reg rxsdr_appd /* synthesis syn_keep=1 */; + reg rxdpr_appd; + wire rxsdr_or_sr_appd; + wire dual_or_rserd_rst; + wire rx_any_pcs_rst; + wire rx_any_rst; + reg rxr_wt_en; + reg [lrxr_wait_width-1:0] rxr_wt_cnt; + wire rxr_wt_tc; + reg ruo_rx_rdyr; + +// ================================================================== +// Start of code +// ================================================================== + assign rsl_enable = ~rui_rsl_disable; + +// ------------ rdo_serdes_rst_dual_c + assign rdo_serdes_rst_dual_c = (rui_rst&rsl_enable) | rui_serdes_rst_dual_c; + +// ------------ rdo_rst_dual_c + assign rdo_rst_dual_c = rui_rst_dual_c; + +// ------------ Setting counter values for RSL_SIM_MODE + `ifdef RSL_SIM_MODE + assign wait_b4_trst = lwait_b4_trst_s; + assign wait_b4_rrst = lwait_b4_rrst_s; + assign wait_after_lols = lwait_after_lols_s; + `else + assign wait_b4_trst = lwait_b4_trst; + assign wait_b4_rrst = lwait_b4_rrst; + assign wait_after_lols = lwait_after_lols; + `endif + +// ================================================================== +// Tx +// ================================================================== + generate + if((pserdes_mode=="RX AND TX")||(pserdes_mode=="TX ONLY")) begin + +// ------------ Synchronizing pll_lol to the tx clock + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + pll_lol_p1 <= 1'd0; + pll_lol_p2 <= 1'd0; + pll_lol_p3 <= 1'd0; + end + else begin + pll_lol_p1 <= rdi_pll_lol; + pll_lol_p2 <= pll_lol_p1; + pll_lol_p3 <= pll_lol_p2; + end + end + +// ------------ rdo_tx_serdes_rst_c + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol_cnt <= 'd0; + else if((pll_lol_p2==0)||(plol_cnt_tc==1)||(rdo_tx_serdes_rst_c==1)) + plol_cnt <= 'd0; + else + plol_cnt <= plol_cnt+1; + end + assign plol_cnt_tc = (plol_cnt==wait_b4_trst)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txs_cnt <= 'd0; // tx serdes reset pulse count + txs_rst <= 1'b0; // tx serdes reset + end + else if(plol_cnt_tc==1) + txs_rst <= 1'b1; + else if(txs_cnt_tc==1) begin + txs_cnt <= 'd0; + txs_rst <= 1'b0; + end + else if(txs_rst==1) + txs_cnt <= txs_cnt+1; + end + assign txs_cnt_tc = (txs_cnt==lreset_pwidth)?1'b1:1'b0; + + assign rdo_tx_serdes_rst_c = (rsl_enable&txs_rst)| rui_tx_serdes_rst_c; + +// ------------ rdo_tx_pcs_rst_c + assign plol_fedge = ~pll_lol_p2 & pll_lol_p3; + assign plol_redge = pll_lol_p2 & ~pll_lol_p3; + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + waita_plol0 <= 1'd0; + else if(plol_fedge==1'b1) + waita_plol0 <= 1'b1; + else if((plol0_cnt_tc==1)||(plol_redge==1)) + waita_plol0 <= 1'd0; + end + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol0_cnt <= 'd0; + else if((pll_lol_p2==1)||(plol0_cnt_tc==1)) + plol0_cnt <= 'd0; + else if(waita_plol0==1'b1) + plol0_cnt <= plol0_cnt+1; + end + assign plol0_cnt_tc = (plol0_cnt==lwait_after_plol0)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txp_cnt <= 'd0; // tx serdes reset pulse count + txp_rst <= 1'b0; // tx serdes reset + end + else if(plol0_cnt_tc==1) + txp_rst <= 1'b1; + else if(txp_cnt_tc==1) begin + txp_cnt <= 'd0; + txp_rst <= 1'b0; + end + else if(txp_rst==1) + txp_cnt <= txp_cnt+1; + end + assign txp_cnt_tc = (txp_cnt==lreset_pwidth)?1'b1:1'b0; + + genvar i; + for(i=0;i>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2015 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : SLL - Soft Loss Of Lock(LOL) Logic +// File : sll_core.v +// Title : Top-level file for SLL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : AV +// Mod. Date : March 2, 2015 +// Changes Made : Initial Creation +// ============================================================================= +// REVISION HISTORY +// Version : 1.1 +// Author(s) : AV +// Mod. Date : June 8, 2015 +// Changes Made : Following updates were made +// : 1. Changed all the PLOL status logic and FSM to run +// : on sli_refclk. +// : 2. Added the HB logic for presence of tx_pclk +// : 3. Changed the lparam assignment scheme for +// : simulation purposes. +// ============================================================================= +// REVISION HISTORY +// Version : 1.2 +// Author(s) : AV +// Mod. Date : June 24, 2015 +// Changes Made : Updated the gearing logic for SDI dynamic rate change +// ============================================================================= +// REVISION HISTORY +// Version : 1.3 +// Author(s) : AV +// Mod. Date : July 14, 2015 +// Changes Made : Added the logic for dynamic rate change in CPRI +// ============================================================================= +// REVISION HISTORY +// Version : 1.4 +// Author(s) : AV +// Mod. Date : August 21, 2015 +// Changes Made : Added the logic for dynamic rate change of 5G CPRI & +// PCIe. +// ============================================================================= +// REVISION HISTORY +// Version : 1.5 +// Author(s) : ES/EB +// Mod. Date : March 21, 2017 +// Changes Made : 1. Added pdiff_sync signal to syncrhonize pcount_diff +// : to sli_refclk. +// : 2. Updated terminal count logic for PCIe 5G +// : 3. Modified checking of pcount_diff in SLL state +// : machine to cover actual count +// : (from 16-bits to 22-bits) +// ============================================================================= +// REVISION HISTORY +// Version : 1.6 +// Author(s) : ES +// Mod. Date : April 19, 2017 +// Changes Made : 1. Added registered lock and unlock signal from +// pdiff_sync to totally decouple pcount_diff from +// SLL state machine. +// : 2. Modified LPCLK_TC_4 to 1:1 clock ratio when CPRI +// is operating @ 4.9125Gbps data rate. +// ============================================================================= +`timescale 1ns/10ps + +module serdes1_0sll_core ( + //Reset and Clock inputs + sli_rst, //Active high asynchronous reset input + sli_refclk, //Refclk input to the Tx PLL + sli_pclk, //Tx pclk output from the PCS + + //Control inputs + sli_div2_rate, //Divide by 2 control; 0 - Full rate; 1 - Half rate + sli_div11_rate, //Divide by 11 control; 0 - Full rate; 1 - Div by 11 + sli_gear_mode, //Gear mode control for PCS; 0 - 8/10; 1- 16/20 + sli_cpri_mode, //Mode of operation specific to CPRI protocol + sli_pcie_mode, //Mode of operation specific to PCIe mode (2.5G or 5G) + + //LOL Output + slo_plol //Tx PLL Loss of Lock output to the user logic + ); + +// Inputs +input sli_rst; +input sli_refclk; +input sli_pclk; +input sli_div2_rate; +input sli_div11_rate; +input sli_gear_mode; +input [2:0] sli_cpri_mode; +input sli_pcie_mode; + +// Outputs +output slo_plol; + + +// Parameters +parameter PPROTOCOL = "PCIE"; //Protocol selected by the User +parameter PLOL_SETTING = 0; //PLL LOL setting. Possible values are 0,1,2,3 +parameter PDYN_RATE_CTRL = "DISABLED"; //PCS Dynamic Rate control +parameter PPCIE_MAX_RATE = "2.5"; //PCIe max data rate +parameter PDIFF_VAL_LOCK = 20; //Differential count value for Lock +parameter PDIFF_VAL_UNLOCK = 39; //Differential count value for Unlock +parameter PPCLK_TC = 65535; //Terminal count value for counter running on sli_pclk +parameter PDIFF_DIV11_VAL_LOCK = 3; //Differential count value for Lock for SDI Div11 +parameter PDIFF_DIV11_VAL_UNLOCK = 3; //Differential count value for Unlock for SDI Div11 +parameter PPCLK_DIV11_TC = 2383; //Terminal count value (SDI Div11) for counter running on sli_pclk + + +// Local Parameters +localparam [1:0] LPLL_LOSS_ST = 2'b00; //PLL Loss state +localparam [1:0] LPLL_PRELOSS_ST = 2'b01; //PLL Pre-Loss state +localparam [1:0] LPLL_PRELOCK_ST = 2'b10; //PLL Pre-Lock state +localparam [1:0] LPLL_LOCK_ST = 2'b11; //PLL Lock state +`ifdef RSL_SIM_MODE +localparam [15:0] LRCLK_TC = 16'd63; //Terminal count value for counter running on sli_refclk +`else +localparam [15:0] LRCLK_TC = 16'd65535; //Terminal count value for counter running on sli_refclk +`endif +localparam [15:0] LRCLK_TC_PUL_WIDTH = 16'd50; //Pulse width for the Refclk terminal count pulse +localparam [7:0] LHB_WAIT_CNT = 8'd255; //Wait count for the Heartbeat signal + +// Local Parameters related to the CPRI dynamic modes +// Terminal count values for the four CPRI modes +localparam LPCLK_TC_0 = 32768; +localparam LPCLK_TC_1 = 65536; +localparam LPCLK_TC_2 = 131072; +localparam LPCLK_TC_3 = 163840; +localparam LPCLK_TC_4 = 65536; + +// Lock values count values for the four CPRI modes and four PLOL settings (4x5) +// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 +localparam LPDIFF_LOCK_00 = 9; localparam LPDIFF_LOCK_10 = 19; localparam LPDIFF_LOCK_20 = 39; localparam LPDIFF_LOCK_30 = 49; localparam LPDIFF_LOCK_40 = 19; +localparam LPDIFF_LOCK_01 = 9; localparam LPDIFF_LOCK_11 = 19; localparam LPDIFF_LOCK_21 = 39; localparam LPDIFF_LOCK_31 = 49; localparam LPDIFF_LOCK_41 = 19; +localparam LPDIFF_LOCK_02 = 49; localparam LPDIFF_LOCK_12 = 98; localparam LPDIFF_LOCK_22 = 196; localparam LPDIFF_LOCK_32 = 245; localparam LPDIFF_LOCK_42 = 98; +localparam LPDIFF_LOCK_03 = 131; localparam LPDIFF_LOCK_13 = 262; localparam LPDIFF_LOCK_23 = 524; localparam LPDIFF_LOCK_33 = 655; localparam LPDIFF_LOCK_43 = 262; + +// Unlock values count values for the four CPRI modes and four PLOL settings (4x5) +// CPRI rate mode 0 CPRI rate mode 1 CPRI rate mode 2 CPRI rate mode 3 CPRI rate mode 4 +localparam LPDIFF_UNLOCK_00 = 19; localparam LPDIFF_UNLOCK_10 = 39; localparam LPDIFF_UNLOCK_20 = 78; localparam LPDIFF_UNLOCK_30 = 98; localparam LPDIFF_UNLOCK_40 = 39; +localparam LPDIFF_UNLOCK_01 = 65; localparam LPDIFF_UNLOCK_11 = 131; localparam LPDIFF_UNLOCK_21 = 262; localparam LPDIFF_UNLOCK_31 = 327; localparam LPDIFF_UNLOCK_41 = 131; +localparam LPDIFF_UNLOCK_02 = 72; localparam LPDIFF_UNLOCK_12 = 144; localparam LPDIFF_UNLOCK_22 = 288; localparam LPDIFF_UNLOCK_32 = 360; localparam LPDIFF_UNLOCK_42 = 144; +localparam LPDIFF_UNLOCK_03 = 196; localparam LPDIFF_UNLOCK_13 = 393; localparam LPDIFF_UNLOCK_23 = 786; localparam LPDIFF_UNLOCK_33 = 983; localparam LPDIFF_UNLOCK_43 = 393; + +// Input and Output reg and wire declarations +wire sli_rst; +wire sli_refclk; +wire sli_pclk; +wire sli_div2_rate; +wire sli_div11_rate; +wire sli_gear_mode; +wire [2:0] sli_cpri_mode; +wire sli_pcie_mode; +wire slo_plol; + +//-------------- Internal signals reg and wire declarations -------------------- + +//Signals running on sli_refclk +reg [15:0] rcount; //16-bit Counter +reg rtc_pul; //Terminal count pulse +reg rtc_pul_p1; //Terminal count pulse pipeline +reg rtc_ctrl; //Terminal count pulse control + +reg [7:0] rhb_wait_cnt; //Heartbeat wait counter + +//Heatbeat synchronization and pipeline registers +wire rhb_sync; +reg rhb_sync_p2; +reg rhb_sync_p1; + +//Pipeling registers for dynamic control mode +wire rgear; +wire rdiv2; +wire rdiv11; +reg rgear_p1; +reg rdiv2_p1; +reg rdiv11_p1; + +reg rstat_pclk; //Pclk presence/absence status + +reg [21:0] rcount_tc; //Tx_pclk terminal count register +reg [15:0] rdiff_comp_lock; //Differential comparison value for Lock +reg [15:0] rdiff_comp_unlock; //Differential compariosn value for Unlock + +wire rpcie_mode; //PCIe mode signal synchronized to refclk +reg rpcie_mode_p1; //PCIe mode pipeline register + +wire rcpri_mod_ch_sync; //CPRI mode change synchronized to refclk +reg rcpri_mod_ch_p1; //CPRI mode change pipeline register +reg rcpri_mod_ch_p2; //CPRI mode change pipeline register +reg rcpri_mod_ch_st; //CPRI mode change status + +reg [1:0] sll_state; //Current-state register for LOL FSM + +reg pll_lock; //PLL Lock signal + +//Signals running on sli_pclk +//Synchronization and pipeline registers +wire ppul_sync; +reg ppul_sync_p1; +reg ppul_sync_p2; +reg ppul_sync_p3; + +wire pdiff_sync; +reg pdiff_sync_p1; + +reg [21:0] pcount; //22-bit counter +reg [21:0] pcount_diff; //Differential value between Tx_pclk counter and theoritical value + +//Heartbeat counter and heartbeat signal running on pclk +reg [2:0] phb_cnt; +reg phb; + +//CPRI dynamic mode releated signals +reg [2:0] pcpri_mode; +reg pcpri_mod_ch; + +//Assignment scheme changed mainly for simulation purpose +wire [15:0] LRCLK_TC_w; +assign LRCLK_TC_w = LRCLK_TC; + +reg unlock; +reg lock; + +//Heartbeat synchronization +sync # (.PDATA_RST_VAL(0)) phb_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (phb), + .data_out(rhb_sync) + ); + + +//Terminal count pulse synchronization +sync # (.PDATA_RST_VAL(0)) rtc_sync_inst ( + .clk (sli_pclk), + .rst (sli_rst), + .data_in (rtc_pul), + .data_out(ppul_sync) + ); + +//Differential value logic update synchronization +sync # (.PDATA_RST_VAL(0)) pdiff_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (ppul_sync), + .data_out(pdiff_sync) + ); + +//Gear mode synchronization +sync # (.PDATA_RST_VAL(0)) gear_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_gear_mode), + .data_out(rgear) + ); + +//Div2 synchronization +sync # (.PDATA_RST_VAL(0)) div2_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_div2_rate), + .data_out(rdiv2) + ); + +//Div11 synchronization +sync # (.PDATA_RST_VAL(0)) div11_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_div11_rate), + .data_out(rdiv11) + ); + +//CPRI mode change synchronization +sync # (.PDATA_RST_VAL(0)) cpri_mod_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (pcpri_mod_ch), + .data_out(rcpri_mod_ch_sync) + ); + +//PCIe mode change synchronization +sync # (.PDATA_RST_VAL(0)) pcie_mod_sync_inst ( + .clk (sli_refclk), + .rst (sli_rst), + .data_in (sli_pcie_mode), + .data_out(rpcie_mode) + ); + +// ============================================================================= +// Synchronized Lock/Unlock signals +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + unlock <= 1'b0; + lock <= 1'b0; + pdiff_sync_p1 <= 1'b0; + end + else begin + pdiff_sync_p1 <= pdiff_sync; + if (unlock) begin + unlock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : unlock; + end + else begin + unlock <= pdiff_sync ? (pcount_diff[21:0] > {6'd0, rdiff_comp_unlock}) : 1'b0; + end + if (lock) begin + lock <= ~pdiff_sync && pdiff_sync_p1 ? 1'b0 : lock; + end + else begin + lock <= pdiff_sync ? (pcount_diff[21:0] <= {6'd0, rdiff_comp_lock}) : 1'b0; + end + end +end + +// ============================================================================= +// Refclk Counter, pulse generation logic and Heartbeat monitor logic +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount <= 16'd0; + rtc_pul <= 1'b0; + rtc_ctrl <= 1'b0; + rtc_pul_p1 <= 1'b0; + end + else begin + //Counter logic + if ((rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin + if (rtc_ctrl == 1'b1) begin + rcount <= LRCLK_TC_PUL_WIDTH; + end + end + else begin + if (rcount != LRCLK_TC_w) begin + rcount <= rcount + 1; + end + else begin + rcount <= 16'd0; + end + end + + //Pulse control logic + if (rcount == LRCLK_TC_w - 1) begin + rtc_ctrl <= 1'b1; + end + + //Pulse Generation logic + if (rtc_ctrl == 1'b1) begin + if ((rcount == LRCLK_TC_w) || (rcount < LRCLK_TC_PUL_WIDTH)) begin + rtc_pul <= 1'b1; + end + else begin + rtc_pul <= 1'b0; + end + end + + rtc_pul_p1 <= rtc_pul; + end +end + + +// ============================================================================= +// Heartbeat synchronization & monitor logic and Dynamic mode pipeline logic +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rhb_sync_p1 <= 1'b0; + rhb_sync_p2 <= 1'b0; + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b0; + rgear_p1 <= 1'b0; + rdiv2_p1 <= 1'b0; + rdiv11_p1 <= 1'b0; + rcpri_mod_ch_p1 <= 1'b0; + rcpri_mod_ch_p2 <= 1'b0; + rcpri_mod_ch_st <= 1'b0; + rpcie_mode_p1 <= 1'b0; + + end + else begin + //Pipeline stages for the Heartbeat + rhb_sync_p1 <= rhb_sync; + rhb_sync_p2 <= rhb_sync_p1; + + //Pipeline stages of the Dynamic rate control signals + rgear_p1 <= rgear; + rdiv2_p1 <= rdiv2; + rdiv11_p1 <= rdiv11; + + //Pipeline stage for PCIe mode + rpcie_mode_p1 <= rpcie_mode; + + //Pipeline stage for CPRI mode change + rcpri_mod_ch_p1 <= rcpri_mod_ch_sync; + rcpri_mod_ch_p2 <= rcpri_mod_ch_p1; + + //CPRI mode change status logic + if (rcpri_mod_ch_p1^rcpri_mod_ch_sync == 1'b1) begin + rcpri_mod_ch_st <= 1'b1; + end + + //Heartbeat wait counter and monitor logic + if (rtc_ctrl == 1'b1) begin + if (rhb_sync_p1 == 1'b1 && rhb_sync_p2 == 1'b0) begin + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b1; + end + else if (rhb_wait_cnt == LHB_WAIT_CNT) begin + rhb_wait_cnt <= 8'd0; + rstat_pclk <= 1'b0; + end + else begin + rhb_wait_cnt <= rhb_wait_cnt + 1; + end + end + end +end + + +// ============================================================================= +// Pipleline registers for the TC pulse and CPRI mode change logic +// ============================================================================= +always @(posedge sli_pclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + ppul_sync_p1 <= 1'b0; + ppul_sync_p2 <= 1'b0; + ppul_sync_p3 <= 1'b0; + pcpri_mode <= 3'b0; + pcpri_mod_ch <= 1'b0; + end + else begin + ppul_sync_p1 <= ppul_sync; + ppul_sync_p2 <= ppul_sync_p1; + ppul_sync_p3 <= ppul_sync_p2; + + //CPRI mode change logic + pcpri_mode <= sli_cpri_mode; + + if (pcpri_mode != sli_cpri_mode) begin + pcpri_mod_ch <= ~pcpri_mod_ch; + end + end +end + + +// ============================================================================= +// Terminal count logic +// ============================================================================= + +//For SDI protocol with Dynamic rate control enabled +generate +if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "SDI")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + //Div by 11 is enabled + if (rdiv11 == 1'b1) begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= PPCLK_DIV11_TC; + rdiff_comp_lock <= PDIFF_DIV11_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_DIV11_VAL_UNLOCK; + end + else begin + rcount_tc <= {PPCLK_DIV11_TC[20:0], 1'b0}; + rdiff_comp_lock <= {PDIFF_DIV11_VAL_LOCK[14:0], 1'b0}; + rdiff_comp_unlock <= {PDIFF_DIV11_VAL_UNLOCK[14:0], 1'b0}; + end + end + //Div by 2 is enabled + else if (rdiv2 == 1'b1) begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + else begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end + //Both div by 11 and div by 2 are disabled + else begin + //Gear mode is 16/20 + if (rgear == 1'b1) begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + rcount_tc <= {PPCLK_TC[20:0],1'b0}; + rdiff_comp_lock <= {PDIFF_VAL_LOCK[14:0],1'b0}; + rdiff_comp_unlock <= {PDIFF_VAL_UNLOCK[14:0],1'b0}; + end + end + end +end +end +endgenerate + +//For G8B10B protocol with Dynamic rate control enabled +generate +if ((PDYN_RATE_CTRL == "ENABLED") && (PPROTOCOL == "G8B10B")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + //Div by 2 is enabled + if (rdiv2 == 1'b1) begin + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + else begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end +end +end +endgenerate + + +//For CPRI protocol with Dynamic rate control is disabled +generate +if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "CPRI")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic for CPRI protocol + //Only if there is a change in the rate mode from the default + if (rcpri_mod_ch_st == 1'b1) begin + if (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) begin + case(sli_cpri_mode) + 3'd0 : begin //For 0.6Gbps + rcount_tc <= LPCLK_TC_0; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_01; + rdiff_comp_unlock <= LPDIFF_UNLOCK_01; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_02; + rdiff_comp_unlock <= LPDIFF_UNLOCK_02; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_03; + rdiff_comp_unlock <= LPDIFF_UNLOCK_03; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + endcase + end + + 3'd1 : begin //For 1.2Gbps + rcount_tc <= LPCLK_TC_1; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_10; + rdiff_comp_unlock <= LPDIFF_UNLOCK_10; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_11; + rdiff_comp_unlock <= LPDIFF_UNLOCK_11; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_12; + rdiff_comp_unlock <= LPDIFF_UNLOCK_12; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_13; + rdiff_comp_unlock <= LPDIFF_UNLOCK_13; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_10; + rdiff_comp_unlock <= LPDIFF_UNLOCK_10; + end + endcase + end + + 3'd2 : begin //For 2.4Gbps + rcount_tc <= LPCLK_TC_2; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_20; + rdiff_comp_unlock <= LPDIFF_UNLOCK_20; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_21; + rdiff_comp_unlock <= LPDIFF_UNLOCK_21; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_22; + rdiff_comp_unlock <= LPDIFF_UNLOCK_22; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_23; + rdiff_comp_unlock <= LPDIFF_UNLOCK_23; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_20; + rdiff_comp_unlock <= LPDIFF_UNLOCK_20; + end + endcase + end + + 3'd3 : begin //For 3.07Gbps + rcount_tc <= LPCLK_TC_3; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_30; + rdiff_comp_unlock <= LPDIFF_UNLOCK_30; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_31; + rdiff_comp_unlock <= LPDIFF_UNLOCK_31; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_32; + rdiff_comp_unlock <= LPDIFF_UNLOCK_32; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_33; + rdiff_comp_unlock <= LPDIFF_UNLOCK_33; + end + endcase + end + + 3'd4 : begin //For 4.9125bps + rcount_tc <= LPCLK_TC_4; + case(PLOL_SETTING) + 'd0 : begin + rdiff_comp_lock <= LPDIFF_LOCK_40; + rdiff_comp_unlock <= LPDIFF_UNLOCK_40; + end + + 'd1 : begin + rdiff_comp_lock <= LPDIFF_LOCK_41; + rdiff_comp_unlock <= LPDIFF_UNLOCK_41; + end + + 'd2 : begin + rdiff_comp_lock <= LPDIFF_LOCK_42; + rdiff_comp_unlock <= LPDIFF_UNLOCK_42; + end + + 'd3 : begin + rdiff_comp_lock <= LPDIFF_LOCK_43; + rdiff_comp_unlock <= LPDIFF_UNLOCK_43; + end + + default : begin + rdiff_comp_lock <= LPDIFF_LOCK_40; + rdiff_comp_unlock <= LPDIFF_UNLOCK_40; + end + endcase + end + + default : begin + rcount_tc <= LPCLK_TC_0; + rdiff_comp_lock <= LPDIFF_LOCK_00; + rdiff_comp_unlock <= LPDIFF_UNLOCK_00; + end + endcase + end + end + else begin + //If there is no change in the CPRI rate mode from default + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + end +end +end +endgenerate + +//For PCIe protocol with Dynamic rate control disabled +generate +if ((PDYN_RATE_CTRL == "DISABLED") && (PPROTOCOL == "PCIE")) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic + if (PPCIE_MAX_RATE == "2.5") begin + //2.5G mode is enabled + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + //5G mode is enabled + if (rpcie_mode == 1'b1) begin + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end + else begin + //2.5G mode is enabled + rcount_tc <= {1'b0,PPCLK_TC[21:1]}; + rdiff_comp_lock <= {1'b0,PDIFF_VAL_LOCK[15:1]}; + rdiff_comp_unlock <= {1'b0,PDIFF_VAL_UNLOCK[15:1]}; + end + end + end +end +end +endgenerate + +//For all protocols other than CPRI & PCIe +generate +if ((PDYN_RATE_CTRL == "DISABLED") && ((PPROTOCOL != "CPRI") && (PPROTOCOL != "PCIE"))) begin +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + rcount_tc <= 22'd0; + rdiff_comp_lock <= 16'd0; + rdiff_comp_unlock <= 16'd0; + end + else begin + //Terminal count logic for all protocols other than CPRI & PCIe + rcount_tc <= PPCLK_TC; + rdiff_comp_lock <= PDIFF_VAL_LOCK; + rdiff_comp_unlock <= PDIFF_VAL_UNLOCK; + end +end +end +endgenerate + + +// ============================================================================= +// Tx_pclk counter, Heartbeat and Differential value logic +// ============================================================================= +always @(posedge sli_pclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + pcount <= 22'd0; + pcount_diff <= 22'd65535; + phb_cnt <= 3'd0; + phb <= 1'b0; + end + else begin + //Counter logic + if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin + pcount <= 22'd0; + end + else begin + pcount <= pcount + 1; + end + + //Heartbeat logic + phb_cnt <= phb_cnt + 1; + + if ((phb_cnt < 3'd4) && (phb_cnt >= 3'd0)) begin + phb <= 1'b1; + end + else begin + phb <= 1'b0; + end + + //Differential value logic + if (ppul_sync_p1 == 1'b1 && ppul_sync_p2 == 1'b0) begin + pcount_diff <= rcount_tc + ~(pcount) + 1; + end + else if (ppul_sync_p2 == 1'b1 && ppul_sync_p3 == 1'b0) begin + if (pcount_diff[21] == 1'b1) begin + pcount_diff <= ~(pcount_diff) + 1; + end + end + end +end + + +// ============================================================================= +// State transition logic for SLL FSM +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + //Reasons to declare an immediate loss - Absence of Tx_pclk, Dynamic rate change for SDI or CPRI + if ((rstat_pclk == 1'b0) || (rgear_p1^rgear == 1'b1) || (rdiv2_p1^rdiv2 == 1'b1) || + (rdiv11_p1^rdiv11 == 1'b1) || (rcpri_mod_ch_p1^rcpri_mod_ch_p2 == 1'b1) || (rpcie_mode_p1^rpcie_mode == 1'b1)) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + case(sll_state) + LPLL_LOSS_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (unlock) begin + sll_state <= LPLL_LOSS_ST; + end + else if (lock) begin + if (PLOL_SETTING == 2'd0) begin + sll_state <= LPLL_PRELOCK_ST; + end + else begin + sll_state <= LPLL_LOCK_ST; + end + end + end + end + + LPLL_LOCK_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + else begin + if (PLOL_SETTING == 2'd0) begin + sll_state <= LPLL_LOSS_ST; + end + else begin + sll_state <= LPLL_PRELOSS_ST; + end + end + end + end + + LPLL_PRELOCK_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + else begin + sll_state <= LPLL_PRELOSS_ST; + end + end + end + + LPLL_PRELOSS_ST : begin + if (rtc_pul_p1 == 1'b1 && rtc_pul == 1'b0) begin + if (unlock) begin + sll_state <= LPLL_PRELOSS_ST; + end + else if (lock) begin + sll_state <= LPLL_LOCK_ST; + end + end + end + + default: begin + sll_state <= LPLL_LOSS_ST; + end + endcase + end + end +end + + +// ============================================================================= +// Logic for Tx PLL Lock +// ============================================================================= +always @(posedge sli_refclk or posedge sli_rst) begin + if (sli_rst == 1'b1) begin + pll_lock <= 1'b0; + end + else begin + case(sll_state) + LPLL_LOSS_ST : begin + pll_lock <= 1'b0; + end + + LPLL_LOCK_ST : begin + pll_lock <= 1'b1; + end + + LPLL_PRELOSS_ST : begin + pll_lock <= 1'b0; + end + + default: begin + pll_lock <= 1'b0; + end + endcase + end +end + +assign slo_plol = ~(pll_lock); + +endmodule + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2015 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : Synchronizer Logic +// File : sync.v +// Title : Synchronizer module +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : AV +// Mod. Date : July 7, 2015 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : EB +// Mod. Date : March 21, 2017 +// Changes Made : +// ============================================================================= + +`ifndef PCS_SYNC_MODULE +`define PCS_SYNC_MODULE +module sync ( + clk, + rst, + data_in, + data_out + ); + +input clk; //Clock in which the async data needs to be synchronized to +input rst; //Active high reset +input data_in; //Asynchronous data +output data_out; //Synchronized data + +parameter PDATA_RST_VAL = 0; //Reset value for the registers + +reg data_p1; +reg data_p2; + +// ============================================================================= +// Synchronization logic +// ============================================================================= +always @(posedge clk or posedge rst) begin + if (rst == 1'b1) begin + data_p1 <= PDATA_RST_VAL; + data_p2 <= PDATA_RST_VAL; + end + else begin + data_p1 <= data_in; + data_p2 <= data_p1; + end +end + +assign data_out = data_p2; + +endmodule +`endif + diff --git a/media_interfaces/ecp5/dual_serdes/serdes1/serdes1.ipx b/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1.ipx similarity index 100% rename from media_interfaces/ecp5/dual_serdes/serdes1/serdes1.ipx rename to media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1.ipx diff --git a/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1.lpc b/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1.lpc new file mode 100644 index 0000000..91156e6 --- /dev/null +++ b/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1.lpc @@ -0,0 +1,97 @@ +[Device] +Family=ecp5um +OperatingCondition=COM +Package=CABGA381 +PartName=LFE5UM-45F-8BG381C +PartType=LFE5UM-45F +SpeedGrade=8 +Status=P +[IP] +CoreName=PCS +CoreRevision=8.2 +CoreStatus=Demo +CoreType=LPM +Date=11/23/2020 +ModuleName=serdes1_1 +ParameterFileVersion=1.0 +SourceFormat=vhdl +Time=19:09:02 +VendorName=Lattice Semiconductor Corporation +[Parameters] +;ACHARA=0 00H +;ACHARB=0 00H +;ACHARM=0 00H +;RXMCAENABLE=Disabled +CDRLOLACTION=Full Recalibration +CDRLOLRANGE=3 +CDR_MAX_RATE=2 +CDR_MULT=10X +CDR_REF_RATE=200.0000 +CH_MODE=Rx and Tx +Destination=Synplicity +EDIF=1 +Expression=BusA(0 to 7) +IO=0 +IO_TYPE=G8B10B +LEQ=Disabled +LOOPBACK=Disabled +LOSPORT=Enabled +NUM_CHS=1 +Order=Big Endian [MSB:LSB] +PPORT_RX_RDY=Enabled +PPORT_TX_RDY=Enabled +PROTOCOL=G8B10B +PWAIT_RX_RDY=3000 +PWAIT_TX_RDY=3000 +RCSRC=Disabled +REFCLK_RATE=200.0000 +RSTSEQSEL=Enabled +RX8B10B=Enabled +RXCOMMAA=0010000011 +RXCOMMAB=0001111100 +RXCOMMAM=0011111111 +RXCOUPLING=AC +RXCTC=Disabled +RXCTCBYTEN=0 00H +RXCTCBYTEN1=0 00H +RXCTCBYTEN2=0 00H +RXCTCBYTEN3=0 00H +RXCTCMATCHPATTERN=M4-S4 +RXDIFFTERM=50 ohms +RXFIFO_ENABLE=Enabled +RXINVPOL=Non-invert +RXLDR=Off +RXLOSTHRESHOLD=0 +RXLSM=Enabled +RXSC=K28P157 +RXWA=Barrel Shift +RX_DATA_WIDTH=8/10-Bit +RX_FICLK_RATE=200.0000 +RX_LINE_RATE=2.0000 +RX_RATE_DIV=Full Rate +SCIPORT=Enabled +SOFTLOL=Disabled +TX8B10B=Enabled +TXAMPLITUDE=800 +TXDEPOST=Disabled +TXDEPRE=Disabled +TXDIFFTERM=50 ohms +TXFIFO_ENABLE=Enabled +TXINVPOL=Non-invert +TXLDR=Off +TXPLLLOLTHRESHOLD=1 +TXPLLMULT=10X +TX_DATA_WIDTH=8/10-Bit +TX_FICLK_RATE=200.0000 +TX_LINE_RATE=2.0000 +TX_MAX_RATE=2 +TX_RATE_DIV=Full Rate +VHDL=1 +Verilog=0 +[FilesGenerated] +serdes1.pp=pp +serdes1.sym=sym +serdes1.tft=tft +serdes1.txt=pcs_module +[SYSTEMPNR] +LN0=DCU1_CH1 diff --git a/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1.ngd b/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1.ngd new file mode 100644 index 0000000000000000000000000000000000000000..a2ec94e1121db04fd9e2627f0b586908a09c36dd GIT binary patch literal 252668 zcmb4s2YejG^}j~Obi>iRB%5Y1n3LS8sdE%@mE;wV z$>V?9h;_Hd=t{IKY+kUir8tl7<8+_jGIvZY96puq|JM!qvXd6fTe*1Yg2Ri7PG8vE zvUvHjqRPc{PhGxjLDBHBqYs_8c*Q|Qqed1Nk1QEEdh}RQ`%egJH504GOrLt_=rI#v zxsRdh^7^v+*>wL1Q!47K${MSpjnz}D8XC){Mj(iTSXnirx}qviq(uz3<zA_lvxeo|FqS$)N12)b=S#nei|DFIsucoV(r$0r8CO(cOX9*H9i z0SBarN<=MyN}p3+8baPMy1&EIy$uvaChR&RE#I zJQ^nP3$Ch}ycbnr#nBb3TbiSDW3dH9eo>KCYe5TLF`w|495&U!g68P*=BTUml3T(` zYQT0A+UV-qVl>c=t~P2>Hc({hRj5`I>W{aBNyoNeHEWKm%JS`8rF!Nps;yJC*<-OG}uO&K) zt-aN4rdQVs_l~#wHDEaIm{0-w9G3xZ3bN-k746X5wl$>76P~ixFHc*0w_lcZV^ z)aLn)N0JXTJe~#~7yeL}V8GFFC^~>29S{3K8kmSa(E_7jHuZ@%WeQ;G(;y9)`hW$9 zibgdM*@81*@6(A>s7)+!rnJc z%CV@=191soDqF0%a2e@+Y1xXlaQ413iM$YrP9XMIel}G?Vlx}2wlilmLi)*PN8&I0 zaPHq<`{80VmapvssErf+jUPsOzwuicL-4nL7{lndej~-m@^^lEI9gFRy)i1qezkD4 zfjSm+zxV4h9IP{^m@DT8zmhCa$$#=`&l!sx|LoJ7GoEoje**Ad{QPl@`}t!CPvqNt zIWjcJ0scq77EiIi+FEicyY5#%e-ujp&Ci!<`OU9@bS3fv6i{*^&sKoH)GiXj)_{Qe zaY6)XP|r^c3erG}OymctpgH{*qymjWK^oL#!rWUEg9G%qeiMTO6uE{IAxmctXYvP| zkJ7iaLBze8r5{DVDn5wy;4| zU z>}zspfXmg!iMY@1Z(8QYyPs*9)o1htsgq;*1(86@6mxz- zMW6_-7E}isq`2}6j?4y?MPqFKkaI&pBJw%Epw3s;XhM(o*&0je{IG3i9HBFO=omuF zeHKaxt@d$85qf0Ewu_dxE4Z7jSRIYc=k;)OeqMgz^MqlfHaC#wL$cT0Zp(vk?<-@B5*1YWw77O_eC42Khv{{O zGk(yTR~A3?x2)~iC|$-eVOxZ@F!a}$A6CYG3E84zX-p*cgRw2;-XM38JhA>^9~~`f z=uh3Ym9TQD@L5>#)gE;=s_p|I%SUyuYF#kfl=mvj2K$VhXcVu zj7#RwY;?kK9zBP5yC8e6Zgt5}p_l zq@ePZKWxjG&m8;WrlmO)%pl|W1*iIrYju*gM3ky$+2F=;p!%~bkn3cED2Ihz_2T9hdY7`inRajz^kf3FTrbPW=0E9HzVlhtyi9h- z!vD*f7z&vZG7we5$Zi+o)h?d(ifs@};F7S##4@zRW@0Hi$_B9<9c!r@3&t^lB3=lO zv_#wyM%y5k6l1!*?#Tu1Xdj9$!>iY^fg)b-POu8#eW=8QKm{IjcL@~n3V)n!i&wO~ zB0fA&#Ead-ZG*gEKEhVuW$=+Um!G|lw7I+r`IeHT8;Y~!;9=mq(jW=7VqR+%Zk^2~ z#xkaGx4v9rti1{gnsSMGxqX!FD`uI(9ZGX4@iOn1?p$K5g$g%o$|dGR^hI)sx$IDB zkeHUwh5IxGNoWaOxL+tpLd)nv`S9lsnDRk{mePfT0CC*LE3sy#;W>;-alvm*LE30v!ww8IT%vK?NkCFa5=ZBBz~a=5t1C%_C* z6|rGX1RW}Xb@NaGrio+11nMHGv_Ho*38lf_WYeB9b&PEalS?T~nf5Wcl-f*8E@d_o zlgn{2Qs;EaGY|4HCciKm@|u+$4}%)D8IoHslw0!2K3 zm0Kd7zskG4#q!2fg$2s_tIUTw^H*h{i07}Fecl4(T+1`n_;8SjXR4||5zkb!VnJFw zQ_Zr=;yGzzx23>y(rnudby1O+ZCl{FInGA0=~B3~)N9wRP#(6Ltzum<4_#}Ta%p4u zDqNV&CFVJ9isg}OoTrRwImPVxthQXndAeHG6d*>+%P))s8m5Pj!X>2vO7!|7zi@R? zkOZ^T+Q1+&OP$soq=Q-N#88j~v($n>Ycxw0&TI%P%}9Ye4*rDDiV0brlX9t?0AZY*-{taM;KSzeqd* zRFw}Z=ZZE%6aGy!OerfTdaYpAJKkZjVQg!h=!NhCEb3Ln%oz2u@TBB6cDL$y+L-H6 zmxIs#A?+{7!>OJRLdGyt<`*8F4HojSKHpQa+&QS~HWg&6;c02Em(0zHC#88YzXnf9 z^8z$@LR#R};K^ixm(2bx^zwKVu4*+)bED-Iz#^{#XTW_@_NIrejc*FJ#^cI}(qJJE z0B$#S%woloUwCk5mTiag65SK0l7JytK!M<6$|! zaFV|OZcxL<`AZ;y?3lychj=$`XFMGp@t5U{rib_)ln*(hn*3Tkl9mK$ILr6qxL?az zyf1|2=2(e4UQ)ydwE9(eWIZgPAU&=oPGzBaikD9rjO!+2`TB_JDA{{XilGF6e1s@5 zU*F4DuX6ReNEuXTDx(-Gonvuc(f#vmjTwO!)Nq0cD*J=4XVz`;71t!ry&tdOpZ6_)E7vYU6o^o5(**L%d}9 zr-^V={-r9Gk;j9+YhVaw~yE&{lHaliO(2X&#)nVwubXewQbxMIZssog4UKs z8Y#7BhHN@o?yzmbepq^2_)(D*dFqb$m)`FQlJE}Cu%_MsnR-xYgI{P3?m0D)Xpa#{ zk3{-t5&5bgP&6brl?pxqlWNa_vEj3C#0x6tKWoyk_Xtwq=UJZsX6BXJu=IITons%T ziRhTc)4%mPROftAdmmvOggjsLgQ+E5DtNk8={X%l#g&CJ;&KIWX`i?at2F*w^W}*n zN?2!1QSHN0Nk%x>F#%w`L>-=H6I-qsx<>rvL6dc&OvB-m=l>CBQG?CBY z=rKZXbcsY-m!Rd+xpbehrD66l<0m_=?v}MQERXLbF=tj=bkFJh$1Y5((x`PNWSilD zh};?YH(Wrwolg(<_{y_|g502O&p$ot4>6<7OQ~_9Y(0#jwzUK+y7gW<2j1Z&vVT-P zdxSmu+HKXydLn))S<5fDyT~t)we=O*dUN6$*deF&*VW|o+r5&1jS8(AV?BqQ4D<*HO% z*GI5yK{6F0!P7K5OmTZ07K!U&nq`JSo%kXtjOkF_p)>o zssTk($+@S^#t}z-*g{o3c1yDum}7W)>B2qSrA1JPPN(fhO$)SmTA&7mt*bkr& zY3chq1me?%7>W5$poDfGq)%$JMUqq?a-Tujy)9Uq?A~chQPpAH4%5QxUx(6CQuXroso?tB`^FDt$2;|-%4Z`p6 z)A6i)ALwZIZj6ZSem@%z()at>cuIf3&!&oPe=F{@&GGj5>BX@AfZuvCe0(r~4<{cC z;FCM;Z-@NlQpVcfj{9-=`Az_znqd1TKaO4!EvCZTHw73Y_}yTgImLL&ZU5M(#GR=9 z13!)@@O6)O`#i=N{;rR%8m21d!;r1U`^oJe`t*1|x&0$QpWXeykK>`g{Ug5}Y$3FN z;^$*8s{Io`AKMA-AN%>mZ0OSf0TR;wso#>!>}LTQT*hYs8XUyu0RniNER0b0xI4;O z6F(C}@J?B8Qh7XTe?R0!vES7Goeg3Wl>PrIKoUhGZ~r208N#p(!TYwLh1clqeYPo@ z$T7&Ze`yO~iS}mOzp^bsfR6D+kOl(zI!FT(38u{UFN37TF!*(lLGflfm&RJ zKiXQTzMpJ94fpLo*-SKw2=VlgpEC3mq< z9x0PM+bG&hau>@iZviKFwYjME$ldwVGZ7CiilbcuAbx$+?#+ zc)74o?&et0Fc-PIkBu=uxx0@IbPpey1K-0(X219Ju{rcTeQX|Y_p)Jhf#lvk8xpq2 z#r)GU$$cy~waoY8RINOW>*UFYmgGK;34SI>7C5>f;xQpP)TO9Jvb(BJ4)gHki*hFCshOmbga0k2-kJq+6v z+J1p0ahqasZfzuH|3Gah?(b6sdVr6Q9(#a~i{5>pkBbryw7ER*CWqT(ehx?u_p$M8 zn>+|?Yf6t|rb-^{DDY%Y%l_oSrfDdH;!~!{EIA_3EMhq%P=bt%2(*SskA@B}#pSv~ z&hyE!P%vR0v<~y5@aPa94D?XjG8PueLw#JDWs)O(T$*N*BYj+q-G}+O7`wwh6bt5L z*k=OyFZPj=23nlC~}ma4gbda*{H=aHY{7^INJ!% zMaeNX9EFYXJ{x!;oE+zad8i$4+mMsY1RtA++6g{3kNJoD*gRg3_OXi@KirS=9C3ut z4EM4l{B*qdP9Eu}vo}Zj`5fv|em)0vw4cxA9^>cp#Bz+E&vQtnh12*rhgWOKGQT9s ztAV2e1ZWUv68o);jE(_qJhn5H6Sac=J0}OGauL#nBOA`YG`X`jQ_C^O1 z)N(pm5m2CB@h2w+3Y{&HWR>4Ezkp6w`4wf?nB>>s&M_%Kfg8tUzrq||xhE$FsBk-| z4pQM3Rb#1OAgHw1sLo?89;&k1!qAGic^zvR;O51WDV78y>lDijhRUfH52M*si-*P$ zu`r&|YAt1MEwwfi5!6{sw4OSf2!CoUBDc(l4Z_Q5Hi(Q)vu$GZtGAgLo9k_6o=CkN zLKl<2Q&>DQMn8>;MNfSAi%H_}T zYR{2#(g_yI9qRQVX_x zk_*_J0itg=ICjj}H_>8gr-@bYE4bEcD2HIGn=Yyl=9&iV_~t`7pB>_#izRm!GT-nK zeS5wQVq{nVWnnNe2rjfibohC;I*(iGCB3mD0!$~%i7kVez)MBJ_v5yP47W=sH ztHna+6m#pHYr#AUEV1q4S#C}-_ra5G88%3gr`TqA)LX26=xnx!mS*)?zl7QxmhfJU%V6Q67s;;hhq(`)<+sAE z{Hy>z?40fAJL|@?19Z^f*9Pmz@$t_dq3XaFc`fm1v(}4IywX6cAD6S$IUdV=G@YyP z9KQlLgjPSF`^C9_oa_8tza2UJoaa}N4<6?QXs}D?2War*w%RK|4P4+gg64F-7eec} zz^jPy<3cZlY2iYzB8Jq9y(~1Ti@huicb9ls+>|cy(s)3-+>4<#Tx6+Yq`lO_5a(qU z2InsIn&U2ZnT5f<%Pn0*afOA!mn$q?f>wDTx!-i9M^!$OU+Lv>OZkJB$3xd2ygVKe z|LEm$>-(dZ$IaqTULKEmfAaFUCH~oq@tn5q@h}Y=n_(p_zdKq?!TrrKD1T6V6b~6! zS?XL)+@bO>RLb@5Uo4P4k6Y?I*#5-=Iqtt&>O9c?)nal)S9_V<7p}I54F1gnQiwN% z^k^wVL^ZE-NGfc8ADg^3?xpglV9Bc@Hi{N{on>~EoL{fEU^KMrY_oElT4&jX)lM%J zz4Ur7Bt5;s0y#&WA&;XdCBN{tCJ8#Vu8!f{-e==Dh7-wJs62*~yqQfeo4|jKA=wqz zEPf`#hncVScpw}yOWw#z=A&D(3lO(K(j>Jv+DtVp!f*82rjIg*9oKD;ltbMxG-!GA z;*+8{Zxmg=C{H~9T`P#oo5!3KMlIh0j#xHf0zV7h!iMROYEYiP|0+wOh07K$pU}?OQ-KtGU?d6xXV9z!SaP{ASpHh>| z9wn2G^(dJv{C*{qA>6NI(v=6LY^-$UK`9$6U3o;_jgcjEt2?fR2b7w0>>+h09eYR; z$4a$_l}tMJu#!o~{;OotvHvQWbnHDiM~Hd->DlCsgV^rw`J6Y;bX$zY#WB55+KWU}zAl1ay2k+KrW zd|uv-lCmcxbCfLn86}g6ct**%@MooHw2b^&C6Zn~r_^MQo>MaE=JV=KI`)EMN>^Tz zvJ#bBDU*J^sED$-7bJ0%OxQ+6lwNL>vJ&aaOG+l=d0E{_S6)#}>B^f@RxDk4P0EU; zD=(`%j{H?gERlu3Dn%vI&DWGny7{`iE0&JEE}6yBu@}{ybnFeql#acrWYV#>)LmE> z_=dh^XL^;Ql=Ui^bmlEBlV!ZEZo@Ldw-q-mOL<32rS2w3^Ov@q8f{rIcg4yUe4>(k zN2?&b`~sO3lY?`<1<#j~s_?+_dxwHPTfkF9{*F)fKp;m;Iq7ZvQjr0X)xwt}E}&+X z??QmgKaiph#$q!5kbQN8tL0a9_z`ase(cfYzrbVsS)t^65YyI$mLwoh`qpKr0N)LPp<^)r zRuztSmy8`-ktaSlFRsljgP9?%j#=ei@_m@$aOf8shkh4v_^Ox>*n(M%{G(MUWJ-Nx zJf_9>eVn=cCuv$ReSd%g0{z4z&WAp!V;*&}DTkOuAA1U2xy<{gvyz{9#QG--@H6dj z>LZU`^;eekAxiuem*httedq5mIe)w<`ALuo=UA>hH}I*4qkbX*VSgHA-8l>(l|Kto zCf(0Gx;ipM^|?<2=NnK%pIbU^gGV~nJ=Sg3kvc|AYJFZcbxb%`jLL5a*F}i(g||#T zzKzxL7hYA>#YpgFfC60n%Bx@;Nrt&Tzm_`Np{w-EKz%+C@^wySJXC&_Qwq1f4m69r zBI7^UQr(8IZ9@Yg?0?rk2hYFX+b(#`V95GDmlYgq=8cpe`Zt1ofgf`jQSQQ*ANx0h zh<@syg0%fKKuO^I+`k#*_gf!DADB_qp33tv)HqLn=aKYtxq&wIb1oq?f5~MRdHf}p zCbnpP&83Ns|7$Ky7YP=po9PS!0qPDOYr(M!G*)!tan$Qz9nI z__TzZG@qkQ?dK^)S<-(4PcJ#Xi5rHZ7Kwhfju+dhT?1LP+%o@y9kRTmhv>YjmqXM} z9)}Dea+ zl}SXkn}_Ho3r2SLl%B%~^0r4H(futiqU`A@C)gHf16aaVc51IcTdM8K#)S1)YVRDz z^iOK()3ih__hP>VaE9Qe^fyfCnE`)k+Wq5bsR^br zhugf8&$rN5+RfzFzVRS?^!ph4cY)-Xen1YI(+LscfuVtIahDz*OmrPnGs*aD{{~TJ zpkw}g=x2)wfhIMd6Yl$4(W$-6LPnbVGUUM#rbUkskJNJ0CUtluC=y+4^J*j8oS`HB zfB39%G*EI1t6<4Kiz#P&u`>S&J``IOqw^c1e@ zgO{<`!bw$mG-;xfAD^cxJ!)zLgc6&^<*=HJ#xRR*c?TgFs{C2}`^kR;2VE990kF;Gl;lf43W zyGFWMolA_~Dk(<=Qq0Yz)WodO6Xf5e#)eL++K=lewaI}ZngaR7ZtB>;LLtUW>(sG1 zwej*iRby-G7C@UY^6TBylpqVF8uh6fk4*Ay@HZhVT4h~+36`q$Sx{eu;l+Ha)-G4O zCfDu!D-o$l1CThz{yBKzpPHJ(6}imdgA}Q${oCPm(+;A$H_U$lTy5ScrzNR>Lwq(Y z70F>qKCndkH-QrescE?^;0Q>nF^2_tdObBMmoi5%EtfJUvp$zDPGO|#bLrwFNva{2 zl$&c~F3UJ)keZ%L%14b;4LQYJ^7Nb~b5JvKYI8)|hoj?sMpgIX(|W1dKC#?Wn&ZQzn%YyE<116|-ZE znbWi+moBGbNiJRXd1)?P9?h2K(&frO)uXGnN%XcHZ*4eR2d8=rX(}x>jmhu9D%JJ*;foyTQuM4@8Rk7NlD50-|)HViH^grV!!}$Wn-TZ1b z3M!7`A#O!kv{rR54R?^X4&WpQ`vo7TJ z$YS(&7GWP?l}8m4xfyc4RixF;p?ZNw)i)AgL-&IItzbL%!v3s4-oFV{{?&0aI_-!& z&@O+xDz(l-(FxFVU?OB1Fr|p|Z z;j;%nAo)L!o--cHK^yz{|L0M42z>Ab@|h7c0gjya$dkdkSgZW4zj6`KzxyNLcuDG? z{V~u!{?#7=7XBR%^j!weFTwxSF9Qi|>#q=g!QIxc4KmRlOu*VN8EhSiPX&vxwCo5L z@mZC0aAD|j?ZIl8ms7!7NMa^f3l)$F*20HPsrA8X_`oTZ&LKl=>vPzImmN7|aPyiR zHsR+rIrNZ}8+|f4I-req=8*9hK&k74ON8R}K1DgILUu#28rs?oJ~io!?&h6=s%itK z%O{k|qj)`!P_N5j9PHA5>b8s;zfW+JrA2c!QiRrVqa{*W z@bV^)LHUeUf|cfYnz{I~ga&oAqMLsY5zX`#Phr6pLHj-SFz($NXpiO%^)?VuJY*W< zSBuWD$}ckdhda%ge?>CYZN9^KYIgIZ8^MOAqtZ1q>HbMWMj z{#ecg?`;NNDBv3{)Iade1h&)= z7A)Ln%8cHkpJG56z!f#j_T;eS^g9&Slf#xSPObDG2()#oIzq6*_b&S0K(jbTAb-og znTozY(5AuBWe3{QWn-o63|g?-FWdDL!9QqvVAg{w`C*S-ugQ6W)Y}9Po5j%xX+PEc z*D~RIs`;Nqu%1!SKL2NxVNuXJ|Jy$W9sQC13qn4g@lfOx`BpyuUBgCT~6`ftV6i`n*kNQ+G&Z1D>XL!tG!Fc46K0RTH`JFa} z`9zRasq&;Ha--w|ANN?)3DWNZ@V?{e{usPz_jphdvh=4s$|}b))TcdKPRYEp$Y!4k zCh+vZf95Qe^;maINCxk$W&5+i+eFXw$B58e#*M);{%L{K%Q=j4i7)5Sl&3G>o>%peEiM;Mp#+WC6pgZ+OprV?3-}DLPuqJ<2AoZrtuoAOh993^l3+&o!!D2a# z^ah)k1IgRLLRy=px60BdfX_9~j#TA|j}KwqaYqebTY2#C@)2bRjiCQuTQP#K4?2kG zgCgd*t{zB6VqPXUXq@-#{{2X{_2+-ZYCFAzNP00MUlY8_g-TOC7O(%`31kF3SH0yS zIzL;0ned&E>5C)6RJ+L|(lJ@)vDketkZ3MM-VJ1UO_8Cueg_S|Mw!|aH@()bIVJM@ zvUhWEILpp6&wB&1^fS~4fzG+Lre;3wq(4N0{nIt9xI9_?kR5=_^BRw0AN1#}^VB8R zC_nx_7kI$=>GyHDxBWDbyK)X?e}5jpuAHCV5A~k_*^%Fm55VFP`R4(=lOJ^aGLT<9 zM*lL9EzaGq1KHvs?AL*8akKetAX{?Q{cRv)NPaqRKx3%SbY7q__KB8MscU<68_ znHAQ1sdRo0OS)soIU}7PXw7g+K9r;f1@e5uE>9&K?Ph`HYXz*kok1ioe}{8>(B|a0 zzqU*c`UlfR1&#jYba4=k{rS7iYyvA9t*n?Ht(`tKT3y@F*g#+4U)u+K{+hX~T2`n} z%hOw;{CtHGM{X->4tZ+SO{9rxr$rMoZ zdHLJ5g1C()nu!rVRd$<3Dh@7Ji7O*pNFF7$oNR2hZ4vQQnt58K0;PCu1+#5G z3fAhx=F2?s(VL|<3G;M?bh-@1+|_F{Pznk-mGh&5&}l$*W3H#^{oT#_OjRQjXa`)3 z(IE1g!d^DT3S(w+@(2HDdQ&l?TvD7RMgG>`dYs}GCzHZK>s-o4C^pK+6&-@pKB-(v zq4@OiBEuzegcD4H&#MT}8%%mSY+CM&?jdY5*y2RziC13-i)%;*p=waqCvx=7)5y^v zXt{w>>JDplRoB96stfT;x>TdcGU^Z+;w2SVC~-EO*+v|0gLa`X@nx%%AC3nmjDqtA zO>k;Ksl&_9_vz6Evlc5+BNX498}|rYbGo%s8tz4r+9O@@Iyr`iam zVQo1)dhNV!5~FfmF?=P_#%NgTSHTus+o%j*jIHIVey#LAyE zy@AHevYP6$hCFe{hE}q1a${Bf)au%@8scmNOCL2v=yG$YCh!OA(%Z^QGJa=65uu{K zs-cQD+wa}3kM4f0ubPx69-axwIn!#1UkxjwlK3}@lt5^@;60!%CXFvI4x`TYfU20( zP|uS)l{bhq@;*g#-(8AoE4d@=4!wLLl4MUUfq&qS;u2<7S2j+j*0nHB&^Z$+?DTHX z+MmPZhPn@HRz@3VMQ2phMJuL6E30P^Z!hpRBVL5lk=_&c$MQY&9$rPac?+wiP3IKc zS<^;NZ(dbdJuzBSRfdB0h644HS(B=wQ|l^`r-K#LP*Gi0Sy_)n?W>`x#_IY=UCr!h z*>v=u%_CB~aaMVCW3-}XN+jA?7p+D2C~!oPnwn^2W@RnXwzq>ur~8ril+xL7?J)CgCP69fB)m>lKXAr=oY9BT29 zz(Xw_{1|ER5Z6eHhZqiXdFUcAcbH47s+AFhT~>81hS9Lgff_Pd>~a91z+x{8ah7;l zaP z!(&V)Y{Km^HWMz5wV8-{tjQ$bVRD>FRAbXPlZRqZ8{jkBZ1al4v{@9IfxGrbVlz;^7LKII)7p z#ftj6Xng}3%;Cylb-6Qw9<88ArB*&hBWmoFCXZ1j(LSc=p}karHFYzoocbwLM5)r| zVk4Cpq{|cw&eha408u3P*C<^pSEPv(8=?^!vWZo$Sd*(KP1fcs99l(`N5sauNs~A& z6BQdjG>;mq()Y8=)M!+x5R_UuorZT=a+P7y@Oq+xD=|OP+Oj;_SWOS*G@g+0N+m>L zSPM=v?#I)8MOM}k)a_+Arage7HcW|{}B9!*Oc(yiCJ%&o47 zjK(8IofmDWsL^z<5nAZYs6d}-@G6j*2v9G3bOm`T(v4m&p(wJ^!!4($6b!F36qgT*P^Osx?)t+ELVzZn&nDSNwZxks%W+=MFkz_N>M#?+*>q~ zIWCzi;yCvn^>DmqSJw0TN{$gHDiVc5b4XOJYUC(&f>&m&uTE69l$KuNoB;T=%DURd zin4l)dr<)SmDLRx2Qh;;NuXkSn15**Ze@uwh&J-dAjVBT-N4}}ZW5IUZ7yBr=fl9< z2z9F6DiDI6lr$Mq=mY21)9Y1D-=#@~~S)7>I& zcMC`$&aQyMJgLBs6Z0gWy70`hX!-0&Sp!DGg$gaBvhI1LhmD|hEPy8aLu@r!O?R;A zG_1?T^+Fe`oJh~6Q>T(~(qE+P7DuN$_|&onIK>gMX;*}NEp}9pf_fV2I0NaGP7yTl zOsXoYcfCK!RjI6>5pAfUmo1}IOFqd_Yt*atQ(XG2XvI`TJlRCO_7}T0RM9HzQ%nIp zy3oF}>_1BkW0h5?NQ!KU!6uMf(^7+2HZ@XH-8h|}R+hS4C#2EJ_^GarBO9Y-0eWMi z71Qgf{AB@pqm^vBBctadp3j#BSfW2%!Sl}Y09lEW#T-kGj(4L}Da!+7I%Tmyo6_^s z0`-*4t4C{jMRPy8rVM|r14ru1DbhL~aavs~v>aqt&TxqJ*c2lZ zRN9#?k5&`r7QmS%;^ySi+!9-ggr zdB~=$*jATGVNtCTj-GvvORktfaa72V&o$_iqScjU3O~n>OZ(@#cB&>t%gbmIl7jR6 zf;w8Fa^dH>*3cXfC$&!U>U>wp5pdSecQm-ps0i8s*$oIQ$w4 zTNbPwTj7WzG;Tzzs%7LC7;rtM@y(!^;~kXV_k|yyP`{6Eovjxkx9`Cet^ByQ8D6ctglAHy42CBX_!h4k*9sa zuXJ>(YiH1QqD=V}E}NDl6?OGhC7kh#9Ci)i^|MMKA}g19_zG7Uxx%BPY$@60j!c!# zrCjbriF11nbwd&jgmSX`czKlQTXpEL`K`mS916t&d!SEMDtpW2Jb5kBx6^(;YrG zJ`74<=Vv1w*ZJAV$Mt?T5^{r|jUcc0!|=P)Zv?@2`q>Dl%g;tmy8LWHZ#Bs@d#Rea z(IgYBTh>h$UAL@m3s*B*w`rzvR<&w}H<>V5H`?LNmLanp-e}1xc@yYn%b0APxA?fI zjaz(NRK~476xIJ9p9R#=e|%ij#GO7azTHZ%_mNSXxB1B2W^eP8!M@$kMkU|rWAhuV zJNz)(>;|6^-WAy3XCv~v{A`4Nm!D0sXZRT=Q9({+inFqthn+o*68M@?inQd_%erTs zB50*j(O5GHPe_kDAog>366ELg`;00fS_~)e@sasy{T@G?$oHD$s`7ezhsXo(y23oC6ET33C zu`Wt6)YX%<9*?+QZk6>IrW(jkOXq%%4&tWGVUGHKucF+Zd%#1Nsl^Mq^aCC?3+MqI z^XY>gl^R;N;VlYYl}&FT@p?mCLH_9#;Dd%iqSFH>ZOhTBg_cF6^^ix4mcHh)_#s1; z>$#3r1G1VQw)Avq4;v~}8eT}wAZMtg|9Uh?65*WJL?H8MQOhvBc+{gPwJK^*Pmg-l zybHm{JZklFBl58v8tmcY9-&ME#hS@}yst@+DQD@~AqFYCj+Gh%3l4 ztx#!8h@KKr2~T+}%f}LT!Tq#H*^u(;EbBBAkB3 z;i6^G!^3#_c=n3J25!6pe%TdhzcE?8YTFqt?Y!!zW2XL}qKC0(r=Eabb4>7KV&i0b zk2Sfj1`)mPh~x_c_eIHTe*0Kuz3#we)9FR`#Ig$Y%>IUBi3QRecd<8>3RRN5vDd4V z*juNW_Xa3nyYDTB?HWRRe9z&#+emr?Y?CXSqI>uh( zJEnp;&c0(RI9rFCOuD&O@vb4zJAQAtCiH~xt_#gFHv!*w)t#+0z0vo+t7FLIF4l(u zGQD;8UVu%#b@xGlOz)$95MWbp9)1|8Cw=)SK&H3+J_@i|qITjw4%Cx2Kk@3hTYevV z1F~&~N&VWPlEB#t{K}*Qm79`ZnPg)>@kfI0g)-~eY5B$y$=$*gsT{F6meecrTO}-yo9zv9Z z@DC2tyA$=JOEx$8es<_|R?pbv`^ly2Ezq9~s=0mmqk$_E(v_bL8=n2ZU;F}RKkygF zns0aSS69th2=cP-S4W4N0555H(ej(4VeAL~=CHX0x#ye7cTjudEtBVnc*Uree;MH# zr{n0}UBZlTb(~$oOunJv>;`5AIVhdAbocc#n>i+oeLc=>CeKmvZ0ltPIV$$XVrHyE_YQj z+ce2P= zl4VLgnsU!AQ|3{io?xt>Gi4qPW4|y{ZmFroZl>I$;V$X0*2`3Qm7Ikj)_a)>kEXGa zn5p!r@qQfn$(w4KN{^QDP$WmtDvzqHv_>kd%ByB>@nt4@bnJb)%tVi>XXh|8$*Zbf zNq-j7!;`V0mYL+(af;A;mYK;OJN8~+X0oHoCpr0ug0mNxsdkjj-M&n#Ws!4Ws5i_+W*V*jL)Oy(Nu3l!U$#-@EGYt-3?R&}n zs!Y8}ced0rH4dGER4+<0btb6y1~U;8HMapX^`=Dc%VnlTbS;`Yewk?|S?~B|8XPkD zp*Qg|jSlMFtjjbyMpTq?cP}%;QLwk#GBaEiy}yTfqsGy2wkt7jO!vc>H)i@_%o{UZ z+kEcV*~ZJvh9tjYGNy)E4$Io2%glDndUy5id8?Gv =Y!B9L4tT!rX-!O9=E*Di) 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 literal 0 HcmV?d00001 diff --git a/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1.ngo b/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1.ngo new file mode 100644 index 0000000000000000000000000000000000000000..56d290ed24de9f629763173fd4b3994aad9fe5cb GIT binary patch literal 132921 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

RTU_|iC()L04e>}^H>G4Qxu^c} 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"0b1",D_IB_PWDNB=>"0b1", + D_XGE_MODE=>"0b0",D_LOW_MARK=>"0d4",D_HIGH_MARK=>"0d12",D_BUS8BIT_SEL=>"0b0", + D_CDR_LOL_SET=>"0b00",D_TXPLL_PWDNB=>"0b1",D_BITCLK_LOCAL_EN=>"0b1", + D_BITCLK_ND_EN=>"0b0",D_BITCLK_FROM_ND_EN=>"0b0",D_SYNC_LOCAL_EN=>"0b1", + D_SYNC_ND_EN=>"0b0",CH1_UC_MODE=>"0b1",CH1_PCIE_MODE=>"0b0",CH1_RIO_MODE=>"0b0", + CH1_WA_MODE=>"0b0",CH1_INVERT_RX=>"0b0",CH1_INVERT_TX=>"0b0",CH1_PRBS_SELECTION=>"0b0", + CH1_GE_AN_ENABLE=>"0b0",CH1_PRBS_LOCK=>"0b0",CH1_PRBS_ENABLE=>"0b0", + CH1_ENABLE_CG_ALIGN=>"0b1",CH1_TX_GEAR_MODE=>"0b0",CH1_RX_GEAR_MODE=>"0b0", + CH1_PCS_DET_TIME_SEL=>"0b00",CH1_PCIE_EI_EN=>"0b0",CH1_TX_GEAR_BYPASS=>"0b0", + CH1_ENC_BYPASS=>"0b0",CH1_SB_BYPASS=>"0b0",CH1_RX_SB_BYPASS=>"0b0", + CH1_WA_BYPASS=>"0b0",CH1_DEC_BYPASS=>"0b0",CH1_CTC_BYPASS=>"0b1", + CH1_RX_GEAR_BYPASS=>"0b0",CH1_LSM_DISABLE=>"0b0",CH1_MATCH_2_ENABLE=>"0b0", + CH1_MATCH_4_ENABLE=>"0b1",CH1_MIN_IPG_CNT=>"0b11",CH1_CC_MATCH_1=>"0x1BC", + CH1_CC_MATCH_2=>"0x11C",CH1_CC_MATCH_3=>"0x11C",CH1_CC_MATCH_4=>"0x11C", + CH1_UDF_COMMA_MASK=>"0x0ff",CH1_UDF_COMMA_A=>"0x083",CH1_UDF_COMMA_B=>"0x07C", + CH1_RX_DCO_CK_DIV=>"0b000",CH1_RCV_DCC_EN=>"0b0",CH1_TPWDNB=>"0b1", + CH1_RATE_MODE_TX=>"0b0",CH1_RTERM_TX=>"0d19",CH1_TX_CM_SEL=>"0b00", + CH1_TDRV_PRE_EN=>"0b0",CH1_TDRV_SLICE0_SEL=>"0b00",CH1_TDRV_SLICE1_SEL=>"0b00", + CH1_TDRV_SLICE2_SEL=>"0b01",CH1_TDRV_SLICE3_SEL=>"0b01",CH1_TDRV_SLICE4_SEL=>"0b01", + CH1_TDRV_SLICE5_SEL=>"0b00",CH1_TDRV_SLICE0_CUR=>"0b000",CH1_TDRV_SLICE1_CUR=>"0b000", + CH1_TDRV_SLICE2_CUR=>"0b11",CH1_TDRV_SLICE3_CUR=>"0b11",CH1_TDRV_SLICE4_CUR=>"0b01", + CH1_TDRV_SLICE5_CUR=>"0b00",CH1_TDRV_DAT_SEL=>"0b00",CH1_TX_DIV11_SEL=>"0b0", + CH1_RPWDNB=>"0b1",CH1_RATE_MODE_RX=>"0b0",CH1_RX_DIV11_SEL=>"0b0", + CH1_SEL_SD_RX_CLK=>"0b1",CH1_FF_RX_H_CLK_EN=>"0b0",CH1_FF_RX_F_CLK_DIS=>"0b0", + CH1_FF_TX_H_CLK_EN=>"0b0",CH1_FF_TX_F_CLK_DIS=>"0b0",CH1_TDRV_POST_EN=>"0b0", + CH1_TX_POST_SIGN=>"0b0",CH1_TX_PRE_SIGN=>"0b0",CH1_REQ_LVL_SET=>"0b00", + CH1_REQ_EN=>"0b0",CH1_RTERM_RX=>"0d22",CH1_RXTERM_CM=>"0b11",CH1_PDEN_SEL=>"0b1", + CH1_RXIN_CM=>"0b11",CH1_LEQ_OFFSET_SEL=>"0b0",CH1_LEQ_OFFSET_TRIM=>"0b000", + CH1_RLOS_SEL=>"0b1",CH1_RX_LOS_LVL=>"0b000",CH1_RX_LOS_CEQ=>"0b11", + CH1_RX_LOS_HYST_EN=>"0b0",CH1_RX_LOS_EN=>"0b1",CH1_LDR_RX2CORE_SEL=>"0b0", + CH1_LDR_CORE2TX_SEL=>"0b0",D_TX_MAX_RATE=>"2",CH1_CDR_MAX_RATE=>"2", + CH1_TXAMPLITUDE=>"0d800",CH1_TXDEPRE=>"DISABLED",CH1_TXDEPOST=>"DISABLED", + CH1_PROTOCOL=>"G8B10B",D_ISETLOS=>"0d0",D_SETIRPOLY_AUX=>"0b10",D_SETICONST_AUX=>"0b01", + D_SETIRPOLY_CH=>"0b10",D_SETICONST_CH=>"0b10",D_REQ_ISET=>"0b001", + D_PD_ISET=>"0b00",D_DCO_CALIB_TIME_SEL=>"0b00",CH1_CDR_CNT4SEL=>"0b00", + CH1_CDR_CNT8SEL=>"0b00",CH1_DCOATDCFG=>"0b00",CH1_DCOATDDLY=>"0b00", + CH1_DCOBYPSATD=>"0b1",CH1_DCOCALDIV=>"0b000",CH1_DCOCTLGI=>"0b011", + CH1_DCODISBDAVOID=>"0b0",CH1_DCOFLTDAC=>"0b00",CH1_DCOFTNRG=>"0b001", + CH1_DCOIOSTUNE=>"0b010",CH1_DCOITUNE=>"0b00",CH1_DCOITUNE4LSB=>"0b010", + CH1_DCOIUPDNX2=>"0b1",CH1_DCONUOFLSB=>"0b100",CH1_DCOSCALEI=>"0b01", + CH1_DCOSTARTVAL=>"0b010",CH1_DCOSTEP=>"0b11",CH1_BAND_THRESHOLD=>"0d0", + CH1_AUTO_FACQ_EN=>"0b1",CH1_AUTO_CALIB_EN=>"0b1",CH1_CALIB_CK_MODE=>"0b0", + CH1_REG_BAND_OFFSET=>"0d0",CH1_REG_BAND_SEL=>"0d0",CH1_REG_IDAC_SEL=>"0d0", + CH1_REG_IDAC_EN=>"0b0",D_CMUSETISCL4VCO=>"0b000",D_CMUSETI4VCO=>"0b00", + D_CMUSETINITVCT=>"0b00",D_CMUSETZGM=>"0b000",D_CMUSETP2AGM=>"0b000", + D_CMUSETP1GM=>"0b000",D_CMUSETI4CPZ=>"0d3",D_CMUSETI4CPP=>"0d3",D_CMUSETICP4Z=>"0b101", + D_CMUSETICP4P=>"0b01",D_CMUSETBIASI=>"0b00",D_SETPLLRC=>"0d1",CH1_RX_RATE_SEL=>"0d10", + D_REFCK_MODE=>"0b001",D_TX_VCO_CK_DIV=>"0b000",D_PLL_LOL_SET=>"0b01", + D_RG_EN=>"0b0",D_RG_SET=>"0b00") + port map (CH0_HDINP=>n106,CH1_HDINP=>hdinp,CH0_HDINN=>n106,CH1_HDINN=>hdinn, + D_TXBIT_CLKP_FROM_ND=>n47,D_TXBIT_CLKN_FROM_ND=>n47,D_SYNC_ND=>n47,D_TXPLL_LOL_FROM_ND=>n47, + CH0_RX_REFCLK=>n106,CH1_RX_REFCLK=>rxrefclk,CH0_FF_RXI_CLK=>n105,CH1_FF_RXI_CLK=>rx_pclk_c, + CH0_FF_TXI_CLK=>n105,CH1_FF_TXI_CLK=>tx_pclk_c,CH0_FF_EBRD_CLK=>n105, + CH1_FF_EBRD_CLK=>n48,CH0_FF_TX_D_0=>n106,CH1_FF_TX_D_0=>txdata(0),CH0_FF_TX_D_1=>n106, + CH1_FF_TX_D_1=>txdata(1),CH0_FF_TX_D_2=>n106,CH1_FF_TX_D_2=>txdata(2), + CH0_FF_TX_D_3=>n106,CH1_FF_TX_D_3=>txdata(3),CH0_FF_TX_D_4=>n106,CH1_FF_TX_D_4=>txdata(4), + CH0_FF_TX_D_5=>n106,CH1_FF_TX_D_5=>txdata(5),CH0_FF_TX_D_6=>n106,CH1_FF_TX_D_6=>txdata(6), + CH0_FF_TX_D_7=>n106,CH1_FF_TX_D_7=>txdata(7),CH0_FF_TX_D_8=>n106,CH1_FF_TX_D_8=>tx_k(0), + CH0_FF_TX_D_9=>n106,CH1_FF_TX_D_9=>tx_force_disp(0),CH0_FF_TX_D_10=>n106, + CH1_FF_TX_D_10=>tx_disp_sel(0),CH0_FF_TX_D_11=>n106,CH1_FF_TX_D_11=>n47, + CH0_FF_TX_D_12=>n106,CH1_FF_TX_D_12=>n106,CH0_FF_TX_D_13=>n106,CH1_FF_TX_D_13=>n106, + CH0_FF_TX_D_14=>n106,CH1_FF_TX_D_14=>n106,CH0_FF_TX_D_15=>n106,CH1_FF_TX_D_15=>n106, + CH0_FF_TX_D_16=>n106,CH1_FF_TX_D_16=>n106,CH0_FF_TX_D_17=>n106,CH1_FF_TX_D_17=>n106, + CH0_FF_TX_D_18=>n106,CH1_FF_TX_D_18=>n106,CH0_FF_TX_D_19=>n106,CH1_FF_TX_D_19=>n106, + CH0_FF_TX_D_20=>n106,CH1_FF_TX_D_20=>n106,CH0_FF_TX_D_21=>n106,CH1_FF_TX_D_21=>n106, + CH0_FF_TX_D_22=>n106,CH1_FF_TX_D_22=>n106,CH0_FF_TX_D_23=>n106,CH1_FF_TX_D_23=>n47, + CH0_FFC_EI_EN=>n106,CH1_FFC_EI_EN=>tx_idle_c,CH0_FFC_PCIE_DET_EN=>n106, + CH1_FFC_PCIE_DET_EN=>n47,CH0_FFC_PCIE_CT=>n106,CH1_FFC_PCIE_CT=>n47,CH0_FFC_SB_INV_RX=>n106, + CH1_FFC_SB_INV_RX=>n106,CH0_FFC_ENABLE_CGALIGN=>n106,CH1_FFC_ENABLE_CGALIGN=>n106, + CH0_FFC_SIGNAL_DETECT=>n106,CH1_FFC_SIGNAL_DETECT=>signal_detect_c,CH0_FFC_FB_LOOPBACK=>n106, + CH1_FFC_FB_LOOPBACK=>n47,CH0_FFC_SB_PFIFO_LP=>n106,CH1_FFC_SB_PFIFO_LP=>n47, + CH0_FFC_PFIFO_CLR=>n106,CH1_FFC_PFIFO_CLR=>n47,CH0_FFC_RATE_MODE_RX=>n106, + CH1_FFC_RATE_MODE_RX=>n106,CH0_FFC_RATE_MODE_TX=>n106,CH1_FFC_RATE_MODE_TX=>n106, + CH0_FFC_DIV11_MODE_RX=>n106,CH1_FFC_DIV11_MODE_RX=>n47,CH0_FFC_DIV11_MODE_TX=>n106, + CH1_FFC_DIV11_MODE_TX=>n47,CH0_FFC_RX_GEAR_MODE=>n106,CH1_FFC_RX_GEAR_MODE=>n47, + CH0_FFC_TX_GEAR_MODE=>n106,CH1_FFC_TX_GEAR_MODE=>n47,CH0_FFC_LDR_CORE2TX_EN=>n106, + CH1_FFC_LDR_CORE2TX_EN=>n106,CH0_FFC_LANE_TX_RST=>n106,CH1_FFC_LANE_TX_RST=>rsl_tx_pcs_rst_c, + CH0_FFC_LANE_RX_RST=>n106,CH1_FFC_LANE_RX_RST=>rsl_rx_pcs_rst_c,CH0_FFC_RRST=>n106, + CH1_FFC_RRST=>rsl_rx_serdes_rst_c,CH0_FFC_TXPWDNB=>n106,CH1_FFC_TXPWDNB=>tx_pwrup_c, + CH0_FFC_RXPWDNB=>n106,CH1_FFC_RXPWDNB=>rx_pwrup_c,CH0_LDR_CORE2TX=>n106, + CH1_LDR_CORE2TX=>n106,D_SCIWDATA0=>sci_wrdata(0),D_SCIWDATA1=>sci_wrdata(1), + D_SCIWDATA2=>sci_wrdata(2),D_SCIWDATA3=>sci_wrdata(3),D_SCIWDATA4=>sci_wrdata(4), + D_SCIWDATA5=>sci_wrdata(5),D_SCIWDATA6=>sci_wrdata(6),D_SCIWDATA7=>sci_wrdata(7), + D_SCIADDR0=>sci_addr(0),D_SCIADDR1=>sci_addr(1),D_SCIADDR2=>sci_addr(2), + D_SCIADDR3=>sci_addr(3),D_SCIADDR4=>sci_addr(4),D_SCIADDR5=>sci_addr(5), + D_SCIENAUX=>sci_en_dual,D_SCISELAUX=>sci_sel_dual,CH0_SCIEN=>n106,CH1_SCIEN=>sci_en, + CH0_SCISEL=>n106,CH1_SCISEL=>sci_sel,D_SCIRD=>sci_rd,D_SCIWSTN=>sci_wrn, + D_CYAWSTN=>cyawstn,D_FFC_SYNC_TOGGLE=>n106,D_FFC_DUAL_RST=>rsl_rst_dual_c, + D_FFC_MACRO_RST=>rsl_serdes_rst_dual_c,D_FFC_MACROPDB=>serdes_pdb,D_FFC_TRST=>rsl_tx_serdes_rst_c, + CH0_FFC_CDR_EN_BITSLIP=>n106,CH1_FFC_CDR_EN_BITSLIP=>n47,D_SCAN_ENABLE=>n47, + D_SCAN_IN_0=>n47,D_SCAN_IN_1=>n47,D_SCAN_IN_2=>n47,D_SCAN_IN_3=>n47, + D_SCAN_IN_4=>n47,D_SCAN_IN_5=>n47,D_SCAN_IN_6=>n47,D_SCAN_IN_7=>n47, + D_SCAN_MODE=>n47,D_SCAN_RESET=>n47,D_CIN0=>n47,D_CIN1=>n47,D_CIN2=>n47, + D_CIN3=>n47,D_CIN4=>n47,D_CIN5=>n47,D_CIN6=>n47,D_CIN7=>n47,D_CIN8=>n47, + D_CIN9=>n47,D_CIN10=>n47,D_CIN11=>n47,CH0_HDOUTP=>n50,CH1_HDOUTP=>hdoutp, + CH0_HDOUTN=>n51,CH1_HDOUTN=>hdoutn,D_TXBIT_CLKP_TO_ND=>n1,D_TXBIT_CLKN_TO_ND=>n2, + D_SYNC_PULSE2ND=>n3,D_TXPLL_LOL_TO_ND=>n4,CH0_FF_RX_F_CLK=>n52,CH1_FF_RX_F_CLK=>n5, + CH0_FF_RX_H_CLK=>n53,CH1_FF_RX_H_CLK=>n6,CH0_FF_TX_F_CLK=>n54,CH1_FF_TX_F_CLK=>n7, + CH0_FF_TX_H_CLK=>n55,CH1_FF_TX_H_CLK=>n8,CH0_FF_RX_PCLK=>n56,CH1_FF_RX_PCLK=>rx_pclk_c, + CH0_FF_TX_PCLK=>n57,CH1_FF_TX_PCLK=>tx_pclk_c,CH0_FF_RX_D_0=>n58,CH1_FF_RX_D_0=>rxdata(0), + CH0_FF_RX_D_1=>n59,CH1_FF_RX_D_1=>rxdata(1),CH0_FF_RX_D_2=>n60,CH1_FF_RX_D_2=>rxdata(2), + CH0_FF_RX_D_3=>n61,CH1_FF_RX_D_3=>rxdata(3),CH0_FF_RX_D_4=>n62,CH1_FF_RX_D_4=>rxdata(4), + CH0_FF_RX_D_5=>n63,CH1_FF_RX_D_5=>rxdata(5),CH0_FF_RX_D_6=>n64,CH1_FF_RX_D_6=>rxdata(6), + CH0_FF_RX_D_7=>n65,CH1_FF_RX_D_7=>rxdata(7),CH0_FF_RX_D_8=>n66,CH1_FF_RX_D_8=>rx_k(0), + CH0_FF_RX_D_9=>n67,CH1_FF_RX_D_9=>rx_disp_err(0),CH0_FF_RX_D_10=>n68, + CH1_FF_RX_D_10=>rx_cv_err(0),CH0_FF_RX_D_11=>n69,CH1_FF_RX_D_11=>n9,CH0_FF_RX_D_12=>n70, + CH1_FF_RX_D_12=>n71,CH0_FF_RX_D_13=>n72,CH1_FF_RX_D_13=>n73,CH0_FF_RX_D_14=>n74, + CH1_FF_RX_D_14=>n75,CH0_FF_RX_D_15=>n76,CH1_FF_RX_D_15=>n77,CH0_FF_RX_D_16=>n78, + CH1_FF_RX_D_16=>n79,CH0_FF_RX_D_17=>n80,CH1_FF_RX_D_17=>n81,CH0_FF_RX_D_18=>n82, + CH1_FF_RX_D_18=>n83,CH0_FF_RX_D_19=>n84,CH1_FF_RX_D_19=>n85,CH0_FF_RX_D_20=>n86, + CH1_FF_RX_D_20=>n87,CH0_FF_RX_D_21=>n88,CH1_FF_RX_D_21=>n89,CH0_FF_RX_D_22=>n90, + CH1_FF_RX_D_22=>n91,CH0_FF_RX_D_23=>n92,CH1_FF_RX_D_23=>n10,CH0_FFS_PCIE_DONE=>n93, + CH1_FFS_PCIE_DONE=>n11,CH0_FFS_PCIE_CON=>n94,CH1_FFS_PCIE_CON=>n12,CH0_FFS_RLOS=>n95, + CH1_FFS_RLOS=>rx_los_low_s_c,CH0_FFS_LS_SYNC_STATUS=>n96,CH1_FFS_LS_SYNC_STATUS=>lsm_status_s, + CH0_FFS_CC_UNDERRUN=>n97,CH1_FFS_CC_UNDERRUN=>n13,CH0_FFS_CC_OVERRUN=>n98, + CH1_FFS_CC_OVERRUN=>n14,CH0_FFS_RXFBFIFO_ERROR=>n99,CH1_FFS_RXFBFIFO_ERROR=>n15, + CH0_FFS_TXFBFIFO_ERROR=>n100,CH1_FFS_TXFBFIFO_ERROR=>n16,CH0_FFS_RLOL=>n101, + CH1_FFS_RLOL=>rx_cdr_lol_s_c,CH0_FFS_SKP_ADDED=>n102,CH1_FFS_SKP_ADDED=>n17, + CH0_FFS_SKP_DELETED=>n103,CH1_FFS_SKP_DELETED=>n18,CH0_LDR_RX2CORE=>n104, + CH1_LDR_RX2CORE=>n115,D_SCIRDATA0=>sci_rddata(0),D_SCIRDATA1=>sci_rddata(1), + D_SCIRDATA2=>sci_rddata(2),D_SCIRDATA3=>sci_rddata(3),D_SCIRDATA4=>sci_rddata(4), + D_SCIRDATA5=>sci_rddata(5),D_SCIRDATA6=>sci_rddata(6),D_SCIRDATA7=>sci_rddata(7), + D_SCIINT=>sci_int,D_SCAN_OUT_0=>n19,D_SCAN_OUT_1=>n20,D_SCAN_OUT_2=>n21, + D_SCAN_OUT_3=>n22,D_SCAN_OUT_4=>n23,D_SCAN_OUT_5=>n24,D_SCAN_OUT_6=>n25, + D_SCAN_OUT_7=>n26,D_COUT0=>n27,D_COUT1=>n28,D_COUT2=>n29,D_COUT3=>n30, + D_COUT4=>n31,D_COUT5=>n32,D_COUT6=>n33,D_COUT7=>n34,D_COUT8=>n35,D_COUT9=>n36, + D_COUT10=>n37,D_COUT11=>n38,D_COUT12=>n39,D_COUT13=>n40,D_COUT14=>n41, + D_COUT15=>n42,D_COUT16=>n43,D_COUT17=>n44,D_COUT18=>n45,D_COUT19=>n46, + D_REFCLKI=>pll_refclki,D_FFS_PLOL=>n49); + n48 <= '1' ; + n47 <= '0' ; + n1 <= 'Z' ; + n2 <= 'Z' ; + n3 <= 'Z' ; + n4 <= 'Z' ; + n5 <= 'Z' ; + n6 <= 'Z' ; + n7 <= 'Z' ; + n8 <= 'Z' ; + n9 <= 'Z' ; + n10 <= 'Z' ; + n11 <= 'Z' ; + n12 <= 'Z' ; + n13 <= 'Z' ; + n14 <= 'Z' ; + n15 <= 'Z' ; + n16 <= 'Z' ; + n17 <= 'Z' ; + n18 <= 'Z' ; + n19 <= 'Z' ; + n20 <= 'Z' ; + n21 <= 'Z' ; + n22 <= 'Z' ; + n23 <= 'Z' ; + n24 <= 'Z' ; + n25 <= 'Z' ; + n26 <= 'Z' ; + n27 <= 'Z' ; + n28 <= 'Z' ; + n29 <= 'Z' ; + n30 <= 'Z' ; + n31 <= 'Z' ; + n32 <= 'Z' ; + n33 <= 'Z' ; + n34 <= 'Z' ; + n35 <= 'Z' ; + n36 <= 'Z' ; + n37 <= 'Z' ; + n38 <= 'Z' ; + n39 <= 'Z' ; + n40 <= 'Z' ; + n41 <= 'Z' ; + n42 <= 'Z' ; + n43 <= 'Z' ; + n44 <= 'Z' ; + n45 <= 'Z' ; + n46 <= 'Z' ; + n49 <= 'Z' ; + n106 <= '0' ; + n105 <= '1' ; + n50 <= 'Z' ; + n51 <= 'Z' ; + n52 <= 'Z' ; + n53 <= 'Z' ; + n54 <= 'Z' ; + n55 <= 'Z' ; + n56 <= 'Z' ; + n57 <= 'Z' ; + n58 <= 'Z' ; + n59 <= 'Z' ; + n60 <= 'Z' ; + n61 <= 'Z' ; + n62 <= 'Z' ; + n63 <= 'Z' ; + n64 <= 'Z' ; + n65 <= 'Z' ; + n66 <= 'Z' ; + n67 <= 'Z' ; + n68 <= 'Z' ; + n69 <= 'Z' ; + n70 <= 'Z' ; + n71 <= 'Z' ; + n72 <= 'Z' ; + n73 <= 'Z' ; + n74 <= 'Z' ; + n75 <= 'Z' ; + n76 <= 'Z' ; + n77 <= 'Z' ; + n78 <= 'Z' ; + n79 <= 'Z' ; + n80 <= 'Z' ; + n81 <= 'Z' ; + n82 <= 'Z' ; + n83 <= 'Z' ; + n84 <= 'Z' ; + n85 <= 'Z' ; + n86 <= 'Z' ; + n87 <= 'Z' ; + n88 <= 'Z' ; + n89 <= 'Z' ; + n90 <= 'Z' ; + n91 <= 'Z' ; + n92 <= 'Z' ; + n93 <= 'Z' ; + n94 <= 'Z' ; + n95 <= 'Z' ; + n96 <= 'Z' ; + n97 <= 'Z' ; + n98 <= 'Z' ; + n99 <= 'Z' ; + n100 <= 'Z' ; + n101 <= 'Z' ; + n102 <= 'Z' ; + n103 <= 'Z' ; + n104 <= 'Z' ; + n115 <= 'Z' ; + rsl_inst: component serdes1_1rsl_core port map (rui_rst=>rsl_rst,rui_serdes_rst_dual_c=>serdes_rst_dual_c, + rui_rst_dual_c=>rst_dual_c,rui_rsl_disable=>rsl_disable,rui_tx_ref_clk=>pll_refclki, + rui_tx_serdes_rst_c=>tx_serdes_rst_c,rui_tx_pcs_rst_c(3)=>gnd, + rui_tx_pcs_rst_c(2)=>gnd,rui_tx_pcs_rst_c(1)=>gnd,rui_tx_pcs_rst_c(0)=>tx_pcs_rst_c, + rdi_pll_lol=>pll_lol,rui_rx_ref_clk=>rxrefclk,rui_rx_serdes_rst_c(3)=>gnd, + rui_rx_serdes_rst_c(2)=>gnd,rui_rx_serdes_rst_c(1)=>gnd,rui_rx_serdes_rst_c(0)=>rx_serdes_rst_c, + rui_rx_pcs_rst_c(3)=>gnd,rui_rx_pcs_rst_c(2)=>gnd,rui_rx_pcs_rst_c(1)=>gnd, + rui_rx_pcs_rst_c(0)=>rx_pcs_rst_c,rdi_rx_los_low_s(3)=>gnd,rdi_rx_los_low_s(2)=>gnd, + rdi_rx_los_low_s(1)=>gnd,rdi_rx_los_low_s(0)=>rx_los_low_s_c,rdi_rx_cdr_lol_s(3)=>gnd, + rdi_rx_cdr_lol_s(2)=>gnd,rdi_rx_cdr_lol_s(1)=>gnd,rdi_rx_cdr_lol_s(0)=>rx_cdr_lol_s_c, + rdo_serdes_rst_dual_c=>rsl_serdes_rst_dual_c,rdo_rst_dual_c=>rsl_rst_dual_c, + ruo_tx_rdy=>rsl_tx_rdy,rdo_tx_serdes_rst_c=>rsl_tx_serdes_rst_c, + rdo_tx_pcs_rst_c(3)=>n116,rdo_tx_pcs_rst_c(2)=>n117,rdo_tx_pcs_rst_c(1)=>n118, + rdo_tx_pcs_rst_c(0)=>rsl_tx_pcs_rst_c,ruo_rx_rdy=>rsl_rx_rdy,rdo_rx_serdes_rst_c(3)=>n119, + rdo_rx_serdes_rst_c(2)=>n120,rdo_rx_serdes_rst_c(1)=>n121,rdo_rx_serdes_rst_c(0)=>rsl_rx_serdes_rst_c, + rdo_rx_pcs_rst_c(3)=>n122,rdo_rx_pcs_rst_c(2)=>n123,rdo_rx_pcs_rst_c(1)=>\_Z\, + rdo_rx_pcs_rst_c(0)=>rsl_rx_pcs_rst_c); + n114 <= '1' ; + n113 <= '0' ; + gnd <= '0' ; + pwr <= '1' ; + n116 <= 'Z' ; + n117 <= 'Z' ; + n118 <= 'Z' ; + n119 <= 'Z' ; + n120 <= 'Z' ; + n121 <= 'Z' ; + n122 <= 'Z' ; + n123 <= 'Z' ; + \_Z\ <= 'Z' ; + +end architecture v1; + diff --git a/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1_ngd.asd b/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1_ngd.asd new file mode 100644 index 0000000..c265c78 --- /dev/null +++ b/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1_ngd.asd @@ -0,0 +1 @@ +[ActiveSupport NGD] diff --git a/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1_softlogic.v b/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1_softlogic.v new file mode 100644 index 0000000..9181f46 --- /dev/null +++ b/media_interfaces/ecp5/dual_serdes_1/serdes1/serdes1_softlogic.v @@ -0,0 +1,943 @@ + + +// =========================================================================== +// >>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +// --------------------------------------------------------------------------- +// Copyright (c) 2016 by Lattice Semiconductor Corporation +// ALL RIGHTS RESERVED +// ------------------------------------------------------------------ +// +// Permission: +// +// Lattice SG Pte. Ltd. grants permission to use this code +// pursuant to the terms of the Lattice Reference Design License Agreement. +// +// +// Disclaimer: +// +// This VHDL or Verilog source code is intended as a design reference +// which illustrates how these types of functions can be implemented. +// It is the user's responsibility to verify their design for +// consistency and functionality through the use of formal +// verification methods. Lattice provides no warranty +// regarding the use or functionality of this code. +// +// --------------------------------------------------------------------------- +// +// Lattice SG Pte. Ltd. +// 101 Thomson Road, United Square #07-02 +// Singapore 307591 +// +// +// TEL: 1-800-Lattice (USA and Canada) +// +65-6631-2000 (Singapore) +// +1-503-268-8001 (other locations) +// +// web: http://www.latticesemi.com/ +// email: techsupport@latticesemi.com +// +// --------------------------------------------------------------------------- +// +// ============================================================================= +// FILE DETAILS +// Project : RSL- Reset Sequence Logic +// File : rsl_core.v +// Title : Top-level file for RSL +// Dependencies : 1. +// : 2. +// Description : +// ============================================================================= +// REVISION HISTORY +// Version : 1.0 +// Author(s) : BM +// Mod. Date : October 28, 2013 +// Changes Made : Initial Creation +// ----------------------------------------------------------------------------- +// Version : 1.1 +// Author(s) : BM +// Mod. Date : November 06, 2013 +// Changes Made : Tx/Rx separation, ready port code exclusion +// ----------------------------------------------------------------------------- +// Version : 1.2 +// Author(s) : BM +// Mod. Date : June 13, 2014 +// Changes Made : Updated Rx PCS reset method +// ----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- +// Version : 1.3 +// Author(s) : UA +// Mod. Date : Dec 19, 2014 +// Changes Made : Added new parameter fro PCIE +// ----------------------------------------------------------------------------- +// Version : 1.31 +// Author(s) : BM/UM +// Mod. Date : Feb 23, 2016 +// Changes Made : Behavior of rx_rdy output modified. The output rx_rdy +// and the rx_rdy wait counter are reset to zero on +// LOL or LOS. Reverted back the counter value change for PCIE. +// ----------------------------------------------------------------------------- +// Version : 1.4 +// Author(s) : EB +// Mod. Date: : March 21, 2017 +// Changes Made : +// ----------------------------------------------------------------------------- +// Version : 1.5 +// Author(s) : ES +// Mod. Date: : May 8, 2017 +// Changes Made : Implemented common RSL behaviour as proposed by BM. +// ============================================================================= + +`timescale 1ns/10ps + +module serdes1_1rsl_core ( + // ------------ Inputs + // Common + rui_rst, // Active high reset for the RSL module + rui_serdes_rst_dual_c, // SERDES macro reset user command + rui_rst_dual_c, // PCS dual reset user command + rui_rsl_disable, // Active high signal that disables all reset outputs of RSL + // Tx + rui_tx_ref_clk, // Tx reference clock + rui_tx_serdes_rst_c, // Tx SERDES reset user command + rui_tx_pcs_rst_c, // Tx lane reset user command + rdi_pll_lol, // Tx PLL Loss of Lock status input from the SERDES + // Rx + rui_rx_ref_clk, // Rx reference clock + rui_rx_serdes_rst_c, // SERDES Receive channel reset user command + rui_rx_pcs_rst_c, // Rx lane reset user command + rdi_rx_los_low_s, // Receive loss of signal status input from SERDES + rdi_rx_cdr_lol_s, // Receive CDR loss of lock status input from SERDES + + // ------------ Outputs + // Common + rdo_serdes_rst_dual_c, // SERDES macro reset command output + rdo_rst_dual_c, // PCS dual reset command output + // Tx + ruo_tx_rdy, // Tx lane ready status output + rdo_tx_serdes_rst_c, // SERDES Tx reset command output + rdo_tx_pcs_rst_c, // PCS Tx lane reset command output + // Rx + ruo_rx_rdy, // Rx lane ready status output + rdo_rx_serdes_rst_c, // SERDES Rx channel reset command output + rdo_rx_pcs_rst_c // PCS Rx lane reset command output + ); + +// ------------ Module parameters +`ifdef NUM_CHANNELS + parameter pnum_channels = `NUM_CHANNELS; // 1,2,4 +`else + parameter pnum_channels = 1; +`endif + +`ifdef PCIE + parameter pprotocol = "PCIE"; +`else + parameter pprotocol = ""; +`endif + +`ifdef RX_ONLY + parameter pserdes_mode = "RX ONLY"; +`else + `ifdef TX_ONLY + parameter pserdes_mode = "TX ONLY"; + `else + parameter pserdes_mode = "RX AND TX"; + `endif +`endif + +`ifdef PORT_TX_RDY + parameter pport_tx_rdy = "ENABLED"; +`else + parameter pport_tx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_TX_RDY + parameter pwait_tx_rdy = `WAIT_TX_RDY; +`else + parameter pwait_tx_rdy = 3000; +`endif + +`ifdef PORT_RX_RDY + parameter pport_rx_rdy = "ENABLED"; +`else + parameter pport_rx_rdy = "DISABLED"; +`endif + +`ifdef WAIT_RX_RDY + parameter pwait_rx_rdy = `WAIT_RX_RDY; +`else + parameter pwait_rx_rdy = 3000; +`endif + +// ------------ Local parameters + localparam wa_num_cycles = 1024; + localparam dac_num_cycles = 3; + localparam lreset_pwidth = 3; // reset pulse width-1, default=4-1=3 + localparam lwait_b4_trst = 781250; // 5ms wait with worst-case Fmax=156 MHz + localparam lwait_b4_trst_s = 781; // for simulation + localparam lplol_cnt_width = 20; // width for lwait_b4_trst + localparam lwait_after_plol0 = 4; + localparam lwait_b4_rrst = 180224; // total calibration time + localparam lrrst_wait_width = 20; + localparam lwait_after_rrst = 800000; // For CPRI- unused + localparam lwait_b4_rrst_s = 460; // wait cycles provided by design team + localparam lrlol_cnt_width = 19; // width for lwait_b4_rrst + localparam lwait_after_lols = (16384 * dac_num_cycles) + wa_num_cycles; // 16384 cycles * dac_num_cycles + 1024 cycles + localparam lwait_after_lols_s = 150; // wait cycles provided by design team + localparam llols_cnt_width = 18; // lols count width + localparam lrdb_max = 15; // maximum debounce count + localparam ltxr_wait_width = 12; // width of tx ready wait counter + localparam lrxr_wait_width = 12; // width of tx ready wait counter + +// ------------ input ports + input rui_rst; + input rui_serdes_rst_dual_c; + input rui_rst_dual_c; + input rui_rsl_disable; + + input rui_tx_ref_clk; + input rui_tx_serdes_rst_c; + input [3:0] rui_tx_pcs_rst_c; + input rdi_pll_lol; + + input rui_rx_ref_clk; + input [3:0] rui_rx_serdes_rst_c; + input [3:0] rui_rx_pcs_rst_c; + input [3:0] rdi_rx_los_low_s; + input [3:0] rdi_rx_cdr_lol_s; + +// ------------ output ports + output rdo_serdes_rst_dual_c; + output rdo_rst_dual_c; + + output ruo_tx_rdy; + output rdo_tx_serdes_rst_c; + output [3:0] rdo_tx_pcs_rst_c; + + output ruo_rx_rdy; + output [3:0] rdo_rx_serdes_rst_c; + output [3:0] rdo_rx_pcs_rst_c; + +// ------------ Internal registers and wires + // inputs + wire rui_rst; + wire rui_serdes_rst_dual_c; + wire rui_rst_dual_c; + wire rui_rsl_disable; + wire rui_tx_ref_clk; + wire rui_tx_serdes_rst_c; + wire [3:0] rui_tx_pcs_rst_c; + wire rdi_pll_lol; + wire rui_rx_ref_clk; + wire [3:0] rui_rx_serdes_rst_c; + wire [3:0] rui_rx_pcs_rst_c; + wire [3:0] rdi_rx_los_low_s; + wire [3:0] rdi_rx_cdr_lol_s; + + // outputs + wire rdo_serdes_rst_dual_c; + wire rdo_rst_dual_c; + wire ruo_tx_rdy; + wire rdo_tx_serdes_rst_c; + wire [3:0] rdo_tx_pcs_rst_c; + wire ruo_rx_rdy; + wire [3:0] rdo_rx_serdes_rst_c; + wire [3:0] rdo_rx_pcs_rst_c; + + // internal signals + // common + wire rsl_enable; + wire [lplol_cnt_width-1:0] wait_b4_trst; + wire [lrlol_cnt_width-1:0] wait_b4_rrst; + wire [llols_cnt_width-1:0] wait_after_lols; + reg pll_lol_p1; + reg pll_lol_p2; + reg pll_lol_p3; + // ------------ Tx + // rdo_tx_serdes_rst_c + reg [lplol_cnt_width-1:0] plol_cnt; + wire plol_cnt_tc; + + reg [2:0] txs_cnt; + reg txs_rst; + wire txs_cnt_tc; + // rdo_tx_pcs_rst_c + wire plol_fedge; + wire plol_redge; + reg waita_plol0; + reg [2:0] plol0_cnt; + wire plol0_cnt_tc; + reg [2:0] txp_cnt; + reg txp_rst; + wire txp_cnt_tc; + // ruo_tx_rdy + wire dual_or_serd_rst; + wire tx_any_pcs_rst; + wire tx_any_rst; + reg txsr_appd /* synthesis syn_keep=1 */; + reg txdpr_appd; + reg [pnum_channels-1:0] txpr_appd; + reg txr_wt_en; + reg [ltxr_wait_width-1:0] txr_wt_cnt; + wire txr_wt_tc; + reg ruo_tx_rdyr; + + // ------------ Rx + wire comb_rlos; + wire comb_rlol; + //wire rlols; + wire rx_all_well; + + //reg rlols_p1; + //reg rlols_p2; + //reg rlols_p3; + + reg rlol_p1; + reg rlol_p2; + reg rlol_p3; + reg rlos_p1; + reg rlos_p2; + reg rlos_p3; + + //reg [3:0] rdb_cnt; + //wire rdb_cnt_max; + //wire rdb_cnt_zero; + //reg rlols_db; + //reg rlols_db_p1; + + reg [3:0] rlol_db_cnt; + wire rlol_db_cnt_max; + wire rlol_db_cnt_zero; + reg rlol_db; + reg rlol_db_p1; + + reg [3:0] rlos_db_cnt; + wire rlos_db_cnt_max; + wire rlos_db_cnt_zero; + reg rlos_db; + reg rlos_db_p1; + + // rdo_rx_serdes_rst_c + reg [lrlol_cnt_width-1:0] rlol1_cnt; + wire rlol1_cnt_tc; + reg [2:0] rxs_cnt; + reg rxs_rst; + wire rxs_cnt_tc; + reg [lrrst_wait_width-1:0] rrst_cnt; + wire rrst_cnt_tc; + reg rrst_wait; + // rdo_rx_pcs_rst_c + //wire rlols_fedge; + //wire rlols_redge; + wire rlol_fedge; + wire rlol_redge; + wire rlos_fedge; + wire rlos_redge; + + reg wait_calib; + reg waita_rlols0; + reg [llols_cnt_width-1:0] rlols0_cnt; + wire rlols0_cnt_tc; + reg [2:0] rxp_cnt; + reg rxp_rst; + wire rxp_cnt_tc; + + wire rx_any_serd_rst; + reg [llols_cnt_width-1:0] rlolsz_cnt; + wire rlolsz_cnt_tc; + reg [2:0] rxp_cnt2; + reg rxp_rst2; + wire rxp_cnt2_tc; + reg [15:0] data_loop_b_cnt; + reg data_loop_b; + wire data_loop_b_tc; + + // ruo_rx_rdy + reg [pnum_channels-1:0] rxsr_appd; + reg [pnum_channels-1:0] rxpr_appd; + reg rxsdr_appd /* synthesis syn_keep=1 */; + reg rxdpr_appd; + wire rxsdr_or_sr_appd; + wire dual_or_rserd_rst; + wire rx_any_pcs_rst; + wire rx_any_rst; + reg rxr_wt_en; + reg [lrxr_wait_width-1:0] rxr_wt_cnt; + wire rxr_wt_tc; + reg ruo_rx_rdyr; + +// ================================================================== +// Start of code +// ================================================================== + assign rsl_enable = ~rui_rsl_disable; + +// ------------ rdo_serdes_rst_dual_c + assign rdo_serdes_rst_dual_c = (rui_rst&rsl_enable) | rui_serdes_rst_dual_c; + +// ------------ rdo_rst_dual_c + assign rdo_rst_dual_c = rui_rst_dual_c; + +// ------------ Setting counter values for RSL_SIM_MODE + `ifdef RSL_SIM_MODE + assign wait_b4_trst = lwait_b4_trst_s; + assign wait_b4_rrst = lwait_b4_rrst_s; + assign wait_after_lols = lwait_after_lols_s; + `else + assign wait_b4_trst = lwait_b4_trst; + assign wait_b4_rrst = lwait_b4_rrst; + assign wait_after_lols = lwait_after_lols; + `endif + +// ================================================================== +// Tx +// ================================================================== + generate + if((pserdes_mode=="RX AND TX")||(pserdes_mode=="TX ONLY")) begin + +// ------------ Synchronizing pll_lol to the tx clock + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + pll_lol_p1 <= 1'd0; + pll_lol_p2 <= 1'd0; + pll_lol_p3 <= 1'd0; + end + else begin + pll_lol_p1 <= rdi_pll_lol; + pll_lol_p2 <= pll_lol_p1; + pll_lol_p3 <= pll_lol_p2; + end + end + +// ------------ rdo_tx_serdes_rst_c + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol_cnt <= 'd0; + else if((pll_lol_p2==0)||(plol_cnt_tc==1)||(rdo_tx_serdes_rst_c==1)) + plol_cnt <= 'd0; + else + plol_cnt <= plol_cnt+1; + end + assign plol_cnt_tc = (plol_cnt==wait_b4_trst)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txs_cnt <= 'd0; // tx serdes reset pulse count + txs_rst <= 1'b0; // tx serdes reset + end + else if(plol_cnt_tc==1) + txs_rst <= 1'b1; + else if(txs_cnt_tc==1) begin + txs_cnt <= 'd0; + txs_rst <= 1'b0; + end + else if(txs_rst==1) + txs_cnt <= txs_cnt+1; + end + assign txs_cnt_tc = (txs_cnt==lreset_pwidth)?1'b1:1'b0; + + assign rdo_tx_serdes_rst_c = (rsl_enable&txs_rst)| rui_tx_serdes_rst_c; + +// ------------ rdo_tx_pcs_rst_c + assign plol_fedge = ~pll_lol_p2 & pll_lol_p3; + assign plol_redge = pll_lol_p2 & ~pll_lol_p3; + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + waita_plol0 <= 1'd0; + else if(plol_fedge==1'b1) + waita_plol0 <= 1'b1; + else if((plol0_cnt_tc==1)||(plol_redge==1)) + waita_plol0 <= 1'd0; + end + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) + plol0_cnt <= 'd0; + else if((pll_lol_p2==1)||(plol0_cnt_tc==1)) + plol0_cnt <= 'd0; + else if(waita_plol0==1'b1) + plol0_cnt <= plol0_cnt+1; + end + assign plol0_cnt_tc = (plol0_cnt==lwait_after_plol0)?1'b1:1'b0; + + always @(posedge rui_tx_ref_clk or posedge rui_rst) begin + if(rui_rst==1'b1) begin + txp_cnt <= 'd0; // tx serdes reset pulse count + txp_rst <= 1'b0; // tx serdes reset + end + else if(plol0_cnt_tc==1) + txp_rst <= 1'b1; + else if(txp_cnt_tc==1) begin + txp_cnt <= 'd0; + txp_rst <= 1'b0; + end + else if(txp_rst==1) + txp_cnt <= txp_cnt+1; + end + assign txp_cnt_tc = (txp_cnt==lreset_pwidth)?1'b1:1'b0; + + genvar i; + for(i=0;i hdinn(0), serdes0_hdinp => hdinp(0), serdes0_hdoutn => hdoutn(0), @@ -218,7 +218,96 @@ THE_SERDES : entity work.dual_serdes serdes1_pll_refclki => CLK_REF_FULL, serdes1_serdes_pdb => '1' ); +end generate; + +gen_DCU1 : if DUAL = 1 generate +THE_SERDES : entity work.dual_serdes_1 + port map ( + serdes0_hdinn => hdinn(0), + serdes0_hdinp => hdinp(0), + serdes0_hdoutn => hdoutn(0), + serdes0_hdoutp => hdoutp(0), + serdes0_lsm_status_s => lsm_status(0), + serdes0_rsl_disable => '1', + serdes0_rsl_rst => '0', + serdes0_rsl_rx_rdy => rx_ready(0), + serdes0_rsl_tx_rdy => tx_ready(0), + serdes0_rst_dual_c => rst_qd(0), --ON EVERY CHANNEL? + serdes0_rx_cdr_lol_s => rx_cdr_lol(0), + serdes0_rx_cv_err(0) => rx_error(0), + serdes0_rxdata => rx_data(0), + serdes0_rx_disp_err => open, + serdes0_rx_k(0) => rx_k(0), + serdes0_rx_los_low_s => rx_los_low(0), + serdes0_rx_pclk => clk_rx_full(0), + serdes0_rx_pcs_rst_c => rx_pcs_rst(0), + serdes0_rx_pwrup_c => '1', + serdes0_rxrefclk => CLK_INTERNAL_FULL, + serdes0_rx_serdes_rst_c => rx_serdes_rst(0), + serdes0_serdes_rst_dual_c => '0', + serdes0_signal_detect_c => '0', + serdes0_txdata => tx_data(0), + serdes0_tx_disp_sel(0) => '0', + serdes0_tx_force_disp(0) => '0', + serdes0_tx_idle_c => '0', + serdes0_tx_k(0) => tx_k(0), + serdes0_tx_pclk => clk_tx_full(0), + serdes0_tx_pcs_rst_c => tx_pcs_rst(0), + serdes0_tx_pwrup_c => '1', + serdes0_tx_serdes_rst_c => '0', + serdes1_hdinn => hdinn(1), + serdes1_hdinp => hdinp(1), + serdes1_hdoutn => hdoutn(1), + serdes1_hdoutp => hdoutp(1), + serdes1_lsm_status_s => lsm_status(1), + serdes1_rsl_disable => '1', + serdes1_rsl_rst => '0', + serdes1_rsl_rx_rdy => rx_ready(1), + serdes1_rsl_tx_rdy => tx_ready(1), + serdes1_rst_dual_c => rst_qd(1), + serdes1_rx_cdr_lol_s => rx_cdr_lol(1), + serdes1_rx_cv_err(0) => rx_error(1), + serdes1_rxdata => rx_data(1), + serdes1_rx_disp_err => open, + serdes1_rx_k(0) => rx_k(1), + serdes1_rx_los_low_s => rx_los_low(1), + serdes1_rx_pclk => clk_rx_full(1), + serdes1_rx_pcs_rst_c => rx_pcs_rst(1), + serdes1_rx_pwrup_c => '1', + serdes1_rxrefclk => CLK_INTERNAL_FULL, + serdes1_rx_serdes_rst_c => rx_serdes_rst(1), + serdes1_serdes_rst_dual_c => '0', + serdes1_signal_detect_c => '0', + serdes1_txdata => tx_data(1), + serdes1_tx_disp_sel(0) => '0', + serdes1_tx_force_disp(0) => '0', + serdes1_tx_idle_c => '0', + serdes1_tx_k(0) => tx_k(1), + serdes1_tx_pclk => clk_tx_full(1), + serdes1_tx_pcs_rst_c => tx_pcs_rst(1), + serdes1_tx_pwrup_c => '1', + serdes1_tx_serdes_rst_c => '0', + + serdes0_sci_en => reset_n, + serdes0_sci_sel => sci_ch_i(0), + serdes1_sci_addr => sci_addr_i, + serdes1_sci_en_dual => reset_n, + serdes1_sci_en => reset_n, + serdes1_sci_rddata => sci_data_out_i(7 downto 0), + serdes1_sci_rd => sci_read_i, + serdes1_sci_sel_dual => sci_ch_i(4), + serdes1_sci_sel => sci_ch_i(1), + serdes1_sci_wrdata => sci_data_in_i, + serdes1_sci_wrn => sci_write_i, + + serdes0_pll_lol => tx_pll_lol, + + serdes1_cyawstn => '0', + serdes1_pll_refclki => CLK_REF_FULL, + serdes1_serdes_pdb => '1' + ); +end generate; gen_channels : for i in 0 to 1 generate THE_MED_CONTROL : entity work.med_sync_control -- 2.43.0