Home
2024年
2023年
2022年
2021年
2020年

10月31日 8bitパソコンWZ-660の基板開発中

脳の痺れで作業がゆっくりとしか進んでいませんが8bitパソコンWZ-660/650のCmod向け 基板の設計図が出来上がってきたかも。(頭が辛くてちょっと休んでいるところ)
この基板、抵抗値などを調整すれば、どこのメーカーのFPGA基板でも使える汎用的な基板になってないかと。 WZ-660互換機を永遠に作り続けることが容易になったように思えてならないです。 VGAコネクタが無いディスプレイでもコンバータがあれば、なんとかなるかも。

WZ-650だと128KBのSRAMがFPGAチップ内に無い場合はSRAMを別途、外付けする必要があるのですが、 簡単には、はんだ付けができないSRAMが多いかも。 それでも極端な話、家庭用のパン焼き機でリフローできるとか、 電子工作系の書籍には、あったような気がします。

ちなみに僕は大学時代、SHARP PC-1251のSRAMの増設のはんだ付けに失敗して、壊してしまったことがあります。

写真をマウスでクリックすると拡大されます


10月29日 8bitパソコンWZ-660の基板開発中

眠い、、、途中だけど寝ます。
Cmod A7(or Cmod S7)が刺さる基板と、ブレッドボード風ユニバーサル基板1枚で、 できるとスッキリするのだけど。CADで基板設計しなくても、結構、できるかな??? このユニバーサル基板上の回路は適当だから、僕じゃなくて腕のいい人を参考にしてください。

写真をマウスでクリックすると拡大されます


10月29日 FPGAボードCmod S7の売り切れ!?

WZ-660互換機をDigilent製FPGAボードCmod S7で動かすためにCmod S7向けの 入出力回路基板を考えていたのですが、肝心のCmod S7が売り切れという状況に。

そこで次の入荷を待っている間にWZ-660の下位機種、WZ-650をCmod A7に実装する 方向を考えています。小型のFPGAチップと安価な1ポートSRAM 128KBを想定。 1ポートなので時分割でデュアルポートメモリにします。SRAM 64KB×2個の 構成にすれば単純に2倍の性能になるのですがCmod A7はSRAM 512KB×1個なので。

先日、Artyによる試作WZ-660ではCPUは100MHzだったのですが25MHzでの動作になります。 そしてSRAMを時分割デュアルポートにするため実質的なCPUのクロックは12.5MHz(予想)です。

Cmod A7はCmod S7よりも高価でWZ-660を実装できるスペックを持っているのですが WZ-650の開発を急ぐことにします。


10月27日 8bitパソコンWZ-660のサイトを作った

以前からあるサイトですが、この日記に雑然とWZ-660の内容を書いても、 忙しいエンジニアの方は見ないと思いましたので、WZ-660のサイトに要約を書いてみることに。

https://subnote.icf3.net/wz660/wzpc.html

営業の方で、一生懸命、価格を吊り上げる努力をされることはあるように思いますが、 WZ-660はエミュレータを平行して開発して無料でリリースする予定なので、 営業の方が堰き止めても、ユーザーはエミュレータに流れるだけとなります。
エミュレータもネットワークからダウンロードしたゲームをインストールすれば、 パソコンがウィルスに侵入されるリスクがありますからWZ-660のハードを購入すれば、 思う存分、ゲームをインストールできるという利点があります。
中古PCにエミュレータをインストールする案もあるのですが、エミュレータがハードと完全に同じ 動作するとは限りません。サウンドは厳格にエミュレーションするのは難しいハードになっています。 ゲーム機としての性能を達成させるために、オプションのCPUを付けられることを考えていますが エミュレータに、その機能を実装するのか、いまのところ決めていません。 WZ-660のサイトにある下位機種のWZ-650程度のスペックのエミュレーションは動作すると思われます。 (サウンドは適当なエミュレーションになるかも)

特に誰からも支援されていないので、プロジェクトが中断される可能性があります。 このプロジェクトがもたらす、この国への効果は途方もなく大きいので、儲かれる人は、 儲かるように頑張って、この国の未来へと繋げていきましょう。


10月26日 8bitパソコンWZ-660の設計方針

僕はパソコン設計の熟練エンジニアではないのですけど。 ものすごく当たり前のことなのですがWZ-660で使われるチップの1つでも 生産中止になればWZ-660が生産できなくなります。 この問題を考えるとチップが無くなった場合でもディスクリートの回路で 代替できる設計が良いかなと思っています。

WZ-660はDigilent製のFPGAボードのArtyやCmodに実装していきますが、 200KB程度のSRAMを搭載したFPGAチップがあればWZ-660の互換機は 比較的容易に移植できるような気がします。 厳密には4KBのデュアルポートメモリのSRAMで初期設定ができるものがあると、 かなり容易かも。

将来、外付けの乗算器や、除算器をDSPを使って実装する可能性は あるかもしれませんが、それでも乗算、除算の性能を除けば、 移植はできるかも。

オーディオ系の出力回路は作ったことがないので、音が出るのか不明ですが、 8bit DAC回路をブレッドボード風の基板に作る方法を考えてみた。 要点は2のべき乗の抵抗値を入手しなければいけないのですが、 通販店のサイトを見る限り、かなり難しい。 そこで2つの抵抗器を直列につないで必要な抵抗値を作る方法になるのですが、 意外とすっきりした回路になったので配線図を日記に載せてみました。

秋月電子に ブレッドボードと同じ配線の基板があって、ブレッドボードで 試したものを、そのまま実装できるみたいです。はんだ付けは必要になりますが、 今回の8bitDACでは配線の必要が無いので簡単なのではと思ってみたり。

余談。大学時代にPC-98を使ったステッピングモーター8個を制御する基板を ユニバーサル基板で作ったことがあるのですが、当時は、あまり情報がなくて、 ハンダブリッジで配線をしたのですが、今は便利な基板があるのですね。

写真をマウスでクリックすると拡大されます


10月25日 凸版印刷とNICTが耐量子計算機暗号を実装

凸版のサイト(2022年10月24日) 「凸版印刷とNICT、世界初、米国政府機関選定の耐量子計算機暗号をICカードシステムに実装する技術を確立」

耐量子計算機暗号のICカードが出たのですね。 僕の暗号プロセッサSnakeCubeはRSA暗号専用ではなくて巨大な整数の四則演算が驚くほど高速です。 これで新しい公開鍵暗号を作れば、従来のRSAの延命と両立させるICチップになったはずなのです。 1枚のICカードに2つのICチップを搭載することも物理的には可能かもしれないですけど、 1チップで従来延命と耐量子暗号の2つができれば、世界中の人にとって便利だったはずだと思うのですけど。
何故、暗号研究者は、それを狙わなかったのでしょうね。

産業スパイの1人が3以上素数を使ったRSAを検証していると言ってますが、 RSA暗号の改良である必要はなくて、巨大な整数の四則演算で演算できる公開鍵暗号を 発明すれば良かったのだと。「耐量子暗号には誤差を、、、」とかいう人が予想されますが、 必要に迫られれば発明されることもあったように思うのです。

暗号プロセッサSnakeCubeのサイトのURLです
https://openicf3.idletime.tokyo/snakecube/


10月25日 8bitパソコンWZ-660は日立とは無関係です

日立といえば昔はコンピュータメーカーとして日本屈指のメーカーでした。 僕は1994年、日立に新人として入社して一貫して大型コンピュータの開発をしてきました。 そして2005年に退職しています。当時の日立は自前主義と言われていて、取り分け、 半導体デバイスに強い大企業でしたが、時とともに変わってしまったようにも思います。

コンピュータメーカー日立の技術が持ち出されていると考える人もあるかもしれませんが、 日立の技術の影響を全く受けないように8bitパソコンWZ-660を開発しています。 これからWZ-660互換機を開発したいと思う人があると願っていますが 日立が勝手に、差し押さえるようなら、僕のほうにご連絡ください。

CPUアーキテクチャ、マルチプロセッサのアーキテクチャ、その論理実装(verilog)などの ハードは、僕が完全に掌握しています。既存のどのCPUにも分類されない完全に独自なCPUです。

そして僕の8bit CPU WZeta を普及するために8bitパソコンを開発すること始めました。 ディスプレイやキーボードなどの入出力の回路は書籍やネットなどの情報を元に 僕が作っているので残念ながら品質は保証できません。 技術力ある人が、僕よりもいい回路にして互換機を作ってもらえればと思っています。

サウンド機能についてはWZetaの汎用マルチプロセッサSouGenを作り、 音源をソフトウェアで実装できるようにする方向です。 WZetaには浮動小数点命令はありませんが、固定小数点で演算したほうが便利という 実装方法も見つけました。

8bitパソコンWZ-660の試作機を作りながら、それに合わせたエミュレータのWindows版を 開発します。(Linux版もあって、ある程度、動作する)
WZ-660をしっかりと製品化して販売することを僕がすることは非常に重荷となるため、 当面、あまりやらないと思います。 このため試作機の実装を公開しながら互換機の開発販売を推奨しています。

試作機が完成すればエミュレータを充実させフリーウェアとして無償公開するので、 少しずつ互換機が売れる状態になっていくと思われます。

いろいろな互換機の作り方が、雑誌、書籍になって販売され、個人の趣味としても 作れるようになれば楽しいかもしれないと思っています。よろしければご検討ください。

参考まで僕は大学では電気工学科でマルチプロセッサの研究をしていました。 研究していたのはコンパイラなどのソフトウエアなので マルチプロセッサのアーキテクチャなどのハードは大学の影響を受けません。 最近の国立大学ではCPU実験などハードもやっているようですけど。

余談ですが1994年に日立に入社しましたが、新人研修で千葉県茂原市にある テレビのブラウン管を製造する部署に配属されました。単純労働者として、 ラインに流れるブラウン管の前面部を露光して着色する機械に置く作業をしていました。 ブラウン管の大型テレビが流行っていたころです。 3カ月でしたが、連日、腕の筋肉が腫れるほど重労働でした。


10月23日 物理スイッチ式USB切替器の導入

USB切替器を物理スイッチに変更してサイバー攻撃できるポイントを減らしました。 ネットワークのルーターも物理スイッチです。 以前は10個くらいのルーターを同時に稼働させてサイバー攻撃に対する防御を していたのですけど。


10月22日 USB充電器が壊れました

5年以上前にNTT-X Storeの特化品として購入したAndroidタブレットの 充電器が壊れました。しばらく使っていなかったので、いつ壊れていたのか不明ですが、 産業スパイがサイバー攻撃によって破壊した可能性も否めません。 電圧を測定すると負荷を接続しない状態でも3.5Vでした。
分解して中を見ても故障は確認できません。目が悪くなったせいでAC ADAPTERの下に 書いてあるモデル番号の数字が読めない。日常生活に支障をきたすほどになっている。

写真をマウスでクリックすると拡大されます


10月21日 16bitパソコンを、そろそろ考えるべきか

昨日の日記に書きましたが、中華激安FPGAボード Tang Nano 9Kが 日本に上陸した模様。量産時の価格が安価なら、 新しい命令セットアーキテクチャのCPUを搭載したパソコンを作るのに非常に良さそうです。

8bit CPU WZetaを使った8bitパソコンでは 必要なメモリが少なくて良かったのでFPGAチップ上のSRAMに収まる設計をしていました。 しかしTang Nano 9Kに搭載されるSRAM 52KBには入らず8MBのSDRAMを遅いSRAMとして利用 することを昨日の日記では、考えました。

Tang Nano 9Kの量産時の価格が安い場合、もう一度、設計し直して8MBのSDRAMを効果的に 利用した16bitパソコンを新規に開発したほうが良いかもしれない。 8bit CPU WZetaを16bit化したTZeta案を2カ月前の8月ごろの日記に書いています。 まだ案でしかないけど16bit CPU TZetaをTang Nano 9Kでパソコンを作ることも考えられそう。

要するにオープンソースのCPUとして有名なRISC-Vの32bitでは無駄になる8bit/16bit CPUの 領域にWZeta/TZetaを世界へ送り込みたいのです。WZetaの命令セットアーキテクチャを読んだ だけではわかりにくかもしれませんがデータの配置を考慮することで性能が出せる 命令セットアーキテクチャなのです。このあたりの技術的な話を理解できれば、 WZetaが、他のCPUよりも非常に優れているので、他のCPUが流行ることは社会的な損卒に なりかねないと思えています。

技術のわからない人によって、判断を誤る可能性を心配しています。 まずはWZetaを理解することから。 そのために、いろいろなFPGAボードにWZetaを搭載したパソコンWZ-660を広めようとしています。

IoTデバイスの開発では16bit CPUのTZetaよりWZetaのほうが有利な場合があり、 仮にTang Nano 9Kの安価な16bitパソコンが完成しても、8bitパソコンのほうが 人気ということもあると思っています。


10月21日 中華激安FPGAボード Tang Nano 9K

CQ出版の書籍、今月号のInterfaceに中華激安FPGAボード Tang Nano 9Kの特集がありました。
「2500円ボードで始めるFPGA開発Vol.2」Interface2022年12月号別冊付録1

2500円という価格でディスプレイ接続用のHDMI端子がついていてマイクロSDカードのスロットも ついているみたい。あとはキーボードを接続するだけでパソコンが作れるというもの。
秋月電子通商での本日の価格は2,480円

このTang Nano 9KでWZ-660互換機を開発して量産する場合の価格は、いくらになるのか、気になるところ。

参考までDigilent製Cmod S7の本日の価格
秋月電子通商税込み 9,870円
マルツ税込み 11,271円(10個以上、10,708円)
この金額に加えてVGA端子、マイクロSDスロット、PS/2端子の追加コストがかかります。

Tang Nano 9Kは、さらに8MBのDRAMを搭載しているので、かなり高解像度な画面を作ることができます。 量産時の価格が、まだわかりませんが、それでも非常に高いコスパになるだろうと思われます。

このTang Nano 9Kを使ってWZ-660互換機開発をやってみたいと思う人が、いそうな気がします。

いいことづくめのTang Nano 9Kですが、大きな欠点はFPGAチップに搭載されているSRAM容量は52KByte(468kbit)なので 小さいこと。

16bit CPU以上のパソコンならDRAMがあるので問題はないのですが、8bit CPUでは問題なのです。 8bit CPUのパソコンで必要なメモリは128KB~256KBなのでDRAMがなくてもFPGAチップ上のSRAMに入るのです。

Tang Nano 9KにDRAMをSRAMのようにアクセスできるライブラリがあれば、性能を犠牲にした WZ-660互換機というものを開発しても、なんとかなるかもしれないという気はします。


10月20日 WZ-660は技術的にどこまで高解像度になるのか

8bitパソコンWZ-660を開発中ですがDigilent製Cmod S7の場合の話。 Cmod S7は他のFPGAボードと異なりボード上にDRAMやSRAMが存在しない。 このため画面を高解像度にすることは非常に難しい。

WZ-660の画面は320x240 4096色中16色の予定で頑張っています。 しかし1画面のみでもいいから、もう少し高解像度にならないかを技術的に検討してみました。

640x400 4096色中16色ならPC98向けのゲームの移植に役立つかもしれないのですが、 どうやってもCmod S7では厳しい。

うーん。ノベルゲーム専用画面なら640x384ができるかもしれない。 ただし4096色中16色なのは上から256ライン。残りの128ラインは白黒。 画面1面だけだけど。

他のメーカのFPGAボードでも、この特殊なノベルゲーム専用画面が実装できるのか? ということが心配になりますが、パリティ付きのデュアルポートメモリのSRAMを 持っているものなら、どうにかなるような気がします。(いい加減)

WZ-660はVRAM 2面で各40KB、合計80KBのメモリがあります。これらにパリティメモリが ついているので、そのメモリを白黒128ラインに割り当てます。 パリティメモリを操作する命令を追加する必要があって、お互い独立にアクセスできる方式 でなければならないのですが、どうにかなるように思えています。 8bit CPU WZetaの命令セットアーキテクチャには空いているオペコードが2ありますが、 それを使わずにOP1命令のサブオペコードで実装。

ノベルゲーム専用画面を使いたいという人が、大勢いると、やる気になるかも。


10月20日 WZ-660向けVGA用DAC回路の計算方(2)

DAC回路の計算など中学生でもできるはずなのに何をやっているのか? と思われた人もあるかもしれない。実際に、そうなのですが、 ブレッドボード間をまたぐ配線を減らす回路だと簡単には計算ができない。 ブレッドボードにCmod S7を載せて販売すれば、普通のパソコンのCPUのように 抜き差しする運用が可能で、いいかなぁと思っていました。 しかし、ブレッドボードだと落としたりすると、どうしても配線がショートしたり、 抜けたりするので商品化は難しいだろうという結論。

それでも計算だけしてみた。解になりそうなものは見つかりそうになったが、 消費電力が大きいことに気づいた。

結局、
「FPGA プログラミング大全」Xilinx編 (著)小林 優
にあった中学生でもできるDAC回路が良さそう。

中学生でもできるDAC回路を思いつくのが難しいのかと言えば、そうではなくて 最も安直な回路だと思う。実際に4bit DACとしてどのくらの精度になるのかを、 計算して、必要な精度が出ていればいい。

参考まで。Digilent製PmodVGAはラダー回路を使っているようです。 そして74汎用ロジックが入っている。この74汎用ロジックのおかげで多くの評価ボードで 使えるのだけど、評価ボードが決まっている場合は、適切な抵抗値を計算すれば 74汎用ロジックは不要。


10月18日 WZ-660向けVGA用DAC回路の計算方

頭が痺れて思考能力が無い。昨日の日記は、これを先に訴えて作業ができるようにしたかった。 RGB各1bitのカラーではDAC回路は不要だったけどRGB各4bitのカラーではDAC回路が必要。 FPGAの本に計算された抵抗値はあるのだけどCmod S7向けに計算された値ではないし、 正確に計算できたからといって入手できる抵抗器とは限らないのだけど。
現在も、頭が痺れて思考能力が無い。 普通ならVGA用DAC回路の計算を始めているはずなのだけど、ネットに答えが落ちていないか探した。 計算方法まで書かれているものは無い。 脳の痺れ具合から、自作を諦めるほどだったが、どうにか計算方法が自作できた。 これから計算してみて、正しい結果が出たなら、日記に書くことにします。 さすがに、この痺れで正しい計算方法を考え出せている保証はなく、 実際にコンピュータで計算させて答え合わせをします。


10月17日 基板設計無し、はんだ付け無しの互換機量産の可能性

VGAコネクタを自作してVGA回路がわかってきたので、Cmod S7によるWZ-660の互換機は、 部品点数が少なく済む可能性がでてきたのです。この結果、基板設計無し、はんだ付け無しの ブレッドボードで互換機を量産できるかもしれません。

専用のケースを作れば営業の人でもWZ-660互換パソコン組み立て販売ができるかも。 WZ-660パソコンのビジネスが立ち上がると、書籍、教育など経済効果は大きいので、 僕の作業が捗るようにしたほうが良いので、捗るように考えてもらえればと。

量産を考えるCmod S7による互換機はCPU 100MHz動作、320x240ドット4096色中16色(VRAM 2面)ですが、 小型のFPGA向けのディスクリートの互換機も、考えていきたいと思っています。 例えばCPU 12MHz、320x240ドット8色(VRAM 1面)という仕様なら、作れるかもしれない。 僕がディスクリートの基板を設計するのは難しいので、Cmod A7でディスクリート基板を 代替させます。Cmod A7の基板には512KBのSRAMが搭載されています。 サブCPUもGPIO経由で通信すれば、ディスクリートと同じになります。 ディスクリート版の互換機の開発も、進められそうです。 ディスクリート回路のファンの方々も応援してもらえればと。

オマケの話。1982年のSHARPの8bitパソコンMZ-2000を中学生のときに買ってもらって使っていました。 MZ-2000の宣伝に 「キーボード上のCapsLockなどのLEDをソフトウェアで不要にして部品点数を削減しました」 というのがありました。これがモノを製造する考え方なのだと、中学生の僕は理解しました。


10月17日 自作VGAコネクタでWZ-660がCmod A7で動いた

WZ-660互換機として考えているのはCmod S7ですが、Cmod S7によく似ている Cmod A7をWZ-660にしてみました。

ネット上ではDigilent製 PmodVGA以外の選択肢が無くなるように誘導されている状態でした。 Digilent製PmodVGAに頼り切れば、いきなり品薄になって入手できなくなったときに WZ-660を売りそびれることになります。このため品薄な時期をしのげるように 自作VGAコネクタを作ってみました。

色がちょっと変ですが、どうにかCmod A7のWZ-660が動いたみたいです。 自作VGAコネクタでもRGB各4bitのカラーは可能だったのですが、今回自作した VGAコネクタはRGB各1bitです。 Xilinx以外のFPGAによる互換機などでI/Oが不足する可能性もあると思うので ゲームやアプリはRGB各1bitの8色を想定したほうが良いのかもしれません。 もしくは8色の互換機では使えないことを明記するなど。まだ先の話ですが。

写真をマウスでクリックすると拡大されます


10月16日 位相補正機能つきUART回路

僕のデジタル回路設計の実力についてかも。ICF3(1999年)のべき上剰余演算器(RSA暗号)の デジタル回路設計を僕は1から自分でやっているので実力をわかっている人も多いのですが、 僕はプレゼンを担当していた人だと思う人もあるかと思いましたので。

数年前、この日記で自動位相補正機能つきUART回路の設計図を公開した話をします。 当時はXilinxのFPGAを搭載するDigilentのCmod A7でSSLアクセラレータを開発していました。 XilinxからAlveo-U50を購入して、そちらに移ったのでCmod A7のSSLアクセラレータは完成しませんでした。 しかしUART回路の開発をして動作テストを始めていました。

Xilinxの8bit CPU PicoBlazeの中にあったUART回路のサンプルコードは通信速度の 変更が可能でしたが、位相補正回路がありませんでした。 近年のFPGAは非常に高い周波数で動作してくれることもあって、位相補正回路を作ることが 容易でした。うれしがって、ついこの日記で公開 してしまったというもの。公開したのはverilogコードではなくてXilinxのプリミティブで 構成された設計図なのですぐに使える状態ではなかったのですけど。

写真をマウスでクリックすると拡大されます


10月16日 WZ-660互換機のキーボードI/Fについて

WZ-660互換機もPS/2キーボードがいいように思っています。 Digilent製のPS/2モジュールの 商品ページにあるサンプルコードを僕は見てしまったのだけど、 僕は大型コンピュータの暗号装置ICF1(1997年)、ICF2(1998年)の通信回路の開発を担当していました。 暗号プロセッサと暗号鍵を格納している装置を接続する通信回路です。 ICF1のときは僕が作った開発中の不良のために、暗号プロセッサを、もう一度、 作ることになったので、記録が残っています。

僕が「何でも屋」に見える人は多いと思いますが、この手の開発は実績のある本職なので、 PS/2の通信回路は、自作できるということです。

通信回路の開発実績の無い人は、僕のようにFPGAチップに内蔵することは、 考えてからのほうが良いように思います。


10月15日 8bitCPU向けの仮想マシンがTLで話題に

ツイッターのTL上に多数、仮想マシンの話題があるようです。 僕のWZetaのプログラミング歴も、長くなってきているのですが、 WZetaのハードマクロ機能では、他で開発されたVMの実装は、ほぼ無理ではなかと。

WZetaのハードマクロ命令を考慮したVMでなければ、実用的な効率になる可能性が低いです。 ただ偶然にも日本のCASL IIは、WZetaでも効率的に実装できるかもしれません。 しかし僕がCASL IIに手を出していないのはWZetaの方針に合わない方向となるためです。

WZetaとICF3-Zのハードマクロ命令を意識した仮想マシンを税金を使わずに開発する人が あればと思っています。僕が後から、別のものを作ってしまう可能性はありますが、 個人で小規模に作れてしまうので開発で奪われた時間が戻ってこないリスクをとって、 自作の仮想マシンを作ってみることは、楽しいかもしれません。

ハードマクロ命令の機能は、新しい技術を生み出せるように思っています。 産み出された新技術の価値が、一般ユーザーから見た評価を考えながら、 誰もやっていないうちに、考えてみるのが、良いように思います。

僕に喰らいついている産業スパイの無効化をしないと、全てが上手くいかないのですけど。


10月14日 互換機のゲーム用入力デバイスのI/F案

8bitパソコンWZ-660の互換機を開発したい人向け。 ゲーム用入力デバイスのI/F案を思いついたので書いてみる。

互換機といってもDigilentのFPGAボードを使ったものに限る話になります。 他社のFPGAボードもアナログ入力があれば使える可能性はあるかもしれない。

限られたI/Oピンを節約するためにアナログ入力のピンを使えないか?という話です。 実際にアナログ入力ピンを使ったことが無いため保証のある話ではない。 近いうちに試した結果を報告することはあるかもしれない。

FPGA側の回路とBIOSは、僕ができるとしても、 入力デバイスは互換機を作る人、ゲームに対応したデバイスなどを開発する人が考えるのかも。

保証の限りではないけどアナログ入力の良い点は、配線と抵抗器だけで作れるから、 安価に作れるメリットがあるように思います。BIOSファームは、入力デバイス毎に 考える必要が出てくるかもしれないけど。

オマケ、僕は中学生のころSHARPの8bit機、X1のゲーム「ホバーアタック」専用の ジョイスティックを作ったことがある。多分、工学社I/OにX1の仕様が掲載されたときに、 作れそうだったから、作ってみたのだと思う。配線とスイッチだけで作れる。 ジョイスティックはエポック社より発売されたLSIゲームのスーパーギャラクシアンから引き抜いたもの。 上下移動のできないジョイスティックですが大き目のボタンが押しやすい。 「ホバーアタック」というゲームでは使い勝手が良かったと思います。 SHARP X1は友人が持っていたもので、僕は友人宅に自作ジョイスティックを持って、1度遊んで、 そのまま、ジョイスティックを置いてきました。


10月14日 8bit CPU WZetaはZ80より圧倒的に優れている

どの8bit CPUも性能に大きな違いは無いと思うことはあると思います。 ましてや世界中で大ヒットしたZ80が、大差で僕のWZeta に負けることは無いだろうと思うかもしれない。

Z80向けのソフトウェアなどの資産を除けば、技術的にはWZetaが圧倒的に優れている と僕は思っています。WZetaはオープンソースですから、ソースコードで取り込める便利さが違うと思います。

WZetaを選択しましょう。公平にZ80とWZetaを比較できると良いのかもしれない。 (WZetaは税金を使わない方針に変更はありません)


10月13日 WZ-660のサウンド機能の検討中(6)

暗号ハード屋である僕が音源ソフトを作るなら、音源ハード屋に配慮すべき という意見があるようです。 それを言うならメインフレーム屋や暗号ハード屋を配慮し僕の状況を考えるべき だと思っています。

暗号ハードでは、ほとんどが整数演算のみです。ところが整数演算というのは、 固定小数点演算でもあり、暗号ハードが作れると 音源で使う演算を効率的に演算できる方法を見つけてしまうことがある。 それを8bit CPUでソフトウェア的に実装できます。

音源となる波形をフーリエ級数を使って生成することもできるかもしれない。 しかし、そこまで難しいことは必要なくて波形パターンをメモリに記憶せさて 時間軸で伸張する単純な演算をSouGenでは使う。 まだ実際にハードで音を出しているわけではないから品質は不明だけど、 フーリエ級数のようなアルゴリズムを使っているわけではない。

なので音源ハード屋への配慮はWZ-660のサブCPU、SouGenに実装されるPSG音源の ソフトウェアをクローズドにすれば良いのではないだろうか。 波形をカスタマイズできるPSG音源としてSouGenを売り出そうかと思っていましたが、 従来音源と同じなります。SouGen独自APIとすることで海賊版となることを回避します。

そしてSouGenプロセッサのハードのほうはオープンソースハードとして WZ-660互換機の普及を目指します。SouGenは次世代自動車部品の高信頼化技術になる 可能性があり、これを阻害することは、重大な問題になることすらあるのです。 8bitパソコンWZ-660のPSG音源はSouGenプロセッサで実装します。 SouGenは7コア(仮)のマルチプロセッサなので並列処理によってPSG音源を 12MHzという低い周波数で実現できます。マルチプロセッサによる 高信頼化技術を実際のアプリで証明しています。

僕の暗号プロセッサSnakeCubeの技術を避けるデメリットは大きいので、 僕を起こす以外無いという状況なのです。SouGen技術やWZ-660による経済効果も 立ち上がるので。SouGenはWZ-660のサブCPUなのでWZ-660が普及すれば、 SouGenで音源を除く様々なアプリを実装してみることもできるようにする予定です。

オマケ、レトロ8bitパソコンはサブCPUを乗っ取る遊びをすることができたみたいです。 興味がある人はネットを調べたほうが早いかも。


10月13日 WZ-660のサウンド機能の検討中(5)

8bitパソコンWZ-660のサウンド用サブCPU、SouGen型7コアは専用ハードを持っていません。 汎用マルチプロセッサです。念のために言えば、僕の専門は暗号演算の高速化で、 演算系のものは非常に得意です。高性能な演算ソフトを作っている人でも 浮動小数点命令の無い世界は不慣れかもしれません。要するに、そこそこできる人でも、 作れないものが、SouGenサウンドプログラムに入っているかもしれないというお話です。

サウンド系は、僕の専門外ということもあって僕をキッカケに技術が拡散するのを危惧しています。

(3)の日記で書いた440Hzの音を整数で処理すると実際の音は 440.3669Hzとなってしまう問題があるのですが、小数点がある演算を浮動小数点命令を経由せずに、 必要な結果を、より簡単に演算できれば良い。ということかも。


10月12日 WZ-660のサウンド機能の検討中(4)

WZ-660のサウンド用サブCPUとして開発しているSouGen型7コアの 良さがわからなかった人がいたのかも。 クロック単層でデバイス固有のDSPを使っていない平易なverilogで記述された マルチプロセッサだから、デュアルポートメモリのあるFPGAや、ASICへ簡単に移植が可能。 WZ-660互換機の開発を容易にしている。 12MHzのクロックを供給すれば、プログラムを変更することなく、どの互換機でも同じ音になる。 DAC回路の差異で完全に同じ音にはならないかもしれませんけど。

現在、僕が使っているXilinxのFPGAだとWZetaはメモリ容量が小さい場合、 100MHz以上で動作します。しかし50MHzくらいしか能力のないFPGAに移植しても 12MHzでは動作するので簡単に移植できます。今のところWZ-660のメインCPUと サブCPUの転送速度を非常に遅くしているので、サブCPUをメインCPUのFPGAチップの、 外に出すことも可能だという計画でした。WZ-660の設計をしていくうちに 外に出せなくなることはあるかもしれない。


10月12日 WZ-660のサウンド機能の検討中(3)

440Hzは「ラ」の音で調律に使われるそうです。 48kHz/8bitで音声データを送信する場合、440Hzは48kHzを単位とすると
(1/440)÷(1/48000) = 48000÷440 = 109.090909…
ですが48kHzを単位としてデジタル処理をすると109回毎にデータを送信すれば、 良いものかと思っていました。

ところが小数点を削った値、109回を元の周波数に直すと440.3669Hzです。

これを正確に440Hzに近づける音を出すことを考えていたら、 頭が悪くなっていて、辛かった。

ファミコンでは三角波なるものがあるらしいのですが、 WZ-660では任意の波形を出力できることを考えます。 1波形を時間軸で256分割して信号のレベルを64段階として記録した波形パターンを作っておきます。 三角波は信号レベル0からスタートして0~127の区間は2回に1回信号レベルを1つ上げます。 127区間に到達するころには信号レベルは63になっています。128~255の区間は2回に 1回信号レベルを下げます。というようなデータを作ってテーブルに格納しておくのです。

前回は4コアを考えていましたが、音を発音させながら、次の音の計算を するためには7コア(SDog 1コア+ SBax 6コア)が必要かもしれない。

サウンドのために7コア、、、。 XilinxのFPGAに搭載されるDSPで専用ハードを作ろうかと思い、作り始めて 良さそうな案になったのですが、やっぱりマルチプロセッサでいくことに。


10月12日 マルチプロセッサの種類について整理

僕が作っているマルチプロセッサは3種類です。 この日記を読む人が混乱するだろうと思ったので整理します。

(1)ゼロ遅延型
プロセッサ間通信遅延がゼロであるため「ゼロ遅延」と呼んでいます。 一般的に良く普及しているSMPです。SMPでありながら1つのタスクを複数のコアで処理できる新種。 小型のSMPを作るのが容易で、要件を満たす最低周波数が計算可能?なアーキテクチャを教育すれば、 将来役立つかも。

(2)SouGen(草原)型
8bitパソコンWZ-660のサブCPUをSouGen(草原)と命名。 このサブCPUのマルチプロセッサアーキテクチャをSouGen型と呼ぶことに。 手っ取り早く設計できて便利。デュアルポートメモリが必要ですが、 FPGAはデュアルポートメモリが多い。 SoCもデュアルポートメモリに対応したデバイスが多いはず? WZ-660のメインCPUもSouGen型。

(3)Vattless型
数年前に提案していたアーキテクチャ。 SouGenに似ているがシングルポートメモリでいいことが特長。


10月11日 実は僕はヤマハ音楽能力検定を持っている

ただの雑談。昔の8bitパソコンの多くはヤマハの音源チップを使っている。 全く関係ないけど実は、僕はヤマハ音楽能力検定を持っている。 幼稚園から小学5年までの6~7年、ヤマハ音楽教室に通って、一番下の13級は合格していて、 次の12級は、どうだったのか、覚えはないけど、12級合格のために、あれこれ言われたことはある。 一般客も入れる演奏ホールでの演奏会を経て試験に通った記憶がある。

当時、親が買ったものだけど自宅には数十万円したエレクトーンなるものがあって、 毎日、練習をすることになっていた。

13級を持っているからといって何かいいことがあったのかというと、 中学の音楽の成績は、良かったかもしれない。 弟もヤマハ音楽教室に通っていた。僕より1年長い。


10月11日 WZ-660のサウンド機能の検討中(2)

前回の日記に、サウンドプロセッサ(SouGen(仮))の開発を考えていますと言いました。 そして少し騒々しくなっています。 どうもサウンドプロセッサであることが問題となっているのかもしれない。

ほぼSMPの4コアの普通のCPUを考えています。つまりサウンドプロセッサとして一般で 使うには無駄が多く、WZ-660の設計コストを極小にする目的に役に立つもの。 ただSouGenを開発しておけば、極小な4コアのマルチプロセッサとして、 今後、様々な場面で使えるかもしれない。

以下は、もう読む必要はないのですが、ざっと今、僕の頭の中にあることを話すと、

クロックが12MHzくらいで動作すると、何かいいことがあるのかわからないけど12MHzが多い。 12MHzでオーディオ扱うには、専用ハードが必要なりそうだけど、マルチプロセッサで、 どうにかなるかもしれない。

CDは44.1kHzのようですが、最近は48kHzが多いみたい。 12MHzのクロックで48kHzの音声を出力するためには 250クロックで1データを送信する必要がある。 WZeta SDogコアは全命令4サイクルなので
250 ÷ 4 ≒ 62.5
62命令で1データを作らないといけない。PSG 1チャネルなら、どうにかなる。 3チャネルでは4コアのマルチプロセッサということになった。


10月11日 WZ-660互換機のキーボードの考察

WZ-660の作業は中々進まない状況ですがSNS上には、互換機を作るためのパーツの 案内が増えました。安価に安定供給できることを考えながら案内を見ています。

そういえば日本って自作キーボード屋さんとか増えましたよね。 キーボードの中にWZ-660の互換機を入れてしまえばI/Fは独自のもので良くて、 安くできるかなとか。


10月9日 WZ-660のサウンド機能の検討中

暗号ハードが専門の僕がサウンド機能を作っているため、 まだ2転3転した挙句に白紙撤回することはあると思います。 まだ実際にハードを作ってないので、実現するのかは、不明です。

ゲーム機は1983年のファミコンのPSG音源からFM音源やPCM音源へと進化していきます。 しかしWZ-660の8bitパソコンではメモリが不足するのでPCM音源は困難です。 ただ8bit CPU WZetaはあるので、WZetaをベースとしたサウンドプロセッサというものが 考えられないだろうか。とりあえずSouGen(草原)という仮名をつけときます。

プロセッサなのでPSGを柔軟にコントロールできるので従来のPSG音源というよりは P-PSG音源(プログラマブルPSG)という新しい音源かもしれない。 いやエンベロープを自在に変更できるPSG音源があれば、それをSouGenが実現してくれる。 ただし8bit DAC回路はついていないので、互換機を作成する人は、各自、調達することになります。


10月8日 WZ-660で浮動小数点の計算

WZ-660で浮動小数どうするのみたいな話が、あるのかもしれない。 僕は、オーディオアンプを、どうしようみたいな状態で、浮動小数まで 気が回っていないけど、ハードマクロ命令にFPUのAPIを決めてやれば、 良さそうな気がしているけど、全然、未確認の話。

そしてFPUを持っていないWZetaはソフトウェアで演算させることができるから、 WZetaは優秀みたに思っている。

僕の専門である暗号演算の高速化では、浮動小数はこれまで使わなかったけど、 FPUは、やってやれなくはない範囲。 WZ-660パソコンを完成させるために、いろいろな作業をしているから、 FPUに着手できるまで、まだ時間がかかるかもしれない。 僕に迷惑がかからないような人に、やってもらえるなら、永遠、 僕はやらないかもしれない。

WZ-660をCmod S7に実装すると大量にLUTが余るので、余ったLUTで8bit CPU WZetaを 追加できるから、それをFPUとして使ってしまうという案もある。


10月8日 FPGAボードで音を鳴らせた動画をアップ

開発進捗の報告です。 安いarduinoの電子工作キットの圧電スピーカでは音が小さくて動画が作れなかったので、 もう少し大き目のスピーカで音を鳴らせてみた動画。 スピーカは部屋に偶然あったNECのパソコンから引っこ抜いたもの。
https://youtu.be/7jZ0lW84bj4


10月8日 androidの暗号化アプリのメンテナンスについて

2016年ごろに僕が公開した androidの暗号化アプリですが、しばらくメンテナンスをしていないので、 非公開にしようかとも考えているのですが、いきなり非公開にすると、困る人もあるかもしれないと思ったので、 もう少し放置します。

android OSの暗号化関数を呼んで実装されているので、android OSは何を暗号化したのかを 正確に把握できます。放置されながらも、このアプリが生かされているのは、そういうことかもしれません。


10月7日 英語ができると偉いの?

頭痛に悩まされて20年近くになるだろうか。頭痛によって記憶力や速度が低下する。 昨日の昼に何を食べたのかなどの些末な記憶は劇的に消える。頭の回転速度も常時、 常人の3~5%くらいになっている。

早い話が、英語の能力が壊滅的な状態になっているのだけど、 この頭痛、軽度な状態でも英語能力は激減する。

この状態で「俺は英語ができるから偉いのだ」という人がいても、 あんまり偉いと思えなくなっている。

要するに産業スパイの行いによって英語ができる人の価値が激減しています。 これを食い止めるには、産業スパイを僕から撤退する方向がいいように思うのです。


10月7日 WZ-660で圧電スピーカが鳴るようになりました

Arduinoの電子工作キットに付属していた圧電スピーカをWZ-660でどうにか、 鳴らすことができました。これで2次元シューティングゲームなどは実用的なレベルに なっていくのではと思います。WZ-660が普及して互換機や、書籍などのビジネスで 儲かるようになっていけばと考えます。

昔、SHARPのポケコンとCASIOのポケコンがありました。マシン語ができるSHARPの ポケコンはCASIOの3倍くらいの価格で売れていました。マシン語ホビーが楽しかったのです。 僕もSHARP PC-1251を持っていて8bit CPU、SC61860のマシン語に夢中になっていましたが、 大学に入るころには互換性のない次世代のCPU、SC62015に移ってしまいました。 どちらも仕事で役に立つということはありませんでした。

WZ-660の8bit CPU WZetaはオープンソースで、これからのCPUですが実力があるので、 世界に普及していけるように思っています。そうなればWZ-660でマシン語を覚えれば、 仕事で役に立つことはあるように思います。そういう世界にしなければいけないの かもしれませんが、厳しい状況です。

40年前の日本は非常に多くの8bitパソコンが存在し、コンピュータの書籍が乱立する華々しい 時代でした。あのイギリスの8bitパソコンZX-81が、日本のポケコン以下という状態でした。 今、その世代が、ちょうど定年退職を迎える時期なのです。 つまり日本には非常に大きな力が眠っています。 そして若い人もいっしょに、日本の未来へと頑張っていきましょう。


10月5日 音源回路を考え中

考え中の話は不要だという意見も聞こえてきそうなのですが、 音響機器は極めてうるさい人たちが多く、どのくらいの音源回路にすればいいだろうと思っているから。 自分の暗号プロセッサなどのデジタル回路を他社に侵略されないようにしないといけないため。 arduinoで音声出力している実験ブログなどを見ながら、自分があまり知らないことを知るというレベルかもしれない。 だから単音でブザーを鳴らす程度の実装になるかもしれない。

参考までの話。昔、中国製の激安なUSB-DACを買ったら産業スパイに破壊されました。 破壊されたUSB-DACの写真です。破壊された後、再購入したら、また破壊されたので2個あります。 音響機器には、お金を払いましょうということなんでしょうか。

図をマウスでクリックすると拡大されます


10月4日 WZ-660のDMAやサブCPUを考え中

より良いWZ-660を設計するべく次はDMAやサブCPUを考え始めたところです。 Cmod S7に詰め込むことを考えているために、あまりたいしたことはできない。 Cmod S7はBRAMの総数は45個、VRAMを2面にしたために既に42個を使っている。

あれこれ考えていくうちにWZ-660の性能向上のために演算専用の サブCPUを追加することを思いついた。SMPではなくてMIMDのサブシステム。 こんな設計ができるのは、CPUやパソコンを自作しているからであり、 学校が提案してきても、採用されることはないだろうと思う。

WZ-660はFPGAチップのリソースを最大限使って、コスパの優れたパソコンを作ることが 設計目的だったわけではなくトランジスタ数当たりの性能が良い地球環境に 優しいCPUを普及することが設計目的だったのでFPGAチップ上に使われていない リソースが余っているのです。この余ったリソースで性能向上をするため、 今回、サブMIMDを設計することを思いつきました。 サブMIMDは、またしても僕の造語です。あまり適切な用語が見当たらなかったので。 付け焼き刃なアクセラレータですが、今後、利用できるケースが無いということは無い。

WZ-660は8bit CPU WZetaのSDogコアを採用していますが、 SDogコアの機能縮小版のSBoxコアをサブMIMDのCPUをして採用します。 割込みやハードマクロの機能が無いだけでWZetaと同じ命令セットになるので、 ハードマクロを抑止できるコンパイラなら流用可能かもしれない。 割り算とか、数十バイト規模のプログラムが多くなると思うのでコンパイラの 出番は無いかもしれない。

WZ-660では4コアをメインメモリ上に割り当てます。$6000~$FFFFはVRAM領域なので、 $2000、$3000、$4000、$5000の4KBバイトメモリにSBoxを割り当てます。 FPGAはデュアルポートメモリなので、1ポートメモリで動作するSBoxを追加するのは容易。

MIMDだから別のプログラムを書き込んでもいいし、「マルチライト」で4っつ同時に 同じプログラムを書いてもいい。プログラムを書き込んで、データをセットしたら、 サブCPUのプログラムカウンタを$128にセットするOUT命令を実行。 SBoxも1命令4サイクル固定なので、結果が出る時間まで待ってもいいし、終了フラグを 共通メモリ上に用意してもいい。キャッシュがないから、煩雑になることはない。

まだ論理合成していないけど、周波数が100MHzから、あまり落ちないことを期待。 付け焼き刃なアクセラレータのプログラムなんか、やりたくないという意見もあると 思いますが、そういう人はMIMDサブを使わなければいいだけなので。 これだけで演算能力が数倍になることもあるはずで、僕から見た費用対効果は、 大きかった。


10月4日 Cmod S7-25でWZ-660互換機を合成してみた

合成ツールはVivado 2021.1です。デモ動画で使ったverilogがCmod S7-25でも 100MHzで合成が成功しました。BRAMは42個。残り3個。残り3個でサウンドと microSDの回路を実装すればCmod S7-25の互換機は作れそう。 というか、Cmod S7-25でなんとかなるように仕様を考えるのかも。


10月3日 漢字フォントの無いWZ-660互換機で漢字を表示

本年7月にWZ-660に搭載する漢字フォントを作成している日記を書いていますが、 フォントは完成して、それを使ったゲームの動画を既に公開しています。

ベーマガ初投稿の実話をノベルゲーム風にしてみた

WZ-660のフォントを作成してみたものの、ゲームではゲームデータにフォントデータを含めておけば、 良いことに気づいた。そしてゲームに向いた漢字フォントのサイズ、書体を自分で選べる。

XilinxのFPGAチップを搭載するDigilentのCmod S7-25を使ったWZ-660はSDRAMが無いので、 漢字フォントは搭載できないかもと思ったけどmicroSDに置くゲームデータと一緒にフォントを 入れて置けば、冒頭の動画のようなゲームは作れるように思う。

WZ-660を作れるFPGAチップは200KB近いSRAMを搭載している必要がありますけど、 WZ-660はスペックを抑えたので、WZ-660の互換機として利用できそうなFPGA評価ボードの数は多いはずです。 いろいろな人が互換機を開発できて、いいかもしれない。

大容量のSRAMを持たない安価なFPGAチップの場合も、考えていはいますが、基板にSRAMチップを配置すると 100MHzの動作は無理だと思うので、性能が遅くても遊べるゲームに限定して、VRAMも1面のみするというような、 感じかもしれない。冒頭にあるノベルゲーム風ゲームならVRAM 1面でも動作するかもしれない。

要するにCmod S7-25を使ったWZ-660互換機は100MHz近くで動作するし、マルチライトも可能だし、 漢字もなんとかなるし、非常にコスパが良さそう。


10月3日 Cmod S7-25の検索結果が面白い、産業スパイに騙される

WZ-660のCmod S7-25を使った互換機についての話題に興味のある、みなさま。 産業スパイの絶妙な工作に騙されないようにしてください。

産業スパイの行動論理は、完全犯罪ができるケースを見逃さない。

今日、Google検索エンジンで「Cmod S7-25」を検索しました。僕のサブ垢のツィートが ヒットしたのですが、Cmod S7-25は100MHzでは動作せずに25MHzで動作するみたいに 読めるように工作された検索結果が出力されました。

僕のツィートしたものであることに違いはないのですが1週間以上、空いているツィートの 都合のいい部分を張り合わせているので誤解させる内容になっています。

「Cmod S7」の結果と「25」の結果だから、誤魔化せると思ったのかもしれませんが、 以前も、僕の直筆を張り合わせて、産業スパイの期待する答えを偽造していますから、 これは偶然ではなく工作されたものだと思われます。 ですから産業スパイが証拠として言っているものは、信用されませんように。

図をマウスでクリックすると拡大されます



10月2日 CPUだけでグラフィック処理、新機能で1.5倍高速化実現

WZ-660試作機で実際に1.5倍高速化した動画の紹介。高速化に使ったマルチライトは 昨日の日記にも書かれています。 YouTube動画からFC2動画に切替えた理由は「この動画のせいでGoogleがYouTubeのサービスを終了させたらどうするんだ」 みたいなことを暗に囁く人がいたため


10月1日 WZ-660のVRAM仕様変更

少しでもゲーム機としての性能を向上させるためVRAMを変更しました。 VRAMの先頭アドレスが$6800から$6000になります。実装も完了しました。

マルチライト機能を追加しました。「マルチライト機能」は僕の造語です。 WZ-660のCPUはプログラムメモリ64KB+データメモリ64KBをアクセスします。 データメモリを4KBのブロックに分割すると16個。 マルチライト機能をオンにすると選択したブロックの全てに同じデータを書き込みます。 汎用的な機能ですがデータメモリの後半10個がVRAM領域に割り当てられているので、 4KBを消去すれば、全画面分が高速に消去されます。

WZetaは、256バイトを1命令で0にする高速なLOOPZERO命令を持っているので、 マルチライト機能との組み合わせることでZ80などのCPUと比較して数十倍以上高速に 画面消去できます。

マルチライト機能をテストするために故意に1ライン消去しないテスト用のBIOSでテストした画面。 正しくマルチライト機能が、動作していることが確認できました。

図をマウスでクリックすると拡大されます


暗号プロセッサ OpenICF3