본문 바로가기

반응형

실전! Verilog HDL RTL Design

(20)
[Verilog HDL] 4. Adder 설계 앞서 module장에서 adder module의 간략한 형태를 살펴 보았다. adder는 2개의 8bit 입력 A,B를 받아 더해서 8bit 출력 Y로 출력한다. 실제 더하기 기능을 수행 하는 회로를 verilog로 coding 해 보자. verilog에서 더하기 기능에 해당하는 연산자는 +이다. 이 외에 산술 연산을 수행하는 연산자는 C언어와 동일하다. 일단 출력 Y로 결과 값을 출력하기 위하여 출력 값을 저장하는 변수를 선언하여야 한다. 지금 만드는 회로는 cominational logic으로 가정하고 설계한다. 이 때 더하기 결과 값을 sum이라는 변수에 저장한다고 하면 sum이란 변수의 data type을 wire나 reg로 선언할 수 있다. 첫번재로 wire로 선언할 경우를 생각해 보자. 변수 ..
[Verilog HDL] 3. Combinational Logic/Sequential Logic 1. Combinational Logic 입력 신호가 변하면 출력 신호가 바로 변하는 논리 회로이다. 실제 물리적으로는 게이트 지연 시간과 net의 지연 시간이 포함된 지연 시간 이후에 출력 신호가 변하게 된다. 일반적으로 NAND, NOR등 논리 게이트의 조합 회로를 말한다. 아래는 cominational logic의 예이다. A,B,C 입력을 통과한 신호는 각 논리 게이트 조합으로 구성된 회로를 통과하여 Y로 출력된다. 출력에서 입력으로 되돌아 가는 피드백 path가 없고 어떤 상태를 저장하지도 않는다. 단지 입력의 변화만이 출력의 변화를 결정한다. 2. Sequential Logic 현재 상태 값을 저장해두고 그 상태 값이 다시 입력으로 피드백 되어 다음 상태와 출력을 결정하는 회로이다. 즉 저장 ..
[Verilog HDL] 2. Module module은 하드웨어 기능을 구현하는 기본 단위이다. module은 입력 port를 통하여 입력 신호를 받고 이를 처리하여 출력 port를 통하여 module 외부로 출력한다. 아래는 기본적인 module의 구조이다. module adder // adder는 module의 이름 ( input wire [7:0] A, // 8bit 입력 port input wire [7:0] B, // 8bit 입력 port output wire [7:0] Y // 8bit 출력 port ); /* ..... 기능 구현 부분 */ endmodule // module의 마지막 'module'이라는 keyword 뒤에는 항상 module name이 와야 한다. 그리고 괄호 안에 입/출력 port를 정의한다. 여기에 입/출력..
[Verilog HDL] 1. Verilog란? Verilog는 HDL(Hardware Description Language)의 하나로 디지털 논리 회로를 설계 하기 위한 언어이다. 설계라고 했지만 기능 검증을 위한 테스트 벤치 제작 등 검증 용도로도 사용된다. 문법 구조는 C언어와 매우 유사하다. Verilog를 이용하여 디지털 논리 설계를 하여 반도체 chip으로 만드는 과정은 기본적으로 다음과 같다. module 설계 testbenchh 설계 simulation synthesis (합성) placement & layout wafer mask 제작 ASIC chip 제작 일반적으로 chip 제작 과정에서 설계와 기능 검증 까지 설계 혹은 front-end 단계라고 부르고 그 이후 단은 back-end단계라고 부른다. (다른 기준으로 나누는 경우도 ..

반응형