Recent
-
AI 반도체와 HBM — DRAM 구조·TSV·Memory Wall·HBM4E
이전 글에서는 AI 모델의 규모가 커질수록 연산 성능뿐 아니라 데이터를 공급하는 Memory Bandwidth가 중요해진다는 점을 살펴보았습니다. 이번 글에서는 Smart Semiconductor Academy에서 진행된 남인호 교수의 강연을 바탕으로 DRAM의 기본 구조와 HBM의 동작 원리를 정리하고, 2026년 HBM4·HBM4E 동향을 함께 살펴봅니다.이전 글: AI Semiconductor 기술 동향 — Scaling Law·Transformer·Memory Wall·TPU1. AI 연산에서 Memory Wall이 발생하는 이유Transformer와 같은 AI 모델은 Matrix Multiplication을 반복적으로 수행합니다. GPU와 AI Accelerator는 다수의 연산 Unit을 병렬..
2026.08.25 19:29 -
Systolic Array Fault Monitoring(1) — XOR Parity 기반 Online Detection과 Local Register Bypass
Systolic Array의 XOR Parity 기반 Online Fault Monitoring과 Local Register Bypass 개념도STRAIT는 Systolic Array의 구조적 특성을 활용해 Self-Test, Self-Diagnosis, Self-Recovery를 하나의 흐름으로 통합한 신뢰성 설계입니다. 이 연구를 바탕으로 진행한 졸업 프로젝트에서는 정상 연산 중 각 Processing Element(PE)의 Data Path를 감시하고, Parity Mismatch가 검출된 경로를 선택적으로 우회하는 경로별 Monitoring 및 Bypass 구조를 설계했습니다.이번 글에서는 이러한 문제의식에서 출발해 직접 설계한 Reduction XOR Parity 기반 실시간 Fault Dete..
2026.08.20 23:59 -
BISR란? Built-In Self-Repair로 결함 복구하기
BISR(Built-In Self-Recovery)은 Systolic Array의 결함 Processing Element(PE)를 논리적으로 우회하거나 가중치를 재배치하여 연산을 지속하는 복구 기술입니다. BIST가 결함을 검출하는 단계라면 BISR은 진단 결과를 바탕으로 결함의 영향을 줄이는 단계입니다. 이 글에서는 STRAIT 논문에 제시된 Self-Recovery 구조와 동작 순서를 정리합니다. Systolic Array 기반 AI 가속기에서는 수천 개의 PE(Processing Element)가 고속 병렬 연산을 수행합니다. 하지만 그 중 일부가 고장나면 전체 연산에 영향을 줄 수 있기 때문에, 결함 복구(Self-Recovery) 기술이 필수적입니다. STRAIT는 Built-In Self-T..
2025.05.06 02:02 -
반도체 Self-Diagnosis(자가 진단) 회로 동작 원리
← 이전 글 · BIST(Built-In Self Test)란? 회로 설계와 컨트롤러 동작 정리STRAIT의 Self-Diagnosis는 Self-Test와 동시에 동작하며, Scan-Out 비교 결과를 이용해 Fault 위치를 식별하고 Local, Row, Column Fault로 분류합니다. 분류 결과는 이후 BISR의 복구 방식과 Weight Allocation을 결정하는 입력으로 사용됩니다.이 글에서는 Fault가 Systolic Array의 데이터 흐름을 따라 어떻게 전파되는지와 DLC(Diagnostic Loop Chain)를 이용한 위치·유형 판별 과정을 정리합니다.Fault 유형 비교Fault 유형주요 발생 위치영향 범위전파 방향Local FaultMAC Unit해당 PE국소적Row Fau..
2025.05.06 00:01 -
BIST(Built-In Self Test)란? 회로 설계와 컨트롤러 동작 정리
← 이전 글 · BIST 기반 AI 가속기 자가 테스트·복구 구조(STRAIT) 정리STRAIT의 Self-Test는 Systolic Array의 Functional Path를 Scan Chain으로 재활용해 Logic과 Memory를 검사하고, Comparator 결과를 Self-Diagnosis 단계로 전달합니다. 원 논문은 Stuck-At Fault와 Transition-Delay Fault에 대해 100% Test Coverage를 달성하면서 Test Pattern 수와 Test Power를 줄이는 구조를 제시합니다.이 글에서는 Scan Chain 구성, Stuck-At/Transition-Delay Test, MBIST, LBIST, Hybrid BIST의 동작 순서를 구분해 설명합니다.BIST..
2025.05.05 18:14 -
BIST 기반 AI 가속기 자가 테스트·복구 구조(STRAIT) 정리
STRAIT(Self-Test and Self-Recovery for AI Accelerator)는 Systolic Array의 구조적·동작적 특성을 활용해 Self-Test, Self-Diagnosis, Self-Recovery를 하나의 흐름으로 수행하는 AI 가속기 신뢰성 구조입니다.원 논문은 Functional Path로 구성한 Scan Chain을 이용해 Stuck-At Fault와 Transition-Delay Fault를 검출하고, 진단 결과에 따라 Faulty PE를 분류한 뒤 Weight Allocation 기반 복구를 수행하는 방법을 제안합니다.이 글에서는 STRAIT가 필요한 이유와 Hybrid BIST, Diagnosis Module, BISR, eNVM의 역할을 전체 시스템 관점에서..
2025.05.05 17:28
Verilog Project
-
UART 통신이란? 비동기 직렬 통신 개념 정리
UART란?UART(Universal Asynchronous Receiver/Transmitter, 범용 비동기화 송수신기)는 데이터 버스로부터 병렬로 받은 데이터를 직렬 방식으로 전환하여 다른 UART로 전송하는 컴퓨터 하드웨어의 한 종류이다.UART로부터 직렬 데이터를 수신한 다른 UART는 이를 병렬 방식으로 전환하여 데이터 버스에 전송한다.통신에 사용되는 데이터는 메모리나 레지스터에 저장되어 있으며, 이를 차례데로 읽어 직렬로 통신한다. 기본 단위는 최대 8비트이다. UART 통신의 특징UART는 비동기식(Asynchronous) 통신 방식으로 RX와 TX 각각의 clock 신호를 사용한다.Bit 구성Start Bit: 전송 데이터 패킷의 시작 부분을 알린다. 이 신호를 통해 RX에서 데이터 수신..
-
UART 설계(1): Baud Rate Generator와 오버샘플링
Baud Rate을 생성하고, Over Sampling을 하기 위한 코드 작성 (baud_rate_gen.v)oversampling을 위해 bit count를 진행해야 한다.첫 신호에서 start bit가 들어오면 bit_cnt_std 8번째에 샘플링을 시작하고, 그 이후부터는 16번째에 샘플링을 하면 data bit의 중앙에서 데이터를 샘플링할 수 있다, 1개의 baud rate 주기 안에 들어가는 clock의 개수를 구하기 위해서 baud rate 주기 / clk 주기 = clk freq / baud rate freq을 계산한다.위에서 계산한 값을 16으로 나누어 그 값을 bit count standard로 잡으면 이 기준의 16배가 baud rate의 주기가 된다.bit count standard만..
-
UART 설계(2): TX 모듈 Verilog 구현
UART TX 모듈 설계 신호 개요DIN [7:0]: 데이터 버스로부터 받는 8비트의 parallel 데이터묶음Send: 데이터 전송의 시작을 명령하는 신호Dout: RX로 전달되는 serial 데이터Busy: UART TX가 동작중임을 나타내는 신호ParitySelect: Odd Parity를 사용할지 Even Parity를 사용할지 선택하는 신호작동 방식8비트의 parallel 데이터를 버스로부터 수신한다.send 신호가 들어오면 stop bit - parity bit - data - start bit 순으로 구성된 데이터 11비트를 dout으로 전송한다.[ uart_tx.v ]더보기`timescale 1ns / 1ps//////////////////////////////////////////////..
-
UART 설계(3): RX 모듈 FSM 설계와 검증
FSM 순서idle: din이 1로 유지될 때 대기상태. din이 0이 되면 enable 신호에 맞춰 load로 상태 변경load: 8비트의 데이터를 받은 뒤 parity를 읽고, parity check로 상태 변경parity check: 저장한 parity bit와 data bit를 이용하여 패리티 검사transmit: 패리티 검사 이후 병렬 데이터를 dout으로 전송다음과 같이 코드를 작성했다.`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////////// Company: // Engineer: // // Create Date: 2024/07/28 13:46:57// Design..
-
[Verilog 미니 프로젝트 #0] FPGA 하드웨어 설계 아키텍처 및 환경 구축
방학동안 verilog 복습을 진행하며 기본적인 하드웨어부터 구현해보고, 이후 pmod OLED를 활용한 장치까지 구현할 예정입니다. 프로젝트 개요기간: 2025.01.20~2025.02.28 (약 1개월)목적: verilog를 이용한 하드웨어 설계 복습 및 SoC, IP에 대한 이해목표: 7세그먼트, 키패드, 버튼, OLED 디스플레이 등을 활용한 스탑워치, 계산기 등 하드웨어 설계하드웨어 구성 1. 모드 표시 LED: 모드에 따라 LED의 색, 위치가 변함2. 스탑워치 Start/Stop 버튼3. 스탑워치 Reset 버튼4. 모드 변경 버튼5. 7세그먼트 디스플레이6. 계산기 키패드7. Pmod OLED 디스플레이 FPGA 보드: Digilent Cora Z7 기존에 반도체 설계교육에서 사용하던 Di..
-
[Verilog 미니 프로젝트 #1] 7-Segment 디스플레이 제어를 위한 인터페이스 설계
스탑워치를 설계하기에 앞서, 숫자를 표시하기 위한 네자리 7세그먼트 디스플레이를 제어하기 위한 코드를 작성했습니다.이번에 사용한 디스플레이는 이전에 반도체 설계교육 중 임베디드 시스템 설계 과정에서 사용한 디스플레이를 사용했습니다. 하만(Harman) 세미콘 아카데미 11일차 - SW 구조설계( 데이터 입출력, 버튼 LED 점멸, 7세그먼트 출력 )[2024.03.21.목] 인천인력개발원 하만 세미콘 아카데미임베디드 시스템을 위한 SW 구조설계디지털 데이터 입출력1. 디지털 데이터 출력 PORT 레지스터 (출력 레지스터) 포트: 8개의 핀을 하나로 묶어semicon-circuit.tistory.com 하만(Harman) 세미콘 아카데미 12일차 - SW 구조설계( 7세그먼트 - 16진수 출력, 스톱워치 ..
-
[Verilog 미니 프로젝트 #2] 카운터 및 타이밍 레지스터를 활용한 스탑워치 설계
스탑워치를 표시할 7세그먼트 디스플레이 제어 모듈을 완성한 뒤 분, 초, 밀리초를 계산하여 세그먼트로 전송하는 스탑워치 모듈 설계를 진행했습니다.Stopwatch 모듈 정의Module Name: stopwatchInputsrstclk[1:0] mode:스탑워치가 Mode 1에서만 값을 세그먼트로 보낼 때 사용btn1: Start/Stop 버튼btn0: Reset 버튼Outputsreg [13:0] value: 스탑워치를 통해 계산한 네자리 값을 출력Registersreg [3:0] sec0_1, sec0_01: 0.1초, 0.01초의 값을 저장하는 레지스터. 0~9까지의 숫자를 저장하므로 4비트 사용reg [5:0] sec, min: 초, 분의 값을 저장하는 레지스터. 0~59까지의 숫자를 저장하므로 6..
-
[Verilog 미니 프로젝트 #3] Pmod KYPD 매트릭스 제어 및 키패드 디코더 설계
계산기를 설계할 때에는 Digilent의 Pmod KYPD를 통해 값을 입력받아 숫자나 문자로 변환하는 Decoder와 Decoder로부터 받은 값을 연산하여 세그먼트 디스플레이로 보내기 위한 calculator 모듈이 필요합니다.프로젝트 소개 게시글에서 간략하게 설명했듯이, KYPD의 Schematic은 아래와 같습니다. 이 키패드를 통해 어떤 버튼이 눌리는지 감지하는 방법은 먼저 각 열(COL)을 순차적으로 LOW로 설정합니다.[ 1110->1101->1011->0111 ]이후 LOW로 설정된 열에서 키가 눌린 경우, 이에 해당하는 행(ROW) 핀에 LOW 신호가 전달됩니다. 이 과정을 반복하여 각 열을 1ms마다 LOW로 설정한 뒤 ROW 값을 입력으로 확인하면 어떤 키가 눌렸는지 파악할 수 있습..
디지털 논리회로
-
디지털 논리회로 기초: 신호·에지·레벨 트리거란?
1. 디지털 신호(Digital Signals)디지털 신호의 종류하강 Edge(=Falling edge, Negative edge): 1 -> 0으로 천이(transition)되는 신호상승 Edge(=Rising edge, Positive edge): 0 -> 1으로 천이(transition)되는 신호이벤트(Event): 0과 1 두 개의 상태를 갖는 시스템에서 High -> Low 또는 Low -> High로 천이되는 것트리거(Trigger): 특정 상태에서 응답하는 회로레벨 트리거(Level Trigger): High 또는 Low의 특정 레벨에서 응답(천이, transition)하는 회로에지 트리거(Edge Trigger): 상승 Edge 또는 하강 Edge에 응답하는 회로2. 수치 표현(Numeri..
-
BCD 코드와 그레이코드 변환 정리 (2진수·16진수 변환 포함)
1. 2진수 - 10진수 변환2진수 -> 10진수 변환 : 오른쪽부터 2^0, 2^1, 2^2, ... 순으로 각 자릿수의 숫자와 곱하여 변환예시) - 1 0011(2)인 이진수 -> 2^4 * 1 + 2^3 * 0 + 2^2 * 0 + 2^1 * 1 + 2^0 * 1 = 16 + 2 + 1 = 19(10) - 1011 0101(2) -> 2^7 + 2^5 + 2^4 + 2^2 + 2^0 = 128 + 32 + 16+ 4 + 1 = 181(10)10진수 -> 2진수 변환: 10진수를 2로 나누며 나머지를 구하여 2진수로 변환2. 16진수: 2진수의 4비트씩 묶어 0~9, A(10)~F(15)의 16자리로 표현[16진수, 10진수, 2진수의 관계]16진수 -> 10진수 변환: 2진수 -> 10진수 변환과..
-
부울 대수(Boolean Algebra) 기초: 진리표와 논리 게이트
1. 부울 상수 & 변수(Boolean Constants and Variables)부울 대수에서는 0과 1의 두 값만 사용Logic 0 = False, Off, Low, No, Open switchLogic 1 = True, On, High, Yes, Closed switchㄷ논리연산: OR, AND, NOT2. 진리표(Truth Table)논리회로에서 입력(Input)과 출력(Output)의 관계를 나타내는 표결과값은 2의 입력 수 제곱만큼 발생 - 입력이 2개면 2의 제곱인 4가지의 결과값 생성 - 입력이 4개면 2의 4제곱인 16가지의 결과값 생성3. OR 게이트를 이용한 OR 연산OR 연산의 부울 표현: X = A + B "X equals A OR B"입력이 2개인 OR 연산의 진리표AB X = ..
-
카르노맵(K-map)으로 논리식 간소화하는 방법
1. Sum - Of - Products(SOP) 형태Sum - Of - Products(SOP): 곱의 합 형태(AND 연산된 항들을 OR연산을 통해 표현)SOP 예시 Products - Of - Sums(POS): 합의 곱 형태(OR 연산된 항들을 AND연산을 통해 표현)POS 예시2. 논리회로의 단순화논리회로의 단순화: 전파지연을 줄여 회로의 동작속도 향상Boolean algebra와 Karnaugh mapping을 통해 단순화 가능단순화 예시3. 대수적 단순화(Algebraic Simplification)DeMorgan의 정리를 이용하여 원래의 표현식을 SOP형식으로 표현SOP형식에서 공통인수를 찾아내어 1개 이상의 항을 소거Algebraic Simplification 예시 4. 조합 논리회로 구..