Перейти к содержанию
    

Скажите, нельзя ли из проекта в Quartus, выполненного в виде Block Diagram/Schematic получть VHDL код?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое!

 

А ещё вопрос. Как в симуляторе посмотреть интересующие сигналы? Я цепляю к сигналу Output Port, а потом нахожу его в симуляторе. Но ведь как-то иначе должно быть.

 

В Квартусе недавно работать начал. На работе гонят, много времени разбираться нету. Приходится для скорости пользоваться теми методами, которые наиболее очевидны. Так что сорри, если простоту спрашиваю - это не от лени. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А ещё вопрос. Как в симуляторе посмотреть интересующие сигналы? Я цепляю к сигналу Output Port, а потом нахожу его в симуляторе. Но ведь как-то иначе должно быть.

 

У меня прокатывало в Find Nodes вводить "*<часть имени>*" для типа Post-syntesis или Post-rowted.

И, что найдет, перетаскивать в .vwf

 

Но такое проедет, если он сигнал не выбросит в процессе оптимизации - для таких сигналов можно присваивать "Virtual port"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А ещё вопрос. Как в симуляторе посмотреть интересующие сигналы? Я цепляю к сигналу Output Port, а потом нахожу его в симуляторе. Но ведь как-то иначе должно быть.

 

Можно посмотреть нужный сигнал и через Output Port, но лучше его объявить виртуальным:

выбираете пин, правая клавиша мыши-> locate->locate in assignment editor-> в поле "Assignment name" выбрать "Virtual Pin" , затем в поле Value выбрать "On" и сохраниться (Ctrl+S)

Это позволит вставить куда нужно виртуальные пины, не загромождая настоящими контактами проект, а также смотреть реальный сигнал в данный момент времени (без учета задержек, связанных с прохождением сигнала из ячейки до настоящего пина через матрицу соединений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Внутренние узлы можно вытащить в Post-Compilation. Они реальные. Их меньше, чем MAX позволял. Но вполне достаточно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я понял сейчас отладка идет на функцианальном или временном уровне.

После этого можно посмотреть как все это будет работать на реальном железе (естественно при его наличии). Для этого своетую испоьзовать SignalTap (Tools-> SignalTap Logic Analizer)

В Signal Configuration выбираете clock, по которому будет просмотр и запись сигналов, глубину просмотра (Sample Depth), а в окне SETUP добавляете сигналы, которые требуется посмотреть, а также выставляете условие, по которому производить начало записи (напр. по положительному фронту какого-ниб сигнала), нажимаете Run и готово!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для таких сигналов можно присваивать "Virtual port"

Как?

http://electronix.ru/forum/index.php?showt...ost&p=69579

(Это если на Верилоге)

Изменено пользователем Leka

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

(Это если на Верилоге)

Нет. Я использую графический редактор. Получается что-то вроде принципиальной схемы. Или структурной схемы, в которой вся система наглядно разделена на функциональные блоки. Мне кажется, что так более наглядно, чем просто писать на VHDL или на другом языке.

 

Видны не просто функц. блоки, но и сигналы, которые в них входят-выходят, соответствие сигналов выводам на FPGA. Из-за наглядности проще отлаживать и получается всё намного быстрее.

 

Блоки, в свою очередь, состоят из подсхем или компонентов, описанных на VHDL. Опять-таки для простоты, стараюсь не создавать громоздких компонентов. В каждом - не более одного процесса. По-моему, такой подход сильно экономит время. Очень просто отлаживать. Очень просто найти ошибку. Простой код просто изменить.

 

Опять-таки, графическую схему легче обсуждать, чем программу на VHDL, выискивая по тексту тот или иной сигнал.

 

можно посмотреть как все это будет работать на реальном железе
На реальном железе смотреть уже поздно. :) Там уже ДОЛЖНО всё работать.

 

Для этого своетую испоьзовать SignalTap
Э-эх! Если б всё это знать, если б дали хоть пару недель свободно покопаться! Решать проблемы приходится прямо во время работы, по мере их возникновения. Заодно и учиться. :) :)

 

--------------------------

 

Вот, кстати. Виртуальные пины сделать получилось, но - одиночные. Если пин Output может быть вставлен в симулятор как шина, то виртуальный разваливается на отдельные биты.

 

Впрочем, не исключаю, что это у меня "лыжи не едут". :) Не экспериментировал пока особо.

 

А с обычными выводами такая проблема, что в симуляторе видны пины только самой "верхней" схемы. Все выводы в блоках нижней иерархии в симуляторе появляются как Buried (скрытые) и в симуляции не участвуют.

 

 

А транслировать проект в VHDL мне захотелось, чтобы попробовать его вставить в OrCAD. Понимаете, есть схема устройства. В устройстве есть FPGA или несколько. Если Оркад слопает такую штуку, то можно будет делать симуляцию устройств, состоящих из нескольких FPGA или устройств, соединённых друг с другом.

 

Спасибо всем ещё раз, пошёл я домой. Завтра продолжу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

File/Creat Update/Create HDL Design File for Current File

 

;) Да, в этом случае код генерится, но не всегда корhектно. Например инверсии портов назначенные через properties игнорируются. Вот ещё пример: вход мегафункции lpm_and двухмерный массив размерностью [n][m], при m=1 Create HDL Design File подаст ей на вход std_logic_vector[n], тоесть имеет место несоответствие типов и проект вообще не будет компилится. Думаю это не все косяки.

 

Так что будте осторожны.

Изменено пользователем DuHast

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Блоки, в свою очередь, состоят из подсхем или компонентов, описанных на VHDL.
ну тогда быстрей это сделать парой кликов мыши :)

Вот, кстати. Виртуальные пины сделать получилось, но - одиночные. Если пин Output может быть вставлен в симулятор как шина, то виртуальный разваливается на отдельные биты.
В симуляторе Квартуса можно объединять сигналы в группе - контекстные команды "group/ungroup". Правда после этих действий у меня бывало 4.2 Квартус вылетал по ошибке и часто портил входной .vwf файл :(

А транслировать проект в VHDL мне захотелось, чтобы попробовать его вставить в OrCAD. Понимаете, есть схема устройства. В устройстве есть FPGA или несколько. Если Оркад слопает такую штуку, то можно будет делать симуляцию устройств, состоящих из нескольких FPGA или устройств, соединённых друг с другом.
Это можно делать и в других более качественных программах.

Или OrCAD еще сможет посчитать задержку распространения сигнала от пина-до-пина по плате?!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое!

 

А ещё вопрос. Как в симуляторе посмотреть интересующие сигналы? Я цепляю к сигналу Output Port, а потом нахожу его в симуляторе. Но ведь как-то иначе должно быть.

 

если работаете в VHDL, попробуйте использовать атрибут keep

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если неохота вставлять виртуальные пины, то можно сразу посмотреть содержимое нужного регистра:

В симуляторе стандартно Insert Node or Bus-> Node Finder-> выбрать "

Registers Pre-synthesis" и указать название регистра как в блоке проекта (лучше имя указывать как "*name*" т.к. в начале добавляются имя проекта и блока )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...