VLSI Wiki
Contents:
  1. Assertion Based Verification
    1. 1. Definition: What is Assertion Based Verification?
    2. 2. Components and Operating Principles
      1. 2.1 Assertion Types
    3. 3. Related Technologies and Comparison
    4. 4. References
    5. 5. One-line Summary

Assertion Based Verification

1. Definition: What is Assertion Based Verification?

Assertion Based Verification (ABV)๋Š” ๋””์ง€ํ„ธ ํšŒ๋กœ ์„ค๊ณ„์—์„œ ์ค‘์š”ํ•œ ๊ฒ€์ฆ ๊ธฐ๋ฒ•์œผ๋กœ, ์„ค๊ณ„์˜ ํŠน์ • ์†์„ฑ์ด ์ถฉ์กฑ๋˜๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ช…์‹œ์ ์ธ ์ฃผ์žฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก ์ด๋‹ค. ABV๋Š” ์„ค๊ณ„์˜ ๋™์ž‘์ด ์˜ˆ์ƒํ•œ ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ถ”๋ฉฐ, ์ด๋Š” ํŠนํžˆ VLSI ์‹œ์Šคํ…œ์—์„œ ๋ณต์žกํ•œ ํšŒ๋กœ์˜ ์˜ค๋ฅ˜๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ด๋‹ค.

ABV์˜ ํ•ต์‹ฌ์€ โ€œassertionsโ€๋ผ๋Š” ๊ฐœ๋…์œผ๋กœ, ์ด๋Š” ํŠน์ • ์กฐ๊ฑด์ด๋‚˜ ์†์„ฑ์ด ๋งŒ์กฑ๋˜์–ด์•ผ ํ•จ์„ ๋ช…์‹œํ•˜๋Š” ๋…ผ๋ฆฌ์  ํ‘œํ˜„์ด๋‹ค. ์ด๋Ÿฌํ•œ assertions๋Š” ์„ค๊ณ„์˜ ํŠน์ • ๋™์ž‘์ด๋‚˜ ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ํ™œ์„ฑํ™”๋˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์„ค๊ณ„์˜ ๋™์ž‘์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ์˜๋„๋œ ๊ธฐ๋Šฅ๊ณผ ์‹ค์ œ ๋™์ž‘ ๊ฐ„์˜ ๋ถˆ์ผ์น˜๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค. ABV๋Š” ๋™์  ์‹œ๋ฎฌ๋ ˆ์ด์…˜๊ณผ ๊ฒฐํ•ฉ๋˜์–ด ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด๋กœ ์ธํ•ด ๊ฒ€์ฆ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋”์šฑ ํšจ์œจ์ ์ด๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

ABV์˜ ์ค‘์š”์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ฒซ์งธ, ์„ค๊ณ„ ์ดˆ๊ธฐ ๋‹จ๊ณ„์—์„œ๋ถ€ํ„ฐ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์–ด ์ „์ฒด ๊ฐœ๋ฐœ ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‘˜์งธ, ๋ณต์žกํ•œ VLSI ์„ค๊ณ„์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์–ด, ๋ณด๋‹ค ํฌ๊ด„์ ์ธ ๊ฒ€์ฆ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ, ABV๋Š” ์ž๋™ํ™” ๋„๊ตฌ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์–ด, ๊ฒ€์ฆ ํ”„๋กœ์„ธ์Šค๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ABV๋Š” ํ˜„๋Œ€ ๋””์ง€ํ„ธ ํšŒ๋กœ ์„ค๊ณ„์—์„œ ํ•„์ˆ˜์ ์ธ ๊ฒ€์ฆ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ ์ž๋ฆฌ ์žก๊ณ  ์žˆ๋‹ค.

2. Components and Operating Principles

Assertion Based Verification์˜ ๊ตฌ์„ฑ ์š”์†Œ์™€ ์ž‘๋™ ์›๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค. ABV๋Š” ์ฃผ๋กœ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค: assertions, verification environment, ๊ทธ๋ฆฌ๊ณ  simulation engine. ์ด๋“ค ๊ตฌ์„ฑ ์š”์†Œ๋Š” ์„œ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ, ABV์˜ ํšจ๊ณผ์ ์ธ ๊ตฌํ˜„์„ ์œ„ํ•ด ํ•„์ˆ˜์ ์ด๋‹ค.

์ฒซ ๋ฒˆ์งธ ๊ตฌ์„ฑ ์š”์†Œ์ธ assertions๋Š” ์„ค๊ณ„์˜ ํŠน์ • ์กฐ๊ฑด์ด๋‚˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋…ผ๋ฆฌ์  ํ‘œํ˜„์ด๋‹ค. ์ด๋Ÿฌํ•œ assertions๋Š” ์„ค๊ณ„์˜ ๊ธฐ๋Šฅ์  ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ช…ํ™•ํžˆ ์ •์˜ํ•˜๋ฉฐ, ์„ค๊ณ„์˜ ๋™์ž‘์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์˜๋„๋œ ๊ธฐ๋Šฅ์ด ์ œ๋Œ€๋กœ ์ˆ˜ํ–‰๋˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•œ๋‹ค. Assertions๋Š” ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์˜ˆ๋ฅผ ๋“ค์–ด temporal logic, state machines, ๋˜๋Š” property specification language(PSL)์™€ ๊ฐ™์€ ํ˜•์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋‹ค์–‘ํ•œ ํ‘œํ˜„ ๋ฐฉ์‹์€ ์„ค๊ณ„์˜ ๋ณต์žก์„ฑ๊ณผ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์ ์ ˆํžˆ ์„ ํƒ๋  ์ˆ˜ ์žˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ๊ตฌ์„ฑ ์š”์†Œ์ธ verification environment๋Š” assertions๊ฐ€ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด ํ™˜๊ฒฝ์€ ํ…Œ์ŠคํŠธ ๋ฒค์น˜(testbench), stimulus generator, ๊ทธ๋ฆฌ๊ณ  scoreboarding๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์š”์†Œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ด๋“ค์€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜์—ฌ assertions์˜ ๊ฒ€์ฆ์„ ์ง€์›ํ•œ๋‹ค. ํ…Œ์ŠคํŠธ ๋ฒค์น˜๋Š” ์„ค๊ณ„์˜ ์ž…๋ ฅ์„ ์ƒ์„ฑํ•˜๊ณ , stimulus generator๋Š” ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์„ค๊ณ„์˜ ๋™์ž‘์„ ์œ ๋„ํ•œ๋‹ค. Scoreboarding์€ ์‹ค์ œ ์ถœ๋ ฅ๊ณผ ์˜ˆ์ƒ ์ถœ๋ ฅ์„ ๋น„๊ตํ•˜์—ฌ ๊ฒ€์ฆ ๊ฒฐ๊ณผ๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

์„ธ ๋ฒˆ์งธ ๊ตฌ์„ฑ ์š”์†Œ์ธ simulation engine๋Š” assertions๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ , ์„ค๊ณ„์˜ ๋™์ž‘์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ํ•ต์‹ฌ ์š”์†Œ์ด๋‹ค. ์ด ์—”์ง„์€ ๋‹ค์–‘ํ•œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค๊ณ„์˜ ๋™์ž‘์„ ๋ถ„์„ํ•˜๊ณ , assertions๊ฐ€ ์ถฉ์กฑ๋˜๋Š”์ง€๋ฅผ ํ™•์ธํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋™์  ์‹œ๋ฎฌ๋ ˆ์ด์…˜(dynamic simulation) ๋ฐฉ๋ฒ•์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด ๋ฐฉ๋ฒ•์€ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋™์•ˆ ์„ค๊ณ„์˜ ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๊ณ , assertions๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ์„ธ ๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ABV์˜ ํšจ๊ณผ์ ์ธ ๊ตฌํ˜„์„ ์œ„ํ•ด ์„œ๋กœ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉฐ, ๊ฐ ์š”์†Œ์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ์„ค๊ณ„์˜ ๊ธฐ๋Šฅ์  ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ABV๋Š” ์„ค๊ณ„์˜ ๋ณต์žก์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ณ , ์˜ค๋ฅ˜๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋กœ ์ž๋ฆฌ ์žก๊ณ  ์žˆ๋‹ค.

2.1 Assertion Types

Assertions๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค: immediate assertions์™€ concurrent assertions. Immediate assertions๋Š” ํŠน์ • ์‹œ์ ์—์„œ ์ฆ‰์‹œ ํ‰๊ฐ€๋˜๋Š” ๋ฐ˜๋ฉด, concurrent assertions๋Š” ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ๊ฑด์„ ๊ฐ์‹œํ•˜๋ฉฐ, ํŠน์ • ์กฐ๊ฑด์ด ๋งŒ์กฑ๋˜๋Š”์ง€๋ฅผ ์ง€์†์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์€ ์„ค๊ณ„์˜ ๋‹ค์–‘ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ ์ ˆํžˆ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

Assertion Based Verification์€ ๋‹ค์–‘ํ•œ ๊ฒ€์ฆ ๊ธฐ๋ฒ•๊ณผ ๋น„๊ตํ•  ๋•Œ ๋ช‡ ๊ฐ€์ง€ ๋…ํŠนํ•œ ํŠน์ง•๊ณผ ์žฅ์ ์„ ๊ฐ€์ง„๋‹ค. ABV๋Š” ์ฃผ๋กœ Functional Verification์™€ Formal Verification๊ณผ ๋น„๊ต๋œ๋‹ค. Functional Verification์€ ์„ค๊ณ„๊ฐ€ ์‚ฌ์–‘์— ๋งž๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์œผ๋กœ, ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ํ†ตํ•ด ์ˆ˜ํ–‰๋œ๋‹ค. ๋ฐ˜๋ฉด, Formal Verification์€ ์ˆ˜ํ•™์  ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค๊ณ„์˜ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋ฅผ ๋ถ„์„ํ•˜๊ณ , ์˜ค๋ฅ˜๋ฅผ ๋ฐœ๊ฒฌํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.

ABV๋Š” Functional Verification์— ๋น„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์žฅ์ ์„ ์ œ๊ณตํ•œ๋‹ค. ์ฒซ์งธ, ABV๋Š” ํŠน์ • ์กฐ๊ฑด์ด๋‚˜ ์†์„ฑ์„ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•˜๋ฏ€๋กœ, ์„ค๊ณ„์˜ ํŠน์ • ๋™์ž‘์„ ํŠนํžˆ ๊ฐ•์กฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‘˜์งธ, ABV๋Š” ๋™์  ์‹œ๋ฎฌ๋ ˆ์ด์…˜๊ณผ ๊ฒฐํ•ฉ๋˜์–ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์–ด, ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์‰ฝ๊ฒŒ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ABV๋Š” Formal Verification์— ๋น„ํ•ด ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ฐ ํ•œ๊ณ„๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. Formal Verification์€ ABV๋ณด๋‹ค ๋” ์ฒ ์ €ํ•œ ๊ฒ€์ฆ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ณ„์‚ฐ ๋ณต์žก์„ฑ์œผ๋กœ ์ธํ•ด ์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ๋‹ค.

์‹ค์ œ ์‚ฌ๋ก€๋กœ๋Š”, ๋Œ€๊ทœ๋ชจ VLSI ์„ค๊ณ„์—์„œ ABV๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ณ ์„ฑ๋Šฅ ํ”„๋กœ์„ธ์„œ ์„ค๊ณ„์—์„œ ABV๋ฅผ ํ†ตํ•ด ํŠน์ • ์„ฑ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š”์ง€๋ฅผ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ABV๋Š” ์„ค๊ณ„์˜ ํŠน์ • ์†์„ฑ์„ ๊ฐ•์กฐํ•˜๊ณ , ์˜ค๋ฅ˜๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•˜๋Š” ๋ฐ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

4. References

  • Accellera Systems Initiative
  • IEEE (Institute of Electrical and Electronics Engineers)
  • Cadence Design Systems
  • Synopsys, Inc.
  • Mentor Graphics (now part of Siemens EDA)

5. One-line Summary

Assertion Based Verification์€ ๋””์ง€ํ„ธ ํšŒ๋กœ ์„ค๊ณ„์—์„œ ํŠน์ • ์†์„ฑ์„ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ๋ช…์‹œ์ ์ธ ์ฃผ์žฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๊ฒ€์ฆ ๊ธฐ๋ฒ•์ด๋‹ค.