литература / 1tarasov_i_e_pevtsov_e_f_programmiruemye_logicheskie_skhemy_i
.pdf
Рисунок 2.10 – Добавление в проект модуля My_logic, представляющего собой код поведенческого описания на языке Verilog.
На следующем шаге следует определить интерфейс создаваемого логического модуля, указав параметры его соединений с другими модулями, т.е. имена и типы его портов. Пример назначения параметров модуля приведен на рисунке 2.11.
Рисунок 2.11 – Пример настройки параметров интерфейса модуля в САПР ISE.
28
Далее следует нажать кнопку Next и проверить правильность введенных данных, изучив соответствующий отчет. После нажатия кнопки Finish, в навигаторе проекта появится новый модуль, а в окне документов станет доступным редактирование шаблона кода его описания. Работа с редактором кода аналогична работе с любым текстовым редактором. При вводе стандартных функций и директив языка для удобства работы цвет текста автоматически изменяется. Как показано на рисунке 2.12, для выполнения задания (создать элемент, реализующий функцию 2ИЛИ_НЕ) следует вписать с шаблон строчку с кодом:
assign OUT_1 = ~(IN_A | IN_B);
Рисунок 2.12 – Редактирование кода поведенческого описания модуля 2ИЛИ-НЕ.
Вконсоли сообщений выведена информация об ошибке: попытка выполнить действия
снеобъявленной переменной «A».
Отредактированный код поведенческого описания следует сохранить (меню File
– Save). Затем следует выполнить проектную процедуру проверки синтаксиса кода. Для этого следует выделить в окне модулей проекта соответствующий файл, и в окне Process и дважды щелкнуть на строчке вызова приложения Check Syntax (см. рисунок 2.12). Результаты выполнения проверки синтаксиса будут выведены в окно Console внизу навигатора проекта. При сообщении об ошибках (Process "Check Syntax" failed) следует найти в тексте консоли соответствующие строки (ошибки выделены цветом, как показано на рисунке 2.12) с указанием места, где в окне документов локализована ошибка, и типа ошибки. Ошибки необходимо исправить, после чего следует сохранить файл с исправленным кодом и снова проверить его синтаксис. Если проверка синтаксиса прошла успешно, то напротив строки с кнопкой вызова приложения Check Syntax
29
появится зеленый кружок с галочкой, а в консоли сообщений – строка Process "Check Syntax" completed successfully. После этого следует выполнить процедуру создания символьного представления разработанного логического модуля (в данном случае – модуля
My_logic.v).
Для создания символьного представления модуля и включения его в принципиальную схему следует выполнить следующие действия.
1)Выделить в окне исходных модулей проекта строку с названием модуля «My_logic (My_logic.v)», после чего в окне Process откроется в список процессов, доступных для данного модуля.
2)Дважды щелкнуть на строке Design Utilites - Create Schematic Symbol, про-
верить, что в окне консоли появилось сообщение об успешном выполнении компиляции графического символа логического модуля. Важно проверить корректность выполнения данной операции после каждого изменения кода проектируемого модуля и перезаписи соответствующего текстового файла кода, т.к. при ошибках САПР ISE будет всегда использовать в проекте последнюю корректно оттранслированную версию компонента. Впоследствии это послужит источником ошибок в работе всего проекта, который будет трудно обнаружить.
3)Открыть из окна модулей процесса документ с принципиальной схемой проекта, раскрыть закладку Symbol и убедиться, что в списке библиотечных элементов проек-
та в категории « <= All symbols =>» появился модуль My_logic (см. рисунок 2.13).
Рисунок 2.13 – Пример размещения на принципиальной схеме логического модуля My_logic.
Компоненты, созданные пользователем, сохраняются в отдельной группе, название которой соответствует пути к папке проекта. Поэтому, в частности, нужно, чтобы проект размещался вне общей папки с САПР ISE. Чтобы поместить символьное пред-
30
ставление модуля на принципиальную схему, как это показано на рисунке 2.13, нужно щелкнуть левой кнопкой мыши на его наименовании и захватив мышкой, перенести на схему. В принципиальную схему следует также внести необходимые стандартные элементы (см. пример на см. рисунке 2.14).
Рисунок 2.14 – Пример черновика принципиальной схемы разрабатываемого устройства. Требуется отредактировать названия входов.
В данном случае в соответствии с требованиями задания, нужно:4) Сначала входы модулей My_logic и And2 соединить проводниками (использовать элементы Add Wire, левую кнопку мыши и клавишу «Esc»).
5)Выбрать из категории « IO» и перенести на принципиальную схему буферные стандартные элементы «ibuf» и «obuf» и соединить их проводниками с соответствующими узлами схемы.
6)Поместить на схему специальные маркеры входов и выходов, которые должны быть впоследствии подключены к выводам микросхемы, в которую будет «зашито» проектируемое устройство.
7)По умолчанию маркеру присваивается имя XLLN_XX, где XX – порядковый номер компонента в соответствии с внутренней нумерацией графического редактора ECS. Для окончательного оформления схемы рекомендуется дать маркерам входов и выходов собственные контекстные имена, отражающие назначение подключенным к ним сигналов. Для этого можно использовать контекстное меню маркеров, изменив имя порта (см. рисунок 2.15) или свойства выделенного объекта схемы, изменив имя узла (см. рисунок 2.16).
31
Рисунок 2.15 – Пример редактирования имени порта вывода.
Рисунок 2.16 – Пример редактирования свойств порта вывода.
Окончательный вид принципиальной схемы представлен на рисунке 2.17.
Рисунок 2.17 – Пример принципиальной схемы разработанного устройства, включающего два компонента: модуль логического описания компонента My_logic и элемент and2 из библиотеки стандартных элементов.
После редактирования принципиальной схемы следует сохранить файл с разрабо-
32
танной схемой устройства (модуль верхнего уровня иерархии). Для проверки нужно убедиться, что на закладке Design в окне модулей проекта разработанная схема Top_Spa_6 (Top_Spa_6.sch) переместилась на верхний уровень иерархии проекта, включив в себя модуль XLXI_XX - My_logic (My_logic.v) какэто показанона рисунке 2.18.
Рисунок 2.18 – Два уровня иерархии проекта (окно Design: Implementation). Процессы (проектные процедуры), доступные для верхнего модуля проекта
Top_Spa_6 (Top_Spa_6.sch) (в окне Process выделен модуль Top_Spa_6).
33
2.1.4 Синтез проектируемого устройства на RTL-уровне описания и на основе стандартных элементов ПЛИС
Контекстное окно Processes содержит список всех проектных процедур, доступных пользователю ISE в зависимости от выделенного модуля проекта. В общем случае процесс проектирования в среде ISE заканчивается выполнением процедур трансляции главного файла проекта.
Трансляция проекта включает три основных этапа: Synthesize (синтез устройства), Implement Design (размещение устройства в выбранной микросхеме ПЛИС с использованием ее ресурсов) и Generate Programming File (создание бинарного файла для выполнения процедуры прошивки конфигурации разработанного устройства в ПЛИС).
Каждый из этапов трансляции может включать в себя несколько проектных процедур. На рисунке 2.18. приведен пример такого списка для модуля Top_Spa_6.sch.
Пиктограммы возле отдельных названий процедур соответствуют типу приложений, которые будут запущены на выполнение при их активации. Двойными стрелками отмечены процессы, исполняемые в основном окне навигатора. Ход выполнения операций документируется в специальном текстовом файле *.log, и иллюстрируется сообщениями в окне консоли.
Значки галочки в зеленых кружках сигнализируют об успешном завершении операции. Желтые восклицательные знаки указывают на то, что один из вложенных процессов завершился с некритическими ошибками (предупреждениями). Критические ошибки, приводящие к прекращению процесса трансляции, отмечаются красными крестиками. Значком документа показаны файлы отчетов о полученных проектных решениях, которые будут выведены при этом в основное окно навигатора проекта. Другие пункты и пиктограммы приложений соответствуют внешним сопутствующим инструментам (утилитам), открывающимся в своем окне.
Для трансляции всего проекта достаточно запустить процесс Generate Programming File. При этом недостающие для его выполнения процессы будут запущены автоматически.
Параметры трансляции настраиваются из контекстных меню процессов, и их не следует изменять без четкого понимания назначения параметров и целей перенастройки. Подробнее о настройках параметров трансляции можно прочесть в книгах [2.2 и 2.4].
Порядок процедур в списке соответствует последовательному поэтапному проектированию сверху-вниз и пользователь при необходимости имеет альтернативную возможность выполнять трансляцию по шагам, контролируя результаты после каждого этапа.
В частности, на этапе размещения устройства в конкретной ПЛИС, пользователь может просмотреть как реализован проект на уровне описания цепей сигналов и сохранения их состояний в регистрах (Register Transfer Level, RTL-уровень). Для этого нужно вызвать из раздела списка Synthesize –XST процедуру View RTL Schematic и включить, как показано на рисунке 2.19, второй пункт в окне представления результатов.
ПримерRTL-представления разработанногоустройстваприведенна рисунке 2.20.
34
Рисунок 2.19 – Окно настройки представления результатов выполнения процедуры Synthesize –XST - View RTL Schematic.
Рисунок 2.20 – Пример результата выполнения процедуры Synthesize –XST - View RTL Schematic. Проектируемое устройство представлено
в виде модуля верхнего уровня с интерфейсными портами.
35
Раскрыть внутреннее содержание модуля можно двойным щелчком на его графическом символе (см. рисунок 2.21).
Рисунок 2.21 – Пример результата выполнения процедуры
Synthesize –XST - View RTL Schematic на нижнем уровне иерархии.
Используя процедуру Synthesize–XST - View Technology Schematic, можно проследить, как транслятор ISE распорядился ресурсами микросхемы, т.е. проконтролировать, как устройство собрано из стандартных элементов, содержащихся в данной микросхеме ПЛИС. Пример приведен на рисунке 2.22.
Рисунок 2.22 – Пример результата выполнения процедуры
Synthesize –XST - View Technology Schematic.
36
Дважды щелкнув на графическом символе логического модуля My_logic можно раскрыть его принципиальную схему, составленную из библиотечных элементов (см. рисунок 2.23), соответствующее логическое уравнение в совершенной дизъюнктивной форме, таблицу истинности (Look-Up Table) программируемого генератора логических функций LUT2, реализующего эту функцию (рисунок 2.24) и карту Карно (рисунок 2.25).
Рисунок 2.23 – Принципиальная схема логического модуля My_logic, составленного из перепрограммируемых элементов ПЛИС
(т.е. синтезируемого из компонентов стандартной библиотеки).
Рисунок 2.24 – Таблица истинности логического модуля My_logic, синтезированного генератором логических функций LUT2.
37
