์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

Basic UVM Testbench ( ํšŒ๋กœ ์„ค๊ณ„ ๊ฒ€์ฆ )

๋ณธ ๊ฐ•์ขŒ๋ฅผ ํ†ตํ•˜์—ฌ UVM Class library์— ๋Œ€ํ•˜์—ฌ ์ดํ•ดํ•˜๊ณ , UVM ์„ ์‚ฌ์šฉํ•œ Testbench ์„ค๊ณ„ ๊ธฐ๋ฒ•์„ ์ตํžˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

(5.0) ์ˆ˜๊ฐ•ํ‰ 5๊ฐœ

์ˆ˜๊ฐ•์ƒ 38๋ช…

๋‚œ์ด๋„ ์ดˆ๊ธ‰

์ˆ˜๊ฐ•๊ธฐํ•œ 6๊ฐœ์›”

์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
ํšŒ๋กœ๊ฒ€์ฆ
ํšŒ๋กœ๊ฒ€์ฆ
๋””์ง€ํ„ธํšŒ๋กœ
๋””์ง€ํ„ธํšŒ๋กœ
์‹ค์Šต ์ค‘์‹ฌ
์‹ค์Šต ์ค‘์‹ฌ
ํšŒ๋กœ๊ฒ€์ฆ
ํšŒ๋กœ๊ฒ€์ฆ
๋””์ง€ํ„ธํšŒ๋กœ
๋””์ง€ํ„ธํšŒ๋กœ
๋„ค์ด๋ฒ„ Labs
์นด์นด์˜ค
๋„ค์ด๋ฒ„

๋„ค์ด๋ฒ„

์— ๊ด€์‹ฌ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค๋„ ๋“ฃ๋Š” ์ค‘!

๋„ค์ด๋ฒ„ Labs
์นด์นด์˜ค
๋„ค์ด๋ฒ„

๋„ค์ด๋ฒ„

์— ๊ด€์‹ฌ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค๋„ ๋“ฃ๋Š” ์ค‘!

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

5.0

5.0

์›์ˆญ์ด ์•Œ๋Ÿฌ์ง€ ๋ฐ”๋‚˜๋‚˜

100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ €๋ฒˆ ์‹œ์Šคํ…œ๋ฒ ๋ฆด๋กœ๊ทธ๋ž‘ ๊ฐ•์˜ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์„๊นŒ ์‹ถ์–ด ๋“ค์–ด๋ดค๋Š”๋ฐ ๋‚ด์šฉ๋„ ๋” ๋‚˜์•„๊ฐ€์„œ ๋ถ€๊ฐ€ ์„ค๋ช…๋„ ํ•ด์ฃผ์‹œ๊ณ  ์ข‹์•˜์–ด์š” uvm ๊ธฐ์ดˆ ์Œ“๊ธฐ ์ข‹์€๊ฑฐ๊ฐ™์•„์—ฌ

5.0

vppxi

32% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

good!!

5.0

ghdrlqls11

32% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ข‹์€๊ฐ•์˜์ธ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๊ฐ•์˜์ž๋ฃŒ๋ฅผ ๋ฐ›์„์ˆ˜์žˆ์œผ๋ฉด ์ข‹์„๊ฑฐ๊ฐ™์•„์š”.

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • SystemVerilog Testbench ๊ธฐ๋ณธ ๊ฐœ๋…

  • UVM ์š”์†Œ๋“ค์˜ ์ดํ•ด ๋ฐ Testbench ์ž‘์„ฑ ๋ฐฉ๋ฒ•

  • UVM Simulation ๊ธฐ๋ฒ• ( VCS ์‚ฌ์šฉ )


UVM ๊ฒ€์ฆ, ์•„์ง๋„ ์–ด๋ ต๊ฒŒ ํ•˜์‹œ๋‚˜์š”?
[UVM TB] ์„ค๊ณ„๋ถ€ํ„ฐ ์ž์‹ ๊ฐ์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

UVM Testbench ์„ค๊ณ„๋ฅผ ํ†ตํ•ด ๋ณต์žกํ•œ ์นฉ ์„ค๊ณ„ ๊ฒ€์ฆ์„ ์ž์‹  ์žˆ๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ
์ด๊ฒƒ์ด ๋ฐ”๋กœ ์ˆ™๋ จ๋œ ๊ฒ€์ฆ ์—”์ง€๋‹ˆ์–ด์˜ ํ•ต์‹ฌ ์—ญ๋Ÿ‰์ž…๋‹ˆ๋‹ค.


RTL ์„ค๊ณ„ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์ง€์—ฐ๋˜์–ด ๋ฐค์ƒ˜ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜์‹œ๋‚˜์š”?

๊ธฐ๋Šฅ ๊ฒ€์ฆ ์˜ค๋ฅ˜ ๋•Œ๋ฌธ์— ์žฌ์„ค๊ณ„(re-spin)๋ฅผ ๊ฒฝํ—˜ํ•˜๊ณ  ์ขŒ์ ˆ๊ฐ์„ ๋А๋ผ์‹  ์ ์€ ์—†์œผ์‹ ๊ฐ€์š”?

๋ณต์žกํ•œ SOC ์„ค๊ณ„ ํ๋ฆ„ ์†์—์„œ ๊ฒ€์ฆ์˜ ์ค‘์š”์„ฑ์„ ๊ฐ„๊ณผํ•˜์—ฌ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์„ ๋†“์น˜๊ณ  ์žˆ์ง€๋Š” ์•Š์œผ์‹ ๊ฐ€์š”?

๋ณธ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด UVM Testbench ์„ค๊ณ„์˜ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํƒ„ํƒ„ํžˆ ๋‹ค์ง€๊ณ ,
๋ณต์žกํ•œ ์นฉ ์„ค๊ณ„๋„ ์ž์‹  ์žˆ๊ฒŒ ๊ฒ€์ฆํ•˜๋Š” ์—”์ง€๋‹ˆ์–ด๋กœ ๋ฐœ๋‹์›€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


UVM ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ดํ•ด๋ถ€ํ„ฐ
์‹ค๋ฌด UVM ํ…Œ์ŠคํŠธ๋ฒค์น˜ ์„ค๊ณ„ ๊ธฐ๋ฒ•๊นŒ์ง€,
๋ณต์žกํ•œ ์นฉ ์„ค๊ณ„๋ฅผ ๊ฒ€์ฆํ•˜๋Š” ํ•ต์‹ฌ ์—ญ๋Ÿ‰์„ ํ‚ค์›๋‹ˆ๋‹ค.


๋‹จ์ˆœํ•œ ์ด๋ก  ํ•™์Šต์„ ๋„˜์–ด,
๊ฒ€์ฆ ์—”์ง€๋‹ˆ์–ด๋กœ์„œ ํ•œ ๋‹จ๊ณ„ ๋„์•ฝํ•˜์—ฌ
ํ˜„์žฅ์—์„œ ์ธ์ •๋ฐ›๋Š” ์ „๋ฌธ๊ฐ€
๋กœ ์„ฑ์žฅํ•˜๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๊ฐ€ ๋๋‚˜๋ฉด ๋‹น์‹ ์€


UVM Testbench ์„ค๊ณ„์˜ ํ•ต์‹ฌ ์›๋ฆฌ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • UVM ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ตฌ์กฐ์™€ ๊ฐ ์š”์†Œ์˜ ์—ญํ• ์„ ๊นŠ์ด ์žˆ๊ฒŒ ํŒŒ์•…ํ•˜์—ฌ, ๋ณต์žกํ•œ ์นฉ ์„ค๊ณ„ ๊ฒ€์ฆ์— ํ•„์ˆ˜์ ์ธ UVM ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ๋ฒค์น˜ ์„ค๊ณ„ ๊ธฐ๋ฒ•์„ ์Šค์Šค๋กœ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    Verilog HDL ์ด๋‚˜ SystemVerilog TB ์„ค๊ณ„ ๊ฒฝํ—˜์ด ์žˆ๋‹ค๋ฉด UVM์œผ๋กœ์˜ ์ „ํ™˜์ด ๋”์šฑ ์ˆ˜์›”ํ•ด์ง‘๋‹ˆ๋‹ค.

์‹ค๋ฌด ์ค‘์‹ฌ์˜ UVM ํ…Œ์ŠคํŠธ๋ฒค์น˜ ๊ตฌ์ถ• ๋Šฅ๋ ฅ์„ ๊ฐ–์ถฅ๋‹ˆ๋‹ค.

  • UVM ์ปดํฌ๋„ŒํŠธ, ํŠธ๋žœ์žญ์…˜, ์‹œํ€€์Šค, Configuration ๋ฐ Factory ๋ฉ”์ปค๋‹ˆ์ฆ˜, TLM ํ†ต์‹  ๋“ฑ UVM์˜ ์ฃผ์š” ๊ฐœ๋…์„ ์‹ค์ œ ์‹œ์—ฐ๊ณผ ์‹ค์Šต(Lab)์„ ํ†ตํ•ด ์ฒด๋“ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด RTL ์„ค๊ณ„๋ถ€ํ„ฐ ํ…Œ์ดํ”„์•„์›ƒ๊นŒ์ง€ ์ด์–ด์ง€๋Š” SOC ์„ค๊ณ„ ํ๋ฆ„ ์ „๋ฐ˜์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, ์‹ค์ œ ๊ฒ€์ฆ ํ™˜๊ฒฝ์—์„œ ๋ฐ”๋กœ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ํ…Œ์ŠคํŠธ๋ฒค์น˜๋ฅผ ์ž์‹  ์žˆ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

UVM ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ์—์„œ์˜ ํšจ์œจ์ ์ธ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • Synopsys VCS์™€ ๊ฐ™์€ ์‚ฐ์—… ํ‘œ์ค€ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ํ™˜๊ฒฝ์—์„œ UVM ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ๋ฆ„์„ ์ตํžˆ๊ณ , ์ปดํฌ๋„ŒํŠธ ํŽ˜์ด์ง•, ํŠธ๋žœ์žญ์…˜/์‹œํ€€์Šค ํ™œ์šฉ, ๋ชจ๋‹ˆํ„ฐ ๋ฐ ์Šค์ฝ”์–ด๋ณด๋“œ ๊ตฌํ˜„, ๊ธฐ๋Šฅ ์ปค๋ฒ„๋ฆฌ์ง€ ์ž‘์„ฑ ๋“ฑ ์‹ค์งˆ์ ์ธ ๊ฒ€์ฆ ๊ณผ์ •์„ ๊ฒฝํ—˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฒ€์ฆ ์—”์ง€๋‹ˆ์–ด๋กœ์„œ ํ•„์š”ํ•œ ๊ธฐ์ˆ  ์Šคํƒ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์Œ“๊ณ , ํ”„๋กœ์ ํŠธ ์„ฑ๊ณต๋ฅ ์„ ๋†’์ด๋Š” ๋ฐ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒ€์ฆ ์—”์ง€๋‹ˆ์–ด๋กœ์„œ์˜ ์„ฑ์žฅ ๋ฐœํŒ์„ ๋งˆ๋ จํ•ฉ๋‹ˆ๋‹ค.

  • ์ตœ์‹  ๋ฐ˜๋„์ฒด ์„ค๊ณ„ ๋ฐ ๊ฒ€์ฆ ํŠธ๋ Œ๋“œ๋ฅผ ์ดํ•ดํ•˜๊ณ , ๊ธฐ๋Šฅ ์˜ค๋ฅ˜๋กœ ์ธํ•œ ์žฌ์„ค๊ณ„(re-spin)๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” UVM ๊ฒ€์ฆ์˜ ์ค‘์š”์„ฑ์„ ์ธ์ง€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋ณธ ๊ณผ์ •์„ ํ†ตํ•ด UVM ํ…Œ์ŠคํŠธ๋ฒค์น˜ ์ž‘์„ฑ ๋Šฅ๋ ฅ์„ ํ–ฅ์ƒ์‹œ์ผœ, SOC/IP ์„ค๊ณ„ ๋ถ„์•ผ์˜ ๊ฒ€์ฆ ์ „๋ฌธ๊ฐ€๋กœ ๋ฐœ๋‹์›€ํ•˜๊ฑฐ๋‚˜ ๊ด€๋ จ ์ง๋ฌด ์—ญ๋Ÿ‰์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


โœ”๏ธ

UVM ๊ฒ€์ฆ ํ™˜๊ฒฝ ๊ตฌ์ถ•์˜
ํ•ต์‹ฌ ๋…ธํ•˜์šฐ

UVM ๊ธฐ๋ฐ˜ ๊ฒ€์ฆ,
์‹ค๋ฌด ์—ญ๋Ÿ‰ ๊ฐ•ํ™”

๋ณธ ๊ฐ•์ขŒ๋Š” ๋ณต์žกํ•œ ๋ฐ˜๋„์ฒด ์„ค๊ณ„ ๊ฒ€์ฆ์˜ ํ•ต์‹ฌ์ธ UVM(Universal Verification Methodology)์˜ Class Library ์ดํ•ด๋ถ€ํ„ฐ Testbench ์„ค๊ณ„ ๊ธฐ๋ฒ•๊นŒ์ง€ ์ฒด๊ณ„์ ์œผ๋กœ ๋‹ค๋ฃน๋‹ˆ๋‹ค. SystemVerilog Testbench์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ๋ฐ”ํƒ•์œผ๋กœ UVM ์š”์†Œ๋“ค์„ ๊นŠ์ด ์žˆ๊ฒŒ ํ•™์Šตํ•˜๊ณ , ์‹ค์ œ VCS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•œ UVM ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ธฐ๋ฒ•์„ ์ตํžˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์‹ค์ „ UVM Testbench
์„ค๊ณ„ ๋ฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜

๊ฐ•์˜์—์„œ๋Š” UVM Testbench ๊ตฌ์กฐ, Phasing ๋ฉ”์ปค๋‹ˆ์ฆ˜, Transaction ๋ฐ Sequence ํ™œ์šฉ ๋“ฑ ํ•ต์‹ฌ์ ์ธ UVM ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„ ๋ฐฉ๋ฒ•์„ ์ƒ์„ธํžˆ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ํŠนํžˆ, Synopsys VCS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ํ™˜๊ฒฝ์—์„œ ์ง์ ‘ Testbench๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ, Stimulus Generation, Component Configuration, Monitor ๋ฐ Scoreboard ๊ตฌํ˜„๊นŒ์ง€ ์‹ค์Šตํ•˜๋ฉฐ ์‹ค๋ฌด ๊ฐ๊ฐ์„ ํ‚ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

UVM ๊ฒ€์ฆ
์†Œ์Šค ์ฝ”๋“œ ๋ฐ ์ž๋ฃŒ

๊ฐ•์˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  UVM Testbench ๊ตฌ์กฐ ๊ด€๋ จ ์†Œ์Šค ์ฝ”๋“œ์™€ ์˜ˆ์ œ ํŒŒ์ผ์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด VCS ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์ง์ ‘ ์‹คํ–‰ํ•ด๋ณด๊ณ , UVM Class Tree, Architecture, Phasing, Transaction, Sequence, Configuration, Factory, TLM ํ†ต์‹  ๋“ฑ UVM์˜ ์ฃผ์š” ๊ฐœ๋…์„ ์‹ค์Šต ์œ„์ฃผ๋กœ ํ•™์Šตํ•˜๋ฉฐ ๊ฒ€์ฆ ์—”์ง€๋‹ˆ์–ด๋กœ์„œ์˜ ์‹ค๋ฌด ์—ญ๋Ÿ‰์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ“š

UVM ๊ธฐ๋ฐ˜์˜ ๊ฒ€์ฆ ์ž๋™ํ™”,
ํƒ„ํƒ„ํ•˜๊ฒŒ ์‹œ์ž‘ํ•ด๋ณด์„ธ์š”!

Section 1

UVM ๊ฐœ์š” ๋ฐ ๊ฒ€์ฆ ํ™˜๊ฒฝ ์„ค์ •

๋ณธ ์„น์…˜์—์„œ๋Š” UVM ํ…Œ์ŠคํŠธ๋ฒค์น˜ ๊ฐ•์ขŒ์˜ ์ „๋ฐ˜์ ์ธ ๋‚ด์šฉ์„ ์†Œ๊ฐœํ•˜๊ณ , SOC ์„ค๊ณ„ ํ๋ฆ„์˜ ์ค‘์š”์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ตœ์‹  ๊ฒ€์ฆ ๋™ํ–ฅ๊ณผ UVM์˜ ์—ญํ• ์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๋ฉฐ, ๊ฐ•์˜ ๋ชฉํ‘œ ๋ฐ ์„ ์ˆ˜ ์š”๊ฑด์„ ๋ช…ํ™•ํžˆ ํ•ฉ๋‹ˆ๋‹ค.


Section 2

SystemVerilog ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ณต์Šต

UVM์˜ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” SystemVerilog์˜ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP) ๊ฐœ๋…์„ ๋ณต์Šตํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค, ์ƒ์†, ๋‹คํ˜•์„ฑ, ์ธํ„ฐํŽ˜์ด์Šค, ๊ทธ๋ฆฌ๊ณ  static ๋ฐ singleton ํŒจํ„ด์˜ ์ดํ•ด๋ฅผ ์‹ฌํ™”ํ•˜์—ฌ UVM ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„๋ฅผ ์œ„ํ•œ ๊ธฐ์ดˆ๋ฅผ ๋‹ค์ง‘๋‹ˆ๋‹ค.


Section 3

UVM ํ…Œ์ŠคํŠธ๋ฒค์น˜ ๊ตฌ์กฐ ๋ฐ ์ปดํฌ๋„ŒํŠธ

UVM ํ…Œ์ŠคํŠธ๋ฒค์น˜์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ์™€ UVM ๋ฒ ์ด์Šค ํด๋ž˜์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. UVM ์ปดํฌ๋„ŒํŠธ ํด๋ž˜์Šค์˜ ์—ญํ• ๊ณผ ๋™์ž‘ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๊ณ , ์‹ค์ œ UVM ํ…Œ์ŠคํŠธ๋ฒค์น˜ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.


Section 4

UVM Phasing ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ดํ•ด

UVM ํ…Œ์ŠคํŠธ๋ฒค์น˜์˜ ์‹คํ–‰ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” Phasing ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊นŠ์ด ์žˆ๊ฒŒ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ ํŽ˜์ด์ฆˆ์˜ ๋™์ž‘ ์›๋ฆฌ์™€ Phase Objection ๊ธฐ๋ฒ•์„ ์ดํ•ดํ•˜๊ณ , ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


Section 5

UVM Transaction ๋ชจ๋ธ๋ง ๋ฐ ํ™œ์šฉ

UVM ํ…Œ์ŠคํŠธ๋ฒค์น˜์—์„œ ํŠธ๋žœ์žญ์…˜์˜ ์ค‘์š”์„ฑ์„ ์ดํ•ดํ•˜๊ณ , ํŠธ๋žœ์žญ์…˜ ํด๋ž˜์Šค๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค. ์ œ์•ฝ ์กฐ๊ฑด(constraints), ํŒŒ๋ผ๋ฏธํ„ฐํ™”๋œ ํŠธ๋žœ์žญ์…˜, ๊ทธ๋ฆฌ๊ณ  ํŠธ๋žœ์žญ์…˜ ๋ฉ”์†Œ๋“œ์˜ ๊ตฌํ˜„ ๋ฐ ์‚ฌ์šฉ๋ฒ•์„ ์ตํž™๋‹ˆ๋‹ค.


Section 6

UVM Sequence๋ฅผ ์ด์šฉํ•œ Stimulus ์ƒ์„ฑ

UVM ์‹œํ€€์Šค ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์‹œํ€€์Šค๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. Top Sequencer์™€ Top Sequence๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ณต์žกํ•œ ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ , ์‹œํ€€์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.


Section 7

UVM Configuration ๋ฐ Factory ๋ฉ”์ปค๋‹ˆ์ฆ˜

UVM ์ปดํฌ๋„ŒํŠธ ๊ณ„์ธต ๊ตฌ์กฐ์™€ ์„ค์ • ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. UVM Factory๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํ…Œ์ŠคํŠธ๋ฒค์น˜์˜ ์œ ์—ฐ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค.


Section 8

UVM ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ํ†ต์‹  (TLM)

UVM ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ํšจ๊ณผ์ ์ธ ํ†ต์‹ ์„ ์œ„ํ•œ Transaction Level Modeling (TLM) ๊ธฐ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. TLM 1.0 ๋ฐ TLM 2.0 ํ‘œ์ค€์„ ์ดํ•ดํ•˜๊ณ , ๋ชจ๋‹ˆํ„ฐ์™€ ์Šค์ฝ”์–ด๋ณด๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฒ€์ฆ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.


Section 9

UVM Scoreboard ๋ฐ ๊ธฐ๋Šฅ ์ปค๋ฒ„๋ฆฌ์ง€ ์ž‘์„ฑ

UVM ์Šค์ฝ”์–ด๋ณด๋“œ๋ฅผ ์„ค๊ณ„ํ•˜์—ฌ DUT์˜ ๋™์ž‘์„ ๊ฒ€์ฆํ•˜๊ณ , ๊ธฐ๋Šฅ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์ •์˜ํ•˜์—ฌ ๊ฒ€์ฆ์˜ ์™„๊ฒฐ์„ฑ์„ ํ™•๋ณดํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ ๋‚ด ๋ชจ๋‹ˆํ„ฐ์˜ ์—ญํ• ๊ณผ ์ปค๋ฒ„๋ฆฌ์ง€ ์ธก์ • ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.


์ด๋Ÿฐ ๋ถ„๋“ค์˜ ๊ณ ๋ฏผ์„
ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์š”!

๐Ÿ“Œ

๋ฐ˜๋„์ฒด ๊ฒ€์ฆ ์—”์ง€๋‹ˆ์–ด ์ž…๋ฌธ์ž

Verilog ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒ€์ฆ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ–ˆ์ง€๋งŒ, ๋ณต์žกํ•ด์ง€๋Š” ์„ค๊ณ„๋กœ ์ธํ•ด SystemVerilog์™€ UVM์„ ๋„์ž…ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์— ๋†“์ธ ๋ถ„

๐Ÿ“Œ

๊ฒฝ๋ ฅ์ง ๊ฒ€์ฆ ์—”์ง€๋‹ˆ์–ด

๊ธฐ์กด Verilog Testbench ์ž‘์„ฑ ๊ฒฝํ—˜์€ ์žˆ์œผ๋‚˜, ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ด๋Š” UVM ๋ฐฉ๋ฒ•๋ก ์„ ์ฒด๊ณ„์ ์œผ๋กœ ํ•™์Šตํ•˜์—ฌ ์ตœ์‹  ๊ฒ€์ฆ ํŠธ๋ Œ๋“œ๋ฅผ ๋”ฐ๋ผ๊ฐ€๊ณ  ์‹ถ์€ ๋ถ„

๐Ÿ“Œ

SystemVerilog ์„ค๊ณ„์ž

์„ค๊ณ„๋œ RTL ์ฝ”๋“œ์˜ ๊ธฐ๋Šฅ ๋ฐ ์„ฑ๋Šฅ ๊ฒ€์ฆ์„ ์œ„ํ•ด ์ง์ ‘ Testbench๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•˜์ง€๋งŒ, UVM์˜ ์ถ”์ƒํ™” ์ˆ˜์ค€๊ณผ ๊ฐ์ฒด ์ง€ํ–ฅ ๊ฐœ๋… ๋•Œ๋ฌธ์— ๋ง‰๋ง‰ํ•จ์„ ๋А๋ผ๋Š” ๋ถ„

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ


์‹ค์Šต ํ™˜๊ฒฝ

  • ์šด์˜์ฒด์ œ: Linux (Ubuntu ๋“ฑ ๊ถŒ์žฅ)

  • ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ: Synopsys VCS (๊ฐ•์˜์—์„œ ์‚ฌ์šฉ)

  • PC ์‚ฌ์–‘: 8GB RAM ์ด์ƒ, 50GB ์ด์ƒ์˜ ๋””์Šคํฌ ๊ณต๊ฐ„ ๊ถŒ์žฅ

์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • SystemVerilog ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ๋ฐ ํด๋ž˜์Šค ์ดํ•ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (OOP) ๊ฒฝํ—˜์ด ์žˆ์œผ๋ฉด ํ•™์Šต์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

  • Linux ๋ช…๋ น์–ด ํ™˜๊ฒฝ์— ์ต์ˆ™ํ•˜๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

  • ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์‚ฌ์šฉ ๊ฒฝํ—˜์ด ์žˆ๋‹ค๋ฉด ๋”์šฑ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค.

ํ•™์Šต ์ž๋ฃŒ

  • ๊ฐ•์˜์—์„œ ์ง„ํ–‰ํ•˜๋Š” Lab์˜ PDF ์ž๋ฃŒ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

  • ์‹ค์Šต ์˜ˆ์ œ ์ฝ”๋“œ ๋ฐ UVM ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

  • VCS ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ ์„ค์ • ๊ฐ€์ด๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.


์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ๊ฒ€์ฆ์„ ์‹œ์ž‘ํ•˜์‹œ๋ฉฐ UVM์„ ์‚ฌ์šฉํ•ด ๋ณด๊ณ  ์‹ถ์œผ์‹  ๋ถ„๋“ค

  • Verilog TB์—์„œ SV, UVM TB๋กœ์˜ ์ „ํ™˜์„ ํ•˜์‹œ๋ ค๋Š” ๋ถ„๋“ค

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • Linux ํ™˜๊ฒฝ์—์„œ์˜ command ์ฒ˜๋ฆฌ์™€ scripting

  • Verilog, SystemVerilog design, verification ๊ฒฝํ—˜

  • Object oriented programming ๊ฒฝํ—˜ - Plus

์•ˆ๋…•ํ•˜์„ธ์š”
MetaEncore์ž…๋‹ˆ๋‹ค.

์ธํ”„๋Ÿฐ์ธ์ฆ

197

๋ช…

์ˆ˜๊ฐ•์ƒ

27

๊ฐœ

์ˆ˜๊ฐ•ํ‰

36

๊ฐœ

๋‹ต๋ณ€

4.7

์ 

๊ฐ•์˜ ํ‰์ 

12

๊ฐœ

๊ฐ•์˜

AI(Artificial Intelligence)์™€ IoT(Internet of Things) ๋“ฑ ์ฃผ๋ฌธํ˜• chip(ASIC, application-specific integrated circuit)์— ๋Œ€ํ•œ ์‹œ์žฅ์˜ ์š”๊ตฌ๋Š” ๋Š˜์–ด๋‚˜๊ณ  ์žˆ๊ณ , ์‹ค์ œ๋กœ ๋งŽ์€ chip๋“ค์ด ์„ค๊ณ„๋˜๊ณ  ์žˆ์œผ๋‚˜, ์‹ค์งˆ์ ์ธ ์‚ถ์˜ ๋ณ€ํ™”๋กœ๊นŒ์ง€ ์ด์–ด์ง€์ง€๋Š” ๊ฒฝ์šฐ๋Š” ๋“œ๋ญ…๋‹ˆ๋‹ค.

๋งŽ์€ ASIC ์„ค๊ณ„๋“ค์ด ๊ธฐ๋Šฅ์ ์œผ๋กœ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜, ๊ณ„ํšํ•˜์˜€๋˜ ์„ฑ๋Šฅ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ค์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ข‹์€ ๋ฐ˜๋„์ฒด๋ฅผ ๋งŒ๋“ค์–ด์„œ ์šฐ๋ฆฌ์˜ ์‚ถ์„ ์ข€ ๋” ์œคํƒํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด, ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๊ณ  ๋ณต์žกํ•ด์ง„ ์„ค๊ณ„๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๊ณ ๋„ํ™”๋œ ๊ธฐ๋Šฅ ๋ฐ ์„ฑ๋Šฅ ๊ฒ€์ฆ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€์•™์ฝ”๋ฅด๋Š” ๊ทธ๋Ÿฌํ•œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์‚ฌ๋žŒ์„ ์ด๋กญ๊ฒŒ ํ•˜๋Š” ๋ฐ˜๋„์ฒด๊ฐ€ ๋งŽ์•„์ง€๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ํšŒ์‚ฌ์ž…๋‹ˆ๋‹ค.

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

45๊ฐœ โˆ™ (9์‹œ๊ฐ„ 43๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

5๊ฐœ

5.0

5๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • ghdrlqls11๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ghdrlqls11

    ์ˆ˜๊ฐ•ํ‰ 1

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    32% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์ข‹์€๊ฐ•์˜์ธ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๊ฐ•์˜์ž๋ฃŒ๋ฅผ ๋ฐ›์„์ˆ˜์žˆ์œผ๋ฉด ์ข‹์„๊ฑฐ๊ฐ™์•„์š”.

    • MetaEncore
      ์ง€์‹๊ณต์œ ์ž

      @ghdrlqls11 ๋‹˜, ์ˆ˜๊ฐ•ํ‰ ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ฐ•์˜์ž๋ฃŒ ๋ถ€๋ถ„์€ ์ €ํฌ ์ •์ฑ…์ƒ ๋„ˆ๋ฌด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ์„ ํ•  ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ์ฐพ์•„ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์›์ˆญ์ด ์•Œ๋Ÿฌ์ง€ ๋ฐ”๋‚˜๋‚˜๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ์›์ˆญ์ด ์•Œ๋Ÿฌ์ง€ ๋ฐ”๋‚˜๋‚˜

    ์ˆ˜๊ฐ•ํ‰ 3

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    ์ €๋ฒˆ ์‹œ์Šคํ…œ๋ฒ ๋ฆด๋กœ๊ทธ๋ž‘ ๊ฐ•์˜ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์ด ์žˆ์„๊นŒ ์‹ถ์–ด ๋“ค์–ด๋ดค๋Š”๋ฐ ๋‚ด์šฉ๋„ ๋” ๋‚˜์•„๊ฐ€์„œ ๋ถ€๊ฐ€ ์„ค๋ช…๋„ ํ•ด์ฃผ์‹œ๊ณ  ์ข‹์•˜์–ด์š” uvm ๊ธฐ์ดˆ ์Œ“๊ธฐ ์ข‹์€๊ฑฐ๊ฐ™์•„์—ฌ

    • MetaEncore
      ์ง€์‹๊ณต์œ ์ž

      ์›์ˆญ์ด ์•Œ๋Ÿฌ์ง€ ๋ฐ”๋‚˜๋‚˜๋‹˜, ์ข‹์€ ํ‰๊ฐ€ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์‹œ๋Š” ์ผ์— ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

  • vppxi๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    vppxi

    ์ˆ˜๊ฐ•ํ‰ 2

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    32% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    good!!

    • MetaEncore
      ์ง€์‹๊ณต์œ ์ž

      vppxi ๋‹˜, ์ˆ˜๊ฐ•ํ‰ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  • ๋ฌธ์ œ์šฐ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ๋ฌธ์ œ์šฐ

    ์ˆ˜๊ฐ•ํ‰ 1

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    37% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    UVM ๊ธฐ์ดˆ๋ฅผ ์ž˜ ์Œ“์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    • MetaEncore
      ์ง€์‹๊ณต์œ ์ž

      ๋ฌธ์ œ์šฐ๋‹˜, ํ‰๊ฐ€ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  • ๊ณตํ˜ธ์ค‘๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    ๊ณตํ˜ธ์ค‘

    ์ˆ˜๊ฐ•ํ‰ 1

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    • MetaEncore
      ์ง€์‹๊ณต์œ ์ž

      ๊ณตํ˜ธ์ค‘๋‹˜, ์ˆ˜๊ฐ• ์™„๋ฃŒ ํ•˜์…จ๋„ค์š”. ์ˆ˜๊ฐ•ํ‰ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

MetaEncore๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

๋น„์Šทํ•œ ๊ฐ•์˜

๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

์‹ ๊ทœ๊ฐ€์ž… 25% ํ• ์ธ

์›” โ‚ฉ66,000

5๊ฐœ์›” ํ• ๋ถ€ ์‹œ

25%

โ‚ฉ440,000

โ‚ฉ330,000

ํ‰์ƒ๊ต์œก์ด์šฉ๊ถŒ ์ง€์› ๊ฐ•์˜