FPGAによるハードウェア開発

Spreadsheet Viewだけでピン割り当てを行う場合
  • Spreadsheet Viewを開く
    Main menu > Tools > Spreadsheet View
    で,Spreadsheet Viewのページを開きます。(あるいは,ツールバーのアイコンをクリック)

Spreadsheet Viewを使うと設計データの様々な属性の表示や変更が可能になります。対象とする属性はウインドウ下部のタブで選択します。ピン割り当てに関連するタブは,Port AssignmentsとPin Assignmentsであり,割り当てられたピン番号と属性が表として表示されます。

  • Port Assignments
    VHDLコードで記述したトップレベルの回路のportが,Input,Output,Clockなどに分類されて表示されます。特定のportに対して,割り当てるピン番号や属性を指定するために使います。デフォルトから変更する可能性の高い属性は,PULLMODEやIO_TYPEです。セルをダブルクリックすることで,入力あるいは候補選択が可能となっています。括弧内のピン番号は,変更を加えた場合の,変更する前の値です。
    Port Assigmentsタブを選択すると,信号名と属性,割り当てられたピンが表の形で表示されます。変更する場合は,ピン番号とIO_TYPEを変更します(セルをダブルクリックすると,入力あるいは候補選択が可能)。
    ピンの入出力タイプを変更することもできます。例えばLEDを駆動する場合は,IO_TYPEにLVCMOS33を選択すると,明るく点灯させることができます。
  • PULL MODE
    FPGA内部で信号ピンを,抵抗を介して電源に接続する(プルアップ)か,グランドに接続す(プルダウン)かを指定します。プルアップもプルダウンもせずに開放されているCMOS論理回路の入力は,論理レベルが不安定になるので,注意が必要です。また,スイッチで論理信号を入力する場合も,プルアップやプルダウンを指定することで,外付けの抵抗を略することができます。
プルアップ
プルダウン
オープン
  • IO_TYPE
    入出力の論理信号の規格を指定できます。IO_TYPEは接続する外部回路の規格に合わせる必要があります。(例えばLVCMOS25は電源電圧2.5VのCMOS入出力規格です。)また,LEDを駆動する場合は,明るく点灯させるためIO_TYPEにLVCMOS33を選択するなどのように,バックアノテーション(Back Annotation)用途に合わせて選択します。
  • Pin Assignments
    ピン番号を指定して,そのピンに割り当てる信号や属性を指定する際に使います。
  • バックアノテーション(Back Annotation)
    バックアノテーションとは,ピン割り当てなどの回路レイアウトを変更した後に,それに合わせて回路の部品の接続情報(ネットリスト)を変更することである。
     メニューバー > Design > Back Annotate Assignments…
    によりバックアノテーションのプロセスを起動する。

起動すると,ダイアログボックスが開く。特別に指定することが無ければ,リターンキーを押すだけでよい。

  • Spread Sheet Viewの保存
    Spread Sheet Viewで,設定が保存されていない状態を図に示す。図の中のdrive[6][0](drive[6][0])のように,「ユーザが割り当てた属性(LatticeDiamondが割り当てた属性)」という表示になっている。
    また,タブ名に“ Spread Sheet View * ”のように,*が表示されて未保存であることが表示されている。Spread Sheetタブ内で,Ctrl+sを押すことで,設定が保存される。同時に,属性名の括弧付きの記述も消える。
保存前のSpread Sheet View
保存後のSpread Sheet View
MachXO2評価基板(LCMXO2-7000HE-B-EVN)でのピン割り当て

Lattice Diamondでは,MachXO2チップ本体のIOピンに信号を割り当てる。MachXO2を搭載した評価基板(LCMXO2-7000HE-B-EVN)を使う場合は,基板上に設けられた4組の2×20ヘッダピン用ランドを通してMachXO2のIOピンにアクセスすることになります。
# ランド(land):ピンをハンダ付けするため基板上に設けられた銅箔部分のこと

評価基板の外観とヘッダピンのランド

Spread Sheet Viewを使ったピン割り当ては,信号をMachXO2自体のピンに割り当てます。しかし,評価基板に搭載されたFPGAを使うときは,基板上のピンヘッダやコネクタを介して配線することになります。

そこで,MachXO2のピンと評価基板のヘッダピンの対応関係の資料(例えば上の図)を確認しながら設計を進めることになります。この面倒な作業をサポートするためExcelファイルを作成しました。このExcelファイル(MachXO2BB_PinAssign.xlsm)を使ったヘッダピンへの信号割り当ての手順を以下に示します。

ヘッダピンの信号割り当ての確認

  1. CSVファイルをエクスポート
    Lattice DiamondでSpread Sheet Viewを開き,Pin Assignments タブを選びます。メニューバーから,
     File > Export > Lattice CSV Files…
    とすると,ファイル選択ダイアログボックスが開くので,フォルダとファイル名を指定して,ピン割り当て情報を表にしたCSVファイルを保存します。
  2. MachXO2BB_PinAssign.xlsm を起動しCSVファイルをインポート
    ExcelのウインドウでHeaderPinEditシートを選択します。シート右の上部にある“ImportCSV”と表示されたボタンをクリックし,CSVファイルをインポートすると,HeaderPinEditシートの表示がCSVファイルのピン配置情報を反映したものに変化します。

なお,Latttice DiamondのSpread Sheet ViewからエクスポートしたCSVファイルを,MachXO2BB_PinAssign.xlsmの置かれたフォルダ内に配置しておくと,ファイル選択の操作が簡単になる。

HeadrPinEditシート

ヘッダピンの信号割り当ての編集とCSVファイルのエクスポート

  1. HeaderPinEditシートのセルの文字列を編集して信号名の変更や並べ替えをする
    ただし,ユーザが希望した割り当てでは,Lattice Diamondでの回路合成が不可能なこともあります。また,ピンによっては割り当てた信号が機能しない事例も確認されています。さらに,クロック入力には専用のピンがあるなど,注意が必要です。
  2. Export CSVシートを編集
    ExcelのウインドウでExport CSVシートに移動する。このシートはLattice DiamondにエクスポートしたCSVファイルが基になっています。表の上にあるヘッダ部分とSignal Nameの部分(下の図に示す部分)は編集せずオリジナルのままにしておいてください。
    また現時点では,HeaderPinEditシートで編集できるのは,信号の割り当てのみです。IO_TYPEやSIGNAL TYPEなどの属性はExport CSVシートを編集して変更します。
ExportCSVシート
  1. CSVファイルをエクスポート
    HeaderPinEditシートに戻り,“ExportCSV”ボタンをクリックして,CSVファイルをエクスポートします。
  2. Lattice DiamondでCSVファイルをインポート
    Spread Sheet ViewのPin Assignmentsタブを選択した状態で
     メニューバー > File > Import > Lattice CSV File…
    ダイアログボックスが開くので,インポートするCSVファイルを選択します。
  3. Spread Sheet Viewで確認
    ユーザが指定したピン割り当ては,設計の制約条件を満たさない可能性があります。Spread Sheet Viewでエラーが無いか確認し,バックアノテーションの操作をします。
  • 基板上のLEDについて
    評価基板LCMXO2-7000HE-B-EVNでは基板上に8つの赤色LEDが搭載されています。これにはFPGAのピンが接続されている。このLEDへのピン割当は以下のようになっています。
led number97(97)
led198(98)
led299(99)
led3100(100)
led4104(104)
led5105(105)
led6106(106)
led7107(107)

4)Programmerの起動とデバイスへの書き込み

  • Programmerの起動
    最上部のメニューから,Tools > ProgrammerによりProgrammerを起動

Programmerのウィザードが開始され,ダイアログボックスが表示される。Create a new blank projectのラジオボタンを選択。(その上のCreate a new project froma JTAG scanのラジオボタンを選択すると,正しいデバイスが設定できないので注意。)

  • デバイスへの書き込み
    ProgrammerパネルからProgramボタンをクリックしてデバイスに書き込む。

書き込みが終了次第デバイスは動作を開始するので,注意が必要。

コメント