diff --git a/lib/emac/src/emac_tx.vhd b/lib/emac/src/emac_tx.vhd index 68d64ea..b66ab9c 100644 --- a/lib/emac/src/emac_tx.vhd +++ b/lib/emac/src/emac_tx.vhd @@ -16,6 +16,7 @@ ENTITY emac_tx IS ( clk : in STD_LOGIC; rst : in STD_LOGIC; + din_vld : in STD_LOGIC; din : in unsigned(31 downto 0); ctrl_in : in tx_ctrl_in_t; ctrl_out : out tx_ctrl_out_t; @@ -118,9 +119,9 @@ ARCHITECTURE behavior OF emac_tx IS constant piso_byte_mask_rom : piso_byte_mask_array_t := ( "1111", - "0001", - "0011", - "0111" + "1000", + "1100", + "1110" ); @@ -165,7 +166,7 @@ host_state_next: end process; host_state: - process(host_s, alloc_req, alloc_OK, fill_rdy, ctrl_in.data_vld) + process(host_s, alloc_req, alloc_OK, fill_rdy, din_vld) begin flush_en <= '0'; @@ -210,8 +211,8 @@ host_state: host_sn <= host_fill; when host_fill => - fill_cnt_adv <= ctrl_in.data_vld; - fill_ptr_adv <= not fill_rdy and ctrl_in.data_vld; + fill_cnt_adv <= din_vld; + fill_ptr_adv <= not fill_rdy and din_vld; if alloc_req = '1' then host_sn <= host_alloc; elsif fill_rdy = '1' then