반응형
Digital Circuit/HDL(Verilog, VHDL)2025. 3. 1. 22:53[Verilog] assign, initial, always문의 차이

안녕하세요. Verilog는 하드웨어 설계 언어(HDL)로, 신호의 흐름을 정의하는 여러 가지 문법이 존재합니다. 그중에서 assign, initial, always는 매우 중요한 역할을 합니다.하지만 각각의 목적과 동작 방식이 다르므로, 올바르게 이해하고 사용해야 합니다.  ※1. assign 문 – 조합 논리 회로(Combinational Logic) 설계▶1. 정의 assign 문은 연속할당문(Continuous Assignment)을 정의하며,wire 타입의 변수에만 사용됩니다.입력이 변하면 즉시 출력도 변합니다. ▶2. 특징 ✔ 항상 활성화되어 입력 신호가 변하면 즉시 반영됨✔ wire 타입 변수만 사용 가능 (reg 타입 불가)✔ 조합 논리(Combinational Logic) 구현에 적합✔ ..

[Verilog]  "="(blocking)과 "<="(non-blocking) 할당의 차이
Digital Circuit/HDL(Verilog, VHDL)2025. 2. 25. 00:01[Verilog] "="(blocking)과 "<="(non-blocking) 할당의 차이

안녕하세요.Verilog에서는 값을 할당할 때 =(blocking assignment)과 이 둘의 차이를 잘 이해하지 못하면 예상치 못한 버그가 발생할 수 있으므로, 개념과 차이점을 확실히 정리해보겠습니다.※1. = (Blocking Assignment) 🔹 순차적으로 실행됨 (이전 연산이 완료된 후 다음 연산 실행)🔹 조합 논리 또는 초기화에 사용 always @(posedge clk) begin a = b; // b의 값을 a에 즉시 할당 c = a; // a의 현재 값을 c에 즉시 할당end [ 실행 과정 ]b의 값이 a에 복사됨a가 변경된 후 c = a;가 실행됨따라서, c는 변경된 a 값을 받음➡ 즉, =는 한 줄씩 순차적으로 실행되기 때문에 예상한 값과 다를 수 있음   ※2..

반응형
image