Jump to content

    

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

Привет Всем!

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

Есть 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

Есть ещё способ. Грамотно используя директиву компилиции

// telepate mode_on
...
// telepate mode_off

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

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this