마이크로 프로세서 기반 dsystems 및 이후의 마이크로 컨트롤러는 여러 개별 작업을 수행하여 서로 다른 시간에 여러 가지 다른 작업을 수행 할 수있는 기능을 통해 엄청난 수준의 기능을 달성 할 수있었습니다. 1976 년에 설계된 아케이드 머신 탱크와 세계에서 두 번째 마이크로 프로세서 제어 게임 머신 인 Atari 2600에서 실행되는 게임 Combat을 비교하는 것이 유익하다고 생각합니다. 게임 플레이에 약간의 차이가 있지만 Atari 2600 하드웨어는 본질적으로 설계되었습니다 최소 비용으로 Tank와 같은 게임을 구현합니다. 다른 ROM 카트리지를 삽입하여 다른 게임을 할 수 있다는 사실은 좋은 보너스였습니다.
게임 탱크를 사용하면 두 명의 플레이어가 화면 주위에서 탱크를 운전하고 서로를 쏜다 각 탱크의 X 및 Y 위치에 대한 "슬립"카운터, 각 플레이어의 샷 X 및 Y 위치, 각 플레이어의 각도 및 각 플레이어의 샷 각도에 대한 위 / 아래 카운터, 각 플레이어의 점수에 대한 카운터, X 및 Y 래스터 빔 -위치 카운터, 그리고 그 위에 많은 제어 회로가 있습니다. ROM에서 플레이 필드 데이터를 가져 와서 표시 할 수있는 하드웨어와 ROM에서 두 플레이어의 탱크와 점수를 가져 와서 표시하는 하드웨어가 있습니다.
Atari 2600에는 2 개의 플레이어 오브젝트, 각각 2 개의 미사일 오브젝트, "볼"이라는 추가 오브젝트가 있으며, 전투에서는 사용되지 않지만 다른 게임에서는 사용됩니다. 각 플레이어 객체마다 8 비트 래치에 저장된 패턴과 각 플레이어에 대한 "지연된"8 비트 래치를 출력하는 하드웨어가있어 다른 플레이어가있을 때마다 기본 8 비트 래치에 복사됩니다. 모양이 업데이트됩니다. 또한 수평 빔 위치 카운터와 스캔 라인 당 2 회 화면에 출력되는 20 비트 재생 필드 모양 래치가 있으며 오른쪽 사본은 왼쪽의 반복 또는 반사로 나타납니다. 충돌을 감지하는 하드웨어가 있지만 그로 인한 결과는 없습니다. 하지 않습니다 물체의 수직 위치 나 래스터 빔의 수직 위치 (!)를위한 하드웨어를 가지고 있지 않으며, 점수 유지, 점수 표시, 게임 시간 등과 관련된 하드웨어도 없습니다.
2600 하드웨어를 생략하는 모든 기능은 카트리지의 소프트웨어에 의해 처리됩니다. 스캔 라인 당 한 번 래스터 빔 위치에 대해 각 객체의 수직 위치를 확인하는 것만 필요하며, 플레이어의 점수와 남은 게임 시간은 프레임 당 최대 한 개만 업데이트하면되며, 플레이어의 점수는 운동장 위의 스캔 라인에 저장됩니다 따라서 운동장 등에 사용되는 것과 동일한 하드웨어를 공유 할 수 있습니다.
FPGA에서 "Tank"와 같은 게임을 구현하는 일반적인 방법은 1976 아케이드 머신과 같은 방식으로 다른 기능을 위해 별도의 회로를 사용하는 것입니다. 이러한 접근 방식은 효과가 있지만 상당한 양의 하드웨어를 사용합니다. 마이크로 프로세서 기반 접근 방식은 교체 된 하드웨어보다 적은 회로를 포함 할 수있는 마이크로 프로세서를 추가하는 대신 하드웨어의 절반 이상을 제거 할 수 있습니다 (2600은 탱크보다 훨씬 정교한 게임을 구현할 수 있으므로 훨씬 더 많은 하드웨어가 필요함) 마이크로 프로세서를 사용하지 않은 경우).
FPGA는 많은 간단한 작업을 동시에 수행 할 수있는 장치가 필요한 경우에 탁월합니다 . 마이크로 프로세서 기반 (또는 마이크로 컨트롤러 기반) 시스템은 일반적으로 더 좋지만 수행해야 할 작업이 많지만 소량을 쉽게 사용할 수 있기 때문에 동시에 처리 할 필요가없는 경우 다수의 뚜렷한 목적을 달성하기위한 회로.