안녕하세요. Verilog는 하드웨어 설계 언어(HDL)로, 신호의 흐름을 정의하는 여러 가지 문법이 존재합니다. 그중에서 assign, initial, always는 매우 중요한 역할을 합니다.하지만 각각의 목적과 동작 방식이 다르므로, 올바르게 이해하고 사용해야 합니다. ※1. assign 문 – 조합 논리 회로(Combinational Logic) 설계▶1. 정의 assign 문은 연속할당문(Continuous Assignment)을 정의하며,wire 타입의 변수에만 사용됩니다.입력이 변하면 즉시 출력도 변합니다. ▶2. 특징 ✔ 항상 활성화되어 입력 신호가 변하면 즉시 반영됨✔ wire 타입 변수만 사용 가능 (reg 타입 불가)✔ 조합 논리(Combinational Logic) 구현에 적합✔ ..
![[Verilog] "="(blocking)과 "<="(non-blocking) 할당의 차이](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmcRTA%2FbtsMsO0sdLk%2FBlJkDRkiPG2g8YapsGNN01%2Fimg.png)
안녕하세요.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..
![[디지털 공학(12)] NAND와 NOR 게이트의 범용성](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI3fqk%2FbtsHdevnEqy%2Fdo6t1Do74Su1et1bjaqS5k%2Fimg.png)
안녕하세요.이번 포스트에서는 FPGA에서 프로그래밍된 회로를 형성 시킬때 NAND와 NOR만을 사용하고 나머지 논리에 대한 회로는 사용하지 않고 NAND와 NOR로 해당 논리를 만들어 사용하게 됩니다. 어떻게 이것이 가능한지에 대하여 기술하겠습니다.이번시간에 작성할 내용에는 지난 포스트에서 기술한 논리연산의 대치와 관련된 내용이 있습니다. 본문에 이해가 어려울시 아래 링크 읽어보세요~https://semicircuit.tistory.com/29 [디지털 공학(11)] 논리회로의 해석(조합논리회로, 순서논리회로)안녕하세요.이번 시간에는 조합 논리회로와 순서 논리회로를 비교하고 드모르간 또는 불 대수 연산으로부터 대치(동일하다고 표현) 가능한 논리연산에 대해 작성하겠습니다. ※1. 논리회로의semicirc..