2009年10月3日土曜日

Xilinx ISE2 テクニカルメモ

Xilinx Spartan-6 FPGA SP601 評価キットでのプロジェクトの作成の際、気づいた点をまとめます。

◎開発環境 
 ・WindowsVISTA Home Premium 64bit RAM:4GB
 ・ISE Project Navigator 11.3
1.ISE(本体)
 *)不明事項
   ①VHDL/VerilogHDLモジュールをシンボル化後に、Schematicモジュール編集時、シンボルリストに追加されるタイミング(ああでもない、こうでもないと、いろいろもがいている内に、リストに追加されているといった状況)
   ②New Source/IP(CORE Generator & ....)で追加したモジュールをどのようにして利用するのか?(Schematicモジュールの編集で・・)

2.PlanAhead(Mapping)
 1)ピン定義
   ①同一Bankで異なるI/O Standerdは設定できない。??
     ※出来る場合もある??
 *)エラー対処
   ①ログファイルパーミッションエラーで起動不能になった場合。
    ・タスクマネージャ(Windows)でプロセス「_xilinxupdate.exe」を終了させる。
3.iMPACT(Device Programming)

4.FMC-LPC コネクタ のピンアサインについて(疑問)
 LPC2388とのデータインターフェース(16ビット)を試している時、ビット6とビット7の交差が認められた。次の2つの可能性があると思われる。
 ・FMC-LPC コネクタ H-25ピンにLA21_Nが、H-26ピンにLA21_Pが誤配線されている。
 ・SP601ハードウエア ユーザー ガイドの UCF 配置定義
     NET "FMC_LA21_N" LOC = "V4";
     NET "FMC_LA21_P" LOC = "T4"; 
  の誤記載。(V4とT4が入れ替わっている) ・・・2009/11/17 追加

Spartan-6 FPGA SP601 評価キットその後(FMC/GPIO変換ドータカードの作成)


今回は、Spartan-6 FPGA SP601 評価キットのFMC-LPC コネクタ からGPIOの引き出しにトライしました。その際使用したパーツは以下の通りです。

・FMC-LPCコネクタ Samtec社 ASP-134606-01 VITA 57 CONNECTOR 1個
・ハウジング付ピンヘッダ(オス)40P(2×20)          3個
・両面スルホール・ガラス・ユニバーサル基板 Bタイプ 1.27mmピッチ(95x72mm) 1枚
・耐熱電子ワイヤー(単線) 15m程度
・半田 0.3mm (0.6mmがちょうど良いかも?)

 評価キット(SP601)を本格的に使いたい、その前に、マイコン等のインターフェースにパラレルデータIFをこのキットで実現したい思いました。一応キット上には12-pin (8 I/O) headerが装備され、SPI、IICのヘッダーを利用すれば、8ビットデータ+α のインターフェースは組めることは組めるようですが、やはりFPGAの大量のGPIOを利用しないのはやはりもったいないと思いました。
 で、FMC-LPCコネクタからGPIOを引き出したドータカードが無いか、いろいろ探しました。しかしそのようなカードは見つけられませんでした。
(以前、ALTETRA CycloneIII スタータキット(DK-START-3C25N)を使った時は、同様のHSMCコネクタがあって。そのときは Terasic Technologies の BOARD ADAPTER HSMC TO GPIO を購入して対処したのですが。。。)
 以前、この評価キット関連のマニュアルをいろいろ漁っていたとき、FMC-LPCコネクタ自体が Samtec社から、出ていることを知りました。しかし、コネクタ自体あってもどうにも私の手先の不器用さでは手が出せないと思いました。
 最近、諦めきれずに、このコネクタの図面を眺めていたとき、コネクタから引き出されたピンの間隔が1.27mmでこの間隔は、ユニバーサル基板(1.27ピッチ)に一致すると気づきました。ひょっとしたらなんとかなりそうだと思い、デジキーでこのコネクタを発注しました。

 入手したFMC-LPCコネクタを使って、GPIO変換ドータカードを作成した手順は以下の通りです。
①まず、FMC-LPCコネクタの背面の両端の突起(基板に固定するためのもの)およびその周囲を削りました。
 ・・・配線用のピン(半田鍍金されています)がユニバーサル基板のホールに収まるように。
②FMC-LPCコネクタをユニバーサル基板に強めに押し込む。
 ・・・結構しっかりと固定されます。
③耐熱電子ワイヤー(単線)を10~15cmに切り分ける。120本 出力するGPIOを 8ビット、16ビット、32ビットのブロック分けをし、ブロック毎にワイヤー(単線)の長さを揃えました(気休め)。
④ワイヤー先端3mmの被覆をはがしました。
⑤FMC-LPCコネクタの背面のユニバーサル基板の穴に、ワイヤーを差し入れ、半田を流し込みます。
・・・コネクタの配線ピンの半田が溶けると、ワイヤーが更に1mm程度奥に押し込めるようになります。
⑥半田付けしたワイヤーをピンヘッダ(オス)40Pに配線します。
***延々と、120本繰り返す。***
⑦配線の導通、隣接配線とのショートをチェックしました。
***延々と、120本繰り返す。***
幸い、導通不良が1箇所で比較的容易に修復できました。

 さて、このGPIO変換ドータカードの検証ですが、以前この評価キット動作検証用に作成した、CLK発信プロジェクトの32ビットカウンタのうち、8ビットを信号として、FMC/GPIO変換ドータカード経由で外部LEDにつないでその動作を確認しました。

[プロジェクト概要]
クロック==>CLK生成==>32ビットカウンタ(UP)==>出力ビット選択==>CLK出力(本来の出力)
                     =>8ビット抽出==(FMC/GPIO変換カード)==>外部LED(検証用の出力)


あとがき
 とにかく大変でした、作成にまる1日、チェックに半日、材料費はほどほどで3千円、配線はぐちゃぐちゃ、配線は、Spartan6のバンクまで考慮していないため、将来、ピン設定との齟齬が出る怖れがあります。