구현기술(2)

chelseey·2025년 4월 23일

멀티플렉서 논리회로의 Verilog 코드

module example1 (x1, x2, s, f);	//module 회로 기능 정의
  input  x1, x2, s;
  output f;
  not (k, s);
  and (g, k, x1);
  and (h, s, x2);
  or (f, g, h);
  
endmodule	// 선언종료

논리회로의 기능적 명시(연속할당) : 규모가 큰 회로

assign 문: 데이터 흐름 모델링

module example3 (x1, x2, s, f);
  input  x1, x2, s;
  output f;
  assign f = (~s & x1) | (s & x2);

endmodule

논리회로의 기능적 명시(순차문, 조건문)

module example5 (x1, x2, s, f);
  input  x1, x2, s;
  output f;
  reg f;
  
  always @(x1 or x2 or s)
  if (s == 0)
    f = x1;
  else
    f = x2;

endmodule

always 문 : 행위적(behavioral) 수준에서 논리 기능을 서술

→ 간략화 가능

module example5(input x1,x2,s,output reg f);

	always @(x1,x2,s)
  		if (s == 0)
    		f <= x1;    // 논리 대입이 아닌 non-blocking 대입
  		else
    		f <= x2;
end

4입력 회로를 위한 Verilog 코드

논리회로의 기능적 명시(연속할당) : 규모가 큰 회로

assign 문 : 연속 할당(continuous assignment)

컴퓨터 공학과가 알아야 꼭 알아야 할 전자공학

FPGA 보드를 이용하여 논리회로 설계 및 제작

하드웨어를 코드(Verilog/VHDL)로 기술하고,
그 코드를 FPGA(tool)에게 내려줘서 보드에 즉시 논리회로를 구현

논리회로의 제작: 트랜지스터(반도체)를 이용

FPGA 내부의 각 논리 블록은 수십억 개의 트랜지스터 스위치로 이루어져 있음

트랜지스터의 스위칭: 전압을 조정

트랜지스터 하나하나는 스위치 역할을 함

전압 레벨을 이용한 논리 값의 표현(FPGA)

트랜지스터 스위칭

FPGA 내부의 각 논리 소자는 트랜지스터 스위치로 이루어져 있음
트랜지스터의 게이트 단자(gate)에 걸리는 전압을 조절(switching)해서 AND·OR·NOT 등을 구현

트랜지스터 스위치(BJT/FET)

  • 입력 x = “low” (0) 일 때: 스위치가 열린(OFF) 상태
  • 입력 x = “high” (1) 일 때: 스위치가 닫힌(ON) 상태

트랜지스터 스위치

스위치 동작 모델

• Closed switch when VG=VDDV_G = V_{DD}

Gate에 충분히 높은 전압 VDDV_{DD}이 걸리면,
Drain→Source 사이에 전도 채널이 형성되어 전류가 흐름
→ 스위치가 닫힌(ON) 상태

• Open switch when VG=0V_G=0
Gate에 0 V(논리 0)가 걸리면,
채널이 닫혀 전류가 흐르지 않음
→ 스위치가 열린(OFF) 상태

NAND 게이트의 구현

x₁=1 & x₂=1일 때 둘 다 ON일 때
GND(0V)로 f 노드를 강하게 끌어당김 → 논리 0

NOR 게이트의 구현

어느 하나라도 ON(xi=1x_i=1) 상태이면
Drain→Source 경로가 닫히면서 f 노드를 GND로 끌어내림 → 논리 0

AND gate

OR gate

0개의 댓글