Перейти к содержанию
    

Моделирование ПЛИС при помощи модели Си++?

Поступила тут идея при помощи специальной программы транслировать код Verilog в Си++, потом это компилировать и производить симуляцию при помощи получившегося .ехе файла.

Попробовали в программе Верилятор - на простых примерах работает.

Одна пока проблема - не понимает конструкции Verilog2001 и новее.

 

Кто-нибудь пробовал таким макаром симулировать большие проекты?

Какими программами для конвертации пользуетесь?

Какие подводные камни?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поступила тут идея ...

Кто-нибудь пробовал таким макаром симулировать большие проекты?

 

Хорошая идея.

Да, пробовали. Synopsys и Mentor Graphics пробовали в той или иной степени. Читал ещё работы некоторых ВУЗов нашей страны, которые тоже брались за такие задачи.

Но полноценных результатов с хорошим выходом это не даст.

Лучше посмотрите на связку Матлаба с Altera или Xilinx. Это уже ближе к реальности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поступила тут идея при помощи специальной программы транслировать код Verilog в Си++, потом это компилировать и производить симуляцию при помощи получившегося .ехе файла.

Свежая идея :) Так работает, например, VCS.

Одна пока проблема - не понимает конструкции Verilog2001 и новее.

Очень странно. Он умеет некоторым образом даже SV. Но только синтезируемые конструкции.

Кто-нибудь пробовал таким макаром симулировать большие проекты?

Свой последний проект таким образом симулировал. Только вот не знаю, большой он или нет :)

Какими программами для конвертации пользуетесь?

Ну verilator же :)

Какие подводные камни?

Verilator не умеет 4-значную логику, он её преобразует в 2-значную. Мне пришлось писать на SystemC дополнительные модули, а в синтезируемых исходниках использовать макросы, чтобы без модификации скармливать их и verilator-у, и симулятору, и синтезатору.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так же работает симулятор CVC. Раньше он был платный, но сейчас его сделали свободным. К сожалению от только под Linux.

Так же он предоставляется в исходниках. Их нужно компилировать. К недостатка можно отнести отсутствие GUI. Диаграммы необходимо смотреть в свободном редакторе.

open_src_cvc.700c.7z

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Свежая идея :) Так работает, например, VCS.

И как его скорость симуляции по сравнению с Questa?

 

Очень странно. Он умеет некоторым образом даже SV. Но только синтезируемые конструкции.

Модели хилых корок, подсунутые в Верилятор, постоянно ругаются на всякие deassign и т.п.. Или есть свежая версия, которая всё это нормально кушает?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И как его скорость симуляции по сравнению с Questa?

Этот вопрос уже обсуждался, если интересно, поищите. Я не занимался сравнениями, но рискну предположить, что в среднем скорости одинаковы.

Модели хилых корок, подсунутые в Верилятор, постоянно ругаются на всякие deassign и т.п.. Или есть свежая версия, которая всё это нормально кушает?

Неужели deassign синтезируется? Посмотрел стандарт(IEEE Std 1364.1-2002, стр. 47-48), сделал вывод - нет. Сам я ядра не использую, но подозреваю, что Вы скармливаете verilator-у модель аппаратного блока для симуляции. Поправьте, если я не прав.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...