Возможность повторного объявления определенных параметров внутри пакета для моделирования - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть система, у которой есть некоторые тайм-ауты, которые имеют порядок секунд, для целей моделирования я хочу уменьшить их до микро- или миллисекунд.

У меня есть эти тайм-ауты, определенные в терминахколичества тактов моих часов FPGA.Так, в качестве примера

package time_pkg

parameter EXT_EN_SIG_TIMEOUT = 32'h12345678;
...
endpackage

я сравниваю счетчик с постоянным глобальным параметром EXT_EN_SIG_TIMEOUT, чтобы определить, настало ли время для утверждения сигнала разрешения.

Я хочу иметь этот параметр (а также множество других), определенных в пакете с именем time_pkg в файле с именем time_pkg.v, и я хочу использовать этот пакет для синтеза.

Но когда я имитирую свой дизайн в Riviera Pro (илиModelsim) я хотел бы иметь второй параметр, определенный внутри файла с именем time_pkg_sim.v, который импортируется после time_pkg.v и перезаписывает параметры с таким же именем, как уже определено в time_pkg.

ЕслиЯ просто делаю time_pkg_sim.v с пакетом внутри него с тем же именем (time_pkg), и Ривьера жалуется, так как я пытаюсь повторно объявить пакет, который уже был объявлен.

Я не особенно хочу засорять мой hdl инструкциями, чтобы проверить, установлен ли флаг симуляции, чтобы решить, сравнивать ли счетчик с EXT_EN_SIG_TIMEOUT или EXT_EN_SIG_TIMEOUT_SIM

Isсуществует ли стандартный способ переопределения параметров внутри пакетов при использовании инструмента моделирования?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Может быть, лучше иметь массивный ifdef с симулятором falg внутри пакета.Таким образом, ваш код не будет усеян ifdef везде, а просто сконцентрирован в одном месте.Более того, код внутри самих модулей менять не нужно.

0 голосов
/ 05 декабря 2018

Нет, вы не можете переопределить параметр в пакетах.То, что вы можете сделать, это иметь два разных имени файла, которые объявляют один и тот же пакет с разными значениями параметров, а затем выбирают, какой из них компилировать для симуляции или синтеза.

...