2013년 9월 3일 화요일

[예전글] FPGA를 배우기 위해 필요한 사항..

FPGA(or CPLD)를 배우기 위해서는 8051(혹은 비슷한 CPU)를 완벽하게 이해해야 한다.
위 문장에서 가장 중요한 단어는 '완벽하게'라는 단어이다.

8051을 완벽하게 이해한다는 것은 8051의 아키텍쳐, 하드웨어 구조(각각의 I/O핀들의 동작 및 하드웨어 자원-인터럽트,타이머,UART,메모리 Access기능들과 각각의 타이밍), 소프트웨어(Instruction Code의 실행 및 어셈블리언어, C언어 및 C/ASM컴파일러)및 8051 datasheet에 나온 모든 내용을 완벽하게 이해한다는 이해한다는 것이다.
위 문장에서도 가장 중요한 단어는 '완벽하게'라는 단어이다. 8051내부에는 수많은 기능이 있지만, 이들 기능은 마이크로 프로세서의 가장 기본적인 기능에 불과하고, 이 기능들은 FPGA가 대학생 수준이라면 초등학생 수준의 기능이다.(초등학교 수준을 완벽하게 모른다면, 대학생은 커녕 고등학교 과정도 소화할수 없을것이다)

FPGA는단독으로 사용되는 경우는 절대로 없다.
모든 FPGA는외부에 CPU와 연결되며, 해당 CPU가 지원하지 않는 기능을 CPU에게 추가할수 있게 해준다.
FPGA가 단독으로 사용되는 경우에도 FPGA내부에 CPU기능을 담당하는 아주 작은 CPU가 반드시 존재한다.

CPU는 자신이 필요할때 FPGA에게 DATA를 전송하거나(Write) 전달받는다(Read).
따라서 FPGA가 제 아무리 귀신잡는 재주가 있다 해도, CPU없이는 무용지물인 IC일뿐이다.

따라서 CPU가 어떻게 동작하는지 알아야, FPGA내부로직을 CPU가 원하는대로 설계할 수 있다.
CPU가 뭘하는지 모른다면, FPGA는 당연히 필요없는 IC이다.

8051을 모르는 상태에서 VHDL이나 Verilog를 배운다는것은 시간낭비일뿐이다.
자신의 VHDL/Verilog CODE에서무슨 신호가 왜/어떻게 들어오고 나가는지 모르는 상태에서 VHDL/Verilog가 무슨
필요가 있겠는가?
초등학교를 졸업하지 않고, 대학강의를 수강해봐야 시간낭비일뿐이다.

댓글 없음:

댓글 쓰기