DE0でジュリア集合 もたつき改善

発散する点が多い時にもたつくのを改善した。
愚直に計算していたものを経過時間に合わせて実部、虚部を変動させる事とした。
(最初からそうすべきだった)

そうすることでジュリア集合を計算するmoduleのインスタンス数を減らせて、論理合成の時間も数十秒になって快適になった。
あと、過去記事でQuartus WebEditionでロジック数云々については誤りで、WebEditionもDE0のロジック数上限まで使えてた。

DE0でジュリア集合

FPGAVerilogの学習。
苦戦していたDE0でジュリア集合を描画する件を一旦完了。

この動画が目標。

で、こんな感じにはできた。

・ジュリア集合は浮動小数点数がなくてもなんとかなる。
 固定小数でもなく整数値のみでやれた。
・ジュリア集合の複数回の計算処理を並列化しているが、QuartusのWebEditionのゲート数だと、並列度(=moduleインスタンス数)に限界があり、ちょっと描画がギクシャクしている。
 結局5並列でいっぱいに。
・除算を行うと1除算で800ロジックを消費するので、必要最低限にする必要がある。
デバッグが鬼。
・シミュレータで確認できても論理合成して実機で動作させると異なる動きになるときがある。
・論理合成に時間がかかる。14,000とちょいのゲート数で5分くらい。
 Try&Errorでやっていると時間がかかってしょうがない。

並列度をもっと上げられたら目標動画くらいにスムーズになるのだが。。

QuartusIIにて論理合成が完了しない。
80%で50分位待っても止まったまま。

結局、以下の様な記載があった為。

while ((c < 32768) && (count > 0)) begin

これをこうしたらサクッと終わった。

while (count > 0) begin
    if (c >= 32768) begin
        disable FOR_BREAK;
    end

NiosII Software Builder ToolsでNo Nios II target connection paths were located

NiosII Software Builder Tools for Eclipse で以下のエラーが出る場合。

No Nios II target connection paths were located. Check connections and that a Nios II .sof is downloaded.

エラー解消後はQuartusで以下の表示。
トップモジュールにて?QSYSで設定した名称とちゃんと合わせるとトップモジュールの下にcoreとかがぶら下がる表示になる。

この状態でない時にいくらRefresh Connectionsをやってもダメ。
初心者のハマりポイント。