У чым розніца паміж сцвярджэннем і здагадкамі ў SVA?


адказ 1:

Калі справа даходзіць да разгляду дызайну, вы хочаце паглядзець, калі ён робіць тое, што вы хочаце, калі вы ўвялі яго правільна. Возьмем, напрыклад, асінхронны суматар, які павінен даваць суму двух лікаў, калі дадзены сігнал кіравання / ўключэння. Яны сцвярджаюць, што a і b даюцца ў якасці ўваходу разам з сігналам кіравання. Ці адпавядае выхад чаканням і ці адбудзецца ён на працягу пэўнага перыяду часу? У той час як ваша здагадка выкарыстоўваецца для забеспячэння ўводу ў праект, гэта значыць значэнні, якія трэба дадаць і кіравальны сігнал. Прыняцце патрабуе папярэдняй умовы альбо стану, каб вызначыць, калі і як павінны быць дадзеныя. Прымаючы пад увагу патрабаванні, запэўніванне правярае, ці патрэбны выхад.


адказ 2:

Зацвярджэнне - гэта сцвярджэнне, у якім гаворыцца, што ўказанае ўласцівасць альбо ўмова павінны існаваць.

Існуе тры тыпы прэтэнзій: імгненная, адкладзеная імгненная і адначасовая прэтэнзіі.

Неадкладныя запэўніванні не маюць часовага характару і не прымеркаваны. Такім чынам, яны выкарыстоўваюць дырэктыву Assert, у той час як саступкі носяць часовы характар ​​і таму выкарыстоўваюць заяву аб уласнасці Assert.

Напрыклад імгненнае сцверджанне: -

заўсёды @ (posedge clk), калі (a == b) сцвярджаю (c & d) else $ error ();

Напрыклад з адначасовым сцвярджэннем:

Уласцівасць P1; @ (posedge clk) a ## 2 b; Канец уласцівасці Assert уласцівасці P1; у адваротным выпадку $ error ("адбылося парушэнне");

Заява аб прыняцці таксама з'яўляецца сцвярджэннем, якое працуе з уваходнымі сігналамі для праверкі паводзін дызайну.

Звычайна пры распрацоўцы апісання мікраархітэктуры неабходна ўлічваць розныя здагадкі для той ці іншай канструкцыі. Таму звычайна прынята лічыць, што гэтая заява карысная.

Акрамя таго, у многіх афіцыйных інструментах праверкі таксама выкарыстоўваецца заява аб прыняцці.

P1: прымаць уласцівасць (@ (posedge clk) не (a & b));

Карацей кажучы, заява аб прыняцці таксама можа выкарыстоўвацца ў якасці абмежавання.