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

|

Рис. 4

            При заполнении буферного FIFOустройство передами данныхустанавливает сигнал full, по которому источник данных должен прекратить подачу данных.

Блок синхронизации входных данных synchr обеспечивает привязку входных сигналов от источника данных к clk_25 - тактовой частоте работы устройства передачи данных и формирование сигнала требования записи в FIFO.

В работе синтезируется формирующий пакеты подключенный к каналу передатчикtx_control. В каждом из вариантов задания требуется реализация передатчика, работающего с заданным форматом пакета. В канал связи данные передаются в виде пакетов из заданной разрядности (байтов или полубайтов). Каждый пакет, помимо порции «пользовательских» данных, содержит некоторое количество служебных байтов, определяющих границы пакета и несущих дополнительную информацию, например, контрольная сумма, размер пакета и т.д.

Передатчик извлекает из FIFO «пользовательские» данные, обрамляет их служебными, формируя пакет, и отправляет пакет в канал, передавая байты с указанной в задании частотой clk_out. Если в задании указан интервал, передатчик должен по истечении интервала с последней передачи формировать пакеты с тем количеством данных, которое имеется в FIFO, но не более максимального размера.

            Программа работы.

1.  Исследование FIFO.

1.1.  Ознакомьтесь с описанием параметризируемого модуля LPM_FIFO из состава библиотеки Megafunctions/LPM пакета Quartus II.

1.2.  Откройте Tool > MegaWizard Plug in Manager и выберите Create a new custom megafunction variation. Используя MegaWizard (папка MemoryCompiler) организуйте FIFO на 64 восьмиразрядных слова с единым тактированием чтения и записи, всеми выходными функциями, характеризующими состояние FIFO, и синхронным сбросом. Откройте созданный MegaWizard файл .vhd настроенной мегафункции FIFO и установите его как файл верхнего уровня проекта (меню Project). Выполните компиляцию проекта на СБИС ПЛ EP2C8F256C8.

1.3.  Определите запишите используемые ресурсы СБИС ПЛ и производительность. Откройте Tools > Netlist Viewers > RTL Viewer. Перечислите основные операционные узлы FIFOи поясните их взаимодействие.

1.4.  Составьте тест и исследуйте работу FIFO в различных режимах, наблюдая обязательные и вспомогательные сигналы EMPTY, FULL, USEDW[]. Сравните работу FIFO при значении параметра LPM_SHOWAHEAD.

2.  Исследование устройства передачи данных с FIFO.

2.1.  На языке VHDL опишите, синтезируйте и протестируйте передающий блок устройства передачи данных, согласно варианту индивидуального задания.

2.2.  Создайте устройство передачи данных с FIFO, согласно варианту индивидуального задания.

2.3.  Составьте тест и выполните исследование работы устройства. В тесте обязательно должны моделироваться следующие ситуации: поочередное и одновременное запись и считывание из FIFO; опустошение FIFO; переполнение FIFO.

3.  Оформите отчет, который должен содержать: описание функций созданного устройства; формальное описание алгоритма работы устройства (можно в виде схемы алгоритма или графа автомата); схему устройства; временные диаграммы работы устройства с описанием выполняемых операций. Для успешной сдачи отчета необходимо уметь показать связь между приведенным описанием алгоритма и временной диаграммой.


Варианты индивидуальных заданий.

Вари-ант

Тип устройства

Длина пакета

Интервал

Формат пакета

LPM_SHOW-AHEAD

Clk_out

Clk_in

1

Передатчик

8

-

H1H2dddT1T2

ON

CLK/3

CLK/5

2

Передатчик

до 9

< 1us

H1Nddd

OFF

CLK/2

CLK/3

3

Передатчик

10

-

H1dddT1

ON

CLK/4

CLK/5

4

Передатчик

до 11

< 2us

H1NdddT1

OFF

CLK/2

CLK/4

5

Передатчик

12

-

H1dddS

ON

CLK/6

CLK/8

6

Передатчик

13

-

H1dddST1

OFF

CLK/3

CLK/5

7

Передатчик

14

-

dddT1T2

ON

CLK/2

CLK/3

8

Передатчик

до 15

< 3us

H1NdddS

OFF

CLK/4

CLK/5

9

Передатчик

6

-

dddST1T2

ON

CLK/5

CLK/7

10

Передатчик

7

-

H1H2tttt

OFF

CLK/3

CLK/8

11

Передатчик

до 10

< 2us

H1dddST1

ON

CLK/3

CLK/4

12

Передатчик

14

-

H1ttttT1

OFF

CLK/3

CLK/7

13

Передатчик

10

-

H1dddT1

OFF

CLK/4

CLK/6

-

-

-

-

-

-

-