# WDC 65C02

El microprocessador 65C02 del Western Design Center (WDC) és una versió CMOS millorada de la popular tecnologia MOS de 8 bits basada en nMOS 6502. Utilitza menys energia que el 6502 original, soluciona diversos problemes i afegeix instruccions noves. El consum d'energia és de l'ordre de 10 a 20 vegades menor que el 6502 original que funciona a la mateixa velocitat; el seu consum d'energia reduït l'ha fet útil en funcions d'ordinador portàtil i sistemes de microcontroladors industrials. El 65C02 també s'ha utilitzat en alguns ordinadors domèstics, així com en aplicacions incrustades, inclosos dispositius implantats de grau mèdic.
El desenvolupament del WDC 65C02 va començar el 1981 amb mostres llançades a principis de 1983. El 65C02 es va llançar oficialment poc després. WDC va llicenciar el disseny a Synertek, NCR, GTE Microcircuits i Rockwell Semiconductor. L'interès principal de Rockwell era el mercat integrat i va demanar que s'afegís diverses ordres noves per ajudar en aquest paper. Més tard es van copiar de nou a la versió de base, moment en què WDC va afegir dues ordres noves pròpies per crear el W65C02. Més tard, Sanyo també va llicenciar el disseny, i Seiko Epson va produir una versió modificada més com l'HuC6280.
Les primeres versions utilitzaven embalatge DIP de 40 pins i estaven disponibles en 1, 2 i 4 MHz, que coincideixen amb les velocitats de les versions nMOS originals. Les versions posteriors es van produir en paquets PLCC i QFP, així com PDIP, i amb classificacions de velocitat de rellotge molt més altes. La versió actual de WDC, el W65C02S-14 té un nucli totalment estàtic i funciona oficialment a velocitats de fins a 14 MHz quan s'alimenta a 5 volts.

## Introducció i característiques

El 65C02 és un microprocessador de 8 bits de propòsit general de baix cost (registres de 8 bits i bus de dades) amb un comptador de programes de 16 bits i un bus d'adreces. El conjunt de registres és petit, amb un únic acumulador de 8 bits (A), dos registres d'índex de 8 bits (X i Y), un registre d'estat de 8 bits (P) i un comptador de programes (PC) de 16 bits. A més de l'acumulador únic, els primers 256 bytes de RAM, la "pàgina zero" ($0000 a $00FF), permeten un accés més ràpid mitjançant modes d'adreçament que utilitzen una adreça de memòria de 8 bits en lloc d'una adreça de 16 bits. La pila es troba als 256 bytes següents, pàgina 1 (de $0100 a $01FF) i no es pot moure ni ampliar. La pila creix cap enrere amb el punter de pila (S) començant a $01FF i disminuint a mesura que la pila creix. Té un conjunt d'instruccions de longitud variable, que varia entre un i tres bytes per instrucció.
L'arquitectura bàsica del 65C02 és idèntica a la 6502 original i es pot considerar una implementació de baix consum d'aquest disseny. A l'1 MHz, la velocitat més popular per al 6502 original, el 65C02 només requereix 20 mW, mentre que l'original utilitza 450 mW, una reducció de més de vint vegades. El nucli optimitzat manualment i l'ús de baixa potència pretén fer que el 65C02 sigui adequat per als dissenys de sistema en xip (SoC) de baixa potència.
Hi ha disponible un model de descripció de maquinari Verilog per dissenyar el nucli W65C02S en un circuit integrat específic d'aplicació (ASIC) o una matriu de porta programable en camp (FPGA). Com és habitual a la indústria dels semiconductors, WDC ofereix un sistema de desenvolupament, que inclou una placa de desenvolupament, un emulador en circuit (ICE) i un sistema de desenvolupament de programari.
El W65C02S–14 és la versió de producció el 2023, i està disponible en paquets PDIP, PLCC i QFP. La velocitat màxima de rellotge de Ø2 (primària) admesa oficialment és 14 MHz quan funciona a 5 volts, indicat amb el sufix del número de part –14 (els aficionats han desenvolupat sistemes homebrew 65C02 que funcionen més ràpid que la qualificació oficial). La designació "S" indica que la peça té un nucli totalment estàtic, una característica que permet que Ø2 es ralenteixi o s'aturi completament en estat alt o baix sense pèrdua de dades. Els microprocessadors típics no implementats a CMOS tenen nuclis dinàmics i perdran el contingut del seu registre intern (i, per tant, s'estavellaran) si no es fan un cronometratge contínuament a una velocitat entre alguns valors mínims i màxims especificats.

### Característiques lògiques generals

* Bus de dades de 8 bits
* Bus d'adreces de 16 bits (que proporciona un espai d'adreces de 64 KB)
* Unitat lògica aritmètica de 8 bits (ALU)
* Registres de processador de 8 bits:
** acumulador
** punter de pila
** registres d'índex
** registre d'estat
* Comptador de programes de 16 bits
* 69 instruccions, implementades per 212 codis d'operació
* 16 modes d'adreçament, inclòs l'adreçament a la pàgina zero

### Característiques elèctriques

* Tensió d'alimentació especificada entre 1,71 V i 5,25 V
* Consum de corrent (nucli) de 0,15 i 1,5 mA per MHz a 1,89 V i 5,25 V respectivament
* Conjunt d'instruccions de longitud variable, que permet l'optimització de la mida del codi sobre processadors de conjunt d'instruccions de longitud fixa, es tradueix en un estalvi d'energia
* Els circuits totalment estàtics permeten aturar el rellotge per estalviar energia

## Referències

* 1 2 3 Wagner, 1983, p. 204.
* ↑ , 6-1983, p. 199.
* ↑ Koehn, Philipp. «6502 Stack» (en anglès), 02-03-2018.
* ↑ Taylor i Watford, 1984, p. 174.
* ↑ «6502 CPU Projects in HDL (for FPGA)» (en anglès).
* ↑ «W65C02DB Developer Board».
* ↑ «W65C02S-14» (en anglès).