Jump to content

    
Sign in to follow this  
Fynjisx

Есть ли фича в ModelSim некомпилировать заранее указанный код?

Recommended Posts

Привет Всем!

Возник такой вопрос:

Есть Verilog исходник написанный в Quartus. При отладке этого исходника в ModelSim хотелось бы чтобы некоторые участки кода скрывались от ModelSim компилятора. Как это можно сделать.

Вариант окружения вырезаемого кода директивами #ifdef, а затем впоследствии раскомментированием некоего идентификатора для отладки отключать или подключать окруженный код - это занудно...

Share this post


Link to post
Share on other sites

Приветствую!

 

Привет Всем!

Возник такой вопрос:

Есть Verilog исходник написанный в Quartus. При отладке этого исходника в ModelSim хотелось бы чтобы некоторые участки кода скрывались от ModelSim компилятора. Как это можно сделать.

Вариант окружения вырезаемого кода директивами #ifdef, а затем впоследствии раскомментированием некоего идентификатора для отладки отключать или подключать окруженный код - это занудно...

 

:cranky:

Конечно есть боле веселый способ - секретная директива #miracle ... #endmiracle

Решение о необходимости компиляции части исходников между этими директивами

ModelSim будет принимать угадывая Ваши желания в момент запуска компиляции.

Да и результат этой компиляции тоже будет меняется в зависимости от Вашего настроения что позволит значительно ускорит отладку дизайна.

:biggrin:

 

Удачи! Rob.

 

 

 

 

Share this post


Link to post
Share on other sites

Мои телепаты говорят, что возможно топик стартеру помогут pragmas

в свое время делал тестбенч на SV, когда один код работал только под Aldec, другая только под Mentor.

 

 

Share this post


Link to post
Share on other sites
Есть ещё способ. Грамотно используя директиву компилиции

// telepate mode_on
...
// telepate mode_off

можно добиться желаемого результата.

 

хорэ шутить парни. )

 

Share this post


Link to post
Share on other sites
Привет Всем!

Возник такой вопрос:

Есть Verilog исходник написанный в Quartus. При отладке этого исходника в ModelSim хотелось бы чтобы некоторые участки кода скрывались от ModelSim компилятора. Как это можно сделать.

Вариант окружения вырезаемого кода директивами #ifdef, а затем впоследствии раскомментированием некоего идентификатора для отладки отключать или подключать окруженный код - это занудно...

 

 

`ifndef MODEL_TECH
    tram pam pam...
`endif

Share this post


Link to post
Share on other sites
При отладке этого исходника в ModelSim хотелось бы чтобы некоторые участки кода скрывались от ModelSim компилятора. Как это можно сделать.

Я могу предложить

if(Параметр == Задаваемое значение)

generate

 

И далее кусок кода.

Ну и остается в верхнем проекте вручную переписать значение параметра

 

Share this post


Link to post
Share on other sites

Приветствую!

 

Я могу предложить

if(Параметр == Задаваемое значение)

generate

 

И далее кусок кода.

Ну и остается в верхнем проекте вручную переписать значение параметра

 

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

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

 

Успехов! Rob.

Share this post


Link to post
Share on other sites

Есть подобный инструментарий в Quartus, правда работает наоборот

 

// synthesis read_comments_as_HDL on
// эту строку Quartus будет компилировать, а Modelsim примет за комментарий
// synthesis read_comments_as_HDL off

Share this post


Link to post
Share on other sites
Вариант окружения вырезаемого кода директивами #ifdef, а затем впоследствии раскомментированием некоего идентификатора для отладки отключать или подключать окруженный код - это занудно...

 

Зато, практически, безальтернативно. Специально для этого придуман макрос "MODEL_TECH"

 

отрывок из user guide modelsim-а:

 

ModelSim Verilog implicitly defines the following macro:

`define MODEL_TECH

 

 

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