Jump to content

    
Sign in to follow this  
Koluchiy

Набор файлов с одинаковыми localпараметрами

Recommended Posts

Здравствуйте, уважаемые гуру.

 

Есть набор каталогов с разными именами. В каждом есть файл .v с одинаковым для всех каталогов именем.

Во всех файлах определены одинаковые localparamы.

 

Надо: последовательно в ходе работы тестбенча в Моделсиме "подключать" эти файлы один за другим. А потом "отключать".

 

Как это можно сделать?

Никакого `uninclude в Верилоге вроде нету.

Можно бы подключить все эти файлы, но тогда будет куча localparam с одинаковыми именами.

Как-то можно сделать так, чтобы их можно было различать? Обращаться к параметрам типа файлХ.параметерY, например.

 

Ну или еще чего-то в этом духе придумать.

Share this post


Link to post
Share on other sites
Здравствуйте, уважаемые гуру.

 

Есть набор каталогов с разными именами. В каждом есть файл .v с одинаковым для всех каталогов именем.

Во всех файлах определены одинаковые localparamы.

 

Надо: последовательно в ходе работы тестбенча в Моделсиме "подключать" эти файлы один за другим. А потом "отключать".

 

Как это можно сделать?

Никакого `uninclude в Верилоге вроде нету.

Можно бы подключить все эти файлы, но тогда будет куча localparam с одинаковыми именами.

Как-то можно сделать так, чтобы их можно было различать? Обращаться к параметрам типа файлХ.параметерY, например.

 

Ну или еще чего-то в этом духе придумать.

Вы хотите в ходе работы тестбенча, т.е. во время непрерывного моделирования делать include файлов? Это невозможно. Так как `include это директива препроцессора, выполняемая во время препроцессинга/компиляции. Значения localparam во время моделирования также нельзя изменять, они устанавливаются на этапе линковки (elaboration).

Если же нужно по очереди перезапускать моделирование с разными значениями localparam, то следует написать tcl-скрипт, который найдет все подпапки с нужными вам файлами, добавит incdir к нужной подпапке в команду vlog и запустит моделирование на заданный промежуток времени (или пока моделирование не завершится), далее добавит incdir к следующей подпапке и т.д., пока есть не обработанные файлы.

 

Если нужны именно параметры, то рекомендую добавить список параметров к моделируемому/тестируемому модулю. В модуль верхнего уровня добавить параметры, значения которых устанавливаются в vsim с помощью параметра -g или -G.

Другой вариант - это промоделить все варианты одновременно, тогда нужно создать массив параметров и в generate создать экземпляр с нужным набором параметров, далее все это параллельно промоделить.

Share this post


Link to post
Share on other sites

Спасибо за помощь.

 

Скажите, а как-то можно разделить пространства имен?

Чтобы localparam'ы (или обхявления какого-то другого вида) с одинаковыми именами, определенные в разных подключенных файлах, считались разными, и чтобы к ним можно было обращаться как-нибудь типа имя_файла.имя_параметра?

Share this post


Link to post
Share on other sites
Спасибо за помощь.

 

Скажите, а как-то можно разделить пространства имен?

Чтобы localparam'ы (или обхявления какого-то другого вида) с одинаковыми именами, определенные в разных подключенных файлах, считались разными, и чтобы к ним можно было обращаться как-нибудь типа имя_файла.имя_параметра?

Если сделать `include "<имя подпапки>/<имя файла>" для каждого файла в индивидуальную область видимости, например, в отдельный module или package (есть только в SystemVerilog), то можно обращаться через имя модуля/пакета к параметру, например, my_module::my_param. Только не понятно зачем так делать, если параметр можно сделать массивом и обращаться к определенному элементу по индексу.

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