Between 1976 through to 1992, Apple used 6502 processors regularly in most of their main computer designs, as well as in peripheral boards, such as the Workstation card, floppy disk drives (UniDISK) and various controllers. Shown here are some of the more popular hard processors Apple used during manufacture of the II series and its peripherals.
The 65C02 is an enhanced 6502, with backwards compatibility and additional instructions. The C was also implemented with CMOS technology, which brought lower power and faster speed (up to 14MHZ) to the device. The 65C02 is still commonly used today in both hard and soft core versions.
The 65C816 was completed and introduced in 1984. It was designed by Bill Mensch of WDC, and the design laid out by his sister Kathryn. The 65C816 is a powerful 14MHz 16 bit CPU that has backwards compatibility with the 65C02, making it an ideal choice to provide major performance enhancements to existing 6502 based designs.
Various Hard and Soft core processors used in Apple Systems
The 6502 was developed in 1975 at MOS technology by a group of seven or so design engineers, headed up by a young talented engineer by the name of Bill Mensch. The 6502 design was a low cost 1Mhz CPU and originally packaged in a 40 pin DIP package. It had been designed in such a way that new opcodes could be added to the instruction matrix with little effort, which later resulted in the 65C02 and the 65C816. GTE and NCR both licensed the 6502 design from MOS, which later evolved into WDC. Other manufacturers such as UMC and Mitsubishi also have 6502 compatible CPU's and MPU's. The 6502 series is still widely in use today, and is also considered a popular soft core processor for new FPGA based designs.
There are several 6502 VHDL and Verilog based 6502 CPU's written for FPGA's. There are also several commercial cores as well, but our focus will be on those CPU cores that are based on open source.
Although not as popular as 6502 cores, the preferred 65C02 has a significant presence in many 6502 based designs. The 65C02 is currently available in several different soft core versions, freely available for download.
To date, the author is unaware of any functional GPL 65C816 soft core processor for download.
The Zilog Z80 processor was introduced in 1976. It was, and still is, a very popular processor as both a fixed silicon device and as a soft core processor within new FPGA designs. With a plethora of machines utilising the Z80 work horse CPU, one of the world's largest software libraries and resources exists for this device. The Apple II series, including the Apple III, were often configured with the popular Z80 plug-in card option, commonly known as the softcard. The Apple II Z80 card represents the very first hardware product Microsoft ever made. The popularity of the Z80 with the Apple II was so high, that even Apple II clones (such as the Unitron 2200) came with both the 6502 and Z80 as part of the main board, something Apple never did.
The Z80 is also included in the soft Apple concept, implemented in the form of a Microsoft Softcard compatible Verilog module.
The Z80/Z80A is a popular softcore processor and is available from several sources for download.
Soft Core: Developing the 65C816 softcore VHDL CPU. By bringing the hard core processor into the FPGA development environment, the engineer is able to compare performance and functionality of the real processor against the soft core copy currently in development.
Processors have been in development since the 1960's with several various iterations being designed and produced, but most consisted of large modules and boards and were referred to as a system, or commonly, a microcomputer. It wasn't until 1971 that the market was introduced to Intel's microsized refined 4 bit processor semiconductor device, the i4004. The design team for the device, which was packaged in a small ceramic case with 28 pins, was headed up by Federico Faggin. The i4004 became a popular success with various customers who soon developed and demonstrated amazing uses for the programmable device. Many previous designs, based on modules, transistors and general logic, were being upstaged by the capabilities of competing products using the new miniature processors, which soon resulted in an industry transition getting underway, realigning itself with the Central Processing Unit or CPU, as a solution.
Over the next 30 years, a plethora of microprocessors were developed; available in different types of packages, speed, voltages, bits and functions. The microprocessor race had begun.
Although memory maker Intel had released their first device, the i4004, with great success, they soon followed up with the release of the 8 bit version, the i8008. It wasn't long before other processors from other companies began to be released that out-performed these first generation devices. Motorola, after a two year development cycle, released the 6800 in 1974. A powerful compact device that enjoyed quick market uptake for its easy to implement in designs. In 1975 MOS released their 6502 processor (after a turbulent start to entering the market with a Motorola 6800 copy, which MOS willingly withdrew). The 6502 had the timely release, at the right price and performance, to attract Steve Wozniak, who was looking for a cost effective replacement to the expensive 6800 device for his up and coming design, the soon to be Apple I.
In 1976, Intel introduced an updated i8080 device, the 8085. In the same year, Texas Instruments (TI) entered the market with the TMS9900, and industry legend, Zilog, released their Z80.
From here, United States companies Intel, Motorola, MOS, IBM and TI blazed their way into processor history defining the defacto processing standards for super computers and personal computers alike, whilst competing with each other through device updates and company buy outs. In 1978, Intel released the soon to be industry classic, the i8086, and the cost effective version, the i8088, in 1979. IBM entered the market in 1979 as well, with their RISC device, the 801. Zilog and Motorola, in the same year, also released their new and improved devices, both destined to be industry legacy devices, the Z8000 and the MC68000 respectively.
From there, up until current times, most new processors were improved versions or derivatives of these devices. Low cost, low power, wider bits, smaller footprints and extra registers were just some of the key improvements that compatible devices went through to attract and enable new markets. Most devices had always been sold as tangible items, shipped in tubes, trays and reels suitable for standard assembly processes around the world. It wasn't until the dawn of early programmable devices, such as Xilinx LCA's (Logic Cell Array), that led to the creation of high density FPGA's (Field Programmable Gate Array), that an alternative solution to processors could be realised. In 2001, the soft processor was born. Living inside the fabric of a modern FPGA, downloaded from the internet in only a few seconds, the cost effective soft CPU performed all the tasks and functions of their tangible counterpart processors, but for a fraction of the cost. The potential end to a long day in the market place for hard processors was being predicted, and the sun was starting to set on fixed CPU devices.
Hard Core: Bringing hard core processors into designs. By using the AIINBII Adaptor board populated with a hard processor and utilizing the onboard Spartan 3AN FPGA for general logic, high performance cost effective solutions such as this 14MHZ 65C816 accelerator can be realised for real Apple II's.
Co Processor Development: The ASIC Adaptor board being used for development of a TITAN 6809 Co Processor board for real Apple II's. The second ASIC Adaptor is being used to confirm the Co Processor card operates correctly with a real hard 65C816 processor, simulating the performance when used in an Apple IIgs.
The soft processor coincided with several other technologies maturing around the same time enabling the highly cost effective soft core processor concept to be realised. The key elements for the soft core processor were high density FPGA logic fabric, the eventuation of high level programming development tools and the development environments required to code complex processors, and low cost and availability of the FPGA devices in the market place. The first soft processor, the Nois core, was released by the San Jose company, Altera in 2001.
The soft processor is typically defined using a high level language, usually either Verilog or VHDL, before being synthesized into a digital image prior to being downloaded into the device, which defines the logic build inside the FPGA. All elements of the processor are included in the soft design. The ALU (Arithmetic Logic Unit) bus controllers, memory controllers, interrupt controllers and caches are all included in the synthesized bit stream. The major advantage of the soft CPU concept is flexibility and low cost reuse plus the added ease of building multiprocessor systems. The soft processor-based hardware solution, using an FPGA in the the design, is able to be updated, improved, modified or debugged without any physical hardware changes. The only restrictions are governed by the amount of logic fabric and memory in your FPGA device, and the maximum speed your FPGA is capable of operating at.
Many soft processors are available for most FPGA devices. Legacy microprocessors such as 6809, 6502, Z80 and 8088 are typical processors available as free softcores. New custom processors such as MicroBlaze, PicoBlaze, TSK3000, ARM Cortex and the legacy Nois and Nois II are also available from FPGA vendors or third party providers. Other "high performance" open cores are available freely as well, such as the OpenSPARC T1 by Sun Microsystems, OpenRISC and LEON3. The number of readily available "downloadable" soft cores are currently on the increase, and their performance and speed through optimization is constantly being improved. With all these key characteristics showing signs of maturing, and the supporting tools becoming readily available, the concept of a "fully downloadable" system, or PC, is fast moving through its infancy. There is even one site that allows you to download a fully configured and expanded Apple IIe, in the form of an FPGA bit stream.
Soft processor support: Apple's 342-0170-A 6502 PAL based memory refresh and timing generator. Using the ASIC adaptor, this support IC is analysed against the Verilog version which will eventually be included with the soft 6502 processor section of the design.
Apple 3.5" Floppy Disk Controller Development: Booting the soft core processor (6502) direct from the original ROM during debugging. Once complete the ROM image is automatically loaded into BRAM (Block RAM) of ther FPGA in the final design automatically.
With speed and density of FPGA devices increasing regularly, the development of VHDL and Verilog based soft core processors is fast becoming the preferred option when including processors in general product designs. New processors with advanced features and wide interfaces are available from both the public domain as well as commercial suppliers and websites. The electronics design world is fast moving towards the "download a chip model", rather than using discreet logic or VLSI devices. For many developers, earlier processors such as the MOS 6502, Zilog Z80, Motorola 6809 and 68000 are still highly attractive processor options for new designs utilising FPGAs as a product's core. These legacy processors in the form of a soft core fit well inside most FPGA fabric, and have well known instructions sets. Their behaviour is also well understood by many engineers currently performing product design today. The devices, which have been available for many years, have large and comprehensive existing software libraries and development support, which includes known good existing platforms and development tools such as debuggers, compilers and diagnostics. This all makes for a fast and reliable product development cycle.
When capturing an existing design, such as the Apple IIe, the process of completing the design will inevitably include hunting out various bugs in both hardware code as well as the software code, such as the systems BIOS or firmware. Unlike hard processors, where the chip itself can be excluded as being responsible for not operating correctly, the FPGA based design opens up all elements of the design as being potential bug hot spots, including the code making up the processor itself. In order to aid the debugging of the processor code, and to exonerate the actual soft core processor as being potentially buggy, the PB04 peripheral board can be used to couple the soft core processor back into the original hardware platform for execution analysis and comparison. This allows the local FPGA on the Nanoboard to monitor and capture, cycle by cycle, the interactions between the known good existing hardware platform, and the new proposed soft core processor that replaces the original hard core device, exposing any irregularities, which can cause the design to not work correctly.
Gauging the performance of a soft core processor. The 65C02 Verilog processor, executing inside the FPGA on the NB2 is coupled to the hardware platform of an Apple IIe via a ribbon cable from the IIe's processor socket to PB04.
Full Analysis. The Apple diagnostics software exhaustively analyses the performance and suitability of the softcore processor to ensure its performance is as good as the original hard core processor that the soft core is replacing.
The 65C802 is in essence a 65C816 in a physical and initial 65C02 compatible format. The 65C802, introduced in 1989 by WDC, was intended to allow a significant market already using the 65C02 to upgrade to a "drop-in" pin compatible 65C802 device, providing the user with the performance of the new 65C816. The device was designed with all the capability and compatibility of a 65C816 (with exception to the external bank switch addressing modes, which are not physically available). On power up, the 65C802 would be a 65C02 compatible device. If 65C802 functions or 16 bit commands were used, the device would provide greater performance through wider internal bus executions and reduced cycle counts to perform similar tasks as the original 65C02 it replaced. The concept was sound, however two key issues ended up severely affecting the market uptake of the device. The first was that the device was never considered for new platforms. If a new system were being built, the 65C816 for many reasons was the superior choice over the 65C802. The second was endorsement. If a company failed to ship their equipment with the 65C802 (say in Apple's case, with the IIe or IIc), then software makers would not put in the extra effort to code for the 65C802, as only a small portion of owners would go to the extra effort to void their warranty and upgrade the processor themselves. Apple never endorsed the 65C802 processor, instead they went with the 65C816 in their new IIgs and by-passed the 802 option all together. The 65C802 is the rarest of the high performance 65xx series processors.