Skip to content
Snippets Groups Projects
Select Git revision
  • 6d1c17a8c8077a6e16262dd40071b7fc2e5fcc57
  • master default protected
  • L2SDP-1131
  • L2SDP-LIFT
  • L2SDP-1137
  • HPR-158
6 results

tech_mac_10g_component_pkg.vhd

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    tech_mac_10g_component_pkg.vhd 13.15 KiB
    -------------------------------------------------------------------------------
    --
    -- Copyright (C) 2014
    -- ASTRON (Netherlands Institute for Radio Astronomy) <http://www.astron.nl/>
    -- JIVE (Joint Institute for VLBI in Europe) <http://www.jive.nl/>
    -- P.O.Box 2, 7990 AA Dwingeloo, The Netherlands
    --
    -- This program is free software: you can redistribute it and/or modify
    -- it under the terms of the GNU General Public License as published by
    -- the Free Software Foundation, either version 3 of the License, or
    -- (at your option) any later version.
    --
    -- This program is distributed in the hope that it will be useful,
    -- but WITHOUT ANY WARRANTY; without even the implied warranty of
    -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    -- GNU General Public License for more details.
    --
    -- You should have received a copy of the GNU General Public License
    -- along with this program.  If not, see <http://www.gnu.org/licenses/>.
    --
    -------------------------------------------------------------------------------
    
    -- Purpose: IP components declarations for various devices that get wrapped by the tech components
    
    LIBRARY IEEE, technology_lib, common_lib;
    USE IEEE.std_logic_1164.ALL;
    USE common_lib.common_pkg.ALL;
    USE common_lib.common_interface_layers_pkg.ALL;
    USE technology_lib.technology_pkg.ALL;
    
    PACKAGE tech_mac_10g_component_pkg IS
    
      FUNCTION func_tech_mac_10g_csr_addr_w(c_technology : NATURAL) RETURN NATURAL;
      
      CONSTANT c_tech_mac_10g_data_w               : NATURAL := c_xgmii_data_w;  -- = 64
    
      CONSTANT c_tech_mac_10g_symbol_w             : NATURAL := c_byte_w;                                         -- = 8 bit
      CONSTANT c_tech_mac_10g_symbols_per_beat     : NATURAL := c_tech_mac_10g_data_w / c_tech_mac_10g_symbol_w;  -- = 8 symbols
    
      CONSTANT c_tech_mac_10g_empty_w              : NATURAL := 3;
      CONSTANT c_tech_mac_10g_tx_error_w           : NATURAL := 1;
      CONSTANT c_tech_mac_10g_rx_error_w           : NATURAL := 6;
      
      CONSTANT c_tech_mac_10g_tx_fifo_depth        : NATURAL := 256;  -- nof words for Tx FIFO
      CONSTANT c_tech_mac_10g_rx_fifo_depth        : NATURAL := 256;  -- nof words for Rx FIFO
    
      ------------------------------------------------------------------------------
      -- ip_stratixiv
      ------------------------------------------------------------------------------
      
      -- Copied from entity $RADIOHDL/libraries/technology/ip_stratixiv/mac_10g/generated/ip_stratixiv_mac_10g_sim/ip_stratixiv_mac_10g.vhd
      COMPONENT ip_stratixiv_mac_10g IS
      PORT (
        csr_clk_clk                     : in  std_logic                     := '0';             --                    csr_clk.clk
        csr_reset_reset_n               : in  std_logic                     := '0';             --                  csr_reset.reset_n
        csr_address                     : in  std_logic_vector(12 downto 0) := (others => '0'); --                        csr.address
        csr_waitrequest                 : out std_logic;                                        --                           .waitrequest
        csr_read                        : in  std_logic                     := '0';             --                           .read
        csr_readdata                    : out std_logic_vector(31 downto 0);                    --                           .readdata
        csr_write                       : in  std_logic                     := '0';             --                           .write
        csr_writedata                   : in  std_logic_vector(31 downto 0) := (others => '0'); --                           .writedata
        tx_clk_clk                      : in  std_logic                     := '0';             --                     tx_clk.clk
        tx_reset_reset_n                : in  std_logic                     := '0';             --                   tx_reset.reset_n
        avalon_st_tx_startofpacket      : in  std_logic                     := '0';             --               avalon_st_tx.startofpacket
        avalon_st_tx_valid              : in  std_logic                     := '0';             --                           .valid
        avalon_st_tx_data               : in  std_logic_vector(63 downto 0) := (others => '0'); --                           .data
        avalon_st_tx_empty              : in  std_logic_vector(2 downto 0)  := (others => '0'); --                           .empty
        avalon_st_tx_ready              : out std_logic;                                        --                           .ready
        avalon_st_tx_error              : in  std_logic_vector(0 downto 0)  := (others => '0'); --                           .error
        avalon_st_tx_endofpacket        : in  std_logic                     := '0';             --                           .endofpacket