惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
Martin Fowler
Martin Fowler
The GitHub Blog
The GitHub Blog
B
Blog RSS Feed
U
Unit 42
阮一峰的网络日志
阮一峰的网络日志
量子位
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
云风的 BLOG
云风的 BLOG
小众软件
小众软件
博客园 - 三生石上(FineUI控件)
L
LangChain Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园_首页
IT之家
IT之家
V
Visual Studio Blog
Y
Y Combinator Blog
Blog — PlanetScale
Blog — PlanetScale
宝玉的分享
宝玉的分享
Apple Machine Learning Research
Apple Machine Learning Research
I
InfoQ
D
Docker
V
V2EX

Hacker News

GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Bonsai 1-bit WebGPU - a Hugging Face Space by webml-community Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Retrofitting JIT Compilers into C Interpreters IPv6 – Google The Accursèd Alphabetical Clock Cybersecurity Looks Like Proof of Work Now Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent When moving fast, talking is the first thing to break Too much Discussion of the XOR swap trick – Heather Cafe Introduction to Spherical Harmonics for Graphics Programmers The Grand Line
GitHub - gdevic/FPGA-Calculator: From FPGA Gates to Scien...
2026-05-16 · via Hacker News

This project implements a fully functional scientific calculator in hardware using an FPGA. It includes a custom soft CPU, microcode firmware, and supporting tools.

For the full story, see the blog.

Try it in a web browser:

screenshot

Project Structure

Folder Description
verilog/ SystemVerilog source files for the CPU, ALU, I/O, and test benches
ucode/ Microcode (firmware) for the soft CPU
quartus/ Quartus project files for FPGA synthesis
modelsim/ ModelSim simulation setup
Qt/ Qt-based simulator and debugger (uses Verilator)
calctest/ Command-line test harness for hardware verification (uses Verilator)
tools/ Assembler and script compiler for the microcode
Pathfinding/ Algorithm research and verification projects

Quick Start

The fastest way to try the calculator is to build the Qt simulator:

# From WSL2
cd /mnt/c/Projects/FPGA-Calculator/verilog
make qt

Then open Qt/Calculator.pro in Qt Creator and build for "Desktop Qt MSVC2022 64 Bit".

See the verilog/ and Qt/ folders for detailed instructions.

Required Tools

Install these tools depending on your target:

Tool Purpose Notes
Verilator Verilog simulation Required for Qt simulator
Qt Desktop/WebAssembly/Android app Version 6.9+
Quartus FPGA synthesis Version 13.0 SP1 for Cyclone II
ModelSim Waveform simulation Optional
Visual Studio 2022 C++ compiler for Qt Community Edition
Python 3 Assembler and tools

Verilator Setup

Verilator runs in WSL2 (Windows Subsystem for Linux). The project source files reside on a Windows partition and are accessed from WSL2.

Target Verilator Version Notes
Desktop (Qt/MSVC) 5.x (latest) Recommended
WebAssembly 4.228 Required (no thread support)
# Install prerequisites
sudo apt-get install build-essential autoconf flex libfl-dev bison

# Clone and build Verilator
git clone https://github.com/verilator/verilator
cd verilator
git checkout v5.042    # For Desktop, or v4.228 for WebAssembly
autoconf
./configure
make -j8
make test

# Set environment (add to .bashrc for persistence)
export VERILATOR_ROOT=$(pwd)

Optionally install GtkWave for viewing waveforms:

sudo apt install gtkwave

Build Targets

Target Command Description
Qt Simulator make qt in verilog/ Build for Qt desktop application
Calctest make calctest in verilog/, then make in calctest/ Command-line test harness
ModelSim make test_self in verilog/ CPU self-test for ModelSim
FPGA Hardware make revB in verilog/ Assemble microcode for RevB board

See the README files in each subfolder for detailed build instructions:

Pathfinding Projects

Independent research and verification projects:

Folder Description
Pathfinding/Proto/ BCD arithmetic golden reference for hardware verification (submodule)
Pathfinding/Proof/ Proofs of concept for complex operations using basic arithmetic
Pathfinding/Methods/ C++ implementations of calculator algorithms (deprecated)
Pathfinding/Input/ Numerical input state machine simulation
Pathfinding/Mockup/ Keyboard layout design and user interaction testing

License

This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

You are free to:

  • Share - copy and redistribute the material in any medium or format
  • Adapt - remix, transform, and build upon the material

Under the following terms:

  • Attribution - You must give appropriate credit and indicate if changes were made
  • NonCommercial - You may not use the material for commercial purposes
  • ShareAlike - Contributions must be distributed under the same license