You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

199 lines
7.5 KiB

  1. library ieee ;
  2. use ieee.std_logic_1164.all;
  3. package components is
  4. component CC_PLL
  5. generic (
  6. REF_CLK : string := "0"; -- reference clk in MHz
  7. OUT_CLK : string := "0"; -- output clk in MHz
  8. PERF_MD : string := "UNDEFINED"; -- LOWPOWER, ECONOMY, SPEED (optional, global, setting of Place&Route can be used instead)
  9. LOW_JITTER : natural := 1; -- 0: disable, 1: enable low jitter mode
  10. CI_FILTER_CONST : natural := 2; -- optional CI filter constant
  11. CP_FILTER_CONST : natural := 4 -- optional CP filter constant
  12. );
  13. port (
  14. CLK_REF : in std_logic;
  15. CLK_FEEDBACK : in std_logic;
  16. USR_CLK_REF : in std_logic;
  17. USR_LOCKED_STDY_RST : in std_logic;
  18. USR_PLL_LOCKED_STDY : out std_logic;
  19. USR_PLL_LOCKED : out std_logic;
  20. CLK270 : out std_logic;
  21. CLK180 : out std_logic;
  22. CLK0 : out std_logic;
  23. CLK90 : out std_logic;
  24. CLK_REF_OUT : out std_logic
  25. );
  26. end component;
  27. component CC_PLL_ADV
  28. generic (
  29. PLL_CFG_A : std_logic_vector(95 downto 0) := (others => 'X');
  30. PLL_CFG_B : std_logic_vector(95 downto 0) := (others => 'X')
  31. );
  32. port (
  33. CLK_REF : in std_logic;
  34. CLK_FEEDBACK : in std_logic;
  35. USR_CLK_REF : in std_logic;
  36. USR_LOCKED_STDY_RST : in std_logic;
  37. USR_SEL_A_B : in std_logic;
  38. USR_PLL_LOCKED_STDY : out std_logic;
  39. USR_PLL_LOCKED : out std_logic;
  40. CLK270 : out std_logic;
  41. CLK180 : out std_logic;
  42. CLK0 : out std_logic;
  43. CLK90 : out std_logic;
  44. CLK_REF_OUT : out std_logic
  45. );
  46. end component;
  47. component CC_SERDES
  48. generic (
  49. SERDES_CFG : string := ""
  50. );
  51. port (
  52. TX_DATA_I : in std_logic_vector(63 downto 0);
  53. TX_RESET_I : in std_logic;
  54. TX_PCS_RESET_I : in std_logic;
  55. TX_PMA_RESET_I : in std_logic;
  56. PLL_RESET_I : in std_logic;
  57. TX_POWERDOWN_N_I : in std_logic;
  58. TX_POLARITY_I : in std_logic;
  59. TX_PRBS_SEL_I : in std_logic_vector(2 downto 0);
  60. TX_PRBS_FORCE_ERR_I : in std_logic;
  61. TX_8B10B_EN_I : in std_logic;
  62. TX_8B10B_BYPASS_I : in std_logic_vector(7 downto 0);
  63. TX_CHAR_IS_K_I : in std_logic_vector(7 downto 0);
  64. TX_CHAR_DISPMODE_I : in std_logic_vector(7 downto 0);
  65. TX_CHAR_DISPVAL_I : in std_logic_vector(7 downto 0);
  66. TX_ELEC_IDLE_I : in std_logic;
  67. TX_DETECT_RX_I : in std_logic;
  68. LOOPBACK_I : in std_logic_vector(2 downto 0);
  69. CLK_CORE_TX_I : in std_logic;
  70. CLK_CORE_RX_I : in std_logic;
  71. RX_RESET_I : in std_logic;
  72. RX_PMA_RESET_I : in std_logic;
  73. RX_EQA_RESET_I : in std_logic;
  74. RX_CDR_RESET_I : in std_logic;
  75. RX_PCS_RESET_I : in std_logic;
  76. RX_BUF_RESET_I : in std_logic;
  77. RX_POWERDOWN_N_I : in std_logic;
  78. RX_POLARITY_I : in std_logic;
  79. RX_PRBS_SEL_I : in std_logic_vector(2 downto 0);
  80. RX_PRBS_CNT_RESET_I : in std_logic;
  81. RX_8B10B_EN_I : in std_logic;
  82. RX_8B10B_BYPASS_I : in std_logic_vector(7 downto 0);
  83. RX_EN_EI_DETECTOR_I : in std_logic;
  84. RX_COMMA_DETECT_EN_I : in std_logic;
  85. RX_SLIDE_I : in std_logic;
  86. RX_MCOMMA_ALIGN_I : in std_logic;
  87. RX_PCOMMA_ALIGN_I : in std_logic;
  88. CLK_REG_I : in std_logic;
  89. REGFILE_WE_I : in std_logic;
  90. REGFILE_EN_I : in std_logic;
  91. REGFILE_ADDR_I : in std_logic_vector(7 downto 0);
  92. REGFILE_DI_I : in std_logic_vector(15 downto 0);
  93. REGFILE_MASK_I : in std_logic_vector(15 downto 0);
  94. RX_DATA_O : out std_logic_vector(63 downto 0);
  95. RX_NOT_IN_TABLE_O : out std_logic_vector(7 downto 0);
  96. RX_CHAR_IS_COMMA_O : out std_logic_vector(7 downto 0);
  97. RX_CHAR_IS_K_O : out std_logic_vector(7 downto 0);
  98. RX_DISP_ERR_O : out std_logic_vector(7 downto 0);
  99. RX_DETECT_DONE_O : out std_logic;
  100. RX_PRESENT_O : out std_logic;
  101. TX_BUF_ERR_O : out std_logic;
  102. TX_RESETDONE_O : out std_logic;
  103. RX_PRBS_ERR_O : out std_logic;
  104. RX_BUF_ERR_O : out std_logic;
  105. RX_BYTE_IS_ALIGNED_O : out std_logic;
  106. RX_BYTE_REALIGN_O : out std_logic;
  107. RX_RESETDONE_O : out std_logic;
  108. RX_EI_EN_O : out std_logic;
  109. CLK_CORE_RX_O : out std_logic;
  110. CLK_CORE_PLL_O : out std_logic;
  111. REGFILE_DO_O : out std_logic_vector(15 downto 0);
  112. REGFILE_RDY_O : out std_logic
  113. );
  114. end component;
  115. component CC_CFG_CTRL
  116. port (
  117. DATA : in std_logic_vector(7 downto 0);
  118. CLK : in std_logic;
  119. EN : in std_logic;
  120. RECFG : in std_logic;
  121. VALID : in std_logic
  122. );
  123. end component;
  124. component CC_FIFO_40K
  125. generic (
  126. LOC : string := "UNPLACED"; -- Location format: D(0..N-1)X(0..3)Y(0..7) or UNPLACED
  127. ALMOST_FULL_OFFSET : std_logic_vector (12 downto 0) := (others => '0'); -- Almost full offset
  128. ALMOST_EMPTY_OFFSET : std_logic_vector (12 downto 0) := (others => '0'); -- Almost empty offset
  129. A_WIDTH : natural := 0; -- Port A Width
  130. B_WIDTH : natural := 0; -- Port B Width
  131. RAM_MODE : string := "SDP"; -- RAM mode: "TPD" or "SDP"
  132. FIFO_MODE : string := "SYNC"; -- Write mode: "ASYNC" or "SYNC"
  133. A_CLK_INV : std_logic := '0'; -- Inverting Control Pins
  134. B_CLK_INV : std_logic := '0'; -- Inverting Control Pins
  135. A_EN_INV : std_logic := '0'; -- Inverting Control Pins
  136. B_EN_INV : std_logic := '0'; -- Inverting Control Pins
  137. A_WE_INV : std_logic := '0'; -- Inverting Control Pins
  138. B_WE_INV : std_logic := '0'; -- Inverting Control Pins
  139. A_DO_REG : std_logic := '0'; -- Port A Output Register
  140. B_DO_REG : std_logic := '0'; -- Port B Output Register
  141. A_ECC_EN : std_logic := '0'; -- Port A Error Checking and Correction
  142. B_ECC_EN : std_logic := '0' -- Port B Error Checking and Correction
  143. );
  144. port (
  145. A_ECC_1B_ERR : out std_logic;
  146. B_ECC_1B_ERR : out std_logic;
  147. A_ECC_2B_ERR : out std_logic;
  148. B_ECC_2B_ERR : out std_logic;
  149. -- FIFO pop port
  150. A_DO : out std_logic_vector(39 downto 0);
  151. B_DO : out std_logic_vector(39 downto 0);
  152. A_CLK : in std_logic;
  153. A_EN : in std_logic;
  154. -- FIFO push port
  155. A_DI : in std_logic_vector(39 downto 0);
  156. B_DI : in std_logic_vector(39 downto 0);
  157. A_BM : in std_logic_vector(39 downto 0);
  158. B_BM : in std_logic_vector(39 downto 0);
  159. B_CLK : in std_logic;
  160. B_EN : in std_logic;
  161. B_WE : in std_logic;
  162. -- FIFO control
  163. F_RST_N : in std_logic;
  164. F_ALMOST_FULL_OFFSET : in std_logic_vector(12 downto 0);
  165. F_ALMOST_EMPTY_OFFSET : in std_logic_vector(12 downto 0);
  166. -- FIFO status signals
  167. F_FULL : out std_logic;
  168. F_EMPTY : out std_logic;
  169. F_ALMOST_FULL : out std_logic;
  170. F_ALMOST_EMPTY : out std_logic;
  171. F_RD_ERROR : out std_logic;
  172. F_WR_ERROR : out std_logic;
  173. F_RD_PTR : out std_logic_vector(15 downto 0);
  174. F_WR_PTR : out std_logic_vector(15 downto 0)
  175. );
  176. end component;
  177. component CC_CFG_END
  178. port (
  179. CFG_END : out std_logic
  180. );
  181. end component;
  182. component CC_BUFG
  183. port (
  184. I : in std_logic;
  185. O : out std_logic
  186. );
  187. end component;
  188. end package components;