PSL 어설 션에 대해 흥미로운 질문이 있습니다. 다음은 VHDL 모니터 프로세스입니다. 이것은 단언을위한 과정이며, 따라서 합성 불가능한 과정이다. 이 모니터는 현재의 FSM 상태를 확인하고 "input1
"및 ""의 두 레지스터 값을 저장합니다. 마지막으로 "assert
"문을 트리거하여이 레지스터의 값을 비교합니다.VHDL 모니터를 PSL 어설 션으로 변환
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 (특성 지정 언어) 어설 션으로 변환하는 방법이 있습니까?
중요 사항 : fsm 상태가 s0 및 s22 인 경우에만 레지스터 "input1"및 "reg136"을 읽을 수 있습니다. 그렇지 않으면이 레지스터에 포함 된 데이터는 어설 션 된 변수 "a"및 "t34"에 속하지 않습니다. 결과적으로, PSL 선언문은 올바른 fsm 상태에서 값을 읽고 저장하는 방법이 필요합니다.
감사합니다.
속성이 PSL의 간단한 하위 집합의 일부인지 확인 하시겠습니까? – trondd
그것은 모델링 레이어의 일부이며 공식적으로 Verilog의 풍미에서 지원됩니다 (그러나 모든 도구는 VHDL의 풍미로 그것을 지원합니다). –