SCOAP參數(shù)介紹與計(jì)算
為什么要學(xué)習(xí)SCOAP算法
電路的Primary Input(PI) 可控性最高,Primary Output(PO)可觀測性最高,插入Test Point時(shí)需要考慮節(jié)點(diǎn)的位置,可以用SCOAP算法來計(jì)算節(jié)點(diǎn)可控、可觀的難易程度。
可控性:將電路中節(jié)點(diǎn)置為預(yù)定邏輯值的難易程度
可觀性:電路中任意節(jié)點(diǎn)的值在PO可觀察的難易程度
SCOAP算法介紹
SCOAP(Sandia Controllability / Observability Analysis Program):
一種可測試性度量工具,其復(fù)雜度隨電路規(guī)模呈線性增長。SCOAP基于電路拓?fù)鋵W(xué),是一種靜態(tài)分析,容易計(jì)算,為電路的可控和可觀提供一個(gè)不錯(cuò)的估計(jì)值,也為Test Point的插入提供依據(jù)。
SCOAP算法的衡量指標(biāo)
SCOAP參數(shù):CC0(N)/CC1(N),SC0(N)/SC1(N),CO(N)/SO(N)

什么是可控性值、可觀性值
CC0(N)/CC1(N):稱為節(jié)點(diǎn)N的組合0/1可控性值。也就是將節(jié)點(diǎn)N的值置為組合邏輯值0/1時(shí),需要對相關(guān)節(jié)點(diǎn)賦以確定組合邏輯值的最少賦值次數(shù)。
SC0(N)/SC1(N):稱為節(jié)點(diǎn)N的時(shí)序0/1可控性值。也就是將節(jié)點(diǎn)N的值置為時(shí)序邏輯值0/1時(shí),需要對相關(guān)節(jié)點(diǎn)賦以確定時(shí)序邏輯的最少賦值次數(shù)。
CO(N):節(jié)點(diǎn)N的組合可觀性值。也就是將節(jié)點(diǎn)N的信息傳播到PO,所需最少的組合邏輯值賦值次數(shù)。
SO(N):節(jié)點(diǎn)N的時(shí)序可觀性值。也就是將節(jié)點(diǎn)N的信息傳播到PO,所需最少的時(shí)序邏輯賦值次數(shù)。
SCOAP算法計(jì)算
組合邏輯單元的計(jì)算公式
組合可控性與組合可觀性計(jì)算:

時(shí)序邏輯單元的計(jì)算公式
時(shí)序可控性與時(shí)序可觀性計(jì)算:

SCOAP算法描述
下圖是SCOAP算法中計(jì)算任意節(jié)點(diǎn)N的可控性值的流程圖。

SCOAP算法中,設(shè)置一個(gè)先進(jìn)先出的排隊(duì)表,稱之為后繼表。每次計(jì)算時(shí)都按順序從后繼表中取出一個(gè)元件,再調(diào)用標(biāo)準(zhǔn)元件的可控性值數(shù)據(jù)庫算出該元件所有輸出節(jié)點(diǎn)的可控性值,計(jì)算過程直到表空才結(jié)束。
如圖是SCOAP算法中計(jì)算任意節(jié)點(diǎn)N的可觀性值的流程圖。

為了方便計(jì)算節(jié)點(diǎn)的可觀性值,設(shè)置一個(gè)先進(jìn)先出的排隊(duì)表,稱之為前趨表。每次計(jì)算時(shí)都按順序從該表中取出一個(gè)元件,再調(diào)用標(biāo)準(zhǔn)元件的可觀性數(shù)據(jù)庫和前面已求得的各元件可控性值,求出該元件所有輸入節(jié)點(diǎn)的可觀性值。對于扇出節(jié)點(diǎn),取所有扇出分支中可觀性值最小的作為扇出根節(jié)點(diǎn)的可觀性值。
若某節(jié)點(diǎn)的可觀性值在計(jì)算后沒變,則其前趨不進(jìn)前趨表;若表中已有某節(jié)點(diǎn)的前趨,該前趨也不入表。重復(fù)上述計(jì)算過程,直到各節(jié)點(diǎn)的可觀性值穩(wěn)定之后才結(jié)束。
總結(jié)
1、可測性度量SCOAP用來衡量電路可測性的難易程度;
2、可控性值表示了對電路中節(jié)點(diǎn)置為預(yù)定邏輯值的難易程度,隨著節(jié)點(diǎn)在電路中深度的提高,難度增大;
3、可觀性值代表了在PO觀察電路節(jié)點(diǎn)的邏輯值所付出的難易程度,隨著電路深度的提高,距離PO越遠(yuǎn)的節(jié)點(diǎn),可觀性越差;
4、可測性度量SCOAP可以快速分析測試生成的難易程度,并不生成測試向量。可測性分析所用的時(shí)間并不像測試生成那樣長,一般與電路中的path數(shù)量成正比。