|
|
  |
ModelSim, вопросы новичка |
|
|
|
May 18 2018, 11:43
|
Группа: Участник
Сообщений: 13
Регистрация: 29-04-18
Из: Москва
Пользователь №: 103 558

|
Здравствуйте! У вас в TestBench переменная "addr" задана как "wire" + присваивается значение константы - "0". В самом модуле "spi_slave" вы начинаете с этой переменной работать. Получается что с одной стороны вы переменной "addr" присваиваете присваиваете постоянное значение, а с другой, меняете его.
|
|
|
|
|
May 18 2018, 11:45
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(Sprite @ May 18 2018, 14:26)  Доброго всем времени суток!
Решил отложить стандартный квартус-симулятор и изучить ModelSim. Отлаживаю модуль SPI, но картинка не та, которую я вижу в квартус-симуляторе, сигналы addr, data, miso в неопределенном состоянии. В чем может быть дело? Не заданы начальные условия или код модуля кривой? Картинка такая: Насколько я помню, Вы не любите сигнал "Сброс". Квартус "знает", что по исходному все триггера в проекте грузятся в 0. А Моделсим этого не знает... А вот те, которые были зеленые, а стали красные - это значит скорее всего, что на сигнал пытаются воздействовать два драйвера...
--------------------
www.iosifk.narod.ru
|
|
|
|
|
May 18 2018, 12:56
|

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

|
Цитата(Sprite @ May 18 2018, 15:15)  А можно как-нибудь автоматизировать посылку разных значений по SPI? В идеале хочется иметь тестбенч такого формата, чтобы в нем задавались только 2 параметра: значение данных и время в которые они посылаются, а сама колбаса из 32-х битов проходила автоматом. Как решить эту задачку? Ставить внешний цикл for над всем тестбенчем? Мне понятен этот вопрос, вспоминаю как я был нубасом по части тестбенчей в HDL-симуляторах, и кажется представляю что хочется. Краткий ответ может быть таким банальным: Verilog состоит не только из конструкций, которые могут быть синтезированы в ПЛИС, но и несинтезируемых конструкций, которые по сути не уступают по гибкости классическим языкам программирования (особенно System Verilog). Поэтому да, можно действительно сделать так, чтобы была очень сложная логика взаимодействия с тестируемым устройством, причем делать ее на порядок проще и "халявнее" чем изобретать ответную часть на синтезируемых конструкциях Verilog. В том числе и функция имитации SPI с двумя входными параметрами. Цитата(iosifk @ May 18 2018, 15:38)  Пишем файл паттерна с этими двумя параметрами. И в тесбенче вычитываем их из файла. Результаты приема можно тоже писать в файл... Или в консоль.... А потом исходный и полученный программным инструментом сравнить... Прошу прощения, но совет странный  Файл? Зачем там.
--------------------
|
|
|
|
|
May 18 2018, 17:47
|

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

|
Код А можно как-нибудь автоматизировать посылку разных значений по SPI? В идеале хочется иметь тестбенч такого формата, чтобы в нем задавались только 2 параметра: значение данных и время в которые они посылаются, а сама колбаса из 32-х битов проходила автоматом. Как решить эту задачку? Ставить внешний цикл for над всем тестбенчем? Я обычно делаю так: 1. У меня есть отдельная папочка, которая называется SIM_MODELS. 2. В этой папочке хранятся, как ,наверное, легко догадаться - модели для симуляции. Эти модели я специально написал на несентизируемом подмножестве языка HDL. Обычно в качестве моделей я создаю распространенную периферию - источники сигнала, такие как UART, SPI, I2C, и пр. Недавно пришлось написать VGA источник, где в качестве параметра - генерируемое разрешение. 3. В модели у меня есть возможность задать необходимые параметры. Одним из таких параметров является возможность выбора файла откуда читаются внешние воздействия. 4. Когда я начинаю моделировать в Modelsim я просто подключаю к тестбенчу мою модель, в которой указываю файл откуда читать внешние воздействия. 5. В случае если модель не удовлетворяет необходимому функционалу - я её улучшаю. В итоге имеем - крайне простую генерацию внешних воздействий. Постоянно улучшающуюся модель источника. И самое главное возможность повторного использования ранее написанного, что ускорит создание проектов в будущем. Основная цель - по-максимуму применять то, что было написано и отлажено раньше, что уменьшит вероятность ошибок, и ускорит разработку.
|
|
|
|
|
May 18 2018, 18:03
|
Частый гость
 
Группа: Свой
Сообщений: 92
Регистрация: 20-01-06
Из: Зеленоград
Пользователь №: 13 407

|
Цитата(Sprite @ May 18 2018, 14:26)  Решил отложить стандартный квартус-симулятор и изучить ModelSim. Сказали а, говорите сразу и б: управляйте ModelSim-ом с помощью tcl. Потратите время на изучение, зато потом будете сильно экономить на отладке. Не претендую на непогрешимость, но вот (в скрепке) пример: вдруг, чего себе возьмёте? Любые вопросы и замечания приветствуются.
--------------------
WMBR
|
|
|
|
|
May 18 2018, 19:21
|
Частый гость
 
Группа: Свой
Сообщений: 76
Регистрация: 8-04-11
Из: Ростов-на-Дону
Пользователь №: 64 227

|
Можно создать *.qsys проект в который добавить нужные BFM корки, потом выбрать пунккт Generate->Generate TestBench systems . После генерации в директории synthesis появятся *.sv файлы. Собственно это они и есть  Еще у альтеры есть экземплы: https://www.altera.com/support/support-reso...ication-ip.htmlТам же и ссылка на документацию. Правда от последней, как по мне, не сильно много толку Сейчас, как раз, занялся этим. Есть желание наковырять оттуда кода, и сделать для себя боле-менее обощенный пакет который можно былоб использовать в разных проектах
|
|
|
|
|
May 18 2018, 20:30
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 8-05-18
Пользователь №: 103 834

|
Цитата(Sprite @ May 18 2018, 12:26)  Отлаживаю модуль SPI Кстати, вдруг ещё не видели - ИМО там есть, что принять к сведению: SPI Verilog Master & Slave modules :: Overview. Да и, вообще, там погуляйте. И я вместе с Вами ) И ещё одна ссылка, как введение к первой: https://marsohod.org/projects/marsohod2/amb...c/215-opencores
Сообщение отредактировал Marat Zuev - May 18 2018, 21:02
--------------------
-- С наилучшими пожеланиями, Marat.
|
|
|
|
|
May 19 2018, 13:35
|

Частый гость
 
Группа: Участник
Сообщений: 173
Регистрация: 11-05-08
Пользователь №: 37 414

|
Цитата(AnatolySh @ May 19 2018, 01:03)  Не претендую на непогрешимость, но вот (в скрепке) пример: вдруг, чего себе возьмёте? Пантово..! Очень пантово!) Прямо все как я люблю: нажал одну кнопку и ПЭМС! - файл симуляции готов! Особенно мне понравились строчки "ThisPCLocationIsWORK" и "ThisPCLocationIsHOME" батника simulate  Браво! Реально круто!  Благодаря Вашему коду наткнулся на интересную статью, может кому пригодится. Цитата(Marat Zuev @ May 19 2018, 03:30)  Кстати, вдруг ещё не видели - ИМО там есть, что принять к сведению: SPI Verilog Master & Slave modules :: Overview. Да и, вообще, там погуляйте. И я вместе с Вами ) И ещё одна ссылка, как введение к первой: https://marsohod.org/projects/marsohod2/amb...c/215-opencoresСпасибо за инфу! Обязательно ознакомлюсь! Еще один вопрос: verilog начал изучать совсем недавно, и мне привычнее представлять top_level в виде bdf-схемы, куда я далее вставляю veriog-модули и компилирую. ModelSim насколько мне известно может принимать только verilog. Как быть в этом случае? Описывать всю схему, связи в верилоге или есть еще какие варианты? И как в этом случае привязывать входы-выходы к конкретным пинам?
|
|
|
|
|
May 19 2018, 13:52
|
Участник

Группа: Участник
Сообщений: 38
Регистрация: 8-05-18
Пользователь №: 103 834

|
Цитата(Sprite @ May 19 2018, 14:35)  наткнулся на интересную статьюВсё, чем Вы восторгались, написано, в том числе после прочтения статей, подобных этой ) Цитата(Sprite @ May 19 2018, 14:35)  Еще один вопрос: verilog начал изучать совсем недавно, и мне привычнее представлять top_level в виде bdf-схемы, куда я далее вставляю veriog-модули и компилирую. ModelSim насколько мне известно может принимать только verilog. Как быть в этом случае? Описывать всю схему, связи в верилоге или есть еще какие варианты? И как в этом случае привязывать входы-выходы к конкретным пинам? Как раз для Вас с того же сайта: https://marsohod.org/11-blog/251-sch-or-txt
Сообщение отредактировал Marat Zuev - May 19 2018, 13:56
--------------------
-- С наилучшими пожеланиями, Marat.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|