編集履歴一覧に戻る
spinlockのアイコン画像

spinlock が 2021年02月27日11時30分34秒 に編集

初版

タイトルの変更

+

FPGAに実装できる超軽量な自作CPUをオープンソースで公開

タグの変更

+

FPGA

+

verilog

+

電子工作

メイン画像の変更

メイン画像が設定されました

本文の変更

+

## はじめに 超軽量な自作CPU WZetaを本日、制限の緩いライセンスであるApache License 2.0で公開しました。 [超軽量CPU 「WZeta」](https://wzeta.idletime.tokyo/) これまで自作CPUを公開するのは風当りが厳しかったのですが、東工大のIoT向けCPU[「SubRISC+」](https://pc.watch.impress.co.jp/docs/news/1307882.html)のプレスリリース(2021年2月19日)に勇気づけられ公開に踏み切りました。どちらも超軽量CPUですが関係はありません。 ## WZetaの特長 命令セットに特長があります。命令コードは32bitですがプログラムを8bit単位に送信して CPUで実行することでCPUの面積や配線リソース、メモリリソース(1ポートメモリでOK)を省力化します。 1バイト目、Aレジスタに7bitの即値を代入するかレジスタ(0-127)の値を代入 2バイト目、Bレジスタに7bitの即値を代入するかレジスタ(0-127)の値を代入 3バイト目、加減算、論理演算、比較、分岐命令のコード 4バイト目、演算結果をレジスタ(0-127)に代入。もしくは分岐命令後の空白 命令コードを分割して送信できること以外は、ごく一般的なCPUの命令セットと同じで、数も少ない。 ## verilogファイルで公開 [ダウンロードのページ](https://wzeta.idletime.tokyo/download.html)からverilogで実装されたWZetaのファイルがダウンロードできます。サンプルコードにAES暗号 256bitのコードがあります。**AES暗号は通信の暗号化だけでなく認証としても使うことができます。 このためデータの送受信に安全性が必要な場合、便利に使うことができます。** 動作確認をしたFPGAの基板はDIGILENTの**Arty**([秋月電子通商](https://akizukidenshi.com/catalog/g/gM-14484/))([マルツ](https://www.marutsu.co.jp/pc/i/595143/))です。 やや不親切ですがフォルダwzblock\fpga\arty に**Arty**に実装できるファイルがあります。超軽量CPUなのでソースコードも、非常に小さく、見ればわかる程度なので読んでやってください。 ## どういったことに向いているの? データ通信や制御用かも。例えば自宅のパソコンから庭に水を撒く制御機器を作った場合、制御信号に認証コードがない場合、悪人が不正アクセスで勝手に水を撒いてしまうことがありますが、AES暗号による認証があれば簡単には不正アクセスできないようなことができます。 ## ライセンスについて Apache License 2.0ですが、「日本の税金を使ったプロジェクトでは利用しないでください。」という、お願い付きです。よろしくお願いいたします。 詳しくは[ライセンスのページ](https://wzeta.idletime.tokyo/license.html) ## 参考 もう一つ自作CPUを作っています。 [ICF3-Z](https://elchika.com/article/fcf2ce88-1a5d-4474-9da7-a81d152ee0af/)