//모듈명 및 외부 신호 이름 선언.
module COUNT_8BIT(
RESETN, CLK,
COUNT_OUT
)
//모듈 외부 신호의 in,out을 설정.
input RESETN;
input CLK;
output[7:0] COUNT_OUT; // [7:0]은 8bit를 뜻함.
//reg및 wire 설정. COUNT_OUT을 reg로 선언함으로써 데이터를 저장하도록 하였음.
reg[7:0] COUNT_OUT;
//수행.
always@(posedge CLK) //항상, 클락의 rising edge(0->1) 에서 동작.
begin
if(~RESETN) //RESETN은 RESET의 NOT을 뜻하는 이름. 즉, 0이들어오면 1이 되어 리셋 수행.
COUNT_OUT <= 8'b00000000; // 8'b 는 8개의 2진수를 뜻함. 6bit는 6'b
else
COUNT_OUT <= COUNT_OUT +1; //리셋 상태가 아니라면 COUNT_OUT은 rising edge 때마다 1 증가.
end
endmodule
코드 분석.
위 코드를 보고 유추가 가능해야합니다.
1. 위 모듈명은 COUNT_8BIT이며, 외부 신호로는 RESETN, CLK, COUNT_OUT이 있다.
2. 외부신호 RESETN, CLK은 외부입력신호를 받아오는 input이며, COUNT_OUT은 8bit OUT으로써 하나의 신호가 port를 8개 사용한다. (예를들면 ATmega128의 PORTA처럼 핀이 8개 나왔다고 생각하면 됨..)
3. COUNT_OUT은 reg[7:0]로 선언하여 8bit 데이터 형식으로 저장할 것이다.
4. 이 모듈은 CLK가 Rising edge일때마다 항상 동작하며, 리셋신호가 들어올경우 COUNT_OUT을 0으로 초기화할것이다. 리셋신호가 들어오지 않는 평상시에는 COUNT_OUT을 1씩 증가시킨다. COUNT_OUT은 8bit이므로 0~255(8'b11111111)까지 증가한다.
5. 즉, 이 모듈은 Rising Edge때마다 output인 COUNT_OUT이 0~255까지 증가하는것을 반복하는 모듈이다.
'전자 > FPGA' 카테고리의 다른 글
Quartus II USB-Blaster 드라이버 설치방법 (0) | 2015.06.02 |
---|