2013년 9월 3일 화요일

[예전글] FPGA_CPLD 배우기 1 - 들어가면서..


FPGA_CPLD 배우기 1

들어가는 말..
Xilinx FPGA/CPLD의 사용법에 대해서 알아보겠습니다.
reference board가 있다면 좋겠지만 가능하면 reference board에 종속받지 않는 형태로
진행할 예정입니다.

Xilinx의 경우에 FPGA나 CPLD의 사용법은 거의 비슷합니다.
설계자가 FPGA와 CPLD의 차이점을 확실히 알고서 설계한다는 전제아래서
ISE tool에서 처음부터 시작하여 최종목적화일인 bit stream화일을만드는 과정은 100% 같습니다.

FPGA와 CPLD의 주된 차이점은 생성된 bit stream화일을 어떻게 chip에 configure하는가의
차이입니다.

이 강좌에서는 schematic을 위주로 설명할 예정입니다.
VHDL/Verilog는 가능한한 언급하지 않겠습니다.

필자는 작업중에 거의 schematic을 사용합니다.
FPGA경우에는 소스상에서 대략적으로 schematic을 80%정도 사용하고,
20%정도의 VHDL을 사용했던것 같습니다.
VHDL은 주로 bit수가 많아지는 블럭에 적용했습니다.
그리고 합성결과물은 약40%정도가 schematic에서오고, , 60%정도가 VHDL의 결과물인것 같습니다.
CPLD의 경우에는 거의 VHDL을 사용하지 않고 작성합니다.

필자의 주관적인 견해로는 schematic으로 먼저 로직구성법을 공부한후에
vhdl혹은 verilog을 배우는것이 좋을것 같습니다.
기호와 도면은 해당로직의 동작을 직접적으로 알기쉽고 이해하기쉽게표현할수 있으며,
실제 chip 내부의 자원의 할당내용도 확인할수 있습니다.
그리고계층적인 구조에서도 동작내용을 파악하기 쉽게 해주며, 디버깅에서도 해당위치를
빠르게 파악할수 있습니다.
또한 schematic상의 로직처리를 이해한다면, VHDL상의 문법이나 구문들이 가지는
의미들을 아주 쉽게 알수 있습니다.


이 강좌에서는 simulator는 사용하지 않습니다.
사실은 필자는 simulator를 거의 사용할 줄 모릅니다.

필자는 주로 영상처리분야에 CPLD와 FPGA를 사용했었는데,
출력되어보여지는 화면과 오실로스코프를 사용하여 디버깅을 하였습니다.

필자가 잘못생각하는 것일 수도 있는데,
필자는 FPGA/CPLD에 simulator가 왜 필요한지에 대한 의문점을 가지고 있습니다.
FPGA/CPLD는바로 실행결과를 확인할수 있고, 실행결과가 설계의도와 다르다면,
즉시 수정하여 다시 실행할 수 있는데, 왜 simulation을 해야하는지 모르겠습니다.

앞으로 필요한 사항은 그때 그때 언급하며 강좌를 진행하겠습니다.

댓글 없음:

댓글 쓰기