All Projects → bcrafton → processor

bcrafton / processor

Licence: other
A compiler, assembler, and processor.

Programming Languages

ocaml
1615 projects
Verilog
626 projects
c
50402 projects - #5 most used programming language
SystemVerilog
227 projects
Standard ML
205 projects
Makefile
30231 projects
assembly
5116 projects

Projects that are alternatives of or similar to processor

T13x
An Extended Version of the T0x multithreaded cores, with a custom general purpose parametrized SIMD/MIMD vector coprocessor and support for 3-5 way superscalar execution. The core is pin-to-pin compatible with the RISCY cores from PULP
Stars: ✭ 28 (+16.67%)
Mutual labels:  simd, superscalar
vinix
Vinix is an effort to write a modern, fast, and useful operating system in the V programming language
Stars: ✭ 1,512 (+6200%)
Mutual labels:  os
Guided Missile Simulation
Guided Missile, Radar and Infrared EOS Simulation Framework written in Fortran.
Stars: ✭ 33 (+37.5%)
Mutual labels:  simd
multiversion
Easy function multiversioning for Rust
Stars: ✭ 152 (+533.33%)
Mutual labels:  simd
aes-gcm-siv
.NET Core 3.0 implementation of AES-GCM-SIV nonce misuse-resistant authenticated encryption
Stars: ✭ 22 (-8.33%)
Mutual labels:  simd
CS Offer
后台开发基础知识总结(春招/秋招)
Stars: ✭ 352 (+1366.67%)
Mutual labels:  os
pidi-os
A minimalistic operating system
Stars: ✭ 35 (+45.83%)
Mutual labels:  os
HLML
Auto-generated maths library for C and C++ based on HLSL/Cg
Stars: ✭ 23 (-4.17%)
Mutual labels:  simd
memchr
Optimized string search routines for Rust.
Stars: ✭ 474 (+1875%)
Mutual labels:  simd
jsix
A hobby operating system for x86_64, boots with UEFI.
Stars: ✭ 60 (+150%)
Mutual labels:  os
XC-OS
Open source graphics operating system for microcontroller
Stars: ✭ 66 (+175%)
Mutual labels:  os
tree-core-ide
The next generation integrated development environment for processor design and verification. It has multi-hardware language support, open source IP management and easy-to-use rtl simulation toolset.
Stars: ✭ 79 (+229.17%)
Mutual labels:  processor
uwu
fastest text uwuifier in the west
Stars: ✭ 1,193 (+4870.83%)
Mutual labels:  simd
simd-byte-lookup
SIMDized check which bytes are in a set
Stars: ✭ 23 (-4.17%)
Mutual labels:  simd
SemiCode-OS
The World First Linux Distribution for Programmers and Web Developers
Stars: ✭ 16 (-33.33%)
Mutual labels:  os
JS-OS
An Unified Operating System on the web
Stars: ✭ 54 (+125%)
Mutual labels:  os
FPGACosmacELF
A re-creation of a Cosmac ELF computer, Coded in SpinalHDL
Stars: ✭ 31 (+29.17%)
Mutual labels:  processor
Turbo-Transpose
Transpose: SIMD Integer+Floating Point Compression Filter
Stars: ✭ 50 (+108.33%)
Mutual labels:  simd
sliceslice-rs
A fast implementation of single-pattern substring search using SIMD acceleration.
Stars: ✭ 66 (+175%)
Mutual labels:  simd
xv6-file-system-visualizer
Online Visualizer for xv6 File System Image
Stars: ✭ 33 (+37.5%)
Mutual labels:  os

This project is currently on pause because I have started graduate school
I am not sure if I will come back to it
The latest code are on branches ooo, ooo1, ooo2.

Compiler - Assembler - Processor

This repository implements a compiler, assembler and a processor.

Compiler

OCaml.
Most of code taken from Northeastern compilers course.
Compiles to x86.

Assembler

Ocaml.
Coverts x86 to a RISC ISA and assembles to binary.

Processor

Verilog.
Implements a RISC ISA capable of running all instructions generated by assembler.

Test Bench

C - Verilog Programming Interface.
Simulates instruction memory, data memory, and registers.
Runs through different types of tests:

  1. Binary tests - binary code. and checks to make sure main memory and registers are the same as expected
  2. Assembly Tests - x86 assembly code. tests only the final result in eax.
  3. Code Tests - abstract code. tests only the final result in eax.

Running the code

There is a dependency script that may or may not work for getting the dependencies.
Once these are acquired, the makefile can be run which will compile all four modules and run the test bench.

Future Features

  1. Super scalar 👍
  2. Performance metrics (branch misses, IPC, instruction histograms, stalls) 👍
  3. Branch predictor 👍
  4. Compiler - Tuples 👍
  5. Emulator 👍
  6. Instruction Logs 👍
  7. Out of order
  8. Memory simulator (cache / memory heirarchy with random latency)
  9. Combining instruction memory and data memory
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].