전자/FPGA

Verilog HDL 문법.

별빛의온기 2015. 6. 16. 11:40
반응형

 //모듈명 및 외부 신호 이름 선언. 

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