ram_read_addr2 <= "0100";
next_state <= c_F0;
when send_uid_2 =>
- ram_read_addr2 <= "1111";
+ ram_read_addr2 <= "0000";
buf_API_SEND_OUT <= '0';
next_state <= c_H0;
when send_ack_address =>
- ram_read_addr2 <= "1111";
+ ram_read_addr2 <= "0000";
buf_API_SEND_OUT <= '0';
next_state <= c_H0;
when sending_idle => null;
buf_MED_DATAREADY_OUT <= '0';
reg_SEND_ACK_IN_2 <= '0';
reg_SEND_ACK_IN <= '0';
+ buf_MED_PACKET_NUM_OUT <= c_H0;
transfer_counter := c_H0;
elsif CLK_EN = '1' then
reg_SEND_ACK_IN_2 <= (reg_SEND_ACK_IN_2 or SEND_ACK_IN) and reg_SEND_ACK_IN;
end if;
buf_MED_DATAREADY_OUT <= '0';
- reg_SEND_ACK_IN <= SEND_ACK_IN or reg_SEND_ACK_IN or reg_SEND_ACK_IN_2;
if (SEND_ACK_IN or reg_SEND_ACK_IN or reg_SEND_ACK_IN_2) = '1' then
buf_MED_DATAREADY_OUT <= '1';
end if;
- if transfer_counter = c_F3 and MED_READ_IN = '1' then
- reg_SEND_ACK_IN <= '0';
- end if;
- if transfer_counter = c_F3 and reg_SEND_ACK_IN = '0' then
+-- if transfer_counter = c_F3 and MED_READ_IN = '1' then
+-- reg_SEND_ACK_IN <= '0';
+-- end if;
+ if buf_MED_PACKET_NUM_OUT = c_F3 and MED_READ_IN = '1' then
transfer_counter := c_H0;
+ buf_MED_DATA_OUT(2 downto 0) <= TYPE_ACK;
end if;
buf_MED_PACKET_NUM_OUT <= transfer_counter;
+ reg_SEND_ACK_IN <= reg_SEND_ACK_IN or SEND_ACK_IN or reg_SEND_ACK_IN_2;
+ if transfer_counter = c_F3 and SEND_ACK_IN = '0' and reg_SEND_ACK_IN_2 = '0' then
+ reg_SEND_ACK_IN <= '0';
+ end if;
+
end if;
end if;
end process;
constant std_IBUF_SECURE_MODE : integer := c_SECURE_MODE;
constant std_USE_ACKNOWLEDGE : integer := c_YES;
constant std_USE_REPLY_CHANNEL: integer := c_YES;
- constant std_FIFO_DEPTH : integer := c_FIFO_SMALL;
+ constant std_FIFO_DEPTH : integer := c_FIFO_BRAM;
constant std_DATA_COUNT_WIDTH : integer := 5; --max 7
constant std_TERM_SECURE_MODE : integer := c_NO;
constant std_MUX_SECURE_MODE : integer := c_NO;