もくじ

V-scale というオープンソースマイコンを拾ってきて FPGA に乗せて遊んでます

_コンソール付きのシミュレータが欲しい 端末 XMODEM
乗算・除算器を改良した話 : github
FPU 拡張を追加したい話
_演算器のモデル記述 FADD FMUL FMADD FDIV FSQRT : github
_組み込み 転送 演算器

[PR]
# by tom01h | 2017-12-31 23:59 | PCとか | Trackback | Comments(0)

Insider 16232

なんかアップデートがうまく動かなくて途中で止まっちゃうので、ISOをダウンロードしてからアップデートしました。
それでも1回目はうまくいきません。暑いせいかな?
Bash on Windows がストアに対応したから入れなおしたほうがいいって話だけど面倒ですねぇ。
自作とかダウンロードしたファイルは Windows 側に移したホームの下にあるので、apt install と make install だけやり直せばよいのかな?
とりあえずRISC-Vのgccのビルド中…

[PR]
# by tom01h | 2017-07-18 00:48 | PCとか | Trackback | Comments(0)

FSQRTモデル

思ったよりも手間取りました。そもそもCで書いた何となく動くものがあって、それを翻訳するだけのはずなのですが…
乗算との回路共有の兼ね合いで、ループが半サイクルずれているんですよね。そのせいでなんか良く分からない動きになっちゃうんです。とりあえず波形を見ながら現物合わせで直して…
サブノーマル入力は精度不足になるだけのようですね。FDIVから荒いプレシフタをコピーしてきます。
ちなみに平方根なので、サブノーマル出力もオバーフローもアンダーフローもありません。
さて、これから1個の回路にマージしていく作業ですか?その前に整数除算にプレシフト付けるのかな。

[PR]
# by tom01h | 2017-07-17 00:33 | PCとか | Trackback | Comments(0)

技術的な本

実は最近、超久々に横書きの本を読んでいたりします。
  • GPUを支える技術
  • FPGAの原理と構成
GPUの方は安藤さんらしく、最新の情報を素人にもわかりやすく、技術的には専門に近い人から見るとちょっと浅いかもって感じ。そして実践的。
FPGAの方は、大学の先生が寄ってたかって書いている本で、まぁ、混とんとしています。とっても基本的なことから説明している所もあるし、いきなり難しい話をしているところもあります。FPGAとはあまり関係なく、計算機のアーキテクチャを説明してたりもします。過去の栄光?って感じでちょっと贔屓目の部分もあります。まぁでも、これはこれで面白い。
f0054075_13324614.jpgf0054075_13324668.jpg

[PR]
# by tom01h | 2017-07-16 20:32 | 本・映画など | Trackback | Comments(0)

シリーズ中国近現代史6

え~~っ今更?もう出ないと思っていました。中国近現代史の完結です。4巻が11年1月で、5巻が14年8月で、やっと6巻が出てきました。とりあえず買ったけど、ちゃんと読むかな?
f0054075_20551285.jpg

[PR]
# by tom01h | 2017-07-14 21:00 | 本・映画など | Trackback | Comments(0)

FPGAマガジン続報

アマゾンにもFPGAマガジン次号が来ました。RISC-V特集ですよ~~。
ってか、オリジナルのRISC-Vだと。だれが書いているんだろうか?もう、V-Scaleは捨てちゃおうかな。

[PR]
# by tom01h | 2017-07-11 23:22 | PCとか | Trackback | Comments(0)

FDIV モデル 2

FDIV のモデルを作ります。整数除算と丸めはすでに持っているので、くっつけるだけで簡単にできると思っていました。実際、正規化数を扱っているだけなら、今まで作った部品のコピペで出来ました。
また、サブノーマルの出力の方はそれほど難しくなく、すでに持っているサブノーマル出力機能付きのノーマライザを通すだけで出来ます。回路化するときはどうせ共有する部品ですし。
入力はちょっと難しいですが、整数除算を高速化するためのプレシフタとの共通化を視野に入れて考えます。
まず条件として、被除数が大きすぎて除数を引いた後の部分剰余がまだ、除数よりも大きいままだと除算が成立しません。被除数が小さすぎる分には、必要な精度を得るためのループ数が多くなるだけです。それを前提として、回路を節約するために8bit単位の荒いプレシフトをすることにしました。
途中で桁が足りなくなったりして苦労しましたが、とりあえずモデルは完成しました。回路化するときに、もう一度見直そうと思います。

[PR]
# by tom01h | 2017-07-08 23:18 | PCとか | Trackback | Comments(0)

FDIV モデル

久々ですが、FPU演算器のモデル設計を再開します。次は FDIV です。整数除算も出来ているし、丸めも別に作っているので、コピペだけで簡単にできました。サブノーマルのことを考えなければ…
ということで、中途のを GitHub に置いておきました。
しかし、サブノーマル入力はどうすればよいのだろうか?
最悪、被除数はそのままでもループ回数さえ増やせば大丈夫なはず。でも、除数が小さいと無理だよねぇ。プレシフト必要かな?整数除算でも使える方式を考えてみるか。
出力はサブノーマル出力ができるノーマライザに、右詰めで答えを入力すれば良いと思います。

[PR]
# by tom01h | 2017-07-06 22:42 | PCとか | Trackback | Comments(0)

WaveDrom

ちなみに波形は WaveDrom というソフトで書いています。テキストファイルを入力して波形を書くソフトです。ブラウザ上でも使えるようです。ソフト自体の使い心地はかなり残念ですが、テキストでここまで書けるのは結構便利。マニュアルもないので、ソフトの使い方も、できることもチュートリアルでしか分かりません。GoogleGroup に参考になる情報が有ったりもするみたいです。


こんな記述で波形が書けます
[PR]
# by tom01h | 2017-07-03 00:41 | PCとか | Trackback | Comments(0)

Vscale-chip 修正

こんな感じに変更します。もともとHREADYは1サイクル遅れで返して、その場合はXbar内に保持したリクエストに差し替えていました。のつもりがあれ?そんな論理どこにも無いぞ??そうするつもりでまだやっていなかったのか?そりゃ動くはずがない。
f0054075_18471537.png
いやいや、ほかにもいろいろ変だぞ。V-scale は HREADY ネゲートのサイクルで前のリクエストを再送している。こんな感じで普通に動いていました。HREADYの次のサイクルに再送じゃないのか?上の図で合っているよね?
f0054075_18500259.png
そんなわけで、Xbar は HREADY を1サイクル早くして、V-scale の中は HREADY を1サイクル遅らして、プロトコル通りになりました。そして命令フェッチストールが1サイクル余分に出る件は、該当論理を削除しただけで一応動いているみたいです。
これで一応、バス周りの既知バグはなくなりました。わかってみると簡単な話ですが、チップのシミュレータを作ったからこそ発見できたのではないかと思います。また、例外キャンセルもめちゃくちゃですが、こっちは見なかったことにします。
元の論理がかなり混乱しているうえに、さらに適当な修正をしたのでめちゃくちゃになってしまっています。というか、今でも原作者の意図は理解できていません。今の構成はスレーブがHREADYを落とすことがないので、それには対応できないかもしれんせん。もう、他人の物は捨てて、1から作り直そうかなぁ。

[PR]
# by tom01h | 2017-07-02 00:41 | PCとか | Trackback | Comments(0)