У меня есть интересный вопрос об утверждении PSL. Вот процесс мониторинга VHDL. Это процесс, посвященный утверждению, и, следовательно, несинтезируемый. Этот монитор проверяет текущее состояние FSM и сохраняет значения двух регистров: "input1
" и "reg136
". Наконец, он запускает оператор "assert
" для сравнения значений этих регистров.
process (clk)
variable var_a : signed(7 downto 0);
variable var_b : signed(7 downto 0);
begin
if (rising_edge(clk)) then
case state is
when s0 =>
var_a := signed(input1);
when s22 =>
var_t34 := signed(reg136);
when s85 =>
assert (var_t34 < var_a)
report "Assertion xxx failed : (t34 < a)";
end case;
end if;
end process;
Вопрос: есть ли способ перевести этот монитор в утверждение PSL (язык спецификации свойств)?
ВАЖНО : регистры «input1» и «reg136» могут быть прочитаны, только когда состояние fsm находится в состояниях s0 и s22 соответственно. В противном случае данные, содержащиеся в этих регистрах, не принадлежат заявленным переменным «a» и «t34». В результате для оператора PSL требуется способ чтения и сохранения значений в правильных состояниях fsm.
Спасибо!