私は、科学計算機の実装のために、Verilog を用いてニブル指向型の CPU を設計しました。

2026/05/16 2:15

私は、科学計算機の実装のために、Verilog を用いてニブル指向型の CPU を設計しました。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

このプロジェクトは、FPGA を用いた完全機能の科学計算機をハードウェア上で実現したもので、カスタム製ソフト CPU および専門用途のマイクロコードファームウェアを搭載しています。クリエイティブ・コモンズ 4.0 ライセンス(帰属・非商業的・同一条件)の下で完全なオープンソースのエコシステムを提供し、エンジニアが単純なステートマシンからフルキーボードインターフェースの実装案まで、複雑な算術回路を探求することを促しています。システムはデバッグ器の必要なく、Web ブラウザまたはローカルのシミュレーション環境を通じてアクセス可能です。

開発では、論理設計には SystemVerilog、FPGA シンセシスには Intel Quartus を使用し、エミュレーションなどのために Verilator など堅牢なツールを併用します(ModelSim はオプション)。特定のツールのバージョンは重要であり、Desktop/Qt ビルドには Verilator 5.x が必要で、WebAssembly 向けシミュレーションにはスレッドサポートの制約から Verilator 4.228 が必須です。プロジェクトには

make
コマンドをタスクごとに最適化した包括的なドキュメントが含まれており、Windows Subsystem for Linux 2 (WSL2) で Qt シミュレーターを構築 (
make qt
) や、フラッシュ可能な FPGA バイナリを生成 (
make revB
) などの作業に対応しています。詳細なビルド指示は
verilog/
ucode/
quartus/
modelsim/
Qt/
、および
Pathfinding/
というサブフォルダー内に整理されており、後者は黄金参照、概念実証プロトタイプ、および非推奨の実装を含んでいます。

本文

本プロジェクトでは、FPGA を用いた完全機能の科学電算機をハードウェアとして実装しています。これにはカスタムソフトウェア CPU、マイクロコードファームウェア、および関連ツールの構成が含まれます。詳細についてはブログをご参照ください。ブラウザでの動作確認は、デバッガーあり・なしのいずれかで可能です。

プロジェクト構造

フォルダ説明
verilog/
CPU、ALU、I/O、およびテストベンチ用の SystemVerilog ソースファイル
ucode/
ソフトウェア CPU 用のマイクロコード(ファームウェア)
quartus/
FPGA コンパイル用 Quartus プロジェクトファイル
modelsim/
ModelSim 向けシミュレーションセットアップ
Qt/
Verilator を使用して作成された Qt ベースのシミュレータおよびデバッガー
calctest/
ハードウェア検証用のコマンドラインテストハーネス(Verilator 使用)
tools/
マイクロコード用アセンブラおよびスクリプトコンパイラ
Pathfinding/
アルゴリズムの研究および検証プロジェクト

クイックスタート

電算機を素早く試すには、Qt シミュレータの構築が推奨されます。

WSL2(Windows Subsystem for Linux 2)から行う場合:

  1. Qt シミュレータを構築するために以下のコマンドを実行してください。
    cd /mnt/c/Projects/FPGA-Calculator/verilog
    make qt
    
  2. その後、Qt Creator で
    Qt/Calculator.pro
    を開き、「Desktop Qt MSVC2022 64 Bit」に対してビルドを実行してください。 詳細な手順については、
    verilog/
    および
    Qt/
    フォルダ内のファイルを参照してください。

必要なツール

ターゲット環境に応じて以下のツールをインストールしてください。

ツール目的備考
VerilatorVerilog シミュレーションQt シミュレータに必須
Qtデスクトップ/WebAssembly/Android アプリケーションバージョン 6.9 以降推奨
QuartusFPGA コンパイルCyclone II 向けバージョン 13.0 SP1
ModelSim波形表示用シミュレーションオプション
Visual Studio 2022Qt の C++ コンパイラ(Qt Creator 内蔵)コミュニティエディションで OK
Python 3アセンブラおよびツールの使用

Verilator セットアップ

Verilator は WSL2 で動作します。プロジェクトのソースファイルは Windows パーティションに配置し、WSL2 からアクセスします。

ターゲット環境Verilator バージョン備考
デスクトップ (Qt/MSVC)5.x(最新版)推奨
WebAssembly4.228スレッドサポートなしのため必須バージョン

プリレンダライザのインストール

sudo apt-get install build-essential autoconf flex libfl-dev bison

Verilator のクローンとビルド

git clone https://github.com/verilator/verilator
cd verilator
git checkout v5.042  # デスクトップ用。WebAssembly 環境の場合は v4.228 を使用
autoconf
./configure
make -j8
make test

環境変数の設定 (永続化のため

.bashrc
に追加してください)

export VERILATOR_ROOT=$(pwd)

また、波形ビューアとして GtkWave もオプションでインストールできます。

ビルドターゲット

ターゲットコマンド説明
Qt シミュレータ
verilog/
内で
make qt
Qt デスクトップアプリケーションのビルド
Calctest
verilog/
内で
make calctest
その後、
calctest/
内で
make
コマンドライン用テストハーネス
ModelSim
verilog/
内で
make test_self
ModelSim 向け CPU セルフテスト
FPGA ハードウェア
verilog/
内で
make revB
RevB ボード用のマイクロコードアセンブリ

詳細なビルド手順については、各サブフォルダ内の README ファイルをご参照ください:

  • verilog/README.md
    : Verilator シミュレーションおよびマイクロコードアセンブリの手順
  • calctest/README.md
    : ハードウェア検証のコマンドラインテストハーネスの説明
  • quartus/README.md
    : FPGA コンパイルおよびプログラミングの手順
  • ucode/README.md
    : マイクロコードのソースファイル

Pathfinding プロジェクト

独立した研究および検証プロジェクトです:

フォルダ説明
Pathfinding/Proto/
ハードウェア検証用の BCD 算術に対するゴールドスタンダード参照実装(サブルーム)
Pathfinding/Proof/
基礎的な算術を使用した複雑な操作の概念実証ツール
Pathfinding/Methods/
電算機アルゴリズムの C++ 実装(現在非推奨)
Pathfinding/Input/
数値入力状態機械のシミュレーション
Pathfinding/Mockup/
キーボードレイアウト設計およびユーザーインタラクションテスト

ライセンス

本プロジェクトは「Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License」の下でライセンスされています。以下の条件に従って利用可能です:

許可された行為:

  • 再配布 (Share): マテリアルをあらゆる媒体または形式でコピーし、再配布することができます。
  • 改変 (Adapt): マテリアルをリミックス、変換し、元となるマテリアルに基づいて新たな作品を作成することができます。

適用される条件:

  • 表示 (Attribution): 適切なクレジットを表示し、原著者へのリンク、変更内容有りであることを明記する必要があります。
  • 非商用 (NonCommercial): マテリアルの商業利用は固くお断りします。
  • 同一条件の提供 (ShareAlike): 改変や二次創作された作品も、同じライセンスの下で配布する必要があります。

同じ日のほかのニュース

一覧に戻る →

2026/05/16 1:15

プロジェクト・グテンベルク:良くなるばかりです

## Japanese Translation: Project Gutenberg は 1971 年に設立された先駆的な非営利図書館で、市民向けに 75,000 冊を超える無料の電子書籍を提供しています。その核心的な使命は、米国での著作権が失効した著作物のデジタル版を提供することで歴史を保存することであり、これらの文本は公開前に何千人ものボランティアによって細心の注意をもって校正されています。アーカイブへのアクセスには登録費用や専門ソフトウェアは一切不要であり、ユーザーは Web ブラウザですぐに閲覧でき、epub や Kindle などの一般的な形式でコンテンツをダウンロードできます。メインサイトでは公共の領有権にある古典作品に焦点を当てていますが、self.gutenberg.org という独立したセクションでは World Library Foundation から提供される自己出版タイトルがホストされています。サイトはさらにボランティアによって手が選別された読書リストも提供しています。研究者や企業向けには、著者、タイトル、主題、言語、タイプ、人気度でフィルタリングや検索ができる堅牢な機能があり、アクセスが可能です。Project Gutenberg は新刊のデジタル化を継続するために寄付を受け入れており、この支援がない場合、コレクションの拡大は不可能になります。入るための障壁なく、すべての人々のために知識を民主化する 100% フリーのリソースとして 50 年以上運営されてきたことです—from カジュアルな読者から産業用途まで—。そのリーダーシップに関するリソース、例えば元 CEO で亡くなられた Greg Newby 博士については、サイト上に利用可能です。

2026/05/16 4:23

WinCE64 - N64용 Windows CE 2.11

## Japanese Translation: このテキストは、EverDrive-64 X7 リーダーを実際の Nintendo 64 ハードウェアに Microsoft Windows CE 2.11 を成功裏に移植したという重要な技術的達成を文書化しています。エミュレーションとは異なり、この構成は Microsoft のコア `nk.lib` ライブラリを変更することなく、完全なデスクトップ機能—including ウィンドウ管理、N64 AI ハードウェアを用いたオーディオ出力、サードパーティ製 EXEの実行—を提供します。プロジェクトでは、元の CE 2.11 SDK にこれらの要素が含まれていなかったため、外部資源(例:libdragon ライブラリ)を用いてデスクトップシェル(Explorer、タスクバーなど)全体を从头再構築する必要がありました。主要な技術的作業には、RDP アクセラレーション付きの VI フレームバッファ用のカスタムドライバ、Joybus 経由での N64 コントローラ入力デコーディング、インタラプトマスク問題を解決するためのポーリングモードオーディオ処理が含まれます。公式エミュレーションは深いパッチが必要であるため未対応ですが、この概念実証(PoC)により、独自ドライバの実装を通じてレガシーソフトウェアをヴィンテージハードウェア上で動作させる方法が示されました。ただし、プロジェクトソースコードが MIT ライセンス下にあるにもかかわらず、結果生成されたバイナリは制限的な Microsoft SDK ライセンシングのために再配布できません。

2026/05/16 3:37

ツリプル財団。

## Japanese Translation: 2026年5月15日、Zulipの創設者であるTim Abbottはフルタイムでのリーダー職を退き、Anthropicへの参画を果たします。この際、Alya Abbott、Greg Price、Alex Vandiverを含む3名のシニアチームメンバーも一同に立ち寄り、Kandra Labsは新たに設立された独立した非営利法人「Zulip Foundation」へ寄附され、プロジェクトは私的所有から Mozilla や Signal に準じた公共的利益に基づくガバナンスモデルへと移行します。同財団はプロジェクトを管理し、公共団体を中心に活動しつつ、助成金および税金控除可能な寄付を通じて持続可能な資金調達を実現し、投資家による支配を防ぎます。最初の理事会には、創設者である Tim Abbott、共同創設者の Greg Price、製品担当の Alya Abbott、Rust リーダーの Josh Triplett が選任されます。拡大された諮問委員会では、Andrew Sutherland(MIT)、Nick Bergson-Shilcock などの専門家も参加します。運用はすべて継続:Zulip Cloud、モバイルプッシュ通知、サポート契約、Google Summer of Code、オープンソースのスポンサーシップなどがそのまま活性しています。Kim Vandiver が副理事長として加わり、安定期の確保を図ります。開発ペースは次四半期に若干低下しバグ除去を優先する可能性がありますが、12名の平均4年以上の在籍期間を持つ経験豊富な維持管理チームおよび約25,000コミットのコード履歴が、プラットフォームのレジリエンスを支えています。Tim Abbott は時間の許す限りコンテキストと助言を提供し続けています。変更に関する詳細については、5月19日午後4時(UTC)にライブチャットで Q&A を開催しコミュニティと議論を行います。本移行は、オープンソースの価値観とコミュニティによる統御下での長期的持続可能性を最優先とするものです。

私は、科学計算機の実装のために、Verilog を用いてニブル指向型の CPU を設計しました。 | そっか~ニュース