⚑ Sangsakala Proxy 🏠 Home
Skip to content

About

All the files related to my 8-Bit computer in an FPGA build.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Repository files navigation

8Bit-Computer

8-bit computer in an FPGA hardware description-min

Here you can find all the files related to my 8-Bit computer in an FPGA build:

  • Quartus design files for the 8-Bit computer
  • Software for the Arduino programmer
  • Software for the Arduino binary to decimal display
  • PC software for controlling the Arduino Programmer(see "AsmIDE" folder for source code, see "AsmIDE Release" for the precompiled app)
  • Update: I have ported AsmIDE into a Blazor web app, including a custom compiler I made, which you can access here: AsmIDE + MyLang Compiler

For more information about the project, see my blog posts: 8-Bit Computer In An FPGA

Note:

The code and electronics circuitry in this project might not always follow/adhere to all the best engineering practices, design patterns and principles.
Some stuff was just quickly prototyped and put together to get the job done. 
For example, the AsmIDE isn't using a responsive layout(as I didn't see the need for it), ...


Update


Old Windows App

8bit FPGA computer assembly IDE


New Web App + Complier

I have ported AsmIDE into a Blazor web app, including a custom compiler I made, which you can access here: AsmIDE + MyLang Compiler

AsmIDE + MyLang Compiler


AST visualization and serial programmer.

AsmIDE + MyLang Compiler AST Visualization



File Structure

8Bit-Computer/
β”œβ”€β”€ 8 bit computer/                       # The computer itself: a Quartus project for a Cyclone IV E FPGA
β”‚   β”œβ”€β”€ 8bitComputer.qpf                  # Quartus project file, open this one
β”‚   β”œβ”€β”€ 8bitComputer.bdf                  # Top-level schematic that wires all the parts together
β”‚   β”œβ”€β”€ ALU.bdf, Adder.bdf                # 8-bit adder/subtractor
β”‚   β”œβ”€β”€ Register.bdf                      # 8-bit register
β”‚   β”œβ”€β”€ PC.bdf                            # 4-bit program counter
β”‚   β”œβ”€β”€ RAM.bdf, RAMCells.bdf             # 16 bytes of RAM
β”‚   β”œβ”€β”€ DFF_*, JK_flip_flop*              # Flip-flops (schematics and Verilog)
β”‚   β”œβ”€β”€ 8bitComputerRegisterTest.bdf      # Schematic for testing a register
β”‚   β”œβ”€β”€ pll.v, pll.qip, ...               # Clock PLL, made with Quartus's MegaWizard
β”‚   β”œβ”€β”€ *.bsf                             # Symbols of the parts, used in the schematics
β”‚   β”œβ”€β”€ 8bitComputer.qsf                  # Device and pin settings
β”‚   β”œβ”€β”€ output_files/                     # Compilation reports and the pin list
β”‚   └── db/, incremental_db/              # Quartus's build database
β”‚
β”œβ”€β”€ _8BitComputerProgrammer/              # Arduino programmer: gets a program over USB serial, writes it into
β”‚                                         # the computer's RAM and runs, stops, steps and resets the computer
β”œβ”€β”€ SimpleArduino8BitComputerProgrammer/  # Simpler Arduino programmer: writes a program typed into the sketch
β”œβ”€β”€ BinaryDisplay/                        # Arduino + OLED display: shows the output register in decimal
β”‚
β”œβ”€β”€ AsmIDE/                               # Old Windows app (WPF): assembly editor that sends programs to the
β”‚   β”‚                                     # Arduino programmer
β”‚   β”œβ”€β”€ MainWindow.xaml(.cs)              # The whole app
β”‚   └── assets/                           # Toolbar icons
β”œβ”€β”€ AsmIDE Release.7z                     # AsmIDE, compiled and ready to run
β”‚
β”œβ”€β”€ MyLangCompiler/                       # New web app: AsmIDE in the browser, plus the MyLang compiler
β”‚   β”œβ”€β”€ MyLangCompiler/                   # The Blazor WebAssembly app, open MyLangCompiler.sln
β”‚   β”‚   β”œβ”€β”€ Code/Compiler.cs              # The compiler: lexer, parser, AST and code generator
β”‚   β”‚   β”œβ”€β”€ Pages/Home.razor              # The IDE: editor, compiler output, AST view and programmer
β”‚   β”‚   β”œβ”€β”€ Layout/                       # Page layout
β”‚   β”‚   β”œβ”€β”€ NpmJS/                        # Monaco editor setup, bundled with webpack
β”‚   β”‚   β”œβ”€β”€ wwwroot/js/                   # Web Serial (talks to the Arduino programmer) and AST drawing (Viz.js)
β”‚   β”‚   β”œβ”€β”€ wwwroot/Test/                 # Example MyLang and assembly programs
β”‚   β”‚   β”œβ”€β”€ diagrams/                     # Diagrams used in the compiler's README
β”‚   β”‚   └── README.md                     # How the compiler works, in detail
β”‚   └── MyLangCompilerTests/              # Compiler tests (MSTest)
β”œβ”€β”€ MyLangCompiler_README_embedded.html   # The compiler's README as one HTML file, with the images inside
β”œβ”€β”€ mdToHTML.py                           # Script that makes that HTML file
β”‚
β”œβ”€β”€ LICENSE
└── README.md

About

All the files related to my 8-Bit computer in an FPGA build.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages