реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Как отлаживаете свои проекты?, Сбор возможных вариантов
Muscat
сообщение Jan 18 2011, 06:48
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Утро доброе

Задумался я тут вот над каким вопросом.
Долго ли коротко ли, на VHDL-ли на Verilog-ли, проект написан и даже синтезировался, и даже прошился в ПЛИС и даже кажется работает как надо.

И тут появляется лично у меня вопрос, который очень бледно освещен в книгах, ну разве что кроме "Курса молодого бойца" Максфилда

Какими средствами вы отлаживаете свои проекты?

Я для себя пока опробовал несколько путей

1) Простой проект. Отладка по аналогии с отладкой на уровне разработки. Пишется TestBench модуль, который может выдавать ряд простейших воздействий, затем модуль присовокупляется к проекту, запускается. Управление кнопками, просмотр реакции на осциллографе.
Плюсы подхода
- Каждый сигнал можно просмотреть хоть в цифровом, хоть в аналоговом виде, отловить все задержки.
Минус такого подхода
- Ограниченность вариантов входных воздействий
- На экране осциллографа больше 16 сигналов не разглядишь.

2) Отладка в цифре. Метод, который я сейчас пытаюсь применить к своему проекту. Большинство современных DevKit'ов имееют встроенный RS232 модуль или того лучше - преобразрователь USB->RS232, а на PC устанавливается драйвер виртуального КОМ-порта. Тогда физически RS232 нигде не появляется, ограничение на скорость повышаются до уровня USB, а мы имеем возможность работать с железкой через старый добрый UART.
Далее пишется, или скачивается с OpenCores, модуль RS232, дописывается модуль хранения и выдачи этих данных, а так же приема данных с ПЛИС.
Следующий этап - программная часть комплекса. Тут можно использовать объектно-ориентированный язык, на вроде С++ или среды DELPHI, можно попробовать писать из среды мат.моделирования Matlab,чем я сейчас как раз и занимаюсь.
Плюсы метода - объем входных последовательностей для тестирования ничем не ограничен, полностью управляется с PC, на нем же просмотр полученных результатов. Минусы если что можно компенсировать добавлением осциллографа.

А какие пути используете вы?
Многообещающе выглядит решение от компании Mathworks и Xilinx, по включению ПЛИС в качестве модуля в среды Simulink через JTAG с отслеживанием состояния всех ножек сразу.
Пробовали ли вы другие какие то интерфейсы? Можно ли включить ПЛИС в среду ModelSim и отслеживать состояния выходов так же, как при моделировании?

В общем предлагаю всем поделиться частью своего опыта


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
Костян
сообщение Jan 18 2011, 07:16
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059



QUOTE (Muscat @ Jan 18 2011, 04:48) *
Многообещающе выглядит решение от компании Mathworks и Xilinx, по включению ПЛИС в качестве модуля в среды Simulink через JTAG с отслеживанием состояния всех ножек сразу.
Пробовали ли вы другие какие то интерфейсы? Можно ли включить ПЛИС в среду ModelSim и отслеживать состояния выходов так же, как при моделировании?


См Chipscope
http://www.xilinx.com/tools/cspro.htm
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jan 18 2011, 07:33
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



Интересует в первую очередь личный опыт использования.

Я например, пытался организовать тестирование путем записи данных в распаяные на ките микросхемы FLASH через поставляемую производителем утилиту, а затем чтение данных напрямую в ПЛИС.
В итоге почти месяц непрерывного гемора и в сухом остатке только бесценный опыт.


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jan 18 2011, 07:41
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Сначала как-то вот так laughing.gif
http://www.ovmworld.org/
http://www.doulos.com/content/training/ovm.php

Ну а потом, после заявлений прогеров "я вот написал прогу, а твой чип не работает" biggrin.gif, конечно ChipScope/SignalTap
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jan 18 2011, 07:56
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(Muscat @ Jan 18 2011, 09:48) *
Какими средствами вы отлаживаете свои проекты?

ИМХО, все зависит от конкретного проекта. В любом случае, основное средство для отлавливания ошибок - электронный осциллограф (для Xilinx, как уже писали - chipscop).
Иногда нет вообще возможности подрубиться к ногам плисины, пример: данные передаются на частоте 1ГГц, стандарт lvds.
Был проект - закачка изображения в zbt ram (из pc_power), далее передача с некоей скоростью его с одной плисины на другую и запись опять же в zbt_ram. Проверялось сначала путем сличения картинок визуально, затем было программно автоматизировано (на приемнике хранились исходные изображения).
Самый сложный проект для отладки, с которым приходилось работать - цифровой модем (при этом в ТЗ естественно и высокий уровень шума и доплер). Отладка - связка передатчик+приемник. На передатчике помимо основного проекта зашиты:
1. на передатчике - эмулятор канала AWGN и модуляция с возможностю изменения моделирующей частоты (задавались некие коэффициенты значения уровня шума и смещения тактовой посредством xmd и встроенного программного процессора).
2. на передатчике и приемнике - некий одинаковый генератор ПСП.
3. два счетчика на приемнике - для счета общего числа пакетов (в моем случае была преамбула), и счетчик на принятые пакеты.
4. Простейшая логика для подсчета вероятности и вывод ее текущего значения посредством xmd.
Так вот снималась эта вероятность в различных точках и строился график, график сравнивался с графиком матлабовской модели и графиком вероятности, рассчитанной в теоретии. Далее шло обоснование потерь в дБ (за счет ограничения разрядности в коэффициентах фильтров, к примеру).
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jan 18 2011, 08:03
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



bogaev_roman вот как раз к описанному вами я и хочу прийти. Отлаживаю декодер Витерби, строю графики. Имеется теоретический график, имеется модель повторяющая работу ПЛИС со всеми ограничениями. Заключительный этап - подавать на ПЛИС те же данные, что и в модель, смотреть на вероятность ошибки и ставить эксперементальные точки на график BER.


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
IL-76
сообщение Jan 18 2011, 08:05
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 16-03-09
Из: ex USSR
Пользователь №: 46 167



Модель в Modelsim-е (прошу прощения за тавтологию) с максимальным покрытием, учитывающим временные ресурсы и желание гражданина анализатора результатов изучать диаграммы и логи. 95% глюков отсеиваются на этом этапе. Оставшиеся 5% выползают при включении девайса и фиксируются осциллом и SignalTap-ом.

Вывод: компьютерное моделирование рулит.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jan 18 2011, 08:26
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(Muscat @ Jan 18 2011, 11:03) *
bogaev_roman вот как раз к описанному вами я и хочу прийти. Отлаживаю декодер Витерби, строю графики. Имеется теоретический график, имеется модель повторяющая работу ПЛИС со всеми ограничениями. Заключительный этап - подавать на ПЛИС те же данные, что и в модель, смотреть на вероятность ошибки и ставить эксперементальные точки на график BER.

В вашем случае:
1. Создается модель, полностью идентичная описанию(разрядность и все задержки, с учетом того, что simulink, по умолчанию по срезу работает)!!!
2. Ставится в параллель в simulink модель и HDL описание (не помню как блок называется для вставки HDL), эти модели имеют одинаковые входные воздействия, оба выхода поступают на блок сравнения и результат работы их должен быть одинаковым. Ставите моделирование на ночь, скажем, и убеждаетесь, что модели идентичные (и убрать все осциллографы, они систему вешают серьезно).
3. При необходимости можно вместо HDL модели RTL уровня, подсунуть gate level (читайте документацию, но это сильно вешает систему).
4. Есть возможность, как Вы уже описывали с помощью Mathworks и Xilinx реально отследить поведение в плис (я этим не занимался) либо самому написать ber тестер и генератор входных воздействий.
5. Отладка Ваша упрощается тем, что если произошел какой-то существенный сбой, то Ваш декодер накроется медным тазом и приведет скажем к возникновению групповых ошибок. Вот это условие и можете сформировать посредством простейшей логики, как останов работы (событие) chipscop и просмотреть все то, что было до этого события в системе, а дельше найти причину сбоя.
PS 1. Генератор шума и многие блоки simulink можно сгенерировать автоматически в HDL код (если соответствующая утилита поставлена), если модель полностью идентична описанию и Ваш проект влазит по временным ограничениям, то 99% что в ПЛИС все будет работать правильно.
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jan 18 2011, 08:45
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



bogaev_roman , Спасибо огромное за информацию. Да, такой путь был бы идеальным, мне его уже рекомендовали. Но проблема в том, что моя модель написана на языке Matlab и я не представляю даже, как собрать мой декодер в Симулинке.
Я собирал в Симулинке модели со встроенными декодерами, генераторами сигналов и канала. Но как описать сам декодер - автоматы управления, блоки памяти, поиска минимума, сумматоры, не представляю.


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 18 2011, 09:50
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(Muscat @ Jan 18 2011, 11:45) *
Я собирал в Симулинке модели со встроенными декодерами, генераторами сигналов и канала. Но как описать сам декодер - автоматы управления, блоки памяти, поиска минимума, сумматоры, не представляю.

В Simulink можно просто кусок HDL кода вставить.
Go to the top of the page
 
+Quote Post
Muscat
сообщение Jan 18 2011, 10:08
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 277
Регистрация: 8-04-09
Из: Москва
Пользователь №: 47 382



DmitryR, был бы премного благодарен, если вы показали мне мануал по использованию этой системы, руководство - вот код, вот сюда вставляем, вот этими блоками стимулируем, вот тут смотрим. У меня разобраться не получилось.


--------------------
Because it's there
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 18 2011, 10:48
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



У меня к сожалению сейчас нет Matlab, но как я помню там разбираться особо не в чем. Есть блок, HDL-cosimulation (в EDA Simulator Link). Cтавите его в модель, настраиваете связь с Modelsim - и все. Исчерпывающее руководство по этому процессу можно найти по ссылке http://www.mathworks.com/products/eda-simulator/
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jan 18 2011, 10:49
Сообщение #13


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Muscat @ Jan 18 2011, 12:08) *
DmitryR, был бы премного благодарен, если вы показали мне мануал по использованию этой системы, руководство - вот код, вот сюда вставляем, вот этими блоками стимулируем, вот тут смотрим. У меня разобраться не получилось.

Посмотрите этот документ.
Прикрепленные файлы
Прикрепленный файл  C13_Simulink_interface.pdf ( 748.82 килобайт ) Кол-во скачиваний: 409
 
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jan 18 2011, 10:51
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(Muscat @ Jan 18 2011, 13:08) *
DmitryR, был бы премного благодарен, если вы показали мне мануал по использованию этой системы, руководство - вот код, вот сюда вставляем, вот этими блоками стимулируем, вот тут смотрим. У меня разобраться не получилось.

От себя добавлю немного, хотя тоже самое http://embedders.org/content/sovmestnoe-mo...asim-i-simulink
Ключевое слово HDL Cosimulation, сам когда-то руководство целое писал, но затерялось где-то...
Go to the top of the page
 
+Quote Post
almost
сообщение Jan 18 2011, 12:18
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 199
Регистрация: 27-05-09
Из: Москва
Пользователь №: 49 648



Есть ещё такая прекрасная вещь как DSP Builder (от Альтеры, наверное и у Ксайлинкса есть что то подобное), который на прямую связан с Квартусом. После того как начал ею пользоваться перешел на первоначальное моделирование в матлабе (симулинк), ибо гораздо быстрей формировать сигналы (к примеру ЛЧМ) и прочее с помощью возможностей симулинка, чем в моделсиме, где надо все на языке описывать. Ну на заключительном этапе конечно же в моделсиме отлаживаю.
Ну а помимо мат. моделирования, конечно же, Signal Tap использую.

Сообщение отредактировал almost - Jan 18 2011, 12:20
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th June 2025 - 03:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01708 секунд с 7
ELECTRONIX ©2004-2016