From 273f275c151aeb4d9f7a3ef9d015d02ccd0675d5 Mon Sep 17 00:00:00 2001 From: Michael Boehmer Date: Sat, 9 Jul 2022 00:57:34 +0200 Subject: [PATCH] 1:3 hub, first version --- gbe_trb_ecp3/base/gbe_med_fifo.vhd | 8 ++++---- gbe_trb_ecp3/base/scatter_ports.vhd | 6 +++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/gbe_trb_ecp3/base/gbe_med_fifo.vhd b/gbe_trb_ecp3/base/gbe_med_fifo.vhd index cca5336..8ed6b65 100644 --- a/gbe_trb_ecp3/base/gbe_med_fifo.vhd +++ b/gbe_trb_ecp3/base/gbe_med_fifo.vhd @@ -20,7 +20,7 @@ entity gbe_med_fifo is CLK_125 : in std_logic; CLK_125_RX : out std_logic_vector(3 downto 0); -- FIFO interface RX - FIFO_DATA_OUT : out std_logic_vector(4 * 8 - 1 downto 0); + FIFO_DATA_OUT : out std_logic_vector(4 * 9 - 1 downto 0); FIFO_FULL_IN : in std_logic_vector(3 downto 0); FIFO_WR_OUT : out std_logic_vector(3 downto 0); FRAME_REQ_IN : in std_logic_vector(3 downto 0); @@ -30,7 +30,7 @@ entity gbe_med_fifo is -- FIFO interface TX FIFO_FULL_OUT : out std_logic_vector(3 downto 0); FIFO_WR_IN : in std_logic_vector(3 downto 0); - FIFO_DATA_IN : in std_logic_vector(4 * 8 - 1 downto 0); + FIFO_DATA_IN : in std_logic_vector(4 * 9 - 1 downto 0); FRAME_START_IN : in std_logic_vector(3 downto 0); -- SFP Connection SD_PRSNT_N_IN : in std_logic_vector(3 downto 0) := (others => '0'); @@ -594,7 +594,7 @@ begin -- FIFO interface (TX) FIFO_FULL_IN => FIFO_FULL_IN(i), FIFO_WR_OUT => FIFO_WR_OUT(i), - FIFO_Q_OUT => FIFO_DATA_OUT((i + 1) * 8 - 1 downto i * 8), + FIFO_Q_OUT => FIFO_DATA_OUT((i + 1) * 9 - 1 downto i * 9), FRAME_REQ_IN => FRAME_REQ_IN(i), FRAME_ACK_OUT => FRAME_ACK_OUT(i), FRAME_AVAIL_OUT => FRAME_AVAIL_OUT(i), @@ -619,7 +619,7 @@ begin -- FIFO interface FIFO_FULL_OUT => FIFO_FULL_OUT(i), FIFO_WR_IN => FIFO_WR_IN(i), - FIFO_D_IN => FIFO_DATA_IN((i + 1) * 8 - 1 downto i * 8), + FIFO_D_IN => FIFO_DATA_IN((i + 1) * 9 - 1 downto i * 9), -- Link stuff FRAME_START_IN => FRAME_START_IN(i), LINK_ACTIVE_IN => an_complete(i), diff --git a/gbe_trb_ecp3/base/scatter_ports.vhd b/gbe_trb_ecp3/base/scatter_ports.vhd index 181c201..ba1c083 100644 --- a/gbe_trb_ecp3/base/scatter_ports.vhd +++ b/gbe_trb_ecp3/base/scatter_ports.vhd @@ -10,6 +10,8 @@ entity scatter_ports is CLEAR : in std_logic; RESET : in std_logic; -- + FIFO_FULL_IN : in std_logic_vector(15 downto 0) := (others => '0'); + FIFO_FULL_OUT : out std_logic; FRAME_AVAIL_IN : in std_logic := '0'; FRAME_REQ_OUT : out std_logic; FRAME_ACK_IN : in std_logic := '0'; @@ -33,10 +35,12 @@ architecture scatter_ports_arch of scatter_ports is begin - CYCLE_DONE_OUT <= '1' when STATE = CLEANUP else '0'; + CYCLE_DONE_OUT <= '1' when STATE = CLEANUP else '0'; FRAME_REQ_OUT <= req_int; + FIFO_FULL_OUT <= '0' when FIFO_FULL_IN = x"0000" else '1'; + ----------------------------------------------------------- -- statemachine: clocked process ----------------------------------------------------------- -- 2.43.0