Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Теория графов и её приложения.-1

.pdf
Скачиваний:
0
Добавлен:
20.11.2023
Размер:
8.93 Mб
Скачать

зует функции переходов. Так и есть, Map Viewer-схемы автомата подтверждает это (рис. 12.22).

Рис. 12.22. Map Viewer-схемы автомата, созданной по графу State Machine

Оценка быстродействия проекта – 11,220 нс на частоте

380,08 МГц.

Компилятор сопоставил каждому состоянию автомата свой триггер. Таким образом автоматический синтез осуществляется с использованием унитарного кода состояний.

4. Проверка правильности отработки схемы алгоритма. Получение временных диаграмм

Рассмотрим создание файла *.vwf, содержащего временные диаграммы. В меню File необходимо выбрать команду New, в открывшемся диалоговом окне в группе Verification/Debugging Files выделить раздел University Program VWF и нажать ОК. По-

сле чего откроется пустое окно редактора временных диаграмм с именем по умолчанию Waveform.vwf (рис. 12.23).

Созданный файл необходимо сохранить, используя команду Save As в меню File, при этом нужно обратить внимание на наличие флажка около надписи Add file to current project (добавить файл к текущему проекту). Если флажок поставлен, то система автоматически включит созданный файл в проект (рис. 12.24).

Для удобства на область временных диаграмм нанесена временная сетка, предназначенная для визуальной привязки сигналов к конкретным временным интервалам. Используя команду

111

Grid Size меню Edit можно изменить шаг временной сетки. Используя команду End Time меню Edit, можно изменить время окончания моделирования, т.е. изменить время всего процесса моделирования.

Рис. 12.23. Окно редактора временных диаграмм

Рис. 12.24. Создание файла временных диаграмм

Далее в созданный файл необходимо ввести входные и выходные сигналы, присутствующие в проекте. Для этого в меню Edit выбираем строку Insert Node or Bus (вставить узел или шину), в результатечегопоявляетсяокнодобавлениясигналов(рис. 12.25)

112

Рис. 12.25. Окно добавления узла или шины

В поле Name вписываем имя первого входного сигнала, например A. В следующих полях указываем параметры сигнала: Type (тип) – INPUT (входной сигнал), Value type (тип значения) – 9-Level, Radix (основание системы счисления) – Binary (двоичная), Bus width (ширина шины) – 1, Start index (начальное значение) – 0

и нажимаем ОК. Таким образом входной сигнал А успешно добавлен в окно редактора временных диаграмм (рис. 12.26).

Для добавления выходного сигнала необходимо повторить аналогичные действия, за исключением того, что в поле Type окна Insert Node or Bus необходимо выбрать OUTPUT (выходной сигнал). Такимобразом, добавляемвсенеобходимыесигналы(рис. 12.27).

Далее будем задавать конкретные значения для входных сигналов, но сначала для удобства работы объединим входы A и B. Для этого необходимо выделить оба входных сигнала и в меню Edit выбрать раздел Grouping, а затем Group… и задать имя группы, например AB. Далее зададим параметру End Time значение 400.0 ns. После этого необходимо выбрать на панели инструментов инструмент Count Value. В результате появится окно настройки значений сигналов (рис. 12.28). Установим параметр Count every, который определяет интервал между сменой значений входных сигналов, в значение 100.0 ns.

113

Рис. 12.26. Добавление входного сигнала в редактор временных диаграмм

Рис. 12.27. Добавление всех входных и выходных сигналов в редактор временных диаграмм

114

Рис. 12.28. Окно редактора Count Value

Далее зададим значение сигнала для входного элемента Clock. Для этого необходимо выделить соответствующий входной сигнал, на панели инструментов выбрать инструмент Overwrite Clock и нажать ОК. Для входного элемента Reset зададим значение сигнала, равное единице, для этого на панели инструментов выбираем инструмент Forcing High (1). Значения для выходных сигналов оставляем в исходном виде, поскольку они будут генерироваться в процессе компиляции временных диаграмм. Окончательный результат представлен на рис. 12.29.

Пусть заданный автомат должен распознавать последовательность 3–2–0–1, при установке для входных сигналов значений 11–10–00–01 выход Z1 должен установиться в единицу на конечном такте. Для последовательностей 3–1, 3–2–3, 3–2–1 должен устанавливаться в единицу выход Z2. Проверим первый вариант последовательности. Задаем необходимые значения для переменных A, B и нажимаем кнопку Run Functional Simulation

на панели инструментов. Дожидаемся окончания процесса симуляции и получаем результат (рис. 12.30).

115

1

Рис. 12.29. Окно редактора временных диаграмм с установленными значениями входных сигналов

Рис. 12.30. Проверка распознавания автоматом «правильной» последовательности входных сигналов

Можно видеть, что на последнем такте на выход Z1 был подан единичный сигнал, что соответствует нашим ожиданиям. Автоматкорректнораспознал«правильную» последовательность.

Теперь установим для входных сигналов «неправильную» последовательность, например 11–10–11. При этом на третьем такте выход Z2 должен установиться в единицу (рис. 12.31).

116

Рис. 12.31. Проверка распознавания автоматом «неправильной» последовательности входных сигналов

Аналогичную картину наблюдаем при проверке последовательностей 11–01 и 11–10–01, причем в первом случае сигнал z2 устанавливается в единицу на втором такте, а во втором случае – на третьем такте.

При проверке автомата, реализующего ГСА (см. рис. 12.1), в зависимости от значений переменных Х1Х2 анализируем правильность последовательности выдачи z:

Проверяем при переменных х2х1 = 00 (рис. 12.32). Выдаются микрооперации z1, z2, z3, z4.

Рис. 12.32. Проверка при х2 х1 = 10

117

Проверяем при х1 = 1. Сначала z1, потом постоянно z2 (рис. 12.33). Выдаются микрооперации z1, z2, z2, z2…..

Рис. 12.33. Проверка при х1 = 1

Проверяем при переменных х2х1 = 10 (рис. 12.34). Выдаются микрооперации z1, z2, z3, z5, z1, z2, z3, z5

Рис. 12.34. Проверка при х2 х1 = 10

Автомат работает – схема алгоритма и соответствующий граф реализуются верно!

118

Рис. 12.35. Проверка всех вариантов х2х1

Можно всю проверку реализовать на одной временной диаграмме (рис.12.35).

5.Изменение настроек автоматического синтеза автомата, заданного в виде State Machine File

Действительно, оказывается, что указанный выше автоматический синтез с использованием унитарного кодирования (one-hot encoding) в State Machine Quartus 2 выполняется по умолчанию и существует возможность использования другого кодирования. Для изменения настроек в соответствие с [10, 11] выполняем сле-

дующее: Navigate to Assignments > Settings (рис. 12.36).

Рис. 12.36. Начало изменения настроек автоматического синтеза автомата, заданного в виде State Machine File

119

Обратим внимание на массу имеющихся различных оп-

ций! Далее выбираем Analysis & Synthesis Settings; More Settings (рис. 12.37).

Рис. 12.37. Выбор Analysis & Synthesis Settings; More Settings

для изменения настроек автоматического синтеза автомата,

заданного в виде State Machine File

Выбираем то, что нас интересует – State Machine Processing (рис. 12.38).

Видим, что там отображается режим кодирования Авто по умолчанию (рис. 12.39).

Он и есть – режим унитарного кодирования, так называе-

мый one-hot.

Теперь устанавливаем Minimal Bits, который, как думается, мы и использовали при создании BDF вручную (рис. 12.40).

120