A lightweight 8-bit nano processor designed with simplicity, performance, and area efficiency in mind. This custom-built CPU supports a rich instruction set with immediate values and executes all instructions in a single clock cycle. The design leverages DSP blocks to minimize LUT usage, making it ideal for FPGA implementations with limited resources.
- 8-bit architecture
- Single-cycle instruction execution
- Supports immediate values in instructions
- Optimized for low LUT usage using DSP blocks
- Ideal for educational and small-scale embedded projects
| Mnemonic | Operation | Description |
|---|---|---|
NOP |
No operation | Does nothing |
ADD |
R1 β R1 + R2 or R1 + imm |
Adds register or immediate |
SUB |
R1 β R1 - R2 or R1 - imm |
Subtracts register or immediate |
NEG |
R β -R |
Negates the value |
MUL |
R1 β R1 * R2 or R1 * imm |
Multiplies register or immediate |
MOV |
R1 β R2 or R1 β imm |
Moves value |
LSH |
Logical left shift | R β R << 1 |
RSH |
Logical right shift | R β R >> 1 |
AND |
Bitwise AND | R1 β R1 & R2 or & imm |
OR |
Bitwise OR | R1 β R1 | R2 or | imm |
XOR |
Bitwise XOR | R1 β R1 ^ R2 or ^ imm |
NOT |
Bitwise NOT | R β ~R |
JZR |
Jump if zero | PC β addr if R == 0 |
JMP |
Unconditional jump | PC β addr |
- Instruction Width: Custom format to include opcode, operand(s), and optional immediate values
- Registers: General-purpose register bank
- ALU: Implements arithmetic and logic instructions using DSP blocks
- ROM: For program storage
- Program Counter (PC): Tracks instruction address
- Single-cycle execution: All instructions are executed within one clock cycle
- π Efficiency: Uses DSP slices to reduce LUT and logic resource usage
- β‘ Speed: All instructions complete in one cycle
- π§© Modularity: Easily expandable with new instructions or peripherals
- Testbench included: Validate each instruction with simulation
- Example programs: Demonstrating usage of arithmetic, logic, and control instructions
- Language: VHDL
- Simulation: Vivado Sim
- Synthesis: Vivado
- Target: Any FPGA supporting DSP blocks (e.g., Xilinx Spartan/Artix series)
This project is licensed under the MIT License.
This project was built as university assignment in collaboration with,
- Buwaneka - hhh-berzerk
- Shaluka - shalukahhstt
- Sahan
For suggestions or collaboration, feel free to reach out via GitHub issues or pull requests.