library work;
use work.trb_net_std.all;
use work.trb_net_components.all;
+use work.config.all;
entity trb_net16_endpoint_hades_full is
signal buf_IDRAM_ADDR_IN : std_logic_vector(2 downto 0);
signal buf_IDRAM_WR_IN : std_logic;
signal reset_no_link : std_logic;
+ signal reset_no_link_tmp : std_logic;
signal ONEWIRE_DATA : std_logic_vector(15 downto 0);
signal ONEWIRE_ADDR : std_logic_vector(2 downto 0);
signal ONEWIRE_WRITE : std_logic;
process(CLK)
begin
if rising_edge(CLK) then
- reset_no_link <= MED_STAT_OP_IN(14) or RESET;
- reset_trg_logic <= RESET or buf_REGIO_COMMON_CTRL_REG_OUT(1);
+ reset_trg_logic <= RESET or buf_REGIO_COMMON_CTRL_REG_OUT(1);
+ reset_no_link_tmp <= MED_STAT_OP_IN(14) or RESET;
end if;
end process;
+
+ gen_resetedge : if FPGA_TYPE = 5 generate
+ reset_no_link <= reset_no_link_tmp when falling_edge(CLK);
+ else generate
+ reset_no_link <= reset_no_link_tmp when rising_edge(CLK);
+ end generate;
MED_CTRL_OP_OUT(7 downto 0) <= (others => '0');
MED_CTRL_OP_OUT(8) <= buf_REGIO_COMMON_CTRL_REG_OUT(64+27);
signal buf_IDRAM_ADDR_IN : std_logic_vector(2 downto 0);
signal buf_IDRAM_WR_IN : std_logic;
signal reset_no_link : std_logic;
+ signal reset_no_link_tmp : std_logic;
signal ONEWIRE_DATA : std_logic_vector(15 downto 0);
signal ONEWIRE_ADDR : std_logic_vector(2 downto 0);
signal ONEWIRE_WRITE : std_logic;
process(CLK)
begin
if rising_edge(CLK) then
- reset_no_link <= MED_STAT_OP_IN(14) or RESET;
+ reset_no_link_tmp <= MED_STAT_OP_IN(14) or RESET;
reset_trg_logic <= RESET or buf_REGIO_COMMON_CTRL_REG_OUT(1);
end if;
end process;
+ gen_resetedge : if FPGA_TYPE = 5 generate
+ reset_no_link <= reset_no_link_tmp when falling_edge(CLK);
+ else generate
+ reset_no_link <= reset_no_link_tmp when rising_edge(CLK);
+ end generate;
+
+
MED_CTRL_OP_OUT(7 downto 0) <= (others => '0');
MED_CTRL_OP_OUT(8) <= buf_REGIO_COMMON_CTRL_REG_OUT(64+27);
MED_CTRL_OP_OUT(15 downto 9) <= (others => '0');
use work.trb_net_std.all;
use work.trb_net_components.all;
use work.trb_net16_hub_func.all;
+use work.config.all;
--take care of USE_INPUT_SBUF for multiplexer!
signal resync : std_logic_vector(MII_NUMBER-1 downto 0);
signal reset_i : std_logic;
signal reset_i_mux_io : std_logic_vector((MII_NUMBER*2**(c_MUX_WIDTH-1))-1 downto 0);
+ signal reset_i_tmp : std_logic;
signal combined_resync : std_logic;
proc_SYNC_RESET : process(CLK)
begin
if rising_edge(CLK) then
- reset_i <= RESET;
+ reset_i_tmp <= RESET;
last_STAT_TIMEOUT <= STAT_TIMEOUT;
end if;
end process;
+ gen_resetedge : if FPGA_TYPE = 5 generate --timing via primary clock net gives hold violations for BRAM
+ reset_i <= reset_i_tmp when falling_edge(CLK);
+ else generate
+ reset_i <= reset_i_tmp when rising_edge(CLK);
+ end generate;
+
-- STAT_TIMEOUT
gen_iobuf_noreset : if RESET_IOBUF_AT_TIMEOUT = c_NO generate