2026년 2월 25일 수요일

유럽의 오픈-소스 칩(Open Source Chips for Europe)

유럽의 오픈-소스 칩(Open Source Chips for Europe)

Open Letter on the Urgency of Access to Open Source Chip Manufacturing
To Whom It May Concern
March 31, 2025

반도체 설계 인력의 부족이 심각하여 EU 위원회에서 "유럽 칩 법(European Chip Acts)"을 제정하고 투자를 아끼지 않고 있다고 합니다. 이에 공공 파운드리가 참여하고 PDK를 개방 하고 있으며 유수의 교육기관(대학)들이 참여 하고 있습니다. 2025년 3월에 게시된 유럽의 오픈-소스 칩의 현황과 향후 발전을 도모하기 위한 공개서한은 아래의 링크에서 확인 할 수 있습니다.

https://open-source-chips.eu/

위 서한에  등장하는 독일의 공공 팹 IHP에서 발표한 내용을 보면 설계인력의 부족 이 심각하여 이에 대응하기 위해 PDK를 공개하고 교육 과정을 마련 했다고 합니다. 이 교육과정의 시작이  2024년 인데 1년사이에 벌써 수십껀의 MPW를 수행 했다고 합니다.

독일의 오픈-소스 도구를 활용한 반도체 설계 인증 교육과정(2024년 발표)
https://fun-teaching-goodkook.blogspot.com/2024/09/blog-post_30.html

반도체 설계 인력 부족은 우리나라 뿐만 아니라 세계적인 현상 입니다. "내 칩 제작 서비스"가 반도체 설계 인력 양성에 기여할 수 있길 바랍니다.


2026년 2월 21일 토요일

인공지능 시대를 맞이하는 FPGA의 역활

인공지능 시대를 맞이하는 FPGA의 역활
FPGA In the new AI era

"인공지능 반도체(또는 AI 칩)"은 인공지능 알고리즘을 "효율적"으로 처리하는 칩(GPU, NPU, ASIC 등)이다. 범용 CPU에서도 인공지능 알고리즘의 수행이 물론 가능하다. 다만 AI 칩이라고 따로 분류하는 이유는 인공지능 알고리즘의 엄청난 량의 곱셈과 덧셈을 "효율적"으로 수행하는 것에 주안점을 두었기 때문이다.

범용 CPU가 미리 정해둔 규칙을 기반(Rule-Based)으로 IF~THEN~ELSE 방식의 알고리즘 처리에 적합하다면 AI 프로세서는 스스로 규칙을 만들기 위해 엄청난 계산을 한다. 범용 CPU로  인공지능 알고리즘을 수행하면 메모리에서 명령을 읽어 그 뜻을 해독하고 계산에 필요한 값을 불러와 계산하고 다시 그 값을 메모리에 저장하는 일을 수없이 반복한다. 명령중 정작 인공지능을 위한 계산 비중은 매우 낮다. 이에 비해 AI 칩은 범용 CPU의 ALU(Arithmetic-Logical Unit) 대신 단번에 곱셈과 덧셈(Multiplication-Accumulation)을 반복 계산하는 전용의 산술 장치를 가지고 있다. 당연히 명령을 해석하고 이에 맞춰 값을 불러오고 저장하는데 클럭을 소모하지 않는다. 따라서 AI 칩은 적은 클럭을 들이고도 방대한 계산을 할 수 있는 "효율적"인 반도체다. 게다가 자료의 교차 의존이 거의 없는 인공지능 알고리즘의 특성 상 대규모 연산기를 동원한 병렬처리 구조를 취하기 매우 적합하다. 반도체 칩의 집적도가 폭발해 버린 지금 연산장치의 갯수는 얼마든지 늘릴 수 있다. 일상의 인식체계(패러다임)가 경직된 규칙 기반의 알고리즘에서 유연한 인공지능으로 전환되어 버린 지금 반도체의 화두는 "AI"의 지배가 더욱 공고해질 것은 자명하다.

인공지능의 유연성에 하드웨어의 경직성이 대응하는 방안은 명령처리 방식의 프로세서다. 인공지능 프로세서는 매우 특회된 몇가지 산술명령을 가지고 고용량 메모리를 곁에 두고 있다. 대부분 인공지능 개발자들이 전용 프로세서의 소프트웨어에 집중되어 있는 것을 본다. GPU, NPU 등 프로세서가 지배적인 "AI 칩"에 FPGA의 미래가 있을까?

구조 재편이 가능한 FPGA는 하드웨어의  유연화 방안으로 주목받고 있다. 아예 명령어 자체를 두지 않는 알고리즘 전용의 계산기(하드웨어)를 구성 할 수 있다. 따라서 알고리즘에 소요될 클럭의 수를 극단적으로 줄일 수 있다. 클럭은 곧 에너지 소모를 의미한다. 특히 일방적인 계산을 반복하는 "추론(inference)"에 재구성 가능한 FPGA의 미래가 있다.

아래 동영상은 인공지능 알고리즘에 맞춰 FPGA의 구조가  어떻게 변화되고 있는지 설명한다. 순차적인 알고리즘을 병렬처리 하드웨어를 목표로 기술하기는 소프트웨어에 비하면 매우 어렵다. 하드웨어 설계 생산성을 높이기 위해 기존의 프로그래밍 언어로 기술된 알고리즘을 직접 하드웨어로 합성하는 설계방법론이 이미 성숙되었음을 보여 준다.

The Hidden Weapon for AI Inference EVERY Engineer Missed
거의 모든 기술자들이 놓치고 있는 인공지능 추론용 하드웨어 장치
https://youtu.be/ysd545AjEOU?si=hNBOzb8lbcLSGXxT

How to Build a Neural Network on an FPGA
FPGA에 신경망을 구성하는 방법
https://youtu.be/3qtMs5jD-OY?si=joOEUEez7sbfYFk3

Resources Mentioned:
    hls4ml Repository: https://github.com/fastmachinelearning/hls4ml
    Iris Model on FPGAs GitLab: https://gitlab.com/ai-examples/iris-model-on-fpgas/
    Make your own Neural Network by TARIQ RASHID [pdf]


이미 핏빛으로 물들어 있는 인공지능 소프트웨어에서 그나마 시원한 하드웨어 설계에 눈길을 줘보자. 끝으로,

Challengers Are Coming for Nvidia’s Crown
엔비디아의 아성에 도전자들이 몰려온다 [링크]

    [검색 참고]
    "규칙 기반 알고리즘" [검색]
    "AI Semiconductor" [검색]




2026년 1월 20일 화요일

"내 칩" 에뮬레이션 검증 키트: 조립과 시험(칩 테스터 편)

"내 칩" 에뮬레이션 검증 키트: 조립과 시험(칩 테스터 편)

"내 책상 위에서 내 칩 설계(MyChip-on-MyDesk)"

- "내 칩" 에뮬레이션 검증 키트: 자재 목록 [링크]
- "내 칩" 에뮬레이션 검증 키트: 조립과 시험 (측정기 편) [링크]
- "내 칩" 에뮬레이션 검증 키트: 조립과 시험 (에뮬레이터 편) [링크]

목차:

1. 테스트: "내 칩" 설계의 완성 
2. PSCE-TESTER 회로도와 부품
3. PSCE-TESTER 보드 조립
4. PSCE-MI/TRANS/TESTER 동작 시험

CC-BY-NC
by GoodKook, goodkook@gmail.com

-------------------------------------------------------------------------

1. 테스트: "내 칩" 설계의 완성

"내 칩 제작 서비스[링크]"는 ETRI 반도체 실험실의 0.5um Si-CMOS 공정을 활용한 MPW 파운드리 서비스다. 칩 공정은 물론 패키지까지 무료로 제공한다. MPW는 연 4회에 걸쳐 진행된다. 각고의 노력 끝에 설계한 "내 칩"을 몇개월에 걸친 기다림 끝에 마침내 내 손에 받아들었다. 그냥 들여다 보자고 공을 들인 것이 아니다. 내가 설계한 IC 부품을 내 책상 위에서 내 손으로 테스트 해보자. 설계한 의도대로 작동 하는지 봐야 비로서 "내 칩"이라고 드러내 말할 수 있다.

2. PSCE-TESTER 회로도와 부품


3. PSCE-TESTER 보드 조립

3-1. 2열 28핀 직각 헤더 소켓, 1열 14핀 헤더 소켓(2개)

- 우측의 2열 28핀 직각 헤더 소켓은 PSCE-TRANS에 연결
- 중앙의 1열 14핀 암 헤더 소켓(2개)은 28핀 SOP 테스트 소켓을 꼽을 자리


3-2. 28핀 SOP 테스트 칩 장착

- MPW로 제작된 SOP28 패키지의 "내 칩" 테스트 소켓에 장착

"내 칩"을 테스트 소켓에 주의하여 장착한다.

3-3. PSCE-MI/TRANS/TESTER 를 모두 결합

아래 사진은 PSCE-MI/TRANS/TESTER를 모두 결합한 모습이다. PSCE-MI의 측정기 부분에 피코 W(와이파이 모듈)가 장착되었다. 안드로이드 휴대전화를 로직스코프의 시현 장치로 사용중이다.

4. "내 칩"동작 시험

디자인 킷에 준비된 예제를 실행 하여 "내 칩"을 테스트 한다. 테스트 대상 칩은 "내 칩 제작 서비스"의 MPW를 통해 제작된 "내 칩" 샘플이다. 아래에 설명하는 절차는 윈도우즈 WSL에 우분투 리눅스 24.04를 기준으로 한다. 아울러 오픈-소스 설계 도구와 알테라 FPGA용 쿼터스가 설치된 경우다.

4-1. 모델링 인터페이스 펌웨어 빌드

모델링 인터페이스 펌웨어를 빌드하는 방법은 "에뮬레이터 편[링크]"과 동일하다.

    $ make build-mi

4-2. "내 칩" 트랜잭터 빌드

DUT가 "내 칩"으로 제작 되었으므로 FPGA에는 트랜잭터 만 들어간다.

    $ make build-tester

4-3. 모델링 인터페이스 펌웨어 업로드

피코에 모델링 인터페이스 펌웨어를 업로드 하는 절차는 "내 칩" 에뮬레이션 검증 키트: 에뮬레이터 편[링크]의 4-2절과 같다. 에뮬레이션의 테스트 벤치를 칩 테스트에서도 동일하게 사용할 것이다.

    $ make upload-mi

4-4. "내 칩" 테스트 트랜잭터 구성

JTAG 다운로드 케이블이 인식 되었는지 확인 후 칩 테스트 용 트랜잭터를 FPGA에 구성,

    $ make config-tester

4-5. "내 칩" 테스트 에뮬레이션 실행

에뮬레이션 테스트벤치 실행,

    $ make co-emu

"내 칩"은 FPGA의 트랜잭터를 통해 테스트벤치와 입출력을 주고 받는다. 따라서 테스트벤치의 입장에서 타깃이 되는 하드웨어가 FPGA에 구현된 DUT인지 MPW를 거쳐 제작된 "내 칩"인지 구분하지 않아도 된다. 베릴로그 기능 검증에서 사용했던 테스트벤치를 에뮬레이션과 칩 테스트에 이르기까지 재사용 하였다. SystemC로 작성된 테스트 벤치가 검증의 대상이 되는 DUT의 추상화 수준의 정도를 따지지 않는 "시스템 수준"의 검증 방법이다.




베릴레이터의 장단점(Pros & Cons Verilator)

베릴레이터의 장단점(Pros & Cons Verilator)

CC-BY-NC
by GoodKook, goodkook@gmail.com

디지털 반도체 설계에서 검증의 제일선에 자리하는 도구는 하드웨어 언어 시뮬레이터다. 그런데  ETRI050 디자인 킷[링크]의 예제들을 수행하다 보면 베릴레이터(Verilator)라는 도구가 사용되고 있음을 발견 하게 된다. 정통(전통?) HDL 설계자에게 어쩌면 생소할 이 도구는 레지스터 트랜스퍼 수준(RTL)의 베릴로그 기술(description)을 C++ 또는 SystemC로 변환하는 언어 번역기다. 예제에서 왜 이 툴을 채택했을지 의문을 가져봤을 것이다. 오픈-소스로서 "무료" 사용이 가능 했기 때문 만은 아니다. 이미 상용 HDL 시뮬레이터[*]가 무상 라이센스 정책을 실시하고 있는 마당에 굳이 "언어 변환기"를 사용하는 이유를 디자인 킷 개발자의 취향이라고 한다면 단순한 답변이다.

[*] QuestaSim은 베릴로그, 시스템 베릴로그, VHDL은 물론 SystemC/C++를 모두 아우르며 언어 표준을 가장 넓은 범위로 지원하는 강력한  상용 HDL 시뮬레이터다. 인텔(intel)에서 지멘스 EDA(옛 멘토그래픽스, 그 이전에는 모델텍의 ModelSim)로부터 라이센스를 받아 무상으로 배포하고 있다. FPGA의 양대 벤더 중 하나인 알테라가 인텔에 합병되면서 라이센스 배포권이 인텔로 옮겨갔다. 또 다른 FPGA 벤더인 자일링스도 한 때 ModelSim 라이센스를 배포하기도 했으나 지금은 중지하고 자사의 XSIM을 무상 배포하고 있다. 

베릴레이터의 홈페이지에 들러 그들의 주장을 들어보자.

https://www.veripool.org/verilator/

이 툴은 베릴로그와 시스템 베릴로그 언어를 읽어 C++와 SystemC로 변환해 준다. 변환된 C++ 소스는 GNU C++ 컴파일러로 빌드할 수 있어서 실행 속도가 매우 빠르다고 한다. 이미 많은 설계 회사들에서 사용하고 있는 충분히 믿을 만한 도구라고 자랑한다. 오픈-소스 도구로서 누구든 스스로 빌드[**]해서 쓰던가 비용을 지불하면 개별 지원(Commercial Support)을 받을 수 있단다.

[**] x86/64 머신 뿐만 아니라 ARM 32/64 등 리눅스의 GNU C++ 컴파일러가 설치된 리눅스 머신에서 빌드할 수 있다.

상이한 하드웨어 구조를 가진 컴퓨팅 기계 사이의 이식성은 원시 코드가 그대로 배포되는 "오픈-소스"의 장점이다. 이는 "리눅스"라는 역시 오픈-소스 운영체제와 "빌드 툴" 덕분이다. 수많은 상용 C++ 컴파일러를 물리치고 개발 툴 전장을 평정한(!) GNU의 개발 툴은 이제 C++ 언어 표준을 이끌고 있다[link].  C++는 알고리즘 기술의 표준으로서 각종 크래스들 역시 ANSI C++언어 표준으로 제정되었다. 자료구조 라이브러리의 표준 크래스 STL(Standard Template Library)도 그중 하나다. SystemC는 시스템 수준 하드웨어 및 소프트웨어 모델링을 위해 개발된 C++ 용 오픈-소스 크래스 라이브러리로서 IEEE 표준 1666으로 제정되었고 현재  2023 개정판이 있다[SystemC LRM].

자체 사건구동(event-driven) 실행 체계(병렬 시뮬레이션 엔진)를 갖추고 그 위에서 작동되는 상용 HDL 시뮬레이터에 비해 언어 변환기를 통해 얻은 C++ 를 컴파일 하면 실행 속도가 빨라지는 것은 당연하다 하겠다.  언어변환기 "베릴레이터"를 선호한 이유가 속도만은 아니다. 상용 도구들의 정책 전환을 예상하기 어렵다는 점도 있다. 일순간 무료 라이센스 정책을 중단 하지는 않겠지만 해당 툴의 개발 방향 전환을 외부인으로써 예측이 어렵다는 점이다. 컴퓨팅 언어는 지속적으로 변화 발전하고 있고 빌드 툴 역시 이에 따른다. HDL도 예외는 아니다. 상용 HDL 시뮬레이터는 SystemC를 지원하하기 위해 GNU 빌드 툴들을 내장하고 있다. SystemC의 버젼이 3.x로 전환된지 몇년이 지났지만 상용 시뮬레이터에 내장된 버전은 2.x이며 C++ 빌드 툴 역시 구버젼이다. 이에 덧붙여 그동안 수없이 쌓아온 각종 과학기술 및 데이터 시각화 라이브러리들을 테스트벤치에 활용하려면 하드웨어 언어 표준에서 제정한 외부 언어 인터페이스 기준(PLI/VPI, DPI/UVM,  VHPI)을 따라야 한다는 점도 부담이다. 차라리 HDL을 표준 C++ 언어로 변환하여 다른 라이브러리(심지어 모든 컴퓨팅 언어를 포함)와 손쉽게 묶어 빌드하는 편이 수월하다. 게다가 우리는 C++ 라는 개발 언어에 너무나 익숙하지 않았던가! GDB와 DDD 같은 디버깅 도구들의 장점은 더 말할 필요도 없다. C++는 운영체제 자체를 만든 도구이며 수많은 컴퓨팅 언어들이 이로부터 파생되었다. C++ 라면 컴퓨터에서 할 수 있는 모든 짓을 할 수 있다! 심지어 임의의 주변장치를 달아 구동할 수 있는 장치 구동기(device driver)의 제작도 매우 수월하다. FPGA 하드웨어를 SystemC 테스트벤치 소프트웨어에 엮어 검증하는 코-에뮬레이터(Co-Emulator)를 단 몇줄의 C++ 코드로 구현한다는 점은 엄청난 장점이라 하지 않을 수 없다.

        이럼에도 불구하고 우리는 왜 상용 툴을 찾고 있는가?

요즘 뜬다는 제미나이 AI에게 베릴레이터의 장단점을 얘기해 달라고 했더니 이렇단다. AI가 내놓은 답변 속에서 이 질문의 답을 찾아보자. AI에게 싫컷 물어봤는데 뭔말인지 모른다면 그보다 슬픈일은 없을 것이다. 단, AI는 베릴레이터를 사용해본 당사자가 아니라는 점을 잊지말자. 이 장단점은 인터넷상의 누군가 경험과 주장을 요약해 놓았을 뿐이다. 그 "누군가"에 대한 신뢰성은 알아서 판단하자.

Verilator is a high-performance, open-source compiler that converts Verilog/SystemVerilog code into C++ or SystemC models for simulation. It is widely used for SoC-level, large-scale simulations, offering superior speed compared to traditional event-driven simulators, but it has specific limitations regarding language constructs and modeling techniques. 

Pros of Verilator

Extremely Fast Simulation: Verilator compiles Verilog into executable C++, often outperforming proprietary simulators by converting designs into optimized, multithreaded models.

Cost & Licensing: It is free and open-source (LGPL/Artistic license), allowing for unlimited parallel regression tests without license costs.

Performance Scaling: It scales well on a single machine and supports multithreading.

Integration with C++/SystemC: It allows for easy integration of C++ testbenches and DPI (Direct Programming Interface) calls, making it ideal for high-level modeling.

Code Quality Checks: It performs linting during compilation, helping to identify potential bugs early.

Cons of Verilator

Limited SystemVerilog/Verilog Support: It primarily supports synthesizable code and does not support full SystemVerilog IEEE standards, such as behavioral delay modeling (#10).

Two-State Simulation: It operates on a 2-state logic system (0/1), lacking native support for 4-state simulation (X/Z/U/W), which can make debugging initialization issues harder.

No Mixed-Language Support: It does not support VHDL or mixed-language simulations directly.

No Encrypted IP Support: It cannot handle encrypted IP cores, limiting its use in environments heavily reliant on vendor-provided IP.

Setup Complexity: Testbenches must be written in C++ or SystemC, which requires more effort than writing testbenches in Verilog/SystemVerilog. 

Summary Table

Summary Comparison (2026)

Feature   Verilator                   Commercial(VCS/Questa/Xcelium)
-------   --------------------------- ------------------------------
Cost      Free/Open Source            Very High (Per-seat license)
Logic     2-State (0,1)               4-State (0,1,X,Z)
Speed     Excellent(Compiled C++)     Varies(Interpreted or Compiled)
Testbench C++,Python,SystemC          SystemVerilog(UVM),VHDL
Use Case SoC logic,Unit tests,       Final sign-off, Gate-level,
          RISC-V                      Mixed-signal

Best Use Case: Large-scale SoC verification
Weakness: Behavioral simulation, Analog modeling

"오픈-소스"가 제아무리 장점이 많아도 "회사"에서 안쓴다면 그만이다. 베릴레이터를 사용한다는 회사들의 목록을 보면 꽤나 진취적이거나 스타트-업들이다. 우리가 아는, 반도체 시장을 좌지우지 한다는 그 회사는 보이지 않는다.  사실 유명 EDA 벤더들의 설계 검증용 에뮬레이터의 판매 공략 대상업체에서도 찾아보기 어렵다. 메모리 시장 호황에 미래를 맞겨도 될까?