no image
[FPGA] LVDS 기본 구조
오늘은 LVDS의 기본 구조만 가볍게 정리해 보려고 합니다.결론부터 말하면 LVDS는 많은 데이터를 낮은 전압으로, 노이즈에 강하게 보내기 위한 차동 신호 방식입니다.1. LVDSLVDS는 Low Voltage Differential Signaling의 약자입니다. 말 그대로 낮은 전압을 사용하는 차동 신호입니다. 보통 디지털 신호를 생각하면 신호선 하나가 있고, 그 전압이 높으면 1, 낮으면 0이라고 생각합니다.일반 신호Signal -----> ReceiverGND -----> 기준근데 LVDS는 선 하나로 판단하지 않습니다.두 개의 선을 한 쌍으로 사용합니다.LVDSP -----> Receiver +N -----> Receiver -여기서 중요한 건 P와 N의 절대 전압이 아닙니다..
2026.06.03
no image
[설계 용어] PLL vs MMCM (Clocking Wizard)
Vivado에는 Clocking Wizard라는 아주 고마운 IP가 있습니다. 기준 Clock을 갖고 내가 원하는 클럭을 만들어주는 IP입니다. 근데 설정에 보면 PLL과 MMCM 중 선택할 수 있게 되어있습니다. 뭘 눌러도 원하는 주파수의 클럭을 만들어주는 건 맞습니다. 결론부터 말하면 MMCM이 PLL의 상위 호환입니다. MMCM은 내부에 PLL을 품고 있고, 거기에 Logic이 추가된 구조입니다. 그러면 왜 PLL이 따로 존재하는 건지, 어떤 상황에서 뭘 골라야 하는 지를 정리해 보겠습니다.기본 구조둘 다 핵심 동작 원리는 동일합니다.입력 클럭 → 분주(D) → PFD(위상 비교) → VCO(전압 제어 발진기) → 체배(M) → 출력 분주(O)최종 출력 주파수는 $F_{out} = F_{in} × ..
2026.03.19
no image
[설계 용어] Xilinx FPGA I/O 핀의 이해
FPGA의 밑면을 보면 수많은 I/O 핀들이 격자(Grid) 형태로 맵핑되어 있습니다. FPGA의 가장 큰 장점은 개발자가 원하는 대로 핀(Pin)을 자유롭게 할당해 사용할 수 있다는 점입니다. 하지만 모든 내부 I/O를 100% 내 마음대로 사용할 수 있는 것은 아닙니다. 칩 구동에 필수적인 전용 핀들이 존재하고, 내부 하드웨어 로직의 위치나 고속 통신용 I/O 등 물리적인 제약 요소들이 있기 때문입니다. 상위 칩으로 가면 GT 트랜시버 관련 Dedicated Pin이 추가되지만, 여기선 제가 사용하던 Xilinx의 Spartan-7을 기준으로 설명하겠습니다. 아래 두 사진을 보겠습니다.첫 번째 사진은 FPGA의 bank가 어떻게 나누어져있나에 대한 부분이고, 두 번째 사진은 각 위치의 핀은 어떤걸..
2026.03.19
no image
HDMI에 대하여
모니터를 보려면 결국 소스장치에서 출력을 통해 모니터로 봐야합니다.우리가 가장 많이 사용하는 모니터 인터페이스 중 하나가 HDMI인데, 오늘은 HDMI에 대해 적어보겠습니다. HDMI(High-Definition Multimedia Interface) 비압축 방식의 디지털 비디오와 오디오 신호를 통합하여 전송하는 가전용 멀티미디어 인터페이스 표준으로 전기적 신호 전송 방식으로 TMDS를 사용한다. TMDS (Transition Minimized Differential Signaling) 핵심 원리TMDS는 이름 그대로 '신호 변화를 최소화'하는 차동 신호 전송 방식입니다. 8비트 데이터(R, G, B)를 10비트 심볼로 변환하여 전송하는데, 이 과정은 크게 두 단계로 나뉩니다.1단계 - 신호 변화 최소화..
2026.03.11
no image
Cerebras & Taalas: AI 모델 하드웨어 구현
이런 기술거리(?)를 주제로 글을 쓰는 건 오랜만이네요. 저도 일할 때와 일상에서 AI를 정말 많이 사용하고 있는데, AI를 다루는 글이라 오랜만에 손으로 적어보려고 합니다.결국 AI를 하드웨어로 구현하는 것에 대한 이야기를 해야 하는데, 그것보다 먼저 보는 게 좋겠죠.오늘 볼 건 두 개입니다. Cerebras AI랑 Taalas. 1. Cerebras https://www.cerebras.ai/ CerebrasCerebras is the go-to platform for fast and effortless AI training. Learn more at cerebras.ai.www.cerebras.ai Cerebras가 최근에 GPT의 Codex-5.3 Spark 모델을 칩에 올려서 서비스를 하고 있..
2026.03.11
no image
[설계 개념] 8b/10b, CDR, PLL
FPGA 설계를 하다 보면 단순히 로직을 짜는 것을 넘어, 칩과 칩 사이에서 데이터가 어떻게 오고 가는지 '인터페이스'의 중요성을 체감하게 된다. 특히 Gbps 단위로 넘어가는 고속 시리얼 통신(High-Speed Serial Interface)에서는 우리가 흔히 아는 병렬 버스와는 전혀 다른 문제들이 발생한다.클럭을 데이터와 따로 보내자니 스큐(Skew)가 문제고, 같이 보내자니 선이 아까운... 이 난제를 해결하기 위해 등장한 것이 바로 SerDes(Serializer/Deserializer) 기술. 그 중 가장 기초가 되면서도 필수적인 요소인 8b/10b Encoding, CDR, PLL의 핵심 개념을 정리해 보려한다. 데이터가 물리적으로 어떻게 안정성을 확보하며 전송되는지 간단하게 적어보겠다. 8..
2026.02.03
no image
OLED 보상회로 (6T1C)
보상회로가 뭔데?'라는 물음에 단순하게 '공정에서 생기는 Tr의 $V_{th}$의 편차를 보상하려고'라고 이해하고 글을 닫아도 충분히 좋다. 단순히 디스플레이 전공이고 이걸 배워야 하는 강의에서 배우지 못했기에 고생하며 이해한 내용을 적으려 한다. 실제로 우리가 제품을 만드는 과정에는 너무나 많은 편차가 있다. 동일한 부품으로 만들어도 공정상의 사소한 이슈가 쌓여 큰 편차를 우리에게 던져줄 때가 있기 때문이다. 실제로 최근에 동일한 스펙으로 주문했지만 batch(생산일자)가 다른 두 모듈을 비교하니 휘도가 200 nit나 차이나는 일이 있었다. 이처럼 우리가 손쓰기 어려운 생산 과정의 여러 이슈가 많다. 그중 오늘은 OLED에서 이러한 균일도 제어를 위한 가장 기초가 되는 OLED의 보상회로에 대한 이야..
2025.12.19
no image
Refresh Rate vs. Frame Rate
우리가 쓰는 고성능 게이밍 모니터는 144Hz, 240Hz만 되어도 "엄청 부드럽다"라고 말한다.그런데 LED 전광판(Signage)이나 옥외 광고판의 스펙은 1920Hz, 3840Hz, 심지어 7680Hz라는 높은 주사율을 갖는다. 단위가 Hz로 같으니 사람들은 "LED가 LCD보다 수십 배 더 부드러운가?"라고 오해하기 쉽다.하지만 결론부터 말하면 두 숫자는 Target이 완전히 다르다. 오늘은 디스플레이 엔지니어링 관점에서 이 숫자의 의미와, 왜 LED는 이렇게 미친 듯이 깜빡여야 하는지 그 하드웨어적인 이유를 정리해 본다.0. Driving Method우선 용어의 정의부터 명확히 하고 넘어가자. 두 디스플레이는 구동 방식(Driving Method) 자체가 다르다.1) LCD (모니터, TV) :..
2025.11.29
no image
[Vivado] IP : FIFO Generator
Clock Implementation and OperationWR/RD 동작에 대해 공통 클럭이나 독립 클럭 domain으로 설정이 가능하다.Built-in FIFO Supportwidth와 depth 방향으로 내장 FIFO들을 cascade 하여 대형 FIFO를 구현 가능하다.ECC(Error Correction Checking) 기능도 사용 가능하다.UltraScale 디바이스에서는 Low Latency 옵션을 통해 더 깊은 FIFO를 구현할 수 있다.First-Word Fall-ThroughFWFT(First-Word Fall-Through) 기능은 읽기 동작을 수행하지 않아도 FIFO 내 다음 데이터를 미리 볼 수 있게 해주는 기능이다. FIFO에 데이터가 존재하면 첫 번째 Word는 자동으로 출..
2025.11.09
no image
[설계 용어] CDC(Clock Domain Crossing)
디지털 회로 설계에서 서로 다른 클럭 신호에 의해 동작하는 두 Domain 사이에서 신호나 데이터가 오고 가는 상황을 의미한다.대표적으로 두 가지 해결책이 있다.0. Metastability만약, Destination register의 setup/hold timing을 맞추지 못한 경우 register의 출력은 metastable 상태로 전환될 수 있다. 이러한 Metastable 상태에서의 register의 출력은 정상적으로 전환된 후에도 High와 Low의 사이값에 머무른다. 이러한 상황을 Metastability라고 한다.그러면 파형이 High와 Low 사이에서 오르락 내리락하지만 어디에도 값을 정착하지 못하는 형태로 이어진다. 그러면 이 Register의 출력을 입력으로 하는 다른 register..
2025.09.18
no image
[후기] AMD : Embedded Computing Tech Day
이번에는 AMD에서 주최한 Embedded Computing Tech Day에 다녀왔습니다. 양재역에 있는 엘타워에서 진행했습니다. 이 건물은 처음와봤는데, 건물 전체가 예식장? 으로 사용할만한 곳이더라고요.행사장은 6층이었는데 들어서자, AMD 협력사들의 부스가 여럿있었습니다.여기 보이는 부스 사이로 사람들을 뚫고 들어가면 행사장이 나옵니다. 순서는 AMD에서 먼저 기조 연설로 시작하고, 제품 소개, 협력사 소개 등이 있었습니다.FPGA가 세상에 나온지 벌써 40년이나 됐다고 합니다. 최초의 FPGA는 64개 정도의 논리 게이트를 가진 스펙이었다는데, 지금은 참 많이 발전했네요. 행사의 이름이 Embedded Computing 인 만큼, 현재 가장 큰 흐름인 AI에 맞춰 관련된 칩인 VERS..
2025.09.16
no image
[Vivado] VSCode를 기본 편집기 및 Linting 설정
다양한 extension 기능이 들어간 VSCode를 VHDL이나 Verilog 같은 RTL 코딩에서도 활용하고 싶어, 제목과 같은 방법을 찾아봤다. 생각보다 간단하다. 먼저 당연하게도 VSCode와 Vivado가 설치되어있어야 한다. 1. Vivado를 켜주자. 2. Vivado 설정 변경Tools > Text Editor > Current Editor를 기본인 Vivado Text Editor에서 Custom Editor로 변경해주면 된다.그 후에 VSCode가 설치된 곳의 위치에서 Code.exe 까지 적어준 다음, ` -g [file name]:[line number]`를 뒤에 더해 적어주면 된다. 3. 환경 변수 설정그 후에 환경 변수 > Path 선택 > 편집 > 새로 만들기 > Vivado ..
2025.08.25