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

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

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

 

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

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

 

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

 

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

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

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

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

 

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

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


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

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

 

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

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

 

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

 

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

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

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

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

 

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

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

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

 

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

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

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


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

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

 

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

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

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


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

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

 

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

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

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

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


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

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

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

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

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

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

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

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

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

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