• Stars
    star
    181
  • Rank 210,870 (Top 5 %)
  • Language Verilog
  • License
    Other
  • Created over 10 years ago
  • Updated over 10 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The Easy 8-bit Processor

EZ8 : The easy 8-bit processor

This is an attempt to craft an 8-bit microcontroller architecture that is easy to implement. Care is taken to choose the instruction encoding so that instructions that perform similar tasks have similar encodings.

This repository contains an assembler written in OCaml, an emulator written in C, some test assembly programs, and a three-stage pipelined processor written in Verilog.

The RTL description is designed to be used on the Arrow SoCKit. You may be able to port it to other Cyclone V-based boards, such as the DE1-SoC board, but you will have to change the pin assignments in the settings file.

Instructions for Verification

To verify that the processor is functioning correctly. Perform the following steps.

  1. Go into the "assembler" directory and run make to build the assembler. You will need to have an OCaml compiler installed.
  2. Go into the "tests" directory and run make to assemble the test programs into machine code.
  3. Open the "processor/ez8cpu.qpf" project in Quartus, run "Analysis and Synthesis", then run RTL simulation.

Instructions for Running on FPGA

  1. Build the assembler as above.
  2. Go into the "tests" directory and run make fpga to build the FPGA test program. You will need to have SRecord installed in order to do this.
  3. Copy the "led_example.hex" file to "processor/program.hex".
  4. Open the project file in Quartus, run the Assembler, then open the programmer and program the FPGA through the USB Blaster.
  5. The program should now be running. If switch 0 is off (down), the LEDs will sweep back and forth regularly. If switch 0 is on (up), the LEDs will advance when you press key 0.

Detailed documentation is available in the "docs/" folder.

More Repositories

1

glisp

LISP dialect implemented in Go
Go
256
star
2

libds

Simple, memory-safe data-structures in C.
C
160
star
3

funktown

Immutable Data Structures for Python
Python
74
star
4

riscv-dma3

The 3rd Iteration of the Berkeley RISC-V DMA Accelerator
Scala
26
star
5

chisel-float

Floating point modules for CHISEL
Scala
26
star
6

creek

A vector processor implemented in Chisel
Scala
21
star
7

lerner

Webhook notifications on your desktop
Python
18
star
8

riscv-dma

A DMA Controller for RISCV CPUs
Scala
14
star
9

pic_emu

A PIC16F74 Emulator
Go
13
star
10

interrupt_example

An example of how to use Avalon interrupts on the Cyclone V FPGA
Tcl
13
star
11

md5cracker

A Hardware MD5 Cracker for the Cyclone V SoC
Verilog
13
star
12

sockit_test

Figuring out the Arrow SoCKit
Tcl
11
star
13

speakeasy

Python
11
star
14

pathfinder

Remote debugging shell for web applications
Go
8
star
15

palimpsest

Clojurescript Canvas Drawing App
Clojure
8
star
16

hodgepodge

A collection of unrelated scripts and utilities too small to get their own repos
C
7
star
17

alsascope

Ncurses-based alsa oscilloscope
C
6
star
18

rmem-server

Remote memory pool over infiniband RDMA
C
5
star
19

corpus-analyzer

A webapp that takes a piece of your writing, generates word frequencies, and compares them to the British and American National Corpora.
Python
5
star
20

riscv-dma2

The second iteration of RISCV DMA accelerator
Scala
5
star
21

rtaudio_effects

Real-time Audio Effects on the SoCKit Board
Verilog
4
star
22

fourier

Implementations of the FFT in different programming languages
C
4
star
23

pyMongoAdmin

Simple and pythonic admin interface for MongoDB
Python
4
star
24

zhemao.github.com

Github pages page
HTML
4
star
25

memcpy-benchmarks

C
3
star
26

soundkit

Audio synthesis on the SoCKit FPGA
Scala
3
star
27

chisel-crossbar

Bi-Directional Crossbar Switch in Chisel
Scala
2
star
28

zhizhu

Simple Download Manager written in Go
Go
2
star
29

kbsynth

Turn your computer into a musical instrument
C
2
star
30

mongo-perfbench

Performance benchmarking scripts for MongoDB
JavaScript
2
star
31

odesolver

An Ordinary Differential Equation solver
C
2
star
32

dma-tests

Tests for rocket-chip DMA subsystem
C
1
star
33

bootlegger

Command line interface for Speakeasy
Python
1
star
34

tuner

Command line tuner app for Linux
C
1
star
35

hwkvstore

TeX
1
star
36

flo-verilog

C++
1
star
37

eightpuzzle

Solving the 8-Puzzle using A* search in Clojure
Clojure
1
star
38

fpgasynth

Experiments in hardware audio synthesis
Verilog
1
star
39

digital_filters

Digital Filters in Julia
1
star
40

senior-coffee-scramble

An app for Columbia seniors to connect with people they wish they'd gotten to know better
Clojure
1
star