Продолжение работы работы с ISE WebPack. Назначение выводов ПЛИС проекту. Генерация файла прошивки. Запись прошивки в ПЗУ.

После того, как мы в схемотехническом редакторе нарисовали схему, необходимо ее проверить на наличие разного рода ошибок. Открываем нижнюю закладку Design, в окне Иерархия выделяем наш файл со схемой register1.sch и в нижнем окне процессов запускаем Design Utilities\Check Design Rules.

Если в консоли (самое нижнее белое окно) появилось сообщение «Process “Schematic Design Rule Check” completed successfully», то можно продолжить.

В окне процессов запускаем двойным щелчком процесс Synthesize. Если процесс успешно завершится и в консоли будет сообщение Process “Synthesize – XST” completed successfully, то чуть выше можно увидеть рассчитанную максимальную частоту, на которой способен работать ваш проект на данной конкретной ПЛИС.

окно программы PlanAhead
Окно назначения выводов

Далее, нам необходимо привязать порты нашего устройства к конкретным выводам ПЛИС. В окне процессов, соответствующих нашему главному схемному файлу register1.sch, запускаем User Constraints/IO Pin Planning (Plan Ahead) – Post-Synthesis. В появившемся окне, которое предлагает нам автоматически создать текстовый файл register.ucf с назначением выводов, нажимаем YES. Далее при открытии программы вылетает маленькое окно с проверкой обновлений – закрываем его. Приветственное окно Welcome так же закрываем. В окне I/O Ports указаны все порты нашего устройства. Раскрываем его на весь экран для удобства работы. Сначала указываются шинные порты, после, в папке Scalar Ports – одиночные порты схемы. Для обозначения шинных портов DOUTBUS раскрываем шину, нажав на плюсик рядом с обозначением. В колонке Site указываем номер вывода для каждого шинного порта. Для этого нужно взять описание выводов Spartan3 для корпуса FT256. Выбираем только те выводы, которые разрешено применять, то есть, которые являются пользовательскими. Аналогично поступаем с одиночными выводами. Все тактовые порты в обязательном порядке необходимо привязать к выводам типа GCLK (номер смотри в описании выводов корпуса FT256). Если мы этого не сделаем, то при запуске процесса реализации проекта выплывет ошибка, которую и надо будет устранить одним из двух предложенных способов (по-английски).  В нашем проекте тактовым можно считать только один порт – CLK.

В колонке I/O STD не забываем изменить, если требуется, стандарт ввода/вывода на LVCMOS33 (3.3 V).

Далее, нажимаем на кнопку Сохранить, закрываем PlanAhead и возвращаемся к нашему проекту.

В списке процессов запускаем Implement Design (реализация разработки). При успешном завершении напротив этого процесса также, как и ранее, появится зеленая галочка, а в консоли также можно узнать много интересного о реальных временных задержках в проекте.

Далее, запускаем процесс Generate Programming File. После его успешного окончания запускаем процесс Configured Target Device. В появившемся окне нажимаем OK. Появляется окно программы ISE Impact. В окне IMPACT Flows запускаем пункт Create PROM File (PROM File Formatter). Далее, в открывшемся окне Step1 оставляем пункт Xilinx Flash/PROM, нажимаем на зеленую стрелку, в окне Step 2 выбираем тип микросхемы ПЗУ, который вы используете и нажимаем кнопку Add Storage Device. В окне Step3 в строке Output File Name указываем reg1, в строке Output File Location указать D:/XProject/register1. Нажимаем OK. В появившемся окне ADD DEVICE нажимаем OK и выбираем файл register1.bit.

В появившемся окне, которое предлагает вам добавить другое устройство, нужно отказаться от предложения, нажав NO, затем OK. В левом окне iMPACT Processes запустить появившийся там  процесс Generate File. Появится синее сообщение Generated Succeeded.

Далее, НЕ ЗАКРЫВАЯ программу iMPACT, необходимо подключить наше устройство при помощи кабеля USB-JTAG к компьютеру и подать на устройство питание.

После этого в окне iMPACT Flows запустить поток Boundary Scan. В появившемся окне в контекстном меню кликнуть на Initialize Chain. Если ваше устройство собрано правильно, то в перед вами появится последовательная цепочка ваших микросхем, состоящая из ПЛИС XC3S200 и ПЗУ типа XCF02S. Программировать непосредственно ПЛИС мы не будем, поэтому в окне Assigne New Configuration File при подсвеченной зеленым ПЛИС нажмем CANCEL.

Следующее окно предлагает нам выбрать файл прошивки для ПЗУ. Выбираем наш только что созданный файл reg1.mcs. После нажатия кнопки OPEN появляются свойства программирования наших устройств, которые можно изменить. Мы просто нажмем ОК.

Далее, в отсканированной структуре выделяем нашу ПЗУ (зеленым) и в окне iMPACK Processes запускаем процесс Program (двойным кликом). Об успешном окончании процесса программирования нам скажет сообщение на синем фоне Program Succeeded. Можно закрыть программу iMPACT.

Теперь, для того, чтобы содержимое ПЗУ переписалось в ПЛИС, необходимо выключить и снова включить наше устройство.

Таким образом, мы с вами научились основам работы в ISE WebPack.

Об авторе admin

Инженер. Окончил НГТУ по специальности "Радиосвязь, телевидение и радиовещание". С 2003 г. занимаюсь разработкой электронной начинки различных радиотехнических устройств и приборов.
Запись опубликована в рубрике Все статьи, Только у нас! Видеоуроки XILINX ISE WebPack. Добавьте в закладки постоянную ссылку.

3 комментария на «Продолжение работы работы с ISE WebPack. Назначение выводов ПЛИС проекту. Генерация файла прошивки. Запись прошивки в ПЗУ.»

  1. brucemax говорит:

    Круто! Вот по чём студентов надо обучать! Очень мне помогает!
    А вот выводы на скрине не начинаются с “P” я так понимаю из-за того, что там корпус другой используется ft256 а не tq144.. ведь так?

    • admin говорит:

      Совершенно верно! Дело в том, что сначала хотел про TQ144 писать, потому что в основном с ним приходится иметь дело в реальных приборах, но потом вспомнил, что на отладочной плате (evaboard) у меня FT256, решил писать про неё, и перелил скрин. Неточность в тексте исправляю и благодарю за полезный комментарий!

Оставить комментарий