흐름과 조건
- 공식 컨테이너의 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 L8 | Nangate45 | 4.0 ns | +2.19 ns | 1.81 ns (551 MHz) | 27,595.6 | 54,489.6 | 51.7% | 11,325 | 0 | 예 |
| 기본 SIMD 기준선 | Nangate45 | 4.0 ns | +2.16 ns | 1.84 ns (542 MHz) | 45,082.2 | 88,339.7 | 52.0% | 17,943 | 0 | 예 |
| CV-GEMV 코어, P = 8 | Nangate45 | 4.0 ns | +1.60 ns | 2.40 ns (417 MHz) | 60,234.9 | 131,577 | 46.4% | 33,162 | 0 | 예 |
| CV-X1 Pro L8 | SKY130 HD | 10.0 ns | +2.14 ns | 7.86 ns (127 MHz) | 150,173 | 298,668 | 51.0% | 14,666 | 0 | 예 |
셋업 여유는 기생을 추출한 라우팅 결과에서 목표 주기로 잰 값이고, 최소 주기는 같은 레이아웃에 대해 OpenSTA가 보고한 값입니다. 더 짧은 목표로 다시 구현하면 달라질 수 있습니다.

배치 전 추정과 라우팅 결과
같은 라이브러리·제약에서 공개했던 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 L8 | 11.79 mW | 10.36 mW | 65.83 µs | 131,072 | 5.20 pJ |
| 기본 SIMD 기준선 | 18.50 mW | 16.79 mW | 65.83 µs | 131,072 | 8.43 pJ |
| CV-GEMV 코어, P = 8 | 17.03 mW | 20.29 mW | 551.06 µs | 8,716,288 | 1.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,631 | 4,584 |
| 최소 주기 | 1.81 ns | 1.84 ns |
| 같은 실제 작업의 전력, 250 MHz | 10.36 mW | 16.79 mW |
| MAC당 에너지 | 5.20 pJ | 8.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을 돌립니다.
