2025-11-16T06:52:11.231184

VerilogReader: LLM-Aided Hardware Test Generation

Ma, Yang, Liu et al.
Test generation has been a critical and labor-intensive process in hardware design verification. Recently, the emergence of Large Language Model (LLM) with their advanced understanding and inference capabilities, has introduced a novel approach. In this work, we investigate the integration of LLM into the Coverage Directed Test Generation (CDG) process, where the LLM functions as a Verilog Reader. It accurately grasps the code logic, thereby generating stimuli that can reach unexplored code branches. We compare our framework with random testing, using our self-designed Verilog benchmark suite. Experiments demonstrate that our framework outperforms random testing on designs within the LLM's comprehension scope. Our work also proposes prompt engineering optimizations to augment LLM's understanding scope and accuracy.
academic

VerilogReader: LLM ๊ธฐ๋ฐ˜ ํ•˜๋“œ์›จ์–ด ํ…Œ์ŠคํŠธ ์ƒ์„ฑ

๊ธฐ๋ณธ ์ •๋ณด

  • ๋…ผ๋ฌธ ID: 2406.04373
  • ์ œ๋ชฉ: VerilogReader: LLM-Aided Hardware Test Generation
  • ์ €์ž: Ruiyang Ma, Yuxin Yang, Ziqian Liu, Jiaxi Zhang, Min Li, Junhua Huang, Guojie Luo
  • ๋ถ„๋ฅ˜: cs.SE cs.AI
  • ๋ฐœํ‘œ ์ผ์‹œ: 2024๋…„ 6์›” 3์ผ (arXiv ์‚ฌ์ „์ธ์‡„๋ณธ)
  • ๋…ผ๋ฌธ ๋งํฌ: https://arxiv.org/abs/2406.04373
  • ์˜คํ”ˆ์†Œ์Šค ์ฝ”๋“œ: https://github.com/magicYang1573/llm-hardware-test-generation

์ดˆ๋ก

ํ…Œ์ŠคํŠธ ์ƒ์„ฑ์€ ํ•˜๋“œ์›จ์–ด ์„ค๊ณ„ ๊ฒ€์ฆ์—์„œ ํ•ต์‹ฌ์ ์ด๋ฉด์„œ๋„ ๋…ธ๋™ ์ง‘์•ฝ์ ์ธ ํ”„๋กœ์„ธ์Šค์ด๋‹ค. ์ตœ๊ทผ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)์€ ๊ณ ๋„์˜ ์ดํ•ด ๋ฐ ์ถ”๋ก  ๋Šฅ๋ ฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ด ๋ถ„์•ผ์— ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ•๋ก ์„ ๋„์ž…ํ–ˆ๋‹ค. ๋ณธ ์—ฐ๊ตฌ๋Š” LLM์„ ์ปค๋ฒ„๋ฆฌ์ง€ ์ง€ํ–ฅ ํ…Œ์ŠคํŠธ ์ƒ์„ฑ(CDG) ํ”„๋กœ์„ธ์Šค์— ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์„ ํƒ๊ตฌํ•˜๋ฉฐ, ์—ฌ๊ธฐ์„œ LLM์€ Verilog ์ฝ”๋“œ ๋ฆฌ๋”๋กœ ์ž‘๋™ํ•˜์—ฌ ์ฝ”๋“œ ๋กœ์ง์„ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ  ๋ฏธํƒ์ƒ‰ ์ฝ”๋“œ ๋ถ„๊ธฐ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ž๊ทน์„ ์ƒ์„ฑํ•œ๋‹ค. ์ €์ž๋“ค์€ ์ž์ฒด ์„ค๊ณ„ํ•œ Verilog ๋ฒค์น˜๋งˆํฌ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋ฌด์ž‘์œ„ ํ…Œ์ŠคํŠธ์™€ ๋น„๊ตํ–ˆ์œผ๋ฉฐ, ์‹คํ—˜ ๊ฒฐ๊ณผ๋Š” LLM ์ดํ•ด ๋ฒ”์œ„ ๋‚ด์˜ ์„ค๊ณ„์—์„œ ๋ณธ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋ฌด์ž‘์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๋Šฅ๊ฐ€ํ•จ์„ ๋ณด์—ฌ์ฃผ๋ฉฐ, LLM์˜ ์ดํ•ด ๋ฒ”์œ„์™€ ์ •ํ™•์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง ์ตœ์ ํ™”๋ฅผ ์ œ์•ˆํ•œ๋‹ค.

์—ฐ๊ตฌ ๋ฐฐ๊ฒฝ ๋ฐ ๋™๊ธฐ

๋ฌธ์ œ ๋ฐฐ๊ฒฝ

  1. ํ•˜๋“œ์›จ์–ด ๊ฒ€์ฆ์˜ ์ค‘์š”์„ฑ: ํ•˜๋“œ์›จ์–ด ๋ณต์žก์„ฑ์˜ ๊ธ‰์ฆ์œผ๋กœ ์ธํ•ด ํ•˜๋“œ์›จ์–ด ๊ฒ€์ฆ์€ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์—์„œ ์ ์  ๋” ์ค‘์š”ํ•ด์ง€๊ณ  ์žˆ๋‹ค. ๊ฐ์ง€๋˜์ง€ ์•Š์€ ํ•˜๋“œ์›จ์–ด ์˜ค๋ฅ˜๋Š” ์‹ฌ๊ฐํ•œ ๊ฒฐ๊ณผ์™€ ๋ง‰๋Œ€ํ•œ ๊ฒฝ์ œ์  ์†์‹ค์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ๊ธฐ์กด ๊ฒ€์ฆ ๋ฐฉ๋ฒ•: ์—”์ง€๋‹ˆ์–ด๋“ค์€ ์ฃผ๋กœ ๋‘ ๊ฐ€์ง€ ๊ฒ€์ฆ ๋ฐฉ๋ฒ•์„ ์ฑ„ํƒํ•œ๋‹ค:
    • ํ˜•์‹ ๊ฒ€์ฆ: ์ˆ˜ํ•™์  ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ์ •ํ™•์„ฑ์„ ์ฆ๋ช…
    • ๋™์  ๊ฒ€์ฆ: ๋‹ค์–‘ํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํ”ผ๊ฒ€์ฆ ์„ค๊ณ„(DUT)๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜
  3. ํ…Œ์ŠคํŠธ ์ƒ์„ฑ ๊ณผ์ œ: ์ปค๋ฒ„๋ฆฌ์ง€ ๋ชฉํ‘œ ๋‹ฌ์„ฑ์„ ์œ„ํ•ด์„œ๋Š” ๊ณ ํ’ˆ์งˆ์˜ ํ…Œ์ŠคํŠธ ์ž…๋ ฅ์ด ํ•„์š”ํ•˜๋ฉฐ, ์ด๋Š” ๊ฒ€์ฆ ์—”์ง€๋‹ˆ์–ด์—๊ฒŒ ๋ง‰๋Œ€ํ•œ ์ธ๋ ฅ ๋ถ€๋‹ด์„ ์•ผ๊ธฐํ•œ๋‹ค.

์—ฐ๊ตฌ ๋™๊ธฐ

  1. ์ž๋™ํ™” ํ•„์š”์„ฑ: ์ธ์  ๊ฐœ์ž…์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ปค๋ฒ„๋ฆฌ์ง€ ์ง€ํ–ฅ ํ…Œ์ŠคํŠธ ์ƒ์„ฑ(CDG)์ด ํ•˜๋“œ์›จ์–ด ํ…Œ์ŠคํŠธ ์ƒ์„ฑ ์ž๋™ํ™”์˜ ํ•ต์‹ฌ ๊ธฐ์ˆ ์ด ๋˜์—ˆ๋‹ค.
  2. LLM์˜ ๊ธฐํšŒ: LLM์˜ ์ดํ•ด ๋ฐ ์ถ”๋ก  ๋Šฅ๋ ฅ์€ ํ•˜๋“œ์›จ์–ด ํ…Œ์ŠคํŠธ ์ƒ์„ฑ ๋ถ„์•ผ์— ์ƒˆ๋กœ์šด ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  3. ์ฐจ๋ณ„ํ™”๋œ ํฌ์ง€์…”๋‹: ๊ธฐ๋Šฅ ์ปค๋ฒ„๋ฆฌ์ง€ ํฌ์ธํŠธ์— ์ดˆ์ ์„ ๋งž์ถ˜ ์ด์ „ ์—ฐ๊ตฌ์™€ ๋‹ฌ๋ฆฌ, ๋ณธ ๋…ผ๋ฌธ์€ ๋” ๊ธฐ์ดˆ์ ์ธ ํ…Œ์ŠคํŠธ ๋ชฉํ‘œ์ธ ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€์— ์ดˆ์ ์„ ๋งž์ถ”๋ฉฐ LLM์„ "VerilogReader"๋กœ ํฌ์ง€์…”๋‹ํ•œ๋‹ค.

ํ•ต์‹ฌ ๊ธฐ์—ฌ

  1. ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ: LLM์„ CDG ํ”„๋กœ์„ธ์Šค์— ํ†ตํ•ฉํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ฒ˜์Œ์œผ๋กœ ์˜คํ”ˆ์†Œ์Šคํ™”ํ–ˆ์œผ๋ฉฐ, LLM์„ VerilogReader๋กœ ์‚ฌ์šฉํ•˜์—ฌ Verilog ์ฝ”๋“œ ๋ฐ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€ ํ์‡„ ํ…Œ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค.
  2. ํ”„๋กฌํ”„ํŠธ ์ตœ์ ํ™” ๋ชจ๋“ˆ: Coverage Explainer ๋ฐ DUT Explainer ๋ชจ๋“ˆ์„ ์ œ์•ˆํ•˜์—ฌ ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ’๋ถ€ํ•˜๊ฒŒ ํ•˜๊ณ  ์„ค๊ณ„ ๋ฐ ํ…Œ์ŠคํŠธ ์˜๋„์— ๋Œ€ํ•œ LLM์˜ ์ดํ•ด๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋ฉฐ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ™•์žฅ์„ฑ์„ ๊ฐœ์„ ํ•œ๋‹ค.
  3. ๋ฒค์น˜๋งˆํฌ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ: ๋‹จ์ˆœ, ์ค‘๊ฐ„ ๋ฐ ๋ณต์žก ์ˆ˜์ค€์˜ Verilog ์„ค๊ณ„ 24๊ฐœ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฒค์น˜๋งˆํฌ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋ฅผ ์ƒ์„ฑํ–ˆ์œผ๋ฉฐ, ์‹คํ—˜ ๊ฒฐ๊ณผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋‹จ์ˆœ ๋ฐ ์ค‘๊ฐ„ ์ˆ˜์ค€ DUT์—์„œ ๋ฌด์ž‘์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๋Šฅ๊ฐ€ํ•จ์„ ๋ณด์—ฌ์ค€๋‹ค.
  4. ๋Šฅ๋ ฅ ๊ฒฝ๊ณ„ ํƒ์ƒ‰: ํ˜„์žฌ LLM์˜ Verilog ์ฝ๊ธฐ ์ธก๋ฉด์—์„œ์˜ ์ตœ๋Œ€ ๋Šฅ๋ ฅ ๊ฒฝ๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ํ–ˆ๋‹ค.

๋ฐฉ๋ฒ•๋ก  ์ƒ์„ธ ์„ค๋ช…

์ž‘์—… ์ •์˜

๋ณธ ๋…ผ๋ฌธ์˜ ์ž‘์—…์€ LLM์„ ํ™œ์šฉํ•˜์—ฌ Verilog ์ฝ”๋“œ ๋กœ์ง ๋ฐ ํ˜„์žฌ ์ปค๋ฒ„๋ฆฌ์ง€ ์ƒํƒœ๋ฅผ ์ดํ•ดํ•˜๊ณ , ๋ฏธ์ปค๋ฒ„๋œ ์ฝ”๋“œ ๋ถ„๊ธฐ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์ค‘ ์‚ฌ์ดํด ์ž…๋ ฅ ์ž๊ทน์„ ์ƒ์„ฑํ•˜์—ฌ ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€ ํ–ฅ์ƒ์„ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜

๊ธฐ๋ณธ ํ”„๋ ˆ์ž„์›Œํฌ

์ „์ฒด ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋‹ค์Œ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฐ˜๋ณต์  CDG ํ”„๋กœ์„ธ์Šค๋ฅผ ์ฑ„ํƒํ•œ๋‹ค:

  1. LLM ํ•ต์‹ฌ: ๊ฐ ๋ฐ˜๋ณต์—์„œ JSON ํ˜•์‹์˜ ๋‹ค์ค‘ ์‚ฌ์ดํด ์ž…๋ ฅ ์ƒ์„ฑ
  2. ์ž…๋ ฅ ๋””์ฝ”๋”: JSON ํ˜•์‹ ์ž…๋ ฅ์„ ํ•˜๋“œ์›จ์–ด ์ž๊ทน์œผ๋กœ ๋””์ฝ”๋”ฉ
  3. ์ปค๋ฒ„๋ฆฌ์ง€ ๋ชจ๋‹ˆํ„ฐ: ํ˜„์žฌ ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€ ์ •๋ณด ์ œ๊ณต
  4. ์„ค๋ช…์ž ๋ชจ๋“ˆ: Coverage Explainer ๋ฐ DUT Explainer ํฌํ•จ

ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ๊ธฐ

2๋ผ์šด๋“œ ์งˆ์˜์‘๋‹ต ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ฑ„ํƒ:

  • 1๋ผ์šด๋“œ: LLM์— ํ…Œ์ŠคํŠธ ๋ชฉํ‘œ๋ฅผ ์•Œ๋ฆฌ๊ณ  DUT ์ •๋ณด ๋ฐ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ฐ์ดํ„ฐ ์ œ๊ณต, LLM์ด ์ž์—ฐ์–ด๋กœ ์‘๋‹ต
  • 2๋ผ์šด๋“œ: LLM์ด ์‘๋‹ต์„ ํ‘œ์ค€ํ™”๋œ JSON ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋„๋ก ์ง€๋„

Coverage Explainer

๋ณต์žกํ•œ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ณด๊ณ ์„œ๋ฅผ LLM์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜:

  1. ์›๋ณธ ํ˜•์‹: ๊ณ ์œ  ์‹๋ณ„์ž ๋ฐ ํžˆํŠธ ์นด์šดํŠธ๋ฅผ ํฌํ•จํ•˜๋Š” Verilator ์ปค๋ฒ„๋ฆฌ์ง€ ๋ณด๊ณ ์„œ
  2. ์ฃผ์„ ํ˜•์‹: verilator_coverage ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•œ ์ฃผ์„์ด ์žˆ๋Š” ๋ณด๊ณ ์„œ
  3. LLM ๊ฐ€๋… ํ˜•์‹: ๋ฏธ์ปค๋ฒ„ ๋ผ์ธ์— 'TO BE COVERED' ํ”Œ๋ž˜๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋„๋ก ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ํ˜•์‹

DUT ์„ค๋ช…์ž

DUT์— ๋Œ€ํ•œ LLM์˜ ์ดํ•ด๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐ€์ง€ ๊ธฐ๋Šฅ ์ œ๊ณต:

  1. ์„ค๊ณ„ ์„ค๋ช…: DUT ๊ธฐ๋Šฅ ๋ฐ ๋‚ด๋ถ€ ๋กœ์ง์— ๋Œ€ํ•œ ์ž์—ฐ์–ด ์„ค๋ช… ์ œ๊ณต
  2. ํ…Œ์ŠคํŠธ ์ง€๋„: ํŠน์ • DUT ํ…Œ์ŠคํŠธ ์ƒ์„ฑ์„ ์œ„ํ•œ ๋ณด์ถฉ ์ •๋ณด ๋ฐ ๊ธฐ๋ณธ ํ…Œ์ŠคํŠธ ๋กœ์ง ๊ทœ์น™ ์ œ๊ณต

๊ธฐ์ˆ  ํ˜์‹  ํฌ์ธํŠธ

  1. ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€ ์ดˆ์ : ๊ธฐ๋Šฅ ์ปค๋ฒ„๋ฆฌ์ง€ ํฌ์ธํŠธ๊ฐ€ ์•„๋‹Œ ํ•˜๋“œ์›จ์–ด ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€์— LLM์„ ์ฒ˜์Œ ์ ์šฉ
  2. ๋‹จ๊ณ„๋ณ„ ์ฒ˜๋ฆฌ: ํ…Œ์ŠคํŠธ ์ƒ์„ฑ ์ž‘์—…์„ DUT ์ดํ•ด ๋ฐ ์ž…๋ ฅ ๋กœ์ง ์ถ”๋ก  ๋‘ ๋‹จ๊ณ„๋กœ ๋ถ„ํ•ด
  3. ์ž์—ฐ์–ด ํƒœ๊น…: ์ž์—ฐ์–ด ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฏธ์ปค๋ฒ„ ๋ผ์ธ์„ ํ‘œ์‹œํ•˜์—ฌ LLM์˜ ์ถ”๋ก  ํ”„๋กœ์„ธ์Šค ๋‹จ์ˆœํ™”
  4. ์ด์ค‘ ๋ผ์šด๋“œ ์ƒํ˜ธ์ž‘์šฉ: 2๋ผ์šด๋“œ ์งˆ์˜์‘๋‹ต์„ ํ†ตํ•ด LLM์˜ ๋‹จ๊ณ„์  ์‚ฌ๊ณ  ํ”„๋กœ์„ธ์Šค ์ด‰์ง„

์‹คํ—˜ ์„ค์ •

๋ฐ์ดํ„ฐ์…‹

์ž์ฒด ๊ตฌ์ถ•ํ•œ ๋ฒค์น˜๋งˆํฌ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๋Š” ์„ธ ๊ฐ€์ง€ ๋‚œ์ด๋„ ์ˆ˜์ค€์œผ๋กœ ๋ถ„๋ฅ˜๋œ 24๊ฐœ์˜ Verilog ์„ค๊ณ„๋ฅผ ํฌํ•จํ•œ๋‹ค:

  1. ๋‹จ์ˆœ ์ˆ˜์ค€(s01-s10): 10๊ฐœ์˜ ๊ธฐ๋ณธ ์กฐํ•ฉ ๋…ผ๋ฆฌ ํšŒ๋กœ(๋ฉ€ํ‹ฐํ”Œ๋ ‰์„œ, ALU ๋“ฑ)
  2. ์ค‘๊ฐ„ ์ˆ˜์ค€(m01-m08): 8๊ฐœ์˜ ์ˆœ์ฐจ ๋…ผ๋ฆฌ ํšŒ๋กœ(FSM, ์นด์šดํ„ฐ, ์ค‘์žฌ์ž ๋“ฑ)
  3. ๋ณต์žก ์ˆ˜์ค€(c01-c06): 6๊ฐœ์˜ ๋Œ€๊ทœ๋ชจ FSM ํšŒ๋กœ(16-128๊ฐœ ์ƒํƒœ)

ํ‰๊ฐ€ ์ง€ํ‘œ

  • ์ฃผ์š” ์ง€ํ‘œ: ์ „์ฒด ์ปค๋ฒ„๋ฆฌ์ง€ ๋‹ฌ์„ฑ์— ํ•„์š”ํ•œ ์ž…๋ ฅ ์ž๊ทน์˜ ์ด ๊ธธ์ด(ํด๋ก ์‚ฌ์ดํด ๋‹จ์œ„)
  • ์ปค๋ฒ„๋ฆฌ์ง€: ๋ผ์ธ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ฐฑ๋ถ„์œจ
  • ์‹œ๊ฐ„ ํšจ์œจ์„ฑ: ๋ชฉํ‘œ ์ปค๋ฒ„๋ฆฌ์ง€ ๋‹ฌ์„ฑ์— ํ•„์š”ํ•œ ๋ฐ˜๋ณต ํšŸ์ˆ˜

๋น„๊ต ๋ฐฉ๋ฒ•

  • ๋ฌด์ž‘์œ„ ํ…Œ์ŠคํŠธ: ๊ธฐ์ค€ ๋น„๊ต ๋ฐฉ๋ฒ•
  • ๋‹ค์–‘ํ•œ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ณด๊ณ ์„œ ํ˜•์‹: ์›๋ณธ ํ˜•์‹, ์ฃผ์„ ํ˜•์‹, LLM ๊ฐ€๋… ํ˜•์‹

๊ตฌํ˜„ ์„ธ๋ถ€์‚ฌํ•ญ

  • ์–ธ์–ด ๋ชจ๋ธ: OpenAI GPT-4 ๋ฐ GPT-4-Turbo-0125
  • ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ: Verilator
  • ์ฝ”๋“œ ํŒŒ์‹ฑ: Pyverilog
  • ์‹คํ—˜ ๋ฐ˜๋ณต: LLM์˜ ๋ฌด์ž‘์œ„์„ฑ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ์‹คํ—˜์„ 5ํšŒ ๋ฐ˜๋ณต

์‹คํ—˜ ๊ฒฐ๊ณผ

์ฃผ์š” ๊ฒฐ๊ณผ

์ปค๋ฒ„๋ฆฌ์ง€ ์„ค๋ช… ๋ฐฉ๋ฒ• ๋น„๊ต

์ค‘๊ฐ„ ์ˆ˜์ค€ DUT์—์„œ GPT-4๋ฅผ ์‚ฌ์šฉํ•œ ์‹คํ—˜ ๊ฒฐ๊ณผ:

  • LLM ๊ฐ€๋… ์ปค๋ฒ„๋ฆฌ์ง€ ๋ณด๊ณ ์„œ๊ฐ€ ์›๋ณธ ๋ฐ ์ฃผ์„ ํ˜•์‹์„ ํฌ๊ฒŒ ๋Šฅ๊ฐ€
  • ์›๋ณธ ๊ฐ€๋… ๋ถˆ๊ฐ€๋Šฅ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ณด๊ณ ์„œ๊ฐ€ LLM์— ๊ฐ€์žฅ ํฐ ๋„์ „
  • ์ž์—ฐ์–ด ํƒœ๊ทธ 'TO BE COVERED' ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ดํ•ด ํšจ๊ณผ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ–ฅ์ƒ

๋ฌด์ž‘์œ„ ํ…Œ์ŠคํŠธ์™€์˜ ๋น„๊ต

๋‹จ์ˆœ ๋ฐ ์ค‘๊ฐ„ ์ˆ˜์ค€ DUT์—์„œ์˜ ์‹คํ—˜ ๊ฒฐ๊ณผ:

  • LLM ํ”„๋ ˆ์ž„์›Œํฌ๋Š” 100% ์ปค๋ฒ„๋ฆฌ์ง€ ๋‹ฌ์„ฑ์— ํ›จ์”ฌ ์ ์€ ์ž…๋ ฅ ์‚ฌ์šฉ
  • ๋ฌด์ž‘์œ„ ํ…Œ์ŠคํŠธ๋Š” ๋„๋‹ฌํ•˜๊ธฐ ์–ด๋ ค์šด ๋ถ„๊ธฐ๋ฅผ ๊ฐ€์ง„ ์ˆœ์ฐจ ์„ค๊ณ„์—์„œ 1๋ถ„ ๋‚ด์— ์ „์ฒด ์ปค๋ฒ„๋ฆฌ์ง€ ๋‹ฌ์„ฑ ์‹คํŒจ
  • GPT-4 ๋ฐ GPT-4-Turbo๋Š” ํ•˜๋“œ์›จ์–ด ํ…Œ์ŠคํŠธ ์ƒ์„ฑ ์ž‘์—…์—์„œ ์œ ์‚ฌํ•œ ์„ฑ๋Šฅ ๋ฐœํœ˜

DUT ์„ค๋ช… ์ตœ์ ํ™” ํšจ๊ณผ

  • ์„ค๊ณ„ ์„ค๋ช…: LLM์ด ์ƒ์„ฑํ•œ ์„ค๊ณ„ ์„ค๋ช…์€ ํ…Œ์ŠคํŠธ ์ƒ์„ฑ ์ค‘ ์„ค๊ณ„ ์ดํ•ด ๊ฐœ์„ 
  • ํ…Œ์ŠคํŠธ ์ง€๋„: ํšจ๊ณผ๊ฐ€ ์ผ๊ด€๋˜์ง€ ์•Š์œผ๋ฉฐ, ์ผ๋ถ€ ์„ค๊ณ„(m05, m06)์—์„œ ์ž…๋ ฅ ๋‹ค์–‘์„ฑ ๊ฐ์†Œ

LLM ํ™•์žฅ์„ฑ ๋ถ„์„

๋ณต์žก ์ˆ˜์ค€ FSM์— ๋Œ€ํ•œ ์‹คํ—˜ ๊ฒฐ๊ณผ:

  • 16์ƒํƒœ FSM: 20ํšŒ ๋ฐ˜๋ณต ํ›„ ๊ฑฐ์˜ 100% ๋ผ์ธ ์ปค๋ฒ„๋ฆฌ์ง€ ๋‹ฌ์„ฑ
  • 64์ƒํƒœ ์ด์ƒ FSM: ์ปค๋ฒ„๋ฆฌ์ง€๊ฐ€ 50%๋ฅผ ์ดˆ๊ณผํ•  ์ˆ˜ ์—†์Œ
  • DUT ๊ทœ๋ชจ ์ฆ๊ฐ€์— ๋”ฐ๋ผ ํ…Œ์ŠคํŠธ ์ƒ์„ฑ ํ’ˆ์งˆ ๊ธ‰๊ฒฉํžˆ ์ €ํ•˜

์‹คํ—˜ ๋ฐœ๊ฒฌ

  1. LLM์€ ๋‹จ์ˆœ ๋ฐ ์ค‘๊ฐ„ ๋ณต์žก๋„ ์„ค๊ณ„์—์„œ ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ ๋ฐœํœ˜
  2. ํ˜„์žฌ LLM์€ ๋Œ€๊ทœ๋ชจ Verilog ์„ค๊ณ„ ์ฒ˜๋ฆฌ ์‹œ ๋ช…๋ฐฑํ•œ ํ•œ๊ณ„ ์กด์žฌ
  3. ์ ์ ˆํ•œ ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง์€ LLM ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Œ
  4. ์ปค๋ฒ„๋ฆฌ์ง€ ๋ณด๊ณ ์„œ ํ˜•์‹์€ LLM ์ดํ•ด์— ๋งค์šฐ ์ค‘์š”

๊ด€๋ จ ์—ฐ๊ตฌ

์ „ํ†ต์  CDG ๋ฐฉ๋ฒ•

  • ํœด๋ฆฌ์Šคํ‹ฑ ๋ฐฉ๋ฒ•์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž…๋ ฅ ๊ณต๊ฐ„ ํƒ์ƒ‰
  • ์ปค๋ฒ„๋ฆฌ์ง€ ์ƒํƒœ๋ฅผ ์ƒˆ๋กœ์šด ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ƒ์„ฑ์˜ ๊ธฐ๋ณธ ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ์‚ฌ์šฉ
  • ํšŒ๋กœ ๊ตฌ์กฐ ์ •๋ณด(์ œ์–ด/๋ฐ์ดํ„ฐ ํ๋ฆ„ ๊ทธ๋ž˜ํ”„, ๋ชจ๋“ˆ ์—ฐ๊ฒฐ ๊ทธ๋ž˜ํ”„) ํ™œ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์ƒ์„ฑ ์ง€๋„

ํ•˜๋“œ์›จ์–ด ๋ถ„์•ผ์˜ LLM ์‘์šฉ

  • RTL ์ž‘์„ฑ: ํ•˜๋“œ์›จ์–ด ๊ธฐ์ˆ  ์–ธ์–ด ์ฝ”๋“œ ์ž๋™ ์ƒ์„ฑ
  • ๋‹จ์–ธ ์ƒ์„ฑ: ๊ฒ€์ฆ ๋‹จ์–ธ ์ƒ์„ฑ
  • ์˜ค๋ฅ˜ ์ˆ˜์ •: ํ•˜๋“œ์›จ์–ด ์„ค๊ณ„์˜ ์˜ค๋ฅ˜ ์ˆ˜์ •
  • ๊ธฐ๋Šฅ ๊ฒ€์ฆ: Zhang ๋“ฑ์˜ ๊ธฐ๋Šฅ ์ปค๋ฒ„๋ฆฌ์ง€ ํฌ์ธํŠธ ๊ฒ€์ฆ ์—ฐ๊ตฌ

๋ณธ ๋…ผ๋ฌธ์˜ ์ฐจ๋ณ„ํ™”๋œ ํฌ์ง€์…”๋‹

๊ณ ์ˆ˜์ค€ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ ๊ณ„ํš ์„ค๋ช…์— ์ดˆ์ ์„ ๋งž์ถ˜ ์ด์ „ ์—ฐ๊ตฌ์™€ ๋‹ฌ๋ฆฌ, ๋ณธ ๋…ผ๋ฌธ์€ ๋” ๊ธฐ์ดˆ์ ์ธ ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€ ๋ชฉํ‘œ์— ์ดˆ์ ์„ ๋งž์ถ”๋ฉฐ LLM์ด Verilog ์ฝ”๋“œ ๋กœ์ง์„ ๊นŠ์ด ์žˆ๊ฒŒ ์ดํ•ดํ•  ๊ฒƒ์„ ์š”๊ตฌํ•œ๋‹ค.

๊ฒฐ๋ก  ๋ฐ ๋…ผ์˜

์ฃผ์š” ๊ฒฐ๋ก 

  1. LLM์€ ๋‹จ์ˆœ ๋ฐ ์ค‘๊ฐ„ ๋ณต์žก๋„์˜ Verilog ์„ค๊ณ„๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  ๋ชฉํ‘œํ™”๋œ ํ…Œ์ŠคํŠธ ์ž…๋ ฅ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ
  2. ์ ์ ˆํ•œ ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋ง(ํŠนํžˆ ์ปค๋ฒ„๋ฆฌ์ง€ ์„ค๋ช…)์€ LLM ์„ฑ๋Šฅ์— ๋งค์šฐ ์ค‘์š”
  3. ํ˜„์žฌ LLM์€ ๋Œ€๊ทœ๋ชจ, ๋ณต์žกํ•œ ํ•˜๋“œ์›จ์–ด ์„ค๊ณ„ ์ฒ˜๋ฆฌ ์‹œ ๋ช…๋ฐฑํ•œ ํ•œ๊ณ„ ์กด์žฌ

ํ•œ๊ณ„์ 

  1. ๊ทœ๋ชจ ์ œํ•œ: 100์ค„ ์ด์ƒ์˜ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง„ ๋ณต์žกํ•œ ์„ค๊ณ„์˜ ๊ฒฝ์šฐ LLM ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ์ €ํ•˜
  2. ๊ตฌ์กฐ ์ดํ•ด: LLM์€ Verilog์˜ ๊ณ ๋„๋กœ ๊ตฌ์กฐํ™”๋œ ํŠน์„ฑ์„ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›€
  3. ์—”๋“œํˆฌ์—”๋“œ ์‘์šฉ: ์‚ฐ์—…๊ธ‰ ํ•˜๋“œ์›จ์–ด ์„ค๊ณ„์— LLM์„ ์ง์ ‘ ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ์—ฌ์ „ํžˆ ๋„์ „์ 

ํ–ฅํ›„ ๋ฐฉํ–ฅ

  1. DUT ์„ค๋ช…์ž ๊ฐ•ํ™”: ๋” ํฌ๊ด„์ ์ธ ๊ณ ์ˆ˜์ค€ ์„ค๊ณ„ ์ถ”์ƒํ™” ๋ฐ ๊ฒ€์ฆ ์˜๋„ ์ œ๊ณต
  2. ๋‹ค์ค‘๋ชจ๋‹ฌ ์œตํ•ฉ: LLM๊ณผ ๊ทธ๋ž˜ํ”„ ์‹ ๊ฒฝ๋ง(GNN)์„ ๊ฒฐํ•ฉํ•˜์—ฌ LLM์€ ์˜๋ฏธ๋ก ์  ํ•ด์„, GNN์€ ๊ตฌ์กฐ ์ •๋ณด ์ฒ˜๋ฆฌ
  3. ๊ณ„์ธต์  ์ฒ˜๋ฆฌ: ๊ฑฐ์‹œ์  ๊ด€์ ์—์„œ LLM์ด ํ…Œ์ŠคํŠธ ์ƒ์„ฑ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์ง€๋„

์‹ฌ์ธต ํ‰๊ฐ€

์žฅ์ 

  1. ๋†’์€ ํ˜์‹ ์„ฑ: ํ•˜๋“œ์›จ์–ด ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€ ํ…Œ์ŠคํŠธ ์ƒ์„ฑ์— LLM์„ ์ฒ˜์Œ ์ ์šฉํ•˜๋ฉฐ ํฌ์ง€์…”๋‹์ด ๋ช…ํ™•
  2. ์ฒด๊ณ„์  ๋ฐฉ๋ฒ•๋ก : ์—ฌ๋Ÿฌ ์ตœ์ ํ™” ๋ชจ๋“ˆ์„ ํฌํ•จํ•œ ์™„์ „ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ ์ œ์‹œ
  3. ์ถฉ๋ถ„ํ•œ ์‹คํ—˜: ๋‹ค์ธต์  ๋ฒค์น˜๋งˆํฌ ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ ๊ตฌ์ถ•, ํ•ฉ๋ฆฌ์ ์ธ ์‹คํ—˜ ์„ค๊ณ„
  4. ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌ: ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ ์ œ๊ณต์œผ๋กœ ๋ถ„์•ผ ๋ฐœ์ „ ์ด‰์ง„
  5. ๊ฒฝ๊ณ„ ํƒ์ƒ‰: ํ˜„์žฌ LLM ๋Šฅ๋ ฅ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ํ•จ

๋ถ€์กฑํ•œ ์ 

  1. ๊ทœ๋ชจ ํ•œ๊ณ„: ์ƒ๋Œ€์ ์œผ๋กœ ๋‹จ์ˆœํ•œ ์„ค๊ณ„์—์„œ๋งŒ ํšจ๊ณผ์ ์ด๋ฉฐ ์‹ค์ œ ์‚ฐ์—… ์‘์šฉ๊นŒ์ง€๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ์žˆ์Œ
  2. ๋ฒค์น˜๋งˆํฌ ์ œํ•œ: ์ž์ฒด ๊ตฌ์ถ• ๋ฒค์น˜๋งˆํฌ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‚ฐ์—… ํ‘œ์ค€ ๋ฒค์น˜๋งˆํฌ์™€์˜ ๋น„๊ต ๋ถ€์กฑ
  3. ๋น„์šฉ ๋ถ„์„: LLM ํ˜ธ์ถœ ๋น„์šฉ๊ณผ ์ „ํ†ต์  ๋ฐฉ๋ฒ•์˜ ์ƒ์„ธํ•œ ๋น„๊ต ๋ถ€์กฑ
  4. ์ด๋ก ์  ๋ถ„์„: LLM์ด ์ด ์ž‘์—…์—์„œ ํšจ๊ณผ์ ์ธ ์ด์œ ์— ๋Œ€ํ•œ ์‹ฌ์ธต์  ์ด๋ก ์  ๋ถ„์„ ๋ถ€์กฑ

์˜ํ–ฅ๋ ฅ

  1. ํ•™์ˆ ์  ๊ฐ€์น˜: LLM์˜ ํ•˜๋“œ์›จ์–ด ๊ฒ€์ฆ ๋ถ„์•ผ ์ƒˆ๋กœ์šด ์‘์šฉ ๋ฐฉํ–ฅ ๊ฐœ์ฒ™
  2. ์‹ค์šฉ์  ์ž ์žฌ๋ ฅ: ๊ต์œก ๋ฐ ์ค‘์†Œ๊ทœ๋ชจ ์„ค๊ณ„ ๊ฒ€์ฆ์—์„œ ์‹ค์ œ ์‘์šฉ ๊ฐ€์น˜ ๋ณด์œ 
  3. ์˜๊ฐ ์ œ๊ณต: ํ›„์† ์—ฐ๊ตฌ์— ๊ฐ€์น˜ ์žˆ๋Š” ๊ธฐ์ค€์„ ๊ณผ ์•„์ด๋””์–ด ์ œ๊ณต

์ ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค

  1. ๊ต์œก ํ™˜๊ฒฝ: ํ•˜๋“œ์›จ์–ด ์„ค๊ณ„ ๊ณผ์ •์˜ ์ž๋™ํ™” ํ…Œ์ŠคํŠธ ์ƒ์„ฑ์— ์ ํ•ฉ
  2. ํ”„๋กœํ† ํƒ€์ž… ๊ฒ€์ฆ: ์„ค๊ณ„ ์ดˆ๊ธฐ ๋‹จ๊ณ„์˜ ๋น ๋ฅธ ๊ฒ€์ฆ์— ์ ์šฉ ๊ฐ€๋Šฅ
  3. ์ค‘์†Œ๊ทœ๋ชจ ์„ค๊ณ„: 100์ค„ ์ดํ•˜์˜ Verilog ๋ชจ๋“ˆ์— ์‹ค์šฉ์  ๊ฐ€์น˜ ๋ณด์œ 
  4. ๋ณด์กฐ ๋„๊ตฌ: ๊ฒ€์ฆ ์—”์ง€๋‹ˆ์–ด์˜ ๋ณด์กฐ ๋„๊ตฌ๋กœ ์ผ๋ถ€ ์—…๋ฌด ๋ถ€๋‹ด ๊ฒฝ๊ฐ

์ฐธ๊ณ ๋ฌธํ—Œ

๋ณธ ๋…ผ๋ฌธ์€ ํ˜•์‹ ๊ฒ€์ฆ, ๋™์  ๊ฒ€์ฆ, CDG ๋ฐฉ๋ฒ•, ํ•˜๋“œ์›จ์–ด ๋ถ„์•ผ์˜ LLM ์‘์šฉ ๋“ฑ ๋‹ค์–‘ํ•œ ์ธก๋ฉด์„ ํฌ๊ด„ํ•˜๋Š” 19ํŽธ์˜ ๊ด€๋ จ ๋ฌธํ—Œ์„ ์ธ์šฉํ•˜์—ฌ ์—ฐ๊ตฌ์— ๊ฒฌ๊ณ ํ•œ ์ด๋ก ์  ๊ธฐ์ดˆ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.


์ข…ํ•ฉ ํ‰๊ฐ€: ๋ณธ ๋…ผ๋ฌธ์€ LLM๊ณผ ํ•˜๋“œ์›จ์–ด ๊ฒ€์ฆ์˜ ๊ต์ฐจ ๋ถ„์•ผ์—์„œ์˜ ํ˜์‹ ์  ์—ฐ๊ตฌ๋กœ, ๊ทœ๋ชจํ™” ์‘์šฉ ์ธก๋ฉด์—์„œ๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์ง€๋งŒ ํ•ด๋‹น ๋ถ„์•ผ์˜ ๋ฐœ์ „์„ ์œ„ํ•ด ๊ฐ€์น˜ ์žˆ๋Š” ํƒ์ƒ‰๊ณผ ๊ธฐ์ดˆ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๋…ผ๋ฌธ์˜ ๋ฐฉ๋ฒ•๋ก ์€ ์ฒด๊ณ„์ ์ด๊ณ  ์‹คํ—˜์€ ์ถฉ๋ถ„ํ•˜๋ฉฐ ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌ๊ฐ€ ๋ช…ํ™•ํ•˜์—ฌ ์–‘ํ˜ธํ•œ ํ•™์ˆ ์  ๊ฐ€์น˜์™€ ์˜๊ฐ์„ ์ œ๊ณตํ•œ๋‹ค.