PVT corner, TT·SS·FF의 의미부터 signoff까지

같은 회로도 공정, 전압, 온도에 따라 속도가 몇 배씩 달라진다. PVT corner의 이름과 쓰임을 SkyWater 130 nm library의 실제 수치로 확인하고, signoff에서 corner를 어떻게 고르는지 정리한다. PVT는 transistor의 속도를 흔드는 공정, 전압, 온도다 칩 하나의 timing은 정해진 한 값이 아니다.…

SRAM Macro 이론부터 생성까지

SRAM macro가 bit 하나를 읽고 쓰는 원리부터, 메모리 컴파일러로 macro를 만들 때 고르는 word와 bit, column mux, bank, bitcell, 동작 전압이 면적과 속도, 전력을 어떻게 바꾸는지까지 정리한다. SRAM은 Static Random-Access Memory이고, 한 덩어리로 놓는 hard macro다 SRAM은 Static Random-Access Memory의…

Verilog 문법 – case의 종류들

Verilog의 case, casez, casex와 SystemVerilog의 case inside, unique, unique0, priority가 item을 어떻게 비교하고 어떤 logic으로 합성되는지를 simulation과 합성 결과로 정리한다. case 문은 RTL에서 가장 자주 쓰는 구문이다. FSM 글에서는 next-state logic을 case로 썼고, clock gating 글에서는 빠진 분기가 latch를 만든다는…

CDC의 metastability와 synchronizer, async FIFO의 gray code

clk_a domain의 a_reg 출력이 CDC boundary를 건너 clk_b로 도는 sync1, sync2 두 FF를 차례로 지나 clk_b logic으로 들어가는 2-FF synchronizer 구조도

서로 다른 clock으로 도는 두 영역 사이로 신호를 넘기는 CDC에서 무엇이 깨지는지와 synchronizer, handshake, async FIFO로 막는 방법을 정리한다. FIFO pointer에 쓰는 gray code의 규칙도 함께 본다. SoC 안에서는 CPU, bus, DDR controller, 주변장치, 외부 interface가 저마다 다른 clock으로 돈다.…

Setup/hold timing과 glitch-free clock mux

sel과 반대편 가지의 enable을 받아 rising edge FF와 falling edge FF를 거친 enable로 clk0, clk1을 각각 AND한 뒤 OR로 합치는 glitch-free clock mux 구조

setup/hold 위반이 어떤 경로에서 생기고 PD에서 어떻게 고치는지, clock을 늦추면 왜 setup만 풀리는지 정리한다. 이어서 clock을 바꿀 때 mux에 생기는 glitch와 이를 막는 glitch-free clock mux를 RTL로 본다. SoC는 동작 중에 clock을 바꾼다. 전원이 들어오면 PLL이 lock될 때까지 oscillator clock으로…

Clock gating ICG 셀의 구조와 RTL의 latch 규칙

E와 TE를 OR로 합쳐 CP가 0일 때 열리는 latch에 담고, latch 출력과 CP를 AND해 gated clock Q를 내는 ICG 셀 구조

Clock gating에 쓰는 ICG(Integrated Clock Gating) 셀은 clock을 끊을 때 생기는 glitch를 막으려고 FF 대신 latch를 쓴다. 이 글은 그 구조를 파형과 코드로 보고, RTL에서 latch를 다루는 법을 정리한다. level-sensitive latch는 enable이 열린 동안 D를 그대로 통과시키고, edge-triggered FF는 clock…

RTL로 설계하는 FSM의 구조, 동작 그리고 예시

master latch와 slave latch를 직렬로 이은 D FF, master는 clk=0일 때 slave는 clk=1일 때 transparent

Verilog로 FSM을 짜면 상태 값은 어디에 저장될까. 다음 상태는 combinational logic이 곧바로 계산하고, 상태는 clock edge에서 flip-flop(FF)이 한 번 잡아 둔다. 이 글은 그 과정을 latch와 비교해 정리한다. FSM을 처음 배울 때 흔히 떠올리는 그림은 ‘다음 상태가 latch에 잠깐 담겼다가…

오키나와 – 하얏트 리젠시 세가라키

오키나와에는 많은 호텔들이 있지만 이번에 소개하고 싶은 곳은 친숙한 이름, Hyatt다. 하야트 리젠시 세가라키 하얏트 리젠시는 오키나와 중부, 온나손에 위치해있다. 공항에서 약 1시간 정도 운전해서 떨어진 위치에 있어서 렌트를 해서 가는 편이 좋지만 공항 버스가 다니는 것도 보긴 했으니 다른…

[7/40] RTL 시뮬레이터 개발일지 – 외부 RTL로 검증하기

현업에서 검증 환경을 만들 때는 꽤 꼼꼼하게 보는 편이지만, 그건 도구를 믿는 사람의 꼼꼼함이었다. 시뮬레이터가 찍은 값은 사실로 놓고 내 설계와 테스트벤치만 의심하면 됐다. 지금은 도구 자체가 개발 중이라 용의자 목록의 세 번째 줄이 지워지지 않는다. 6편에서 정직한 도구는 용의자…

삼성전자 지원부터 면접의 여정

흐린 아침, 한국 아파트 창가의 빈 나무 식탁 위에 엎어 놓인 휴대폰과 뒤로 빠진 의자

우선 이 글을 읽기전에 그래서 합격했냐? 라는 질문에 우선 나는 “불합격 했습니다.” 라고 먼저 결론을 꺼내고 싶다. 하지만 그럼에도 내가 이 기고록을 적는 이유는 무려 8개월에 걸친 컨텍부터 통보까지 어떤 과정들이 있었고 어떤 심정들이 나를 지배했는지. 그리고 과연 그들의 시스템은…