2017年2月27日月曜日

ALTERAを使うのは15年ぶりであ~る

XilinxのFPGAばっかり使ってきたため、ALTERAを最後に使ったのは15年ぐらい前でした.ALTERAにご無沙汰していた15年間に、Intelの傘下に入ってしまったALTERAです.

価格が安いのでCyclone2 EP2C5T144が載った基板を使ってみることにしました.回路図はこちら

Cyclone2はもう随分古いFPGAです.Cyclone2のための開発環境はQualtus2(rev13)であるようです.XilinxのISEとは似て非なる操作感に面食らってしばし考え込んだ末にようやくLEDチカチカを動作させることができました.

以下ではQualtus2でLEDチカチカを焼くまでの手順です.(windows7 64bitにて)

【USB Blasterのデバドラ】
USB Blasterは長辺が50mmぐらいしかありません.小さいです.
Qualtus2をinstallしてからUSB BlasterをPCに挿してもデバドラが起動しませんでした.
USB Blasterのデバドラインストールを手動でやる必要がありました.デバイスマネージャからUSB Blasterを選択して「ドライバの更新」をします.PCのファイルを直に指定します.わたしの環境では下記の場所でした.
C:\altera\13.0sp1\quartus\drivers\usb-blaster

【Qualtus2の使い方】
↓まずは新しいprojectを作ります.
↓wizardのページ1はこんなかんじで...
↓wizardのページ3はデバイス選択です.プリント基板に載っているFPGAに従います.
↓top module fileを新規作成.
↓verilog HDL fileを選択.
↓LEDチカチカのソースコードはこのようにしました.clockはプリント基板に載っている50MHzです.ledtest.vという名前で保存します.
↓ピンアサインのため、pin plannerを起動します.
↓しかしピン名が空欄です.一度コンパイルしないといけないので「Run Analysis Elaboration」をクリック.
↓コンパイルが終わったら再びpin plannerに戻ると、下の方にピン名が表示されました.これでピンアサインをできるようになりました.
↓それでピンアサインをするにはどうするかというと、ピン名をデバイス画像のピンにドラッグ&ドロップするんです.面白い操作方法.
↓プリント基板のピンアサインに従って、このようにLocationを指定しました.
↓pin plannerを閉じるときに、特にファイルを保存するような場面はありませんでした.ただcloseするだけでおしまい.
↓ピンアサインが済んだので、コンパイルします.
↓コンパイルは通りましたけど、timing制約などしてませんから赤い文字がでまくります.timing制約を追加するためにclocksをクリック
↓さらにclk50をクリックして、「Edit Clock Constraint...」へ
↓こんな画面が出るので、50MHzになるように設定.Runを押すと、、、
↓制約ファイルの.sdcを保存するだのと警告されます.
↓促されるままにOKOK
↓ここがめんどくさいところでして、.sdcを明示的にファイルリストに追加する必要があるみたいです.
↓さっきの.sdcファイルを指定します.
↓ひ~っっ、やっとコンパイルです.
ところがコンパイル結果にまだ赤字が出ます.それもそのはず、出力ピンのtiming制約がまだだから.
↓さきほどclock制約を施した「TimeQuest」というツールをどうにか起動して、「Set Output Delay...」へ入る.
↓led3などの出力ピンに何か適当なtiming制約を追加して、保存します.
これで何度目かのコンパイル.
↓ようやく、ノーエラーでコンパイルが通りました.赤字が消えました.

【プリント基板に焼く】
↓プリント基板を見ると、USB Blasterを接続すると思われるコネクタが2つあります.シルクでJTAGとASと書かれています.焼くならJTAGだろ?と予想してJTAGにUSB Blasterを挿します.
↓プログラマツールを起動.
↓JTAGチェインは起動と同時に確保されています.Startボタンが押されたがっているので押すと、ダウンロード完了.LEDがチカチカします.
だけどこれはCyclone2にダウンロードしただけですから、電源を切ると消えちゃう.
回路図には、EEPROMが載っていて、品番はEPCS4です.どうやったらEPCS4を焼けるのか?

ALTERAのドキュメントによると、EPCS4を焼くには、USB BlasterのActive Serial modeで焼くと書かれています.さきほどのシルクに書かれたASというのかこれのことか?
↓ASと書かれたコネクタにUSB Blasterをつなぎ換えます.JTAGチェーンで焼けないのはめんどくさく感じます.
↓ここで一悶着あり.プログラマをActive Serial Programmingに変更しますが、このモードだと、デバイスチェーンの自動検出が出来ないらしいのです.
↓わざわざ手動でAdd Deviceします.
↓デバイスEPCS4はプログラマ画面に表示されますけど、それだけです.埒が明かないのでChange Fileでも押してみる.
↓.pofファイルを読みたがっているので読ませます.
↓Program/Configureのチェックを入れると、Startボタンが選択可能になりますので、Startを押すと、EPCS4を焼けました.これで電源断しても無問題.LEDチカチカ基板の完成です.

というわけで、地雷を踏み踏みしながらもコンパイルして焼くまでは一通りわかりました.
シミュレーションはどうするんだろ?

久しぶりのALTERAの余韻に浸りつつ、明日も民生委員の研修なため、今宵はここまでにしとうございます.

かしこ

0 件のコメント:

コメントを投稿