I designed a nibble-oriented CPU in Verilog to build a scientific calculator

TL;DR

A developer has created a scientific calculator hardware using a custom-designed nibble-oriented CPU in Verilog on an FPGA. The project includes microcode firmware, simulation, and testing tools, demonstrating a novel approach to hardware calculator design.

A developer has designed a fully functional scientific calculator using a custom nibble-oriented CPU written in Verilog, implemented on an FPGA platform. This project aims to demonstrate a hardware-based approach to complex calculations, integrating microcode firmware and supporting simulation tools, marking a significant step in hardware calculator design.

The project involves creating a soft CPU optimized for nibble (4-bit) data processing, tailored specifically for scientific calculations. The CPU, written in Verilog, is part of a larger FPGA-based system that includes microcode firmware, ALU components, and input/output interfaces. The developer has also developed simulation environments using Verilator, along with a command-line test harness for hardware verification. The FPGA synthesis process utilizes Quartus tools, and the project includes a Qt-based simulator and debugger for easier testing and development. The entire setup is designed to be accessible, with instructions for building and testing available in the project documentation.

Why It Matters

This development showcases a novel hardware approach to building scientific calculators, emphasizing custom CPU design at the nibble level. It demonstrates how FPGA-based hardware can be used for educational, experimental, or specialized computational purposes, potentially influencing future hardware calculator projects or embedded systems requiring precise control over data processing.

Digilent Arty S7: Spartan-7 FPGA Board for Makers and Hobbyists (Arty S7-25)

Digilent Arty S7: Spartan-7 FPGA Board for Makers and Hobbyists (Arty S7-25)

Arty S7 comes in two FPGA variants: Arty S7-25 features Xilinx XC7S25-CSGA324. Arty S7-50 features the larger Xilinx…

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Background

Traditional scientific calculators are typically built using dedicated ASICs or microcontrollers. This project diverges by implementing a custom CPU in Verilog, optimized for nibble processing, which is uncommon in general-purpose computing but relevant for hardware efficiency and educational purposes. The project builds on existing FPGA and HDL development practices, integrating microcode firmware for flexible operation. It follows recent trends in open hardware projects and FPGA-based computation, with the developer providing detailed build instructions and simulation tools.

“This project demonstrates how a custom nibble-oriented CPU can be used to build a scientific calculator entirely in hardware, providing a platform for experimentation and learning.”

— the developer

“Using a nibble-based CPU for a calculator is an innovative approach that could lead to more efficient hardware designs for specialized computing tasks.”

— an FPGA enthusiast

Verilog® Quickstart: A Practical Guide to Simulation and Synthesis in Verilog (The Springer International Series in Engineering and Computer Science Book 667)

Verilog® Quickstart: A Practical Guide to Simulation and Synthesis in Verilog (The Springer International Series in Engineering and Computer Science Book 667)

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What Remains Unclear

It is not yet clear how the performance of this custom CPU compares to traditional microcontrollers or ASICs used in commercial calculators. Details about the microcode firmware’s capabilities, the accuracy of calculations, and the overall efficiency of the design are still emerging. Additionally, the developer has not announced plans for commercialization or wider deployment.

Texas Instruments TI-30XIIS Scientific Calculator - Teacher Kit (10 pack)

Texas Instruments TI-30XIIS Scientific Calculator – Teacher Kit (10 pack)

Texas Instruments TI30XIISTK Teacher 10 Pack

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

What’s Next

Next steps include further testing and optimization of the CPU’s performance, expanding the microcode firmware to support more functions, and potentially integrating the design into a standalone FPGA-based calculator device. The developer may also release more detailed documentation or open-source the project for community collaboration.

FPGA Graphics Card CPU Circuit Board T-Shirt

FPGA Graphics Card CPU Circuit Board T-Shirt

A gift for children if they like to become electronics and program on the computer. The electrical technician…

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Key Questions

What is a nibble-oriented CPU?

A nibble-oriented CPU processes data in 4-bit chunks, called nibbles, which can be advantageous for certain hardware applications like calculators or embedded systems where data size is small and efficiency is critical.

Why use Verilog for this project?

Verilog is a hardware description language widely used for FPGA and ASIC design, allowing precise control over hardware logic and facilitating simulation, synthesis, and testing of custom CPU architectures.

Can this hardware design be used in commercial calculators?

Currently, the project is experimental and intended for educational and research purposes. Commercial applications would require further development, testing, and optimization.

What tools are needed to build and test this project?

Developers need tools such as Verilator for simulation, Quartus for FPGA synthesis, ModelSim for waveform analysis, and Qt for the GUI and debugging. The project includes detailed build instructions for these tools.

You May Also Like

Japan’s Nidec suspected of over 1,000 cases of quality tampering

Japan’s Nidec is suspected of engaging in more than 1,000 cases of quality tampering, adding to ongoing compliance issues at the world’s largest motor maker.

Redis 8.8: New array data structure, rate limiter, performance improvements

Redis 8.8 introduces a new array data structure, a window counter rate limiter, message NACKing, and significant performance improvements, enhancing flexibility and efficiency.

Sony’s Xperia 1 VIII has bigger camera sensors and a new look

Sony launches Xperia 1 VIII featuring a larger 1/1.56-inch camera sensor, revamped look, and AI camera assistant. Available in Europe from June.

Phoenix LiveView 1.2 Released

Phoenix LiveView 1.2 is now available, introducing colocated CSS, small improvements, and enhanced compile-time features for Elixir developers.