Home

新型WZeta開発中

新型は従来WZetaのような特長を継承し、より汎用性を高めた全く異なるCPUです。 2021年4月24日、WZeta 命令セット SDog コア設計資料を公開。
6月3日更新まだβ版です。大きな変更はありません。いくつかの命令を追加、削除しています。

デジタル署名を検証するための.dsfファイルのサイト番号は0016です。 詳しくはこちらのサイト

新型WZetaの情報は上記PDFファイルのみです。このサイトの、 その他の情報は従来WZetaのままです。新型もApache License 2.0で公開予定ですので 従来WZetaは旧型として当サイトに残されますがメンテナンスされないため新型への移行が推奨です。 恐縮ではございますが利権拡散防止を目的として命令セットへの要望は受け入れていません。



新着情報

2021年6月03日 新型WZetaのSDogコアの設計資料の更新

2021年4月24日 新型WZetaのSDogコアの設計資料の公開

2021年2月27日 Apache License 2.0で公開

2019年9月15日 3日間(9月15日~17日)、限定公開

2019年6月28日 1命令2サイクル版実装結果を追加

2019年6月16日 3日間(6月16日~18日)、限定公開

2019年6月03日 新命令INPUTANDを追加

2019年5月22日 アセンブラのバージョンアップ

2019年5月16日 オープンソース公開停止と実装結果を追加

2019年5月12日 サイト公開


概要と目標

WZetaは超軽量な8bit CPUです。命令セットに超軽量なCPUに向いた工夫が入っています。 東工大のSubRISC+ CPUが発表されたため、 WZetaも公開することにしました(WZetaとSubRISC+は無関係なCPU)。 社会貢献になることを目標としています。WZetaはASIC、FPGAなどデバイスに依存しないverilogの実装です。 ダウンロードできるverilogファイルにはAES暗号256bitのサンプルコードが付いています。 AES暗号は通信の暗号化だけでなく認証としても使うことができます。 このためデータの送受信に安全性が必要な場合、便利に使うことができます。

WZetaは一般的なCPUの命令セットを持ち、かつ、AES 128/192/256bitが動作するので LoRaWANのデバイスのMCU(CPU)として使うことができるかもしれません。 WZetaは4命令しかない東工大のSubRISC+の 10分の一のトランジスタ数なので、LoRaWANデバイスのコスト削減や、 トランジスタの製造で豊富にある地球資源の材料を選択することが期待できるかもしれません。 LoRaWANデバイスは一度に大量に購入するので、温度センサーのような性能のあまり要らない用途では、 最も安価なCPUのLoRaWANデバイスを購入者は選択するでしょう。 そして将来に渡って安価なCPUは使われ続けることになる。そういうCPUにWZetaは、なるかもしれない。 大きなメリットではないかもしれないが、やれるなら、やっておこうくらいの感じです。


特長

命令セットに特長があります。命令コードは32bitですがプログラムを8bit単位に送信して CPUで実行することでCPUの面積や配線リソース、メモリリソース(1ポートメモリでOK)を省力化します。

1バイト目、Aレジスタに7bitの即値を代入するかレジスタ(0-127)の値を代入

2バイト目、Bレジスタに7bitの即値を代入するかレジスタ(0-127)の値を代入

3バイト目、加減算、論理演算、比較、分岐命令のコード

4バイト目、演算結果をレジスタ(0-127)に代入。もしくは分岐命令後の空白

命令コードを分割して送信できること以外は、ごく一般的なCPUの命令セットと同じで、数も少ない。


効果

XilinxのArtix-7のFPGAでBRAM1個の構成にするのが、最もよく使われるケースですが、Verilogは オプションで拡張命令やスタック増量などができるようになっています。 BRAM1個の構成でFETCH命令を拡張するとAES暗号が実装できます。FPGAの実機で実際に動作が確認されました。 その構成でXilinxの8bit PicoBlazeと比較して面積が50%~60%。プログラムの転送幅がPicoBlazeの半分以下の8bit。 PicoBlazeにないパリティで高信頼という効果があります。実用性のあるCPUです。


Xilinx FPGAに実装した結果

WZeta/NapalmはPicoBlazeにないパリティがあるものの、右1ビットシフト、割り込みなどの機能がありません。

割込みを追加するオプションをWZeta/Napalmに実装することは容易ですが利用予定がなかったため

CPULUT数FF数BRAM数LUT-RAM周波数
PicoBlaze
SPM=64Byte
103801.024133MHz
PicoBlaze
SPM=128Byte
111801.032133MHz
WZeta
SPM=128Byte
Data=2KB
67641.00217MHz
Napalm
SPM=128Byte
Data=2KB
120341.033189MHz
Napalm
SPM=64Byte
Data=2KB
103341.017200MHz

FPGAはXilinxのXC7A35TICSG324-1Lです。



開発者

1999年のICF3の暗号プロセッサの設計者でOpenICF3の公式サイト の管理人でもあります。ICF3を8bit CPUにしたICF3-Zがあります。 ICF3-ZとWZetaとは全く違う8bit CPUです。


ライセンスについて

WZetaのライセンスについては、こちらのページを、ご参照ください。