-- address <= x"0008";
-- reghigh <= x"DEAD";
-- reglow <= x"AFFE";
- address <= x"5E1D"; --x"0001";
+ address <= x"10AB"; --x"0001";
reghigh <= x"0022";
reglow <= xor_all(APL_DATA_IN) & "000000000000011";
- APL_DTYPE_OUT <= x"F";
+ APL_DTYPE_OUT <= x"A";
APL_TARGET_ADDRESS_OUT <= TARGET_ADDRESS;
process(current_state)
when RUNNING =>
fifo_to_int_read <= not fifo_to_int_empty and sbuf_free and not master_counter(2);
next_INT_MASTER_DATAREADY_OUT <= sbuf_free and (fifo_to_int_read_before or master_counter(2));
- if APL_SEND_IN = '0' and fifo_was_not_empty = '1' then -- terminate the transfer
+ if APL_SEND_IN = '0' then --and fifo_was_not_empty = '1' then -- terminate the transfer
update_registered_trailer <= '1';
if fifo_to_int_empty = '1' and master_counter = c_F3 and sbuf_free = '1' then
next_state_to_int <= SEND_TRAILER; -- immediate stop
end if;
when others => NEXT_STATE <= SLEEP;
end case;
-end process STATE_TRANSFORM;
+end process;
THE_DECODE_PROC: process( CURRENT_STATE, timing_ctr )
begin
next_API_DATAREADY_OUT <= '1';
case next_packet_counter is
when c_F0 =>
+ if DAT_DATAREADY_IN = '0' then
+ next_API_DATAREADY_OUT <= '0';
+ end if;
if length = 0 or DAT_NO_MORE_DATA_IN = '1' then
next_state <= SEND_REPLY_DATA_finish;
next_API_DATAREADY_OUT <= '0';
end case;
if API_TYP_IN = TYPE_TRM then
next_state <= DAT_START_READ;
- DAT_READ_ENABLE_OUT <= '1';
+ next_DAT_READ_ENABLE_OUT <= '1';
end if;
end if;