yasanthaniroshan / NanoProcessor

A Nanoprocessor designed to run on the Basys3 FPGA desgined using Xlinx Vivado with VHD using Registers, Add/Sub Unit, Decoders, Multiplexers which have been implemented seperately.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

NanoProcessor

Description

A simplified nanoprocessor designed to run on the Basys3 FPGA. Desgined using Xlinx Vivado with VHD. The NanoProcessor is designed using Registers, Add/Sub Unit, Decoders, Multiplexers which have been implemented seperately.

The Nano Processor is built to support 4 instructions MOV, ADD, NEG and JZR.

Instructions are hardcoded into the ROM and loaded at runtime. The sample program to add the integers from 1-3 has been currently implemented. (1+2+3=6) The result is mapped to be displayed on the 7 segment display of the FPGA. The timing diagram of the simulation of the program is shown below.

Installation

Clone the project using git.

Open the project in Xlinx Vivado and upload the NanoProcessor.bit file to the FPGA.

Entry point to the code is here

Usage

The final NanoProcessor uses several lower level components to implement its functionality. Each component is implemented within its own directory and imported into the NanoProcessor file.

You can change the lower level components within each directory, and re-import into the NanoProcessor.

Contributors

Yasantha Niroshan
Lakindu Kariyawasam

About

A Nanoprocessor designed to run on the Basys3 FPGA desgined using Xlinx Vivado with VHD using Registers, Add/Sub Unit, Decoders, Multiplexers which have been implemented seperately.


Languages

Language:JavaScript 23.7%Language:Tcl 21.2%Language:VHDL 21.1%Language:HTML 10.7%Language:C 10.5%Language:Shell 7.7%Language:Batchfile 4.5%Language:Pascal 0.6%Language:PureBasic 0.1%