Исследование FIFO (First In First Out), страница 3

CLK – тактовая частота работы системы clk_25 МГц.

Clk_in – частота данных, передаваемых от источника данных.

Clk_out – частота данных, передаваемых в канал.

Расшифровка формата пакета:

H1 – первый байт заголовка (FF)

H2 – второй байт заголовка (F0)

T1 – первый байт хвостовика (8F)

T2 – второй байт хвостовика (80)

ddd – байты с данными

tttt – тетрады данных (каждый байт данных передается потетрадно за 2 приема)

S – контрольная сумма (сумма всех байт данных по модулю 2)

N – количество байт данных


Таблица 1. Входные порты FIFO

Имя порта

Обязательность

Описание

Примечания

data[]

Да

Вход данных, записываемых в scfifo.

Входной порт разрядностью LPM_WIDTH.

Scfifo – FIFO с единым сигналом тактирования для записи и чтения

clock

Да

Positive-edge-triggered clock.

wrreq

Да

Требование записи. Данные из порта data[] записываются в scfifo.

Запись не производится, если порт full = 1.

rdreq

Да

Требование чтения. Данные, стоящие вначале очереди выводятся в порт q[] scfifo.

Чтение не выполняется, если порт empty = 1.

aclr

Нет

Устанавливает scfifo в состояние empty.

Состояние выходного порта q[]не определено.

sclr

Нет

Устанавливает scfifo в состояние empty.

Состояние выходного порта q[]не определено.

Таблица 2. Выходные порты FIFO

Имя порта

Обязательность

Описание

Примечания

q[]

Да

Выходные данные scfifo.

Выходной порт разрядности LPM_WIDTH.

full

Нет

Показывает, что scfifo заполнено и запрещает порт wrreq.

Устанавливается, когда usedw[] = LPM_NUMWORDS.

empty

Нет

Показывает, что scfifo пустое и запрещает порт rdreq.

Устанавливается, когда FIFO пустое.

almost_full

Нет

Показывает, что scfifo почти заполнено.

Устанавливается, когда usedw[] больше или равно ALMOST_FULL_VALUE.

almost_empty

Нет

Показывает, что scfifo почти пустое.

Устанавливается, когда usedw[] меньше ALMOST_EMPTY_VALUE.

usedw[]

Нет

Количество слов, находящихся в scfifo.

Выходной порт разрядностью [CEIL(LOG2(LPM_NUMWORDS))-1..0].