Skip to main content
Tech. for SoC
SoC Canvas Philosophy 3 – Product Philosophy, Part 2 Integrated Data

November 25, 2025

In semiconductor design, what’s the hardest part of the job?

People may have different opinions, but for me, it’s communication.

You could say that communication is always the hardest and most important part of any job. But semiconductor design is on another level. That’s because every stage of the design flow uses a different language.
Architects communicate with Word or general documents, Designers communicate in Verilog, Verification engineers use UVM, Software engineers use C.
And just like English speakers think in English and Korean speakers think in Korean, each role thinks in its own “language.”
With so many ways of thinking and communicating mixed together, the communication difficulty is practically maxed out.

It gets even worse when you look at massively complex chips like NVIDIA’s Blackwell. Hundreds of engineers have to coordinate across all these different languages. How can proper communication ever be guaranteed?

This is where manuals play a big role.
Not all engineers read them carefully, but at minimum, manuals allow people to maintain a basic level of shared understanding. That’s why, when I worked at a large company, managers frequently asked me to “write documentation.” Some said it so often it felt like a reflex.
But no matter how many documents you create, it never solves the fundamental issue. In fact, it often just creates more work.

Because design and documentation almost never match perfectly. Most documents are just re-expressions of the design in different languages, so information loss is unavoidable.

To solve the problem at its root, the design itself must be information-driven.
And from this structured information, every stage should be able to automatically generate the outputs it needs.

That’s why SoC Canvas generates all outputs simultaneously:
Controller code (Verilog)
DFT artifacts (ICL/PDL)
Synthesis files (SDC, UPF, scan-exclude lists, etc.)
Verification code
Design lint lists
Software artifacts (reference C, register maps)

Every engineer receives outputs derived from the same source of truth.
This eliminates repetitive communication, reduces errors, and dramatically increases design efficiency.


반도체 설계 업무에서 제일 어려운 점이 무엇일까요?

각자 다른 의견이 있을 수 있지만, 저는 커뮤니케이션이라고 생각합니다.

원래 일하면서 가장 어렵고 가장 중요한 것이 커뮤니케이션 이라고 하실 수도 있는데,
반도체 설계는 더 심한 것 같습니다. 왜냐하면, 설계를 진행하는 flow의 각 stage마다 다 다른 언어를 사용하기 때문입니다.
아키텍트는 word 나 문서편집기로, 설계자는 verilog 코드로, 검증하는 분들은 UVM으로, 소프트웨어 엔지니어는 c언어로 소통합니다.
거기에 영어를 쓰는 사람은 영어식으로 생각하고, 한국말을 쓰는 사람은 한국식으로 생각하듯이
생각하는 방식까지 다릅니다. 이렇게 여러 생각과 언어가 뒤섞인 상황이다 보니, 커뮤니케이션의 난이도는 사실상 최고 수준입니다.

근데, 더 심각한 건 엔비디아의 블랙웰 수준의 복잡한 칩의 경우엔 이런 사람들이 수백명이 소통을 해야 합니다.
이 많은 사람들이 각자 자기의 언어로 얘기하는데 어떻게 제대로 커뮤니케이션을 할 수 있을까요?

여기서 큰 역할을 하는 것이 매뉴얼입니다.
다 그런 건 아니지만, 매뉴얼 정도는 읽고 이해할 수 있어야 최소한의 의사소통이 가능해집니다.

그래서 제가 대기업에서 설계할 때는 매니저들로부터 매뉴얼 작업하라는 요청을 정말 많이 받았습니다.
문서 작성해라를 습관처럼 얘기하는 분들도 꽤 있었죠.
근데, 이런 식으로 문서를 아무리 많이 만들어도 근본적인 문제는 해결이 되지 않습니다.
오히려 문서를 만드느라 일만 더 많아지게 됩니다.

왜냐하면, 설계와 문서가 일치하는 경우는 거의 없고 대부분의 문서는 설계의 내용을 각각의 언어로 바꾼 것이다 보니 설계 정보의 누락을 피할 수가 없기 때문입니다.

이러한 문제를 근본적으로 해결하려면,
설계 자체를 정보화 해서,
이 정보화된 구조에서 각 stage에 필요로 하는 모든 산출물을 생성해야 됩니다.

그래서 SoC Canvas는 모든 정보를 동시에 산출합니다.

단순한 controller code(verilog)뿐이 이 아니라,
DFT용 (ICL/PDL)
합성용 (SDC,UPF, scan exclude, and etc)
검증용 (verification code)
디자인용 (Lint list등)
소프트웨어용 (reference C, register map)

모든 stage의 엔니지어를 위한 산출물을 동시에 생성합니다.
이렇게 하면, 모든 엔지니어가 동일한 정보 기반에서 설계를 진행하기 때문에 반복적인 커뮤니케이션과 오류를 최소화 할 수 있게 됩니다.
그리고, 극단적으로 설계의 효율성을 높일 수 있게 됩니다.