Проблемысигнала Force от тестбенча
В моей конструкции есть счетчик, который используется для задержки. Для целей моделирования я хотел бы ограничить максимальное значение без редактирования любого производственного кода. Это делается для ускорения моделирования.
То, что я пытался
Я хотел проверить, если он превышает максимальное значение из моего тестбенча, и если он делает, я хотел установить его к этому значению. Моя первая попытка выглядела так:
alias ext_delay is << signal .architecture.in.my.production.code.delay : std_logic_vector(31 downto 0) >>;
cap_delay : process (ext_delay) is
constant max_value : std_logic_vector(31 downto 0) := x"00001000"
begin
if ext_delay > max_value then
ext_delay <= max_value;
end if:
end process cap_delay;
Однако, это вызывает сигнал задержки в архитектуре, чтобы всегда быть 'U'
, вероятно, так как оно было обусловлено несколькими процессами. Затем я попробовал это, используя ключевое слово force
, которое преуспело в изменении значения и не привело к тому, что оно стало 'U'
, но тогда мне нужно снова его освободить в следующий раз, когда он уменьшится.
Вы пытались использовать 'release' для 'отмены' своей' силы'? Пример [здесь] (https://www.doulos.com/knowhow/vhdl_designers_guide/vhdl_2008/vhdl_200x_small/#force) –
Я знаю, но я не знаю, как мне это пора. Я не могу выполнить 'ext_delay <= force max_value, освободить после 10 нс;', это не сработает. –
Возможно, вы могли бы обновить вопрос своим кодом, который использует 'force' –