← 홈

🔀Verilog & VHDL

⌘K
🤖
Claude Code AI 도구
🤗
Hugging Face AI 도구
🦜
LangChain AI 도구
🧠
Keras AI 도구
🦙
Ollama AI 도구
🐍
Python 프로그래밍 언어
🟨
JavaScript 프로그래밍 언어
🔷
TypeScript 프로그래밍 언어
⚛️
React 프로그래밍 언어
🐹
Go 프로그래밍 언어
🦀
Rust 프로그래밍 언어
📊
MATLAB 프로그래밍 언어
🗄️
SQL 프로그래밍 언어
⚙️
C/C++ 프로그래밍 언어
Java 프로그래밍 언어
🟣
C# 프로그래밍 언어
🍎
Swift 프로그래밍 언어
🟠
Kotlin 프로그래밍 언어
Next.js 프로그래밍 언어
💚
Vue.js 프로그래밍 언어
🔥
Svelte 프로그래밍 언어
🎨
Tailwind CSS 프로그래밍 언어
💚
Node.js 프로그래밍 언어
🌐
HTML 프로그래밍 언어
🎨
CSS/SCSS 프로그래밍 언어
🐘
PHP 프로그래밍 언어
💎
Ruby 프로그래밍 언어
🔴
Scala 프로그래밍 언어
📊
R 프로그래밍 언어
🎯
Dart 프로그래밍 언어
💧
Elixir 프로그래밍 언어
🌙
Lua 프로그래밍 언어
🐪
Perl 프로그래밍 언어
🅰️
Angular 프로그래밍 언어
🚂
Express.js 프로그래밍 언어
🐱
NestJS 프로그래밍 언어
🛤️
Ruby on Rails 프로그래밍 언어
◼️
GraphQL 프로그래밍 언어
🟪
Haskell 프로그래밍 언어
💚
Nuxt.js 프로그래밍 언어
🔷
SolidJS 프로그래밍 언어
htmx 프로그래밍 언어
💻
VS Code 개발 도구
🧠
PyCharm 개발 도구
📓
Jupyter 개발 도구
🧠
IntelliJ IDEA 개발 도구
💚
Neovim 개발 도구
🔮
Emacs 개발 도구
🔀
Git DevOps & CLI
🐳
Docker DevOps & CLI
☸️
Kubernetes DevOps & CLI
☁️
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux 명령어 DevOps & CLI
💻
Bash 스크립팅 DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
🔨
Makefile DevOps & CLI
🧪
Pytest DevOps & CLI
🪟
Windows DevOps & CLI
📦
패키지 매니저 DevOps & CLI
🍎
macOS DevOps & CLI
🏗️
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
Helm DevOps & CLI
🔨
Jenkins DevOps & CLI
🔥
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
💻
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁️
Azure CLI DevOps & CLI
☁️
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂️
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
🔢
NumPy 데이터베이스 & 데이터
🐼
Pandas 데이터베이스 & 데이터
🔥
PyTorch 데이터베이스 & 데이터
🧠
TensorFlow 데이터베이스 & 데이터
📈
Matplotlib 데이터베이스 & 데이터
🐘
PostgreSQL 데이터베이스 & 데이터
🐬
MySQL 데이터베이스 & 데이터
🍃
MongoDB 데이터베이스 & 데이터
🔴
Redis 데이터베이스 & 데이터
🔍
Elasticsearch 데이터베이스 & 데이터
🤖
Scikit-learn 데이터베이스 & 데이터
👁️
OpenCV 데이터베이스 & 데이터
Apache Spark 데이터베이스 & 데이터
🪶
SQLite 데이터베이스 & 데이터
Supabase 데이터베이스 & 데이터
🔵
Neo4j 데이터베이스 & 데이터
📨
Apache Kafka 데이터베이스 & 데이터
🐰
RabbitMQ 데이터베이스 & 데이터
🔤
Regex 유틸리티
📝
Markdown 유틸리티
📄
LaTeX 유틸리티
🔐
SSH & GPG 유틸리티
🌐
curl & HTTP 유틸리티
📜
reStructuredText 유틸리티
🚀
Postman 유틸리티
🎬
FFmpeg 유틸리티
🖼️
ImageMagick 유틸리티
🔍
ripgrep 유틸리티
🔍
fzf 유틸리티
📗
Microsoft Excel 오피스 애플리케이션
📘
Microsoft Word 오피스 애플리케이션
📙
Microsoft PowerPoint 오피스 애플리케이션
📝
한컴 한글 한컴오피스
📽️
한컴 한쇼 한컴오피스
📊
한컴 한셀 한컴오피스
📄
Google 문서 Google Workspace
📊
Google 스프레드시트 Google Workspace
📽️
Google 프레젠테이션 Google Workspace
🔌
Cadence Virtuoso EDA & 하드웨어
⚙️
Synopsys EDA EDA & 하드웨어
💎
Verilog & VHDL EDA & 하드웨어
LTSpice EDA & 하드웨어
🔧
KiCad EDA & 하드웨어
📝
Notion 생산성 도구
💎
Obsidian 생산성 도구
💬
Slack 생산성 도구
🎮
Discord 생산성 도구
🎨
Figma 디자인 도구
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest 테스팅
Vitest 테스팅
🎭
Playwright 테스팅
🌲
Cypress 테스팅
🌐
Selenium 테스팅
💙
Flutter 모바일 개발
📱
React Native 모바일 개발
🍎
SwiftUI 모바일 개발
📱
Expo 모바일 개발
🐍
Django 웹 프레임워크
FastAPI 웹 프레임워크
🌶️
Flask 웹 프레임워크
🍃
Spring Boot 웹 프레임워크
🍸
Gin 웹 프레임워크
Vite 빌드 도구
📦
Webpack 빌드 도구
esbuild 빌드 도구
🐘
Gradle 빌드 도구
🪶
Maven 빌드 도구
🔧
CMake 빌드 도구
🎮
Unity 게임 개발
🤖
Godot 게임 개발
🔌
Arduino 임베디드 & IoT
🔍
Nmap 보안
🐕
Datadog 모니터링
📖
Swagger/OpenAPI 문서화
검색 결과가 없습니다
EN KO

📐 Verilog 기본

📦 모듈 구조

module name (input a, output b); ... endmodule 기본 모듈
module name #(parameter N=8) (input [N-1:0] a); 매개변수 모듈
input wire [7:0] data; 8비트 입력
output reg [7:0] result; 8비트 레지스터 출력
inout [7:0] bidir; 양방향 포트

🏷️ 데이터 타입

wire [7:0] w; 와이어 (조합)
reg [7:0] r; 레지스터
integer i; 정수 (32비트)
parameter N = 8; 컴파일 타임 상수
localparam M = N*2; 로컬 파라미터
reg [7:0] mem [0:255]; 256x8 메모리 배열

🔢 연산자

&, |, ^, ~ 비트 AND, OR, XOR, NOT
&&, ||, ! 논리 AND, OR, NOT
==, !=, ===, !== 등호 (===는 x,z 포함)
<, <=, >, >= 비교
>>, <<, >>>, <<< 시프트 (>>> 산술)
? : 삼항 조건
{a, b} 연결
{4{a}} 복제 (4개 복사)

🔧 Verilog 블록

➡️ 연속 할당

assign y = a & b; 조합 로직
assign y = sel ? a : b; 삼항 연산 mux
assign #10 y = a; 지연 포함

🔄 Always 블록

always @(posedge clk) 상승 에지 트리거
always @(negedge clk) 하강 에지 트리거
always @(posedge clk or negedge rst_n) 비동기 리셋
always @(*) 조합 (모든 입력)
always_ff @(posedge clk) SV: 순차
always_comb SV: 조합

🔀 제어문

if (cond) ... else ... If-else
case (sel) 2'b00: ... default: ... endcase Case 문
casez (sel) z를 don't care로 case
casex (sel) x,z를 don't care로 case
for (i=0; i<8; i=i+1) For 루프
while (cond) ... While 루프
generate for ... endgenerate Generate 블록

📝 Verilog 예제

📋 일반 패턴

always @(posedge clk) if (rst) q <= 0; else q <= d; 동기 리셋 D 플립플롭
always @(posedge clk or negedge rst_n) if (!rst_n) q <= 0; else q <= d; 비동기 리셋 D FF
always @(posedge clk) if (en) q <= d; 인에이블 D FF
always @(posedge clk) cnt <= cnt + 1; 카운터
assign mux_out = sel ? a : b; 2:1 Mux
assign dec = 1 << sel; 디코더

🔗 모듈 인스턴스화

dff u1 (.clk(clk), .d(d), .q(q)); 이름 포트 연결
dff u1 (clk, d, q); 위치 연결
dff #(.WIDTH(8)) u1 (...); 파라미터 오버라이드
dff u1 (.clk, .d, .q); SV: 암시적 포트

📐 VHDL 기본

📦 Entity & Architecture

entity name is port (...); end name; Entity 선언
architecture rtl of name is ... begin ... end rtl; Architecture
port (clk : in std_logic; q : out std_logic); 포트 선언
generic (N : integer := 8); 제네릭 파라미터

🏷️ 데이터 타입

std_logic : ('0','1','X','Z',...) 단일 비트
std_logic_vector(7 downto 0) 8비트 벡터
unsigned(7 downto 0) 부호 없는 산술
signed(7 downto 0) 부호 있는 산술
integer range 0 to 255 범위가 있는 정수
type state_t is (IDLE, RUN, DONE); 열거형 타입
constant N : integer := 8; 상수

🔢 연산자

and, or, xor, not, nand, nor 논리 연산자
=, /=, <, <=, >, >= 비교
+, -, *, /, mod, rem 산술
sll, srl, sla, sra, rol, ror 시프트/회전
& 연결

🔧 VHDL 문

➡️ 동시문

y <= a and b; 신호 할당
y <= a when sel='1' else b; 조건 할당
with sel select y <= a when "00", b when others; 선택 할당

🔄 Process 블록

process (clk) begin if rising_edge(clk) then ... end if; end process; 클럭 프로세스
process (all) begin ... end process; 조합 (VHDL-2008)
if rst = '1' then ... elsif rising_edge(clk) then ... 비동기 리셋

🔀 순차문

if cond then ... elsif cond then ... else ... end if; If 문
case sel is when "00" => ... when others => ... end case; Case 문
for i in 0 to 7 loop ... end loop; For 루프
while cond loop ... end loop; While 루프

🧪 테스트벤치

📋 Verilog 테스트벤치

initial begin ... end Initial 블록
#10; 10 시간 단위 지연
@(posedge clk); 클럭 에지 대기
always #5 clk = ~clk; 클럭 생성기
$display("msg %d", var); 메시지 출력
$monitor("a=%b b=%b", a, b); 신호 모니터
$finish; 시뮬레이션 종료
$dumpfile("wave.vcd"); $dumpvars; 파형 덤프

📋 VHDL 테스트벤치

clk <= not clk after 5 ns; 클럭 생성기
wait for 10 ns; 시간 대기
wait until rising_edge(clk); 클럭 대기
report "message" severity note; 메시지 출력
assert cond report "error" severity failure; 단언

💡 팁 & 모범 사례

유용한 팁

  • 순차에는 비블로킹 (<=), 조합에는 블로킹 (=) 사용
  • 조합 always 블록에서 완전한 감도 리스트 사용
  • 래치 방지를 위해 case 문에 default 포함
  • 재사용성을 위해 매개변수 모듈 사용
  • FPGA는 동기 리셋, ASIC은 비동기 리셋 선호
  • 의미 있는 신호 이름과 복잡한 로직 주석