Altera の FPGA/CPLD にコマンドラインで論理回路イメージを転送する方法

毎回毎回クリックするのは面倒だし、履歴が残らなかったり見づらい。Quartus II は見る感じコマンドラインでいろいろやれるようで、とりあえず -help をみてやってみた。

(QuartusIIのインストールパス)/quartus/bin/quartus_pgm.exe がそれで、パスが通ってるのでそのままで実行できるはず。(自分は定期的にパスを整理するので注意) 出てくる表示のコピペ。

quartus_pgm -c  filname.cdf

これで cdf ファイルの設定の通りに書き込む。cable name は -l オプションで表示される書き込みデバイスを指定する。自分は USB-Blaster と書いた。これの前に単体の USB-Blaster と DE1 内蔵の USB-Blaster が2個 PC につながっていたがその場合は不明。すぐに DE1 を片付けてしまった。

quartus_pgm -c  -m  -o  [-o ...]

cdf ファイルを利用せずに個別に設定する場合。1つのハードに複数の論理回路イメージをとっかえひっかえ使う場合はこっちの方が便利。GUI だと何度もクリック(笑)させられる。

-m はモードで JTAG ばっかりだと思う。 -o が細かいので --help=o で詳しく出しておいたほうがよい。以下は出てくる場所の抜粋。

    -o ;@

 must be one of the following combinations:

    P, BP, PV, BPV,
    PL, BPL, PVL, BPVL
    CP, CBP, CPV, CBPV,
    CPL, CBPL, CPVL, CBPVL
    IP, IBP, IPV, IBPV,
    V, CV, VL, CVL, IV
    B, CB, IB
    R, RB, CR, CRB, IR, IRB
    E, CE, IE
    L, CL
    S

where:
 Option      Description
 ------      -----------
 P           Program
 R           Erase
 L           Lock/Security Bit
 I           Initialize Bridge Device*
 V           Verify
 B           Blank-check
 C           ISP Clamp
 E           Examine**
 S           Skip/Bypass**

オプションで細かくやるんだけど普通は PV でよいと思われる。

最後に自分の使ったオプションを書いておく。sh を使っているので ; を quartus_pgm.exe に渡す場合はエスケープが必要。Makefile を介する場合はさらにまどろっこしい2重エスケープが必要なるかもしれない。

quartus_pgm.exe -c USB-BLASTER -m jtag -o pv\;hogehoge.pof