DIY向けFPGAブレークアウトボード「Fipsy」の開発環境立ち上げ完了。

過去記事にて紹介したLatticeのFPGAを書き込む環境を立ち上げた。

キックスターターでプロジェクトを立ち上げた張本人「Moco Makers」のページにも説明が書いてあるのだが、イマイチわかりにくい。だいぶ苦戦したので、先人の知恵として、活用してもらえたら嬉しい。ArduinoRaspberry Piのどちらを活用しても良いのだが、手元にあったArduinoを活用することにした。

検証環境


Mac OSではFPGAの開発環境が使えないため断念した。対応のLinuxを入れればMacでもたぶん可能だ。

ファイルを用意する。

こっちのGitHubArduinoRaspberry Piのどちらを使用する場合でも必要なファイルがあるのでダウンロードする。

こっちのGitHubにはArduinoを使用する場合に必要なファイルがある。

Arduinoにプログラムを書き込む

まずは、FPGAに対してではなく、FPGAにSPI経由でバイナリーを書き込むために使うArduinoの設定をする。ダウンロードした、Arduino-Fipsy-Programmer-masterの中にある、Arduino_Programmer.inoをArduino IDEから書き込む(もちろん、他の統合開発環境からでも大丈夫だと思う)。この時、MachXO2.hも同じフォルダにないといけないらしいので注意。

Lattice Diamondで.jedファイルを出力する

FPGAの書き込みにはLatticeの専用ツールが必要なので、こちらから準備しておく。このツールのダウンロード自体は訳ないのだが、ライセンスの申請で数日かかる。師匠は数ヶ月たってもライセンスの許諾が降りないようだ。ここはどうしようもない。

Lattice Diamond Softwareがダウンロードできたら、こちらの「3. Open the Lattice Project File」で書かれている指示通りにLattice Project Fileを開く。FipsyBaseline.ldfという名前のファイルがProject Fileのようだ。Fileを開くのではなく、Project Fileを開く必要があるので注意。4のSPIのEnableはデフォルトでEnableになっているっぽいのでたぶんスキップ可。

f:id:MasterKoda:20181209192959p:plain
Lattice Diamondの.jed出力後画面

もしかすると「5. Create a JEDEC file」では、指示通りに上手くいかない場合があるかもしれない。対処法の勘所として、"Return"を押す、作成済みの.jedファイルを別フォルダに移す、という対処がおそらく有効である。現象の原因も解決する理由もわからないけど、まぁそんなもん。

f:id:MasterKoda:20181209192822p:plain
.jedのsummary

以降は、Arduinoを活用した書き込み環境立ち上げのページを参照する。

回路は、電圧シフタのボードを持っていなかったため、抵抗分圧で実現した。

f:id:MasterKoda:20181209190144j:plain
Arduino+Fipsy

pythonの環境設定は苦戦した。

1 from Tkinter import Tk

2 import serial

と書かれているテストは結局うまく行かなかったと記憶している。テスト工程のデバッグが面倒だったのですっ飛ばした。

書き込みツールを立ち上げる

このあたりからようやく本題に入るのだが、書き込みツールの立ち上げ、書き込みの過程に入る。コマンドプロンプトを立ち上げ、FileChooser.pyが置いてあるフォルダ(フォルダ構成をいじっていなければ\Arduino-Fipsy-Programmer-master)に移動(Linuxと同じくcdで移動できる)。

python FileChooser.py

を実行すると下記の画面が立ち上がる。

f:id:MasterKoda:20181209190748p:plain
FileChooser.py起動画面

書き込む

Mocoのページの下の方にも書かれているが、GUIに書かれている通りに必要な設定をしていく。

Select a port → USBポートの選択(Arduono IDE上と同じ)

Select your file → .jed fileの選択

Check Device ID → ArduinoのデバイスIDが正しく読めているかの確認。FFが並ぶ結果にならなければOK

Erase Device → 使ったことない。

Program Device → 確認と設定が終わったらここを押してArduino経由で書きこみ。

f:id:MasterKoda:20181209191746p:plain
FileChooser.py書き込み途中

f:id:MasterKoda:20181209191829p:plain
FileChooser.py書き込み完了画面

バックグラウンドでは、Pythonが.jedをバイナリーに書き換え、Arduinoでシリアル to SPI変換をしているっぽい。

書き込み完了を確認する

上記の手段で書き込めているはずだが、確認が必要であれば、下記のコードを少し書き換えてみるといい。

begin if(RESET) count <= 0; else count <= count + 1; end

// Connect the output assign MSB = count[19];   ここの配列は19が正しい。例えば、20にすると、MSBの指定がされないため、Lチカしなくなる。

以上!とりあえず動くことはわかりました。

珈琲美学 飯田橋店

The 純喫茶といったところか。老父婦と思える男女二人が切り盛りする喫茶店は、東京大神宮近くの角地にある。

セットメニューが充実しており、カレー、シチュー、ハンバーグとトーストをセットで組み合わせることができる。

肝心のコーヒーも飲みやすい味に仕立てられている。昔ながらの純喫茶独特の、発酵臭が立ち込める一杯は、若干の苦味の立ちと、柑橘系の酸味が入り混じり、食事の締めを飾ってくれる。

落ち着いた雰囲気で新聞、雑誌を読むことができる。小さい頃、父親とラーメン屋に行った時に、ヤングアニマルやらヤングジャンプやらのグラビアに目を通していた理由が、なんとなくわかった気がした。落ち着いた雰囲気で、英気を養う、ってことかな。

コーヒーの味わいはコーヒーだけで決まるものではなく、体調や雰囲気でも変わるもの。そんなことに改めて気づいた、有給休暇の昼下がりでした。


珈琲美学 飯田橋店 〒102-0072 Tōkyō-to, Chiyoda-ku, Iidabashi, 1 Chome−6−3 オギソビル1F 03-3262-2414 https://goo.gl/maps/gCv1WYBE7FL2

Don't put all eggs in only one bug.

Common sense with investment and presentations.

How to improve your life? When you face on time to choose which is the best way to goal. For example, investment is confused by many choices.

In situation of a presentation, you will be faced on same situation of that. You have many topics, you have some interesting, you can tell many useful things.

However, the story don't need to many topics like one bug with many eggs. If you lost this bug, eggs will be broken at the same time.

You have to simplified your presentation with few topic eggs.