라벨이 Verilog인 게시물 표시

구글 안티그래비티 완전 분석 — 모델·요금제·CLI 총정리

🚀 구글 안티그래비티(Antigravity) 완전 분석 구글이 2025년 11월 Gemini 3와 함께 공개한 에이전트 퍼스트(agent-first) IDE 안티그래비티는 Claude·GPT·Gemini를 한 도구에서 골라 쓰는 멀티모델 코딩 환경이다. 이 글에서는 ① 지원 모델과 요금제별 사용량의 실체, ② 실사용자 평가, ③ 구글의 방향성, ④ Claude Code와의 비교·연계, ⑤ CLI( agy )로 직접 쓰는 법까지 다섯 갈래를 차례로 정리한다. 자료 간 충돌이 있는 지점은 한쪽으로 단정하지 않고 양쪽을 모두 살려 표기했다. 📅 기준 시점: 2026년 6월 · 프리뷰 단계 정보로 수치는 변동 가능 1. 안티그래비티란 무엇인가 — 기초 정리 안티그래비티는 2025년 7월 구글이 24억 달러 규모 라이선스 계약 으로 영입한 전 Windsurf 팀이 설계를 주도했다. VSCode를 포크한 위에 자율 에이전트 오케스트레이션 계층을 얹은 구조다. 2026년 5월 Google I/O에서 발표된 안티그래비티 2.0 은 데스크탑 앱과 함께 공식 CLI agy 를 처음 공개하며 기존 Gemini CLI의 공식 후계자 자리를 확정했다. 핵심 정체성은 단순 코드 자동완성이 아니라 병렬 에이전트 오케스트레이션 이다. 여러 에이전트가 동시에 — 하나는 API, 하나는 테스트, 또 하나는 프론트엔드 — 작업을 나눠 진행하고, 각 에이전트는 계획·테스트 결과·스크린샷·영상을 담은 Artifact 를 남긴다. "사람이 한 줄씩 승인"하는 방식이 아니라 "에이전트들이 일을 마치고 사람이 사후 검수"하는 모델이다. flowchart TD A([사용자 작업 지시]) --> B[에이전트 A API 구현] A --> C[에이전트 B 테스트 작성] A --> D[에이전트 C UI 생성] B --> E[Artifact 계획·결과·영상] C --> E D --> E...

SHA-3 암호엔진 구조와 Verilog 설계 완전정복

🔐 SHA-3 암호 엔진과 SHAKE/cSHAKE/KMAC: 알고리즘부터 Verilog RTL까지 📅 2026-05-13 · IT/과학 · 암호 하드웨어 · PQC NIST가 2015년 FIPS 202 로 공표한 SHA-3는 단순한 차세대 해시가 아니다. 스펀지 구성(Sponge Construction) 이라는 단일 프리미티브 위에서 해시·XOF·MAC·KDF를 한 코어로 처리할 수 있는 멀티퍼퍼스 암호 엔진 의 기반이며, 양자내성암호(PQC) 표준 ML-KEM·ML-DSA·SLH-DSA가 모두 SHAKE 계열에 의존하는 만큼 차세대 보안 SoC의 필수 IP로 자리잡고 있다. 본 글은 알고리즘 수학적 정의부터 Verilog RTL 설계 트레이드오프, 부채널 저항성까지 종합 정리한다. 1. 🧽 스펀지 구성: SHA-2와 결별한 새 패러다임 SHA-1과 SHA-2는 머클-담가드(Merkle-Damgård) 구조를 채택했지만, 이 방식은 길이 확장 공격(Length-extension attack) 에 취약했다. 공격자가 원본을 모른 채 H(M) 값만으로 H(M‖suffix)를 만들 수 있어 HMAC 같은 별도 래퍼가 강제됐다. SHA-3는 이를 구조적으로 차단하기 위해 스펀지 구성을 도입했다. 🔄 2단계 동작 메커니즘 ▶ 흡수(Absorbing) : 입력 메시지를 rate r 비트 블록으로 분할 → 내부 상태와 XOR → 블록마다 Keccak-f[1600] 순열 1회 적용 ▶ 스퀴징(Squeezing) : 흡수 종료 후 내부 상태에서 r비트씩 출력 추출 → 더 많은 출력이 필요하면 Keccak-f 재호출 ▶ 내부 상태 b = r + c = 1600 비트 고정. Capacity c 가 보안 강도를 결정. 📊 흡수→스퀴징 데이터 흐름 메시지 입력 M (가변길이) 패딩 + 도메인 01 / 1111 / 00 + pad10*1 흡수: XOR + Kecc...

Verilog full_case·parallel_case, 왜 '악마의 쌍둥이'로 불리는가

🔬 Verilog full_case·parallel_case 어트리뷰트의 메커니즘과 설계상 위험성 디지털 논리 설계 | Synthesis Directive | Simulation-Synthesis Mismatch 심층 분석 디지털 회로를 설계할 때 Verilog의 case 문 은 가장 빈번하게 사용하는 다중 분기 구문입니다. 그런데 이 단순해 보이는 구문에 full_case 와 parallel_case 라는 합성 지시어(Synthesis Directive)를 붙이는 순간, 시뮬레이션과 실제 하드웨어 사이에 보이지 않는 균열이 생깁니다. Clifford E. Cummings 교수가 이 둘을 "Evil Twins of Verilog Synthesis" 라고 불렀을 정도로, 업계에서는 오래전부터 경고해 온 고위험 요소입니다. 이 글에서는 두 지시어의 정확한 동작 원리, 불일치가 발생하는 구조적 원인, 그리고 현대적 대안까지 하나씩 파헤쳐 봅니다. 📐 Case 문의 표준 동작 원리 (IEEE 1364) 본격적으로 지시어를 분석하기 전에, Verilog 표준이 정의하는 case 문의 원칙 두 가지를 명확히 짚고 넘어가겠습니다. ▶ 우선순위 평가 (Priority Evaluation) case 문은 위에서 아래로 순차적 으로 평가됩니다. 여러 아이템이 동시에 매칭되더라도 가장 먼저 나오는 구문만 실행됩니다. 즉, 기본적으로 Priority Encoder 구조 를 내포하고 있습니다. ▶ 미완성 처리 (Incomplete Case) 가능한 비트 조합이 모두 나열되지 않고 default 도 없으면, 매칭되지 않는 입력에 대해 출력이 이전 값을 유지합니다. 조합 회로 문맥에서 이는 곧 의도치 않은 Latch 생성 을 의미합니다. 🏷️ 핵심 용어 정의 용어 정의 핵심 키워드 Full Case 모든 가능한 입력 조합(2ⁿ개)이 명시되었거나 default가 포함된 상태 완전성 (Complete...

Verilog case (1'b1) 구조, 왜 쓰고 어떻게 합성되나

🔧 Verilog case (1'b1) 구조의 동작 원리 및 합성 가이드 2026.04.07 · 디지털 설계 · HDL 심화 Verilog에서 case (1'b1) 이라는 구조를 처음 마주치면 고개를 갸우뚱하게 됩니다. 괄호 안에 변수가 아닌 상수 1 이 들어가 있기 때문입니다. 하지만 이 패턴은 IEEE 표준에 완벽히 부합하는 합법적인 문법이며, 실무에서 우선순위 로직을 설계할 때 자주 쓰이는 강력한 기법입니다. 이 글에서는 그 동작 원리부터 합성 결과까지 깊이 있게 살펴봅니다. 📌 핵심 개념 — Reverse Case란? 일반적인 case 문은 case (variable) 형태로, 변수의 값에 따라 분기합니다. 반면 case (1'b1) 은 'Reverse Case' 또는 'Constant Case' 라고 불리는 기법입니다. 이 구조의 의미는 명확합니다: "아래 나열된 조건식들 중에서 논리적 참(1'b1)과 일치하는 첫 번째 항목을 찾아 실행하라." 즉, 비교 항목(case item) 자리에 변수나 조건식을 넣어 참/거짓을 판별하는 방식입니다. ⚙️ 동작 메커니즘 — 동시 실행? 우선순위? 🔍 Verilog Case 문의 표준 동작 규칙 (IEEE 1364 / IEEE 1800) Verilog 표준에 따른 case 문의 동작 프로세스는 다음과 같습니다: ▶ 괄호 안의 제어 수식(Case Expression) 을 먼저 평가합니다. ▶ 위에서 아래 방향 으로 각 비교 항목(Case Item)을 순차 평가합니다. ▶ 제어 수식과 일치하는 첫 번째 지점에서 실행을 멈추고 해당 구문만 수행합니다. 💡 핵심 포인트: 여러 조건이 동시에 참이더라도 '동시 실행'은 절대 발생하지 않습니다. Verilog의 case 문은 하드웨어적으로 우선순위 인코더(Priority Encoder) 를 생성합니다. 상단에 위치한...

SystemVerilog 기반 Glitch-free Clock Divider 설계 가이드

⚡ Glitch-free Clock Divider 설계 완전 가이드 — FPGA/ASIC 클락 분주기의 핵심 디지털 회로 설계 | SystemVerilog | FPGA 클럭 관리 | RTL 설계 기법 FPGA나 ASIC 설계에서 클락 분주기(Clock Divider) 는 거의 모든 프로젝트에 빠짐없이 등장하는 핵심 컴포넌트입니다. 하지만 단순히 카운터로 클락을 나누면 글리치(Glitch) 라는 치명적인 노이즈가 발생하여 시스템 전체의 타이밍 안정성을 무너뜨릴 수 있습니다. 이 글에서는 Glitch-free Clock Divider 의 설계 원리부터 실무 적용까지, 실제 합성 가능한 SystemVerilog 코드와 함께 깊이 있게 다룹니다. 📌 이 글의 핵심: 글리치가 왜 위험한지, 이를 방지하는 3가지 설계 기법, 그리고 짝수/홀수 분주를 모두 지원하는 50% Duty Cycle 분주기 RTL 코드를 제공합니다. 🔧 1. 클락 분주기 — 기본 원리부터 짚고 가자 ▶ 카운터 기반 분주의 기본 동작 가장 직관적인 분주 방식은 카운터 를 사용하는 것입니다. 예를 들어 4분주를 구현하고 싶다면, 소스 클락이 2번 뛸 때마다 출력 상태를 반전시키면 됩니다. 구현이 간단하고 이해하기 쉽다는 장점이 있지만, 이 과정에서 조합 논리(Combinational Logic) 의 게이트별 전파 지연 시간(Propagation Delay) 차이로 인해 아주 짧은 시간 동안 잘못된 값이 출력되는 글리치 가 발생할 수 있습니다. ⚠️ 글리치(Glitch)란? 조합 회로에서 입력이 동시에 변할 때, 각 경로의 지연 차이로 인해 최종 출력이 안정되기 전에 순간적으로 잘못된 값이 나타나는 현상입니다. 이것이 클락 라인에 발생하면 하위 회로가 '가짜 클락 에지'로 인식하여 심각한 오동작을 일으킵니다. ▶ 심화: Clock Skew와 Duty Cycle 이해 🕐 Clock Skew — 클락 신호가 서로 다른 플립플롭에 도달하는...