Jump to content

    
Sign in to follow this  
Koluchiy

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

Recommended Posts

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

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

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

 

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

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

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

Share this post


Link to post
Share on other sites
Поступила тут идея ...

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

 

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

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

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

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

Share this post


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

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

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

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

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

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

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

Ну verilator же :)

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

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

Share this post


Link to post
Share on other sites

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

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

open_src_cvc.700c.7z

Share this post


Link to post
Share on other sites
Свежая идея :) Так работает, например, VCS.

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

 

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

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

 

Share this post


Link to post
Share on other sites
И как его скорость симуляции по сравнению с Questa?

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this