반응형
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를 정의한다. 여기에 입/출력 port의 방향만 설정하고 괄호 이후에 port의 bit 수나 type을 정의하는 방법이 있으나 한꺼번에 정의하는 것이 더 편하고 간단하다.
입출력 port 정의는 아래의 형식을 따른다.
<in/out keyword> <data type> <bit range> <name>
- in/out keyword
- data type
- bit range
- name
port 선언 예:
input wire [15:0] AAA, // 입력 port는 대부분 wire type으로 선언한다.
output reg [31:0] BBB, // 출력 port가 reg type인 경우 begin/end block문 안에서 바로 대입할 수 있다.
output wire [3:0] YYY, // 출력 type이 wire일 경우 assign문을 사용하여 대입한다.
반응형
'실전! Verilog HDL RTL Design' 카테고리의 다른 글
[Verilog HDL] 6. Simulation (0) | 2022.03.28 |
---|---|
[Verilog HDL] 5. Testbench (0) | 2022.03.28 |
[Verilog HDL] 4. Adder 설계 (0) | 2022.03.25 |
[Verilog HDL] 3. Combinational Logic/Sequential Logic (0) | 2022.03.25 |
[Verilog HDL] 1. Verilog란? (1) | 2022.03.25 |