- •Руководство по ghdl и gtKwave для начинающих Вступление
- •Введение
- •Часть 1. Установка по
- •Часть 2. Анализ 1-го теста. Определение алгоритма построения программной модели.
- •Часть 3. Анализ 1-го теста. Запуск компилятора и обработка полученного файла.
- •Часть 4. Анализ 1-го теста. Разработка тестового файла.
- •Часть 5. Анализ 1-го теста. Компиляция тестового файла. Верификация.
- •Часть 6. Анализ 2-го теста.
- •Часть 7. Анализ 3-го теста.
- •Часть 8. Общие замечания.
- •Список литературы
Часть 5. Анализ 1-го теста. Компиляция тестового файла. Верификация.
Полученный тестовый файл необходимо проверить по синтаксису и сформировать его, для этого выполняются указанные ранее команды:
ghdl –a func_tb.vhdl
ghdl –e func_tb
Как видно, команды аналогичны по своему роду записи, с той лишь разницей, что указывается другой файл.
Теперь с помощью сконфигурированного файла необходимо протестировать написанную ранее программную модель. Для этого выполняется следующая команда:
ghdl –r func_tb –vcd=func.vcd
После ввода данной команды производится непрерывное тестирование программной модели описанными в тестовом файле сигналами. Результат тестирования записывается в файл указанный в команде func.vcd.
Поскольку тестирование повторяется, то необходимо спустя некоторое время прервать эту операцию нажатием клавиш (Ctrl+C). В противном случае записанный файл будет иметь очень большой размер, неподлежащий отображению. Продемонстрируем указанные действия:
Теперь работа компилятора завершена и остается лишь отобразить полученный файл func.vcd. Для этого мы запускаем файлgtkwave.exe. Перед нами открывается тестовая средаGTKwave. Для отображения полученного файла необходимо или перетащить его в открытое окно программы или открыть его следующим образом: (File=>OpenNewTab) =.> найти его в каталоге папок и файлов.
Для корректного отображения сигналы указанные в поле 1, необходимо перетащить в поле 2, а потом настроить масштаб переключателями 3,4.
Результат верификации указанного рассматриваемого примера имеет следующий вид:
Результаты тестирования, как видно, соответствуют таблицам истинности для реализуемых функций.
Часть 6. Анализ 2-го теста.
Поскольку в предыдущих частях руководства были рассмотрены основные моменты необходимые для работы, то в последующих частях остановимся лишь на наглядном представлении результатов тестирования , а также на основных моментах кода.
В примере №2 описывается программная модель дешифратора с двумя входными и 4-мя выходными контактами. На выходах формируются сигналы соответствующие математической модели дешифратора. Поскольку математическая модель дешифратора представляется комбинацией логических функций, то программная модель этого устройства имеет следующий вид:
Outp(0)<= not (Inp(0)) and not(Inp(1));
Outp(1)<= Inp(0) and not(Inp(1));
Outp(2)<= not(Inp(0)) and Inp(1);
Outp(3)<= Inp(0) and Inp(1);
Как видно на нулевой выход подается логическая сумма инверсией входов, на первый выход – логическая сумма сигнала нулевого входа и инверсии сигнала первого входа,
2-й выход – лог. сумма инверсии сигнала нулевого входа и сигнала первого входа,
3-й выход – лог. сумма сигналов с нулевого и первого входов в не инвертированном виде.
Тестовые сигналы идентичны первому тесту и принимают все возможные значения для входного битового двухразрядного вектора (число сигналов равно 4).
Результаты тестирования имеют следующий вид:
Как видно, из временной диаграммы каждая комбинация входных сигналов вызывает на выходе лишь один сигнал равный «1», что свидетельствует о правильном функционировании дешифратора.