[導(dǎo)讀]cornercase是怎么定義的?是不是在randomdriventestbench中才使用?directtest中,會用cornercase嗎?有兩種解釋,一種是邊界情況,例如一個(gè)FIFO的cornercases就是full和empty。如果要驗(yàn)證這個(gè)fifo,你就要讓它經(jīng)歷從...
corner case是怎么定義的?是不是在random driven testbench中才使用?direct test中,會用corner case嗎?
有兩種解釋,一種是邊界情況,例如一個(gè)FIFO的corner cases就是full和empty。如果要驗(yàn)證這個(gè)fifo,你就要讓它經(jīng)歷從full到empty,然后再從empty到full。這樣其實(shí)經(jīng)歷了full,不空也不滿,empty這樣三個(gè)狀態(tài),而full和empty就是corner case.如果某個(gè)corner場景沒有覆蓋到,你可以通過進(jìn)一步約束隨機(jī)范圍或者用直接用例測試。
第二種解釋,full and empty case 應(yīng)該叫 boundary case 或 edge case。corner case 一般指的是你無法想到的 case 或不常見的 case, 很難用 directed test 去測出,只能利用不斷 random 的方式去撞出 corner case.
其實(shí)corner case很像edge case,但是它是站在功能點(diǎn)的角度上去說的,不單單是數(shù)據(jù)上的邊界。例如決定FIFO full還是empty可能有很多個(gè)input,而這些input又各有自己的邊界。我們會隨機(jī)這些input去激勵(lì)DUT,但是有時(shí)候我們發(fā)現(xiàn)很難覆蓋到某個(gè)corner case (full或者empty), 這個(gè)時(shí)候我們就需要去約束隨機(jī)或者用direct case。
簡單來說,corner case是結(jié)果輸出上的邊界,edge corner是激勵(lì)輸入上的邊界。如果能發(fā)現(xiàn)corner case上的rtl功能問題,可能你的績效就有了~
有兩種解釋,一種是邊界情況,例如一個(gè)FIFO的corner cases就是full和empty。如果要驗(yàn)證這個(gè)fifo,你就要讓它經(jīng)歷從full到empty,然后再從empty到full。這樣其實(shí)經(jīng)歷了full,不空也不滿,empty這樣三個(gè)狀態(tài),而full和empty就是corner case.如果某個(gè)corner場景沒有覆蓋到,你可以通過進(jìn)一步約束隨機(jī)范圍或者用直接用例測試。
第二種解釋,full and empty case 應(yīng)該叫 boundary case 或 edge case。corner case 一般指的是你無法想到的 case 或不常見的 case, 很難用 directed test 去測出,只能利用不斷 random 的方式去撞出 corner case.
其實(shí)corner case很像edge case,但是它是站在功能點(diǎn)的角度上去說的,不單單是數(shù)據(jù)上的邊界。例如決定FIFO full還是empty可能有很多個(gè)input,而這些input又各有自己的邊界。我們會隨機(jī)這些input去激勵(lì)DUT,但是有時(shí)候我們發(fā)現(xiàn)很難覆蓋到某個(gè)corner case (full或者empty), 這個(gè)時(shí)候我們就需要去約束隨機(jī)或者用direct case。
簡單來說,corner case是結(jié)果輸出上的邊界,edge corner是激勵(lì)輸入上的邊界。如果能發(fā)現(xiàn)corner case上的rtl功能問題,可能你的績效就有了~





