Ниже показано свойство, которое я использую в настоящее время.
property freq_chk (time clk_period , bit disable_chk=0);
time current_time;
disable iff ( disable_chk )
('1, current_time = $time) |=>
( (($time - current_time) >= (clk_period-1)) &&
(($time - current_time) <= (clk_period+1)) );
endproperty : freq_chk
поэтому здесь мы рассматриваем предел допуска по тактовому периоду как +/- 1. Какой будет лучший метод для того, чтобы пройти процент допуска и соответственно проверить частоту?
Я смотрю на что-то вроде того, что ниже (ЭТО НЕ РАБОТАЕТ, просто для демонстрации того, на что я смотрю).
property freq_chk_with_tol (time clk_period , bit disable_chk=0, int tolerance=0);
time current_time;
disable iff ( disable_chk )
('1, current_time = $time) |=>
( (($time - current_time) >= ( (clk_period * (1 - (tolerance/100) )) - 1)) &&
(($time - current_time) <= ( (clk_period * (1 + (tolerance/100) )) + 1)) );
endproperty : freq_chk_with_tol
Как лучше всего проверить частоту часов с допуском +/-%?
tolerance/100
возвращает целое число; поэтому допуск 8 будет равен 0. Попробуйтеtolerance/100.0
, который вернет вещественное число (также известное как число с плавающей запятой). - person Greg   schedule 11.05.2017