PHYSICAL IMPLEMENTATION

RTL에서 라우팅한 레이아웃까지, 공개 PDK로.

IP를 오픈소스 배치·배선 흐름 전체에 통과시키고, 라우팅한 넷리스트에 실제 모델 데이터를 넣어 전력을 측정했습니다. 참조 구현이며 파운드리 사인오프가 아닙니다.

흐름과 조건

  • 공식 컨테이너의 OpenROAD-flow-scripts(다이제스트는 요약 파일에 고정): Yosys 합성, 평면 배치, 전역·상세 배치, 클록 트리 합성, 전역·상세 배선, OpenRCX 기생 추출, OpenSTA 타이밍·전력, 최종 넷리스트와 합성본의 형식 동치 검사.
  • Nangate45(FreePDK45 기반 공개 셀 라이브러리, typical 1.10 V, 25 °C): 기존 배치 전 추정과 같은 라이브러리·제약입니다. 학술용 라이브러리이며 제조 가능한 공정이 아닙니다.
  • SKY130 HD(SkyWater 공개 PDK, typical 1.80 V, 25 °C): 제조 가능한 공개 공정으로 교차 확인에 썼습니다.
  • 제약: I/O 지연 0.2 ns(SKY130은 0.5 ns), 클록 불확실성·전이 50 ps(SKY130은 125/150 ps), 출력 부하 10 fF, 리셋 인가 경로 제외.
  • 포함하지 않음: SRAM 매크로, I/O 패드, DFT, 다중 코너·OCV 사인오프, 파운드리 DRC/LVS 규칙, 실리콘.

결과

설계공정 라이브러리목표셋업 여유최소 주기셀 면적 (µm²)다이 (µm²)이용률셀 수DRC합성본과 동치
CV-X1 Pro L8Nangate454.0 ns+2.19 ns1.81 ns (551 MHz)27,595.654,489.651.7%11,3250예
기본 SIMD 기준선Nangate454.0 ns+2.16 ns1.84 ns (542 MHz)45,082.288,339.752.0%17,9430예
CV-GEMV 코어, P = 8Nangate454.0 ns+1.60 ns2.40 ns (417 MHz)60,234.9131,57746.4%33,1620예
CV-X1 Pro L8SKY130 HD10.0 ns+2.14 ns7.86 ns (127 MHz)150,173298,66851.0%14,6660예

셋업 여유는 기생을 추출한 라우팅 결과에서 목표 주기로 잰 값이고, 최소 주기는 같은 레이아웃에 대해 OpenSTA가 보고한 값입니다. 더 짧은 목표로 다시 구현하면 달라질 수 있습니다.

Nangate45에서 라우팅한 CV-X1 Pro L8 레이아웃
CV-X1 Pro L8, Nangate45 라우팅 결과 · 흐름의 최종 보고서 그림

배치 전 추정과 라우팅 결과

같은 라이브러리·제약에서 공개했던 CV-X1 Pro L8의 배치 전 추정은 25,311.0 µm², 306.43 MHz였습니다. 라우팅한 설계는 클록 트리와 타이밍 버퍼를 포함한 셀 11,325개, 27,595.6 µm²이며 4.0 ns를 +2.19 ns 여유로 충족합니다. 배치 전 실행은 타이밍 기반 크기 조정을 하지 않아 주파수를 더 보수적으로 잡았습니다.

실제 모델 데이터로 잰 전력

라우팅한 넷리스트를 실제 데이터로 게이트 수준 시뮬레이션했습니다(Verilator, Liberty 파일에서 만든 셀 모델). 데이터는 WikiText-2에서 Qwen2.5-0.5B 12층 down_proj로 들어가는 입력입니다. CV-X1 Pro L8과 기준선은 실제 가중치 512개로 256토큰의 입력 16,384개를, CV-GEMV 코어는 896 × 4864 층의 토큰 2개 전체를 처리했고 모든 출력이 기대값과 같았습니다. 그다음 모든 넷의 스위칭 활동을 추출 기생과 함께 OpenSTA에 넣었습니다.

설계기본 활동실제 작업구간MAC 수MAC당 에너지
CV-X1 Pro L811.79 mW10.36 mW65.83 µs131,0725.20 pJ
기본 SIMD 기준선18.50 mW16.79 mW65.83 µs131,0728.43 pJ
CV-GEMV 코어, P = 817.03 mW20.29 mW551.06 µs8,716,2881.28 pJ

전력은 250 MHz, typical 코너, 코어만의 값입니다. 구간에는 리셋과, 스트림 설계 두 개는 64워드 가중치 적재가 들어 있습니다. 기본 활동은 비교용 OpenSTA 벡터 없는 추정입니다.

외부 기준선: 기본 SIMD 장치

수치의 기준점을 주려고 교과서식 8레인 INT8 × INT8 내적 장치를 만들었습니다. 32비트 포화 누산기, 같은 4칸 FIFO, 3단계, 같은 스톨 규칙을 쓰고 같은 가중치 512개를 INT8로 저장합니다. 같은 흐름·제약·작업 데이터를 그대로 썼습니다.

CV-X1 Pro L8기본 SIMD 기준선
저장하는 것가중치 512개, INT4 (256바이트)가중치 512개, INT8 (512바이트)
그룹별 영점과 스케일있음, 파이프라인에 합침없음
셀 면적27,595.6 µm²45,082.2 µm²
플립플롭2,6314,584
최소 주기1.81 ns1.84 ns
같은 실제 작업의 전력, 250 MHz10.36 mW16.79 mW
MAC당 에너지5.20 pJ8.43 pJ
이 조각의 FP 대비 출력 오차6.11%3.47%

이 작업에서 CV-X1 Pro L8은 셀 면적이 38.8%, 전력이 38.3% 적습니다. 주된 이유는 4비트 저장으로 가중치 플립플롭이 절반이 되기 때문입니다. 대가는 정확도입니다. 이 조각에서 출력 오차가 INT8 기준선보다 큽니다. 어느 쪽이 맞는지는 모델과 정확도 예산에 달려 있습니다.

CV-GEMV를 공개 행렬-벡터 설계(VTA, OpenGeMM, Gemmini, LogikBench TPU)와 같은 흐름·공정·실제 모델 데이터로 비교한 결과는 같은 조건 비교에 있습니다.

SKY130 교차 확인

SkyWater SKY130 HD 라이브러리, 10 ns 목표에서 CV-X1 Pro L8은 여유 +2.14 ns(최소 주기 7.86 ns), 셀 150,173 µm², 다이 298,668 µm², 배선 DRC 위반 0건입니다. SKY130에서는 실제 작업 활동 전력을 재지 않았습니다.

원자료

요약 JSON ↓ · CV-X1 Pro L8 마감 보고서 · 전력 기록 · 기준선 보고서 · CV-GEMV 보고서 · 작업 데이터 해시 ↓ · SKY130 보고서

재현: 고정한 컨테이너로 studies/pnr/run_orfs.sh nangate45 cv_x1_pro_l8를 실행한 뒤 게이트 수준 재생과 스크립트의 power.tcl을 돌립니다.