|
Как отлаживаете свои проекты?, Сбор возможных вариантов |
|
|
|
Apr 12 2011, 16:14
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
А для этого может уже понадобиться мозг, так как в общем случае придется ждать прямо в реальном времени на реальном железе. Для совсем страшных случаев производители осциллографов и анализаторов предлагают анализаторы протоколов и прочую поддержку процессоров и интерфейсов.
Честно говоря, гораздо дешевле, но не обязательно быстрее, подумать как следует и сделать необходимые эмуляции протоколов в симуляторе. Что-то упростить, где-то отладить по частям отдельные блоки. Несколько лет уже не пользуюсь осциллографом, анализатором и средствами chipscope/signal tap. Только симуляторы. У меня и квалификации-то нехватает грамотно подключать приборы на гигагерцах, чтобы "вскрытие не показало, что чукча умер от вскрытия".
|
|
|
|
|
Apr 12 2011, 17:18
|
Местный
  
Группа: Свой
Сообщений: 351
Регистрация: 17-09-05
Из: Москва
Пользователь №: 8 660

|
Цитата(Oldring @ Apr 12 2011, 20:52)  Никак. Это основы науки о тестировании - сам программист не должен тестировать свои программы.  Хорошо, тогда как доказать корректность тестбенча, который кто-то разработал?  Недавно делал один модуль - в определенный момент я уже мог по входным воздействиям и тактам доказать, что он правильно работает, он уже работал в железе, а написать корректно работающий тестбенч и прогнать его мне удалось в последнюю очередь. Таким образом, если сложность разработки тестбенча превышает сложность разработки тестируемого модуля, а вероятность ошибки при проектировании обоих допустить равной, получается плохо. Это меня и мучает.
|
|
|
|
|
Apr 12 2011, 17:54
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(ADA007 @ Apr 12 2011, 17:48)  А если, к пирмеру, нужно отследить реакцию проекта на комбинацию входных цифровых данных по интерфейсу согласно протоколу Пишется разборщик протокола (с проверками) Цитата ....по моему если написать тестбенч на прогон всевозможных комбинаций прямым перебором Не всех, а отвечающих протоколу. Цитата - то на моделирование этого всего может уйти о-о-очень много времени!!!! Да, немало Цитата Как быть в такой ситуации? Пример - есть девайс, подключаемый через Ethernet (формат пакетов свой). Был написан эмулятор PHY (по MII) + разбор/формирование Ethernet пакета (со стороны PHY) + обработчик протокола (на уровне пакетов). И к этому стеку был подсоединен генератор случайных команд (в протоколе). Так же со стороны отлаживаемого девайса были подсоединены эмуляторы внешних устройств (квадратурные энкодеры, DAC'и по SPI). Тест проверял правильность передачи на них данных (через стек). На все это был запущен случайный тест, выловили довольно много багов. Потом загрузили в реальную FPGA и выловили еще больше багов
|
|
|
|
|
Apr 12 2011, 20:06
|
Знающий
   
Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905

|
Очень волнующая меня тема. Считаю, что для повышения качества теста имеет смысл применять принцип минимальной обработки информации. Если есть возможность copy-paste табличку из datasheet прямо в VHDL или текстовый файл и его потом читать, то так и надо делать. Программист не должен обрабатывать информацию, только переносить и документировать откуда что взялось. Написано 10+1+5-1, так и надо записать, не стоит писать 15, лучше указать откуда взялось каждое из чисел. Будет проще доказывать, "что верблюд не вы".
Еще есть риск, что весь мир дружно отступает от стандарта (длина преамбулы в ethernet 10BaseT).
|
|
|
|
|
Apr 13 2011, 05:57
|

Местный
  
Группа: Свой
Сообщений: 218
Регистрация: 2-02-09
Из: Харьков
Пользователь №: 44 266

|
Цитата(XVR @ Apr 12 2011, 20:54)  Не всех, а отвечающих протоколу. Ну, скажем, при передаче данных возможны случаи, когда данные приймутся неправильно в результате воздействия внешних факторов .... Цитата(XVR @ Apr 12 2011, 20:54)  Потом загрузили в реальную FPGA и выловили еще больше багов  Да, в реальной железке все может работать немного не так как хочется...к этому шагу тоже нужно подойти внимательно, ведь ошибка может вылезти не сразу, а, скажем, через год...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|