|
Общие вопросы |
|
|
|
Apr 27 2016, 10:48
|
Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 19-10-15
Пользователь №: 88 917

|
Доброго времени суток. Я начал вторую итерацию своего обучения ПЛИС (XILINX). И появилось множество вопросов. Вот есть простая VHDL модель, отлаженная в симуляторе.
Какие шаги чтобы ее подконтрольно "залить" в ПЛИС нужно пройти? Просто обозначить контакты и прошить, это опять не то, как я понял. С чего начинается (какие шаги) создание проекта с целью загрузить прошивку из готовой VHDL модели?
timing constraints как ими пользоваться? Есть ли литература /статьи (документацию начал читать). Как оценить проект по временным параметрам? Как узнать время hold, setup в проекте? Как узнать возможны нарушения по временам и устранить их?
Как возможно устранить всякие возможные проблемы , которые могут всплыть?
Я пока пользуюсь ISE и ориентируюсь на xilinx spartan 6 серии . _______________________________________________________ Проект создается через Planahead или ISE profect navigator? Какую документацию необходимо изучить и держать под рукой включая на софт(документации много для себя пока держу несколько, связанных с DSP, IO.) В общем хочется научиться так же на базовой уровне пользоваться ПО для ПЛИС, чтобы перед прошивкой быть в проекте уверенным и понимать на что он способен и какие ограничения имеет.
Приму любые толковые ссылки на статьи/литературу/обучалки/советы
PS. чтобы не засорять вторым топиком, еще один вопрос задам тут. Я столкнулся с такой ситуацией. Один и тоже проект на одно и том же кристалле в одной точке дает разные (две платы-два кристалла -одна и та же конфигурация) результаты. Т.к. проект не мой , но я как раз изучаю схожие вопросы, я хочу данный проект проверить на временные параметры. Как вот в таких ситуациях, когда используешь чужие проекты их сопровождаешь и устраняешь неисправности? (проект схемотехнический, в смысле не описан языком. ). И как оформлять свои проекты, чтобы их удобней и самому сопровождать и другим? Тк. кроме vhdl кода еще же нужно прикладывать какие-то данные (насйтроки среды и т.п.)
|
|
|
|
|
 |
Ответов
|
Apr 28 2016, 07:36
|

Местный
  
Группа: Свой
Сообщений: 449
Регистрация: 28-10-04
Из: Украина
Пользователь №: 1 002

|
Цитата(go2winner @ Apr 27 2016, 12:48)  Я начал вторую итерацию своего обучения ПЛИС (XILINX). Вот есть простая VHDL модель, отлаженная в симуляторе.
Какие шаги чтобы ее подконтрольно "залить" в ПЛИС нужно пройти? Просто обозначить контакты и прошить, это опять не то, как я понял. С чего начинается (какие шаги) создание проекта с целью загрузить прошивку из готовой VHDL модели? Тут Вы немного поспешили. Настоятельно рекомендую "простую VHDL модель, отлаженную в симуляторе" имплементировать в ФПГА и прогнать т.н. временнУю симуляцию. При этом Вы переходите от абстракций VHDL модели к ее конкретной практической реализации в железе. При временнОй симуляции (моделировании) схема работает "как настоящая", со всеми аппаратными задержками и проч. УзнАете много нового. Выяснится, что одновременные события на VHDL ни разу не одновременны в реальности. Из плюсов - если схема заработала во временнОм моделировании, она практически гарантированно заработает в реальности. То есть вот Вам программа: - научиться имплементировать проект; - научиться моделировать его в Моделсиме с подключенным .sdf файлом. (прошивать пока бессмысленно).
--------------------
Умею молчать на 37 языках...
|
|
|
|
|
Apr 28 2016, 08:02
|
Частый гость
 
Группа: Участник
Сообщений: 78
Регистрация: 19-10-15
Пользователь №: 88 917

|
Цитата(Gorby @ Apr 28 2016, 07:36)  Тут Вы немного поспешили. Настоятельно рекомендую "простую VHDL модель, отлаженную в симуляторе" имплементировать в ФПГА и прогнать т.н. временнУю симуляцию. При этом Вы переходите от абстракций VHDL модели к ее конкретной практической реализации в железе. При временнОй симуляции (моделировании) схема работает "как настоящая", со всеми аппаратными задержками и проч. УзнАете много нового. Выяснится, что одновременные события на VHDL ни разу не одновременны в реальности. Из плюсов - если схема заработала во временнОм моделировании, она практически гарантированно заработает в реальности.
То есть вот Вам программа: - научиться имплементировать проект; - научиться моделировать его в Моделсиме с подключенным .sdf файлом.
(прошивать пока бессмысленно). Я создаю проект в VHDL. С начало выполняю behavior симуляцию. Как я понимаю это без учета задержек. Т.е. идеальный случай. И выполняю Post-Route симуляцию. Выполняю с помощью ISIM, кажется так называется Это достаточно? Правда я файлов sdf не подключаю..он сам цепляется? Просто дело не в прошивке (загрузки конфигурации). Я хочу делать проект и быть уверенным, что завтра, когда я его запущу он заработает и я смогу его отдаить в случае чего. А не написать модель абстрактно, а потом еще сидеть огромное количество времени и думать как средой пользоваться, как выявлять ошибки , исправлять, отлаживать, откуда reset брать. Я пока дальше симулятора не хожу. Еще вопрос попутный раз уж про симуляцию. Иногда я вырабатываю в проектах сигнал разрешения, который длиться один такт (от фронта rising до фронта rising)..как его надежней использовать? Читать в другом процессе тоже по возрастающему фронту.....или есть ситуации когда читать лучше по падающему(тогда по диограмме падающий фронт приходиться ровно по середине импульса разоен\щшения )
|
|
|
|
|
Apr 28 2016, 10:25
|

Местный
  
Группа: Свой
Сообщений: 449
Регистрация: 28-10-04
Из: Украина
Пользователь №: 1 002

|
Цитата(go2winner @ Apr 28 2016, 10:02)  Я создаю проект в VHDL. С начало выполняю behavior симуляцию. Как я понимаю это без учета задержек. Т.е. идеальный случай. И выполняю Post-Route симуляцию. Выполняю с помощью ISIM, кажется так называется Это достаточно? Правда я файлов sdf не подключаю..он сам цепляется? Просто дело не в прошивке (загрузки конфигурации). Я хочу делать проект и быть уверенным, что завтра, когда я его запущу он заработает и я смогу его отдаить в случае чего. А не написать модель абстрактно, а потом еще сидеть огромное количество времени и думать как средой пользоваться, как выявлять ошибки , исправлять, отлаживать, откуда reset брать. Я пока дальше симулятора не хожу.
Еще вопрос попутный раз уж про симуляцию. Иногда я вырабатываю в проектах сигнал разрешения, который длиться один такт (от фронта rising до фронта rising)..как его надежней использовать? Читать в другом процессе тоже по возрастающему фронту.....или есть ситуации когда читать лучше по падающему(тогда по диограмме падающий фронт приходиться ровно по середине импульса разоен\щшения ) Вы делаете всё правильно. Если Post-Route симуляция работает без ошибок, вероятность работающего дизайна в микросхеме приближается к 1.0 ; Таки читать этот сигнал длительностью в один период клока надо по тому же фронту, по которому он был сформирован (rising). Этим Вы гарантируете максимальную гибкость дизайна. Например, использовав противополярный, Вы сознательно урезали временной бюджет для возможной логики и соединений ровно вдвое - нехорошо. Единственное, о чем стоит беспокоиться - это о соблюдении условий setup\hold для всех триггеров дизайна. К счастью, при правильном задании констрейнов ПО делает это автоматически. Отсюда есть интересное следствие: если дизайн полностью синхронен, то необходимо и достаточно задать один-единственный констрейн - тактовую частоту. Еще интересные особенности: при использовании PLL достаточно задать его входную частоту. Все цепи, питающиеся его выходным синтезированным клоком, автоматически получат правильные значения констрейнов. Кстати о симуляторах. Таки Моделсиму и Ментор Графикс доверия больше, чем доморощенному ISIMу. Цитата(Bad0512 @ Apr 28 2016, 11:50)  Это означает лишь что ни с чем сложнее ДДР контроллера вы ещё не работали. Многие проекты просто невозможно симулировать с реальными задержками именно из-за их объёма. То есть Вы запускаете Бураны на Альфу Центавра (ну типа сложный проект), причем функционально моделируется, а после разводки - уже нет? Бред. И как же Вы докажете Главному Принимающему (мамой клянусь?), что Ваш проект вообще рабочий? Типа смотрите, на столе в течении 10 минут работает? Всегда можно моделировать по частям, или просто долго (некоторые проекты таки могут симулироваться десятки часов на секунду реального времени, особенно если привлекается еще и процессор с эмуляцией его же софта). Ну или голову включать и симулировать отдельные аспекты. Знавал я одного программиста, который отказался работать с AVR Atmega644 (64кбайт флеш!) по той причине, что скомпилированная AVR GCC с DEBUG информацией прошивка не влезала в эти 64К. Без отладочной информации - 4кб(!!!). Оказался беспомощен без отладчика с хождением по строкам исходника.
--------------------
Умею молчать на 37 языках...
|
|
|
|
|
Apr 28 2016, 10:48
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(Gorby @ Apr 28 2016, 13:25)  То есть Вы запускаете Бураны на Альфу Центавра (ну типа сложный проект), причем функционально моделируется, а после разводки - уже нет? Бред. И как же Вы докажете Главному Принимающему (мамой клянусь?), что Ваш проект вообще рабочий? Типа смотрите, на столе в течении 10 минут работает? Конкретно я писал именно про fpga, а не ASIC. Извиняюсь за оффтоп, но принимал участие в разработке прототипов на протяжении нескольких лет, к примеру, вот этого устройства (это еще не самое сложное) http://www.mcst.ru/server_elbrus-4.4. Так вот сам прототип состоял из нескольких десятков плисин и был предназначен для отработки алгоритмов не только самого процессора, но и всей обвязки (включая DDR3). После настройки и правильного задания всех ограничений сам прототип без сбоев работал очень долго (месяцы), а Вы утверждаете, что все ограничения описать невозможно. Там из временных ограничений было только описание частот, мультициклы и были ошибки по холдам в контроллерах DDR3 - пришлось жестко отодвинуть выходы регистров на приеме от пинов - все. Некоторые элементы Вы вообще не сможете промоделировать на Gate-уровне, к примеру, гигабитные приемопередатчики - производитель функциональную (  ) модель только дает.
|
|
|
|
Сообщений в этой теме
go2winner Общие вопросы Apr 27 2016, 10:48 bogaev_roman Начните с простого - назначьте пины и определитесь... Apr 27 2016, 11:31 go2winner Цитата(bogaev_roman @ Apr 27 2016, 11:31)... Apr 27 2016, 12:11  Maverick Цитата(go2winner @ Apr 27 2016, 15:11) Ещ... Apr 27 2016, 12:46  bogaev_roman Цитата(go2winner @ Apr 27 2016, 15:11) То... Apr 27 2016, 12:55   Jackov Цитата(bogaev_roman @ Apr 27 2016, 15:55)... Apr 27 2016, 15:05    Bad0512 А вообще неплохо бы определиться нужен ли вам ресе... Apr 28 2016, 05:18     go2winner Цитата(Bad0512 @ Apr 28 2016, 05:18) А во... Apr 28 2016, 06:59      Bad0512 Цитата(go2winner @ Apr 28 2016, 12:59) Ст... Apr 28 2016, 07:14 go2winner Так ..
Т.к. мои проекты маленькие и простые с ним... Apr 28 2016, 07:34 Bad0512 Цитата(go2winner @ Apr 28 2016, 13:34) Та... Apr 28 2016, 08:10  go2winner Цитата(Bad0512 @ Apr 28 2016, 08:10) Судя... Apr 28 2016, 08:27   Bad0512 Цитата(go2winner @ Apr 28 2016, 14:27) Т.... Apr 28 2016, 09:04 bogaev_roman Цитата(go2winner @ Apr 28 2016, 10:34) Ка... Apr 28 2016, 08:49  Gorby Цитата(bogaev_roman @ Apr 28 2016, 10:49)... Apr 28 2016, 09:45   Bad0512 Цитата(Gorby @ Apr 28 2016, 15:45) А я во... Apr 28 2016, 09:50   andrew_b Цитата(Gorby @ Apr 28 2016, 12:45) А я во... Apr 28 2016, 11:56  go2winner Цитата(bogaev_roman @ Apr 28 2016, 08:49)... Apr 28 2016, 11:54   bogaev_roman Цитата(go2winner @ Apr 28 2016, 14:54) По... Apr 28 2016, 12:49    go2winner Цитата(bogaev_roman @ Apr 28 2016, 12:49)... Apr 28 2016, 13:15     bogaev_roman Цитата(go2winner @ Apr 28 2016, 16:15) Та... Apr 28 2016, 13:56      go2winner Цитата(bogaev_roman @ Apr 28 2016, 13:56)... Apr 28 2016, 14:23       bogaev_roman Цитата(go2winner @ Apr 28 2016, 17:23) То... Apr 28 2016, 14:59       Bad0512 Цитата(go2winner @ Apr 28 2016, 20:23) ка... Apr 29 2016, 05:27   Bad0512 Цитата(Gorby @ Apr 28 2016, 16:25) То ест... Apr 28 2016, 10:33
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|