Устранение Неполадок С Соглашениями Об Именах В Quartus Ii При Использовании Schematic

Привет, Хабросообщество.

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

Более того, куча разных специалистов по радиоэлектронике (к которым я обращался за помощью и советом), а также 2 отечественных и 1 зарубежный форум по радиоэлектронике не смогли помочь решить эту проблему.

Я хочу быть уверен, что тот, кто это прочитает, никогда не «встанет на те грабли», на которые я напал и с которыми мучился долгое время.

Проблема заключалась в том, что я не мог использовать более 1 контакта на одном разъеме IDC. Если на разъеме использовалось более 1 контакта (2 и более), то при проверке осциллографом разъем молчал.

Как теперь выяснилось, проблема была в правилах именования в Quartus II при использовании Schematic. Всех, кому это будет полезно или интересно, прошу обращаться под кат. Демонстрация проблемы Я также столкнулся с этой проблемой на целевых (ручных) устройствах.

Но для наглядности хотелось бы продемонстрировать на ките Альтера DE1 (Рисунок 1).



Устранение неполадок с соглашениями об именах в Quartus II при использовании Schematic

Рис.

1 – Совет по развитию и образованию Altera DE1 Я загрузил в Quartus II файл «Altera_DE1_pin_assignments.csv» с назначениями выводов ПЛИС (Имя в проекте — номер вывода ПЛИС), который взял с диска от кита.

На рисунке 2 вы можете увидеть названия контактов сорокаконтактного разъема IDC «GPIO_0» в планировщике контактов.



Устранение неполадок с соглашениями об именах в Quartus II при использовании Schematic

Рис.

2 — Планировщик контактов Quartus II для Altera DE1 Для наглядности опишу проблему подробнее на проекте, показанном на рисунке 3. Тактовая частота 50 МГц поступает с вывода «CLOCK_50» (от тактового генератора на ките, который подключен к определенному выводу ПЛИС).

«lock_50_to_1» — рукописный модуль на языке Verilog, преобразующий тактовую частоту 50 МГц в тактовую частоту 1 МГц с помощью счетчика (аналогичные проблемы наблюдались при использовании мегафункции ALTPLL, встроенной в Quartus II).

Преобразованные часы выводятся на 2 разъема IDC — GPIO_0 и GPIO_1. Разъем GPIO_0 использует 1 пин ([1]) и все работает, разъем GPIO_1 использует 2 контакта ([1],[3]) а сигнала нет.

Устранение неполадок с соглашениями об именах в Quartus II при использовании Schematic

Рис.

3 — Скриншот Quartus II и фото с осциллографа Для наглядности на картинке в спойлере представлена фотография разъемов:

Устранение неполадок с соглашениями об именах в Quartus II при использовании Schematic

Причина проблемы Один из пользователей форума Альтера Форум , заметил «краем глаза» какие-то странные предупреждения при компиляции проекта (который показан на рисунке 3) в Quartus II, и сказал: «Я с этим не сталкивался, не знаю, что делать, но я советую вам сделать модуль верхнего уровня проекта не схематично, а в Verilog или VHDL." Текст предупреждения следующий: Предупреждение (275080): элементы имени шины «GPIO_1» преобразованы с использованием устаревших правил именования.

Делайте любые назначения для новых имен, а не для исходных имен.

Предупреждение (275080).

Сопоставленные элементы на шине с именем «GPIO_1» используют устаревшие соглашения об именах.

Назначайте новые имена, а не исходные имена.

- Предупреждение (275081): имена элементов преобразованы из «GPIO_1[1]» в «GPIO_11».

- Предупреждение (275081): преобразование имени элемента из «GPIO_1[1]» в «GPIO_11».

- Предупреждение (275081): имена элементов преобразованы из «GPIO_1[3]» в «GPIO_13».

- Предупреждение (275081): преобразование имени элемента из «GPIO_1[3]» в «GPIO_13».

Критическое предупреждение (169085): нет точного расположения контактов для 2 контактов из 4 контактов.

Серьезное предупреждение (169085): точное расположение контактов не назначено 2 контактам из 4 контактов.

— Информация (169086): контакт GPIO_11 не назначен точному местоположению на устройстве.

— Информация (169086): Точное расположение контакта GPIO_11 на устройстве не назначено.

- Информация (169086): контакт GPIO_13 не назначен точному местоположению на устройстве.

— Информация (169086): Точное расположение вывода GPIO_13 на устройстве не присвоено Короче, проанализировав предупреждения стало понятно, что Quartus II переименовывает «GPIO_1[1]» — «GPIO_11» «GPIO_1[3]» — «GPIO_13» А для имен GPIO_11 и GPIO_13 не назначены конкретные выводы ПЛИС.

Что об этом сказано в базе знаний Альтеры: Программное обеспечение Max+Plus II имеет ограниченную поддержку имен шин на схеме и иногда переименовывает элементы шины, чтобы работать в рамках этих ограничений.

Например, программное обеспечение Max+Plus II переименовывает имена шин a[1.0], b[1], b[0] на a1, a0, b1, b0 соответственно.

Программное обеспечение Quartus II изначально сохраняло такое поведение для обратной совместимости, но теперь поддерживает метод, который сохраняет естественные имена шин (в квадратных скобках) в вашем проекте.

Однако, чтобы избежать изменения поведения программного обеспечения для существующих проектов, Quartus II продолжает использовать старые соглашения об именах для наследования файлов проектов BDF (файл блочного дизайна) и GDF (файл графического дизайна).

Для новой схемы программное обеспечение Quartus II сохраняет настоящие имена (в квадратных скобках) в проекте во время компиляции.

Соглашения об именах для Quartus II версии 7.1 и более ранних: (СХЕМА ПЕРЕИМЕНОВАНИЯ MAX+Plus II): Если шина a[0.3] разбита на части, то создаются 4 вывода: a0, a1, a2, a3. Соглашения об именах для Quartus II версии 7.2 и более поздних версий: (СХЕМА ПЕРЕИМЕНОВАНИЯ Quartus II): Если шина a[0.3] разбита на части, то создаются 4 контакта: a[0], a[1], a[2], a[3] Способ решения проблемы №1 Итак, мы выяснили, что существует две схемы переименования — Max+Plus II и Quartus II. Вы можете явно переключить эти схемы именования для проекта: Назначения => Настройки => Настройки анализа и синтеза => Дополнительные настройки => Именование конструкции блока Для наглядности в спойлере есть скриншоты пошагового переключения правил переименования:

Устранение неполадок с соглашениями об именах в Quartus II при использовании Schematic



Устранение неполадок с соглашениями об именах в Quartus II при использовании Schematic



Устранение неполадок с соглашениями об именах в Quartus II при использовании Schematic

Как видно из рисунка 4, если явно переключить схему переименования на Quartus II, проблема решена.



Устранение неполадок с соглашениями об именах в Quartus II при использовании Schematic

Рис.

4 — Скриншот Quartus II и фото с осциллографа Способ решения проблемы №2 Если начать использовать контакты разъема IDC по порядку (от 0 до n), то даже при установке схемы переименования Auto Quartus II ничего не переименовывает.

Устранение неполадок с соглашениями об именах в Quartus II при использовании Schematic

Рис.

5 — Скриншот Quartus II и фото с осциллографа Для наглядности на картинке в спойлере представлена фотография разъемов:

Устранение неполадок с соглашениями об именах в Quartus II при использовании Schematic

P.S. Я буду очень рад, если смогу облегчить кому-то жизнь и сэкономить его время.

Теги: #Quartus II #altera #altera #altera de1 #схема #Программирование микроконтроллера

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.