STAT_api_control_signals(10 downto 8) <= apl_to_buf_INIT_DATA(2 downto 0);
STAT_api_control_signals(11) <= apl_to_buf_INIT_DATAREADY;
STAT_api_control_signals(12) <= apl_to_buf_INIT_READ;
-STAT_api_control_signals(28 downto 13) <= (others => '0');
+STAT_api_control_signals(19 downto 16) <= MED_INIT_DATA_OUT(3 downto 0);
+STAT_api_control_signals(21 downto 20) <= MED_INIT_PACKET_NUM_OUT(1 downto 0);
+--STAT_api_control_signals(30 downto 13) <= (others => '0');
STAT_api_control_signals(31) <= buf_to_apl_INIT_READ;
--STAT_api_control_signals(30) <= buf_to_apl_INIT_PACKET_NUM(0);
IBUF_SECURE_MODE : integer range 0 to 1 := c_NO;
HUB_ADDRESS : std_logic_vector(15 downto 0) := x"F003";
--media interfaces
- MII_NUMBER : integer range 2 to c_MAX_MII_PER_HUB := 12;
+ MII_NUMBER : integer range 2 to c_MAX_MII_PER_HUB := 4;
MII_INIT_DEPTH : hub_iobuf_config_t := std_HUB_INIT_DEPTH;
MII_REPLY_DEPTH : hub_iobuf_config_t := std_HUB_REPLY_DEPTH;
-- settings for apis
STAT(44 downto 41) <= fifo_status_m;
STAT(48 downto 45) <= fifo_dout_m(3 downto 0);
STAT(50 downto 49) <= fifo_dout_m(17 downto 16);
- STAT(54 downto 51) <= fifo_dout_a(3 downto 0);
- STAT(56 downto 55) <= fifo_dout_a(17 downto 16);
+ STAT(54 downto 51) <= fifo_din_a(3 downto 0);
+ STAT(56 downto 55) <= fifo_din_a(17 downto 16);
STAT(63 downto 57) <= (others => '0');
process(CLK)
next_INT_READ_OUT <= '0';
end if;
- if sbuf_free = '0' or send_DATA = '0' then
+ if sbuf_free = '0' or send_DATA = '0' then
next_INT_READ_OUT <= '0';
end if;
end process;
begin
if rising_edge(CLK) then
if RESET = '1' then
- max_DATA_COUNT_minus_one <= (0 => '1', others => '0');
+ max_DATA_COUNT_minus_one <= (others => '0');
+ max_DATA_COUNT_minus_one(0) <= '1';
else
case REC_BUFFER_SIZE_IN is
when "-010" => max_DATA_COUNT_minus_one <= conv_std_logic_vector(3, DATA_COUNT_WIDTH);
MED_PACKET_NUM_OUT <= buf_MED_PACKET_NUM_OUT;
MED_DATA_OUT <= buf_MED_DATA_OUT;
- process(current_NOP_word, send_ACK, SEND_ACK, current_ACK_word, transfer_counter, MED_READ_IN)
+ process(current_NOP_word, SEND_ACK, current_ACK_word, transfer_counter, MED_READ_IN)
begin
next_MED_DATA_OUT <= current_NOP_word;
next_MED_DATAREADY_OUT <= '0';
constant c_DATA_WIDTH : integer := 16;
constant c_NUM_WIDTH : integer := 2;
- constant c_MUX_WIDTH : integer := 1; --!!!
+ constant c_MUX_WIDTH : integer := 3; --!!!
--assigning channel names
library work;
use work.trb_net_std.all;
-
+entity trb_net_fifo_16bit_bram_dualport is
+ generic(
+ USE_STATUS_FLAGS : integer := c_YES
+ );
+ port (
+ read_clock_in: IN std_logic;
+ write_clock_in: IN std_logic;
+ read_enable_in: IN std_logic;
+ write_enable_in: IN std_logic;
+ fifo_gsr_in: IN std_logic;
+ write_data_in: IN std_logic_vector(17 downto 0);
+ read_data_out: OUT std_logic_vector(17 downto 0);
+ full_out: OUT std_logic;
+ empty_out: OUT std_logic;
+ fifostatus_out: OUT std_logic_vector(3 downto 0) --counter for 1/16th of fifo
+ );
+end entity trb_net_fifo_16bit_bram_dualport;
architecture trb_net_fifo_16bit_bram_dualport_arch of trb_net_fifo_16bit_bram_dualport is
signal read_clock: std_logic;