FPGA recreation of the original Apple 1 display circuit
Go to file
Mark Feldman f3d33a9e30 Image URL fix. 2019-10-30 21:11:34 +11:00
Apple1Display_tcr.dir First code commit. 2019-10-30 21:02:30 +11:00
Docs First code commit. 2019-10-30 21:02:30 +11:00
impl1 First code commit. 2019-10-30 21:02:30 +11:00
simulation First code commit. 2019-10-30 21:02:30 +11:00
tests First code commit. 2019-10-30 21:02:30 +11:00
ttl First code commit. 2019-10-30 21:02:30 +11:00
._Real_._Math_.vhd First code commit. 2019-10-30 21:02:30 +11:00
.floorplanner.ini First code commit. 2019-10-30 21:02:30 +11:00
.gitignore First code commit. 2019-10-30 21:02:30 +11:00
.run_manager.ini First code commit. 2019-10-30 21:02:30 +11:00
.setting.ini First code commit. 2019-10-30 21:02:30 +11:00
.spread_sheet.ini First code commit. 2019-10-30 21:02:30 +11:00
.spreadsheet_view.ini First code commit. 2019-10-30 21:02:30 +11:00
Apple1Display.ldf First code commit. 2019-10-30 21:02:30 +11:00
Apple1Display1.sty First code commit. 2019-10-30 21:02:30 +11:00
Apple1Display_tcl.html First code commit. 2019-10-30 21:02:30 +11:00
CharacterRom.edn First code commit. 2019-10-30 21:02:30 +11:00
CharacterRom.ipx First code commit. 2019-10-30 21:02:30 +11:00
CharacterRom.jhd First code commit. 2019-10-30 21:02:30 +11:00
CharacterRom.lpc First code commit. 2019-10-30 21:02:30 +11:00
CharacterRom.naf First code commit. 2019-10-30 21:02:30 +11:00
CharacterRom.sort First code commit. 2019-10-30 21:02:30 +11:00
CharacterRom.srp First code commit. 2019-10-30 21:02:30 +11:00
CharacterRom.sym First code commit. 2019-10-30 21:02:30 +11:00
CharacterRom.vhd First code commit. 2019-10-30 21:02:30 +11:00
CharacterRom_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
CursorRam.edn First code commit. 2019-10-30 21:02:30 +11:00
CursorRam.ipx First code commit. 2019-10-30 21:02:30 +11:00
CursorRam.jhd First code commit. 2019-10-30 21:02:30 +11:00
CursorRam.lpc First code commit. 2019-10-30 21:02:30 +11:00
CursorRam.naf First code commit. 2019-10-30 21:02:30 +11:00
CursorRam.sort First code commit. 2019-10-30 21:02:30 +11:00
CursorRam.srp First code commit. 2019-10-30 21:02:30 +11:00
CursorRam.sym First code commit. 2019-10-30 21:02:30 +11:00
CursorRam.vhd First code commit. 2019-10-30 21:02:30 +11:00
CursorRam_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
FleaFPGA_Uno_Top.ccl First code commit. 2019-10-30 21:02:30 +11:00
README.md Image URL fix. 2019-10-30 21:11:34 +11:00
ScreenRam.edn First code commit. 2019-10-30 21:02:30 +11:00
ScreenRam.ipx First code commit. 2019-10-30 21:02:30 +11:00
ScreenRam.jhd First code commit. 2019-10-30 21:02:30 +11:00
ScreenRam.lpc First code commit. 2019-10-30 21:02:30 +11:00
ScreenRam.naf First code commit. 2019-10-30 21:02:30 +11:00
ScreenRam.sort First code commit. 2019-10-30 21:02:30 +11:00
ScreenRam.srp First code commit. 2019-10-30 21:02:30 +11:00
ScreenRam.sym First code commit. 2019-10-30 21:02:30 +11:00
ScreenRam.vhd First code commit. 2019-10-30 21:02:30 +11:00
ScreenRam_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom.edn First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom.ipx First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom.jhd First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom.lpc First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom.naf First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom.sort First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom.srp First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom.sym First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom.vhd First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom2.edn First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom2.ipx First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom2.jhd First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom2.lpc First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom2.naf First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom2.sort First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom2.srp First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom2.sym First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom2.vhd First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom2_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
ScreenRom_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg40.edn First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg40.ipx First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg40.jhd First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg40.lpc First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg40.naf First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg40.sort First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg40.srp First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg40.sym First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg40.vhd First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg40_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg1024.edn First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg1024.ipx First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg1024.jhd First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg1024.lpc First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg1024.naf First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg1024.sort First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg1024.srp First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg1024.sym First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg1024.vhd First code commit. 2019-10-30 21:02:30 +11:00
ShiftReg1024_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
UART_RX.vhd First code commit. 2019-10-30 21:02:30 +11:00
Untitled.tpf First code commit. 2019-10-30 21:02:30 +11:00
generate_core.tcl First code commit. 2019-10-30 21:02:30 +11:00
generate_ngd.tcl First code commit. 2019-10-30 21:02:30 +11:00
promote.xml First code commit. 2019-10-30 21:02:30 +11:00
readme.txt First code commit. 2019-10-30 21:02:30 +11:00
reportview.xml First code commit. 2019-10-30 21:02:30 +11:00
sig2504.edn First code commit. 2019-10-30 21:02:30 +11:00
sig2504.ipx First code commit. 2019-10-30 21:02:30 +11:00
sig2504.jhd First code commit. 2019-10-30 21:02:30 +11:00
sig2504.lpc First code commit. 2019-10-30 21:02:30 +11:00
sig2504.naf First code commit. 2019-10-30 21:02:30 +11:00
sig2504.sort First code commit. 2019-10-30 21:02:30 +11:00
sig2504.srp First code commit. 2019-10-30 21:02:30 +11:00
sig2504.sym First code commit. 2019-10-30 21:02:30 +11:00
sig2504.vhd First code commit. 2019-10-30 21:02:30 +11:00
sig2504_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
sig2513.edn First code commit. 2019-10-30 21:02:30 +11:00
sig2513.ipx First code commit. 2019-10-30 21:02:30 +11:00
sig2513.jhd First code commit. 2019-10-30 21:02:30 +11:00
sig2513.lpc First code commit. 2019-10-30 21:02:30 +11:00
sig2513.naf First code commit. 2019-10-30 21:02:30 +11:00
sig2513.sort First code commit. 2019-10-30 21:02:30 +11:00
sig2513.srp First code commit. 2019-10-30 21:02:30 +11:00
sig2513.sym First code commit. 2019-10-30 21:02:30 +11:00
sig2513.vhd First code commit. 2019-10-30 21:02:30 +11:00
sig2513_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
tb_CharacterRom_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
tb_CursorRam2_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
tb_CursorRam_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
tb_ScreenRam_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
tb_ScreenRom2_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
tb_ScreenRom_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
tb_ShiftReg40_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
tb_ShiftReg1024_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
tb_sig2504_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
tb_sig2513_tmpl.vhd First code commit. 2019-10-30 21:02:30 +11:00
test_entity.vhd First code commit. 2019-10-30 21:02:30 +11:00

README.md

Apple1Display

This project is a simple reconstruction of the original Apple 1 display circuit on an FPGA. Rather than simply mimicking the behavior it instead contains VHDL code to synthesize the original TTL chips that Wozniak used to build the circuit and then wires them together exactly as shown in the Apple 1 circuit schematic (apart from a couple of minor analog components that had to be implemented digitally). The end result is a circuit that is functionally very similar to the original hardware and can be easily studied in detail using the usual simulation tools.

Given that this is my first "proper" FPGA project you'll have to forgive it for being a bit of a mess, my focus was on learning VHDL and getting the thing to actually work. Finesse and coding standards will have to wait until my next project.

The FPGA used for this project is a FleaUNO based on the MachXO2 chipset, the project toolchain is Lattice Diamond.