만약 SVG가 높은 트리거가 올라간다면 시그널이 이동하지 않았는지를 확인하지 않기 때문에 높은 트리거가 높은 4 사이클인지 trigger [*4] |-> signal
이 좋지 않은지 확인하는 방법은 무엇입니까? 3 사이클 동안 하이. 내가 $past
어떻게 사용해야합니까 ?? 이 sig
의 상승 에지에서 그것을 확인 할시스템 Verilog 어설 션 트리거 == 1 신호가 어서 트되기 전에 4 사이클
0
A
답변
1
는 trigger
4 개 CLK주기 전에 높았다 :
assert_name: assert property (
@(posedge clk) (
($rose(sig) -> $past(trigger,4))
)
);
-1
높은가 얼마나 많은 사이클 trigger
계산 synthesisable RTL의 작은 조각을 작성을 중지 어디에도 없습니다 .
always @(posedge clk) begin
if (trigger) begin
triggerCount := triggerCount + 1;
end else begin
triggerCount := 0;
end
end
assert_name: assert property (
@(posedge clk) (
($rose(sig) -> triggerCount == 4)
)
);
+0
사람들은 왜 투표를하지 않습니까? 나는 그 질문을 오해 했는가? –
하지만이 트리거가 sig가 상승하기 전에 트리거가 4 ** 연속 **주기 동안 높았는지 확인하지 않았습니까? 그것은 내가 필요한 것입니다. 그래서 아마도'| -> ($ past (trigger, 4) & $ past (trigger, 3))'...? – Meir
@Meir your correct this only 그것이 4 clks 전 높은 것으로 확인하십시오. 그런 다음 그 지점에서 4 clks에 대한 높은 확인하실 수 있습니다. – Morgan