FIFO не может ничего знать о внешних данных. Поэтому время хранения данных, частоты поступления данных определяются внешними клоками. Вы говорили о 10us хранения при поступлении с частотой 100MHz. Как я понимаю, данные заливаются в FIFO в течение 10us, а при настулении момента 10us данные начинают считываться из FIFO с частотой 100MHz или выше. Поведение внешних устройств определяется внешними устройствами. На FIFO идут только клоки синхронизации и сигналы чтения, записи. FIFO при начале чтения из него начинает выдавать данные, одновременно продолжая принимать данные на запись. Если чтение идет быстрее, то FIFO опустошается частично или полностью. Далее на следующей отметке 10us и все повторяется. Если чтение идет медленнее, чем запись, то есть внешнее устройство не успевает выбрать все данные из FIFO, они теряются. Если наоборот успевает, то либо оно продолжает "долбить" FIFO и получает отказ по сигналу "пусто", либо прочитав 1000 байт внешнее устройство ждет следующей порции. Обычно делают так, прочитать все что есть в FIFO и получить первый отказ "пусто", после чего ждать накопления данных. Можете для уверенности сделать FIFO 2000 байт или более. В общем суть одна, поведение данных определяется внешними сигналами.
--------------------
Всеобщая дебилизация не повод наносить ущерб своему здоровью.
|