테라와 (Tech. Life. Wine)

Tech/Self-Study

[Verilog] 8bit up/down counter 설계 (8비트 카운터)

J9 2022. 3. 12. 00:41

@ Verilog란?

대표적인 HDL (Hardware Description Language)로 디지털 시스템을 설계하고 검증할 수 있는 언어입니다.

C언어와 문법적 특성이 유사하며 FPGA용 프로그램에 많이 사용되고 있습니다.

복잡한 회로도를 HDL이란 텍스트로 간단히 표현할 수 있고 빠르게 검증 가능하므로 하드웨어, 소프트웨어 엔지니어에게  모두에게 매우 유용한 툴입니다.

@8bit counter 구현

verilog 를 시작하고 디지털 논리회로 이후 배우는게 카운터 일 것 같습니다.

up-down counter는 control signal을 받아 clock에 맞추어 counter를 증가 or 감소 시키는 회로입니다.

@ counter.v 

8bit 증감 카운터 코드입니다.

c언어 문법과 유사합니다. 다만 C언어는 sequency하게 동작한다면 verilog는 concurrency하게 동작하는게 큰 차이일 것 같습니다. 예로 always block 안의 동작들은 동시 동작하게 됩니다. 

HW회로가 구현되어 있고 각 TR들이 동시 동작하기 때문이겠죠?

 

 @test bench

위의 코드들은 입출력 값들이 정해져 있지 않은 회로만 연결되어 상태 입니다.

따라서 회로들이 동작할 수 있도록 입출력 조건을 주고 시뮬레이션 셋업을 해주는것이 test bench입니다.

@ Simulation 

ModelSIM을 사용하여 시뮬레이션한 테스트 결과입니다.

잘동작하네요.