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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Верификация больших проектов
sqrt(2)
сообщение Sep 23 2017, 15:37
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 74
Регистрация: 20-07-16
Пользователь №: 92 633



Здравствуйте. Впервые делаю большой проект, где целевая ПЛИС - Virtex-7.

Еще даже не дописал проект до конца, но уже есть проблема - оперативной памяти компьютера уже не хватает.

Сейчас я вывожу нужные сигналы на Waveform в Modelsim. Уже и так оставил только один основной блок, но дальше резать нельзя - у этого блока есть элементы, работа которых зависит от обратной связи между друг другом.

Как вообще верифицируются большие проекты? Может есть более экономные (с точки зрения использования RAM компьютера) методы моделирования, чем отрисовка Waveform?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Sep 23 2017, 15:47
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 3 641
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(sqrt(2) @ Sep 23 2017, 18:37) *
Сейчас я вывожу нужные сигналы на Waveform в Modelsim. Уже и так оставил только один основной блок, но дальше резать нельзя - у этого блока есть элементы, работа которых зависит от обратной связи между друг другом.

Как вообще верифицируются большие проекты? Может есть более экономные (с точки зрения использования RAM компьютера) методы моделирования, чем отрисовка Waveform?

Это RTL симуляция?
Если так, то можно перейти от отладки "сигналов" к отладке прохождения "данных" в проекте. Зачем Вам смотреть сигналы на Waveform? Скидывайте данные в файл и потом обрабатывайте их любыми софтовыми инструментами. Ну и входные данные тоже читайте из файла. При этом не нужна перекомпиляция проекта. просто меняете файл и делаете "Сброс" и "Пуск"...
И еще двойной комлект параметров. Один для дебага, другой для релиза. Скажем если SPI для релиза на 1 Мгц, а тактовая 100 Мгц, то для дебага можно отлаживать SPI на 25 или 50 Мгц. И так везде где можно поскрести...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
AVR
сообщение Sep 23 2017, 16:04
Сообщение #3


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(sqrt(2) @ Sep 23 2017, 18:37) *
Как вообще верифицируются большие проекты? Может есть более экономные (с точки зрения использования RAM компьютера) методы моделирования, чем отрисовка Waveform?

Что в Вашем понимании есть процесс "верификации"?


--------------------
Go to the top of the page
 
+Quote Post
sqrt(2)
сообщение Sep 23 2017, 16:22
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 74
Регистрация: 20-07-16
Пользователь №: 92 633



Цитата(AVR @ Sep 23 2017, 19:04) *
Что в Вашем понимании есть процесс "верификации"?

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

При этом было бы неплохо знать состояния не только выхода, но промежуточных регистров, чтобы понимать где ошибки.

Цитата(iosifk @ Sep 23 2017, 18:47) *
Это RTL симуляция?
Если так, то можно перейти от отладки "сигналов" к отладке прохождения "данных" в проекте. Зачем Вам смотреть сигналы на Waveform? Скидывайте данные в файл и потом обрабатывайте их любыми софтовыми инструментами. Ну и входные данные тоже читайте из файла. При этом не нужна перекомпиляция проекта. просто меняете файл и делаете "Сброс" и "Пуск"...
И еще двойной комлект параметров. Один для дебага, другой для релиза. Скажем если SPI для релиза на 1 Мгц, а тактовая 100 Мгц, то для дебага можно отлаживать SPI на 25 или 50 Мгц. И так везде где можно поскрести...

Да, RTL.

Тоже думал по поводу записи в файл.

А где можно почитать о том, как заставить Modelsim ничего не рисовать, а сразу писать в файлики содержимое регистров? У меня что-то так не получалось.
Go to the top of the page
 
+Quote Post
AVR
сообщение Sep 23 2017, 16:27
Сообщение #5


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(sqrt(2) @ Sep 23 2017, 19:22) *
А где можно почитать о том, как заставить Modelsim ничего не рисовать, а сразу писать в файлики содержимое регистров? У меня что-то так не получалось.

Есть консольный режим, но для потребления памяти это мало помогает, увы.
И что оно будет в файлики писать? Всё подряд??? Нет, так не пойдет, можно без проблем самому создавать файлы и писать в них важные данные.

Можно на лету проверять/сверять/сопоставлять результаты непосредственно в тестбенче. Я таковые пишу на Python, иногда на SystemVerilog, и не надо ничего сохранять - проверка на лету.


--------------------
Go to the top of the page
 
+Quote Post
sqrt(2)
сообщение Sep 23 2017, 16:41
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 74
Регистрация: 20-07-16
Пользователь №: 92 633



Цитата(AVR @ Sep 23 2017, 19:27) *
Можно на лету проверять/сверять/сопоставлять результаты непосредственно в тестбенче. Я таковые пишу на Python, иногда на SystemVerilog, и не надо ничего сохранять - проверка на лету.

А по каким источникам вы изучали это кунг-фу, если не секрет?
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Sep 23 2017, 17:58
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 409
Регистрация: 11-06-13
Пользователь №: 77 140



Цитата(sqrt(2) @ Sep 23 2017, 19:41) *
А по каким источникам вы изучали это кунг-фу, если не секрет?

Присоединяюсь к вопросу. Откуда вы это узнаете ?
Go to the top of the page
 
+Quote Post
blackfin
сообщение Sep 23 2017, 18:28
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 681
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(sqrt(2) @ Sep 23 2017, 19:41) *
А по каким источникам вы изучали это кунг-фу, если не секрет?

Например: XAPP199..
Go to the top of the page
 
+Quote Post
AVR
сообщение Sep 23 2017, 18:36
Сообщение #9


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(sqrt(2) @ Sep 23 2017, 19:41) *
А по каким источникам вы изучали это кунг-фу, если не секрет?

http://www.testbench.in

Хотя я использую http://cocotb.readthedocs.io/en/latest/introduction.html но это не всегда возможно, некоторые проекты не допускают подобные окружения для верификации

И да, то что делаете Вы, это отладка. Повторюсь, Вы уверены что слово "верификация" понимается верно?


--------------------
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Sep 23 2017, 18:53
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 919
Регистрация: 23-12-04
Пользователь №: 1 643



Приветству.

Цитата(sqrt(2) @ Sep 23 2017, 19:22) *
Тоже думал по поводу записи в файл.

А где можно почитать о том, как заставить Modelsim ничего не рисовать, а сразу писать в файлики содержимое регистров? У меня что-то так не получалось.


Modelsim и так пишет в файл все что вы хотите потом увидеть. И это без добавления сигналов в wave. Cмотрите команду 'log'.
Например "log -r /*" сделает вам во время ночной симуляции дамп всего что было. Потом уж утречком сможете загрузить этот .wlf файл и посмотреть что и как происходило. Но это как раз для дебага.

Верифицировать результат работы все же лучше по golden-referens модели. Ну а как состыковать sim с моделью сейчас есть куча вариантов. Начиная от логирования нужных переменных в RTL через запись в файл (fopen, fwrite, ...), или релизация golden-referens на несинтезируемом подмножестве непосредственно в RTL, заканчивая стыковкой через VPI, DPI, PLI,.. c кодом модели на C/C++, или через cosimulation с тем же Matlab например.

Удачи! Rob.




Go to the top of the page
 
+Quote Post
lexx
сообщение Sep 24 2017, 03:29
Сообщение #11


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

Группа: Свой
Сообщений: 116
Регистрация: 25-06-04
Пользователь №: 186



Verilog позволяет как читать, так и писать в файлы (hex). Если нет времени на разборки высшего уровня, то все можно привести только к чтени и записи. Смена тестовых последовательностей через скрипт при запуске самого verilog-a.
Я использую ncsim, так что unzip через tcl и на выходе только лог и дополнительная информация если тест провалился (с местом падения, чтобы делать дамп с этой точки).
Но даже симуляция не заменит прототипирования на fpga, на входе/выходе тот же самый тестовый набор (дизай запускается, читает и выдает результат в ddr). День тестов заменяет год симуляций.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Sep 24 2017, 08:00
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 3 641
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(sqrt(2) @ Sep 23 2017, 19:22) *
Тоже думал по поводу записи в файл.
А где можно почитать о том, как заставить Modelsim ничего не рисовать, а сразу писать в файлики содержимое регистров? У меня что-то так не получалось.

Хотите поговорим об этом по скайпу?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
AVR
сообщение Sep 24 2017, 09:46
Сообщение #13


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 079
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(lexx @ Sep 24 2017, 06:29) *
Verilog позволяет как читать, так и писать в файлы (hex)

Что имеется ввиду под hex? Встречал у некоторых ПЛИСовиков заблуждение что Verilog работает только с файлами hex-формата и удивлялись когда я выводил в десятичной форме, а то и вовсе произвольного формата текст, и не только выводил но и загружал. Надеюсь речь не об этом, потому что мне неведомо откуда они взяли эту чушь.


--------------------
Go to the top of the page
 
+Quote Post
sqrt(2)
сообщение Sep 24 2017, 11:34
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 74
Регистрация: 20-07-16
Пользователь №: 92 633



Цитата(AVR @ Sep 23 2017, 21:36) *
http://www.testbench.in

Хотя я использую http://cocotb.readthedocs.io/en/latest/introduction.html но это не всегда возможно, некоторые проекты не допускают подобные окружения для верификации

И да, то что делаете Вы, это отладка. Повторюсь, Вы уверены что слово "верификация" понимается верно?

Спасибо, посмотрю.

Возможно, и не верно. Ну тут как бы вопрос не в определениях. То, что я хочу сделать - вроде описал.
Go to the top of the page
 
+Quote Post
lexx
сообщение Sep 24 2017, 12:15
Сообщение #15


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

Группа: Свой
Сообщений: 116
Регистрация: 25-06-04
Пользователь №: 186



Цитата(AVR @ Sep 24 2017, 13:46) *
Что имеется ввиду под hex? Встречал у некоторых ПЛИСовиков заблуждение что Verilog работает только с файлами hex-формата и удивлялись когда я выводил в десятичной форме, а то и вовсе произвольного формата текст, и не только выводил но и загружал. Надеюсь речь не об этом, потому что мне неведомо откуда они взяли эту чушь.


Я сильно далек от ПЛИС, только для прототипирования ASIC, но вообще да, без разницы в чем писать и читать (привычка с hex работать).
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th October 2017 - 12:37
Рейтинг@Mail.ru


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