FC2カウンター FPGAの部屋 PACEの使い方

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

PACEのエラー回避方法

ISEのProcessesペインのAssign Package PinsをダブりクリックしてPACEを起動すると、いつも"ERROR:HDLParsers:3014"で落ちてしまう。
PACE_ERROR_1_070405.png

PACE_ERROR_2_070405.png

Xilinxのアンサーサーチを見たら、ありました。
アンサー #21457:8.1 PACE - 「ERROR:HDLParsers:3014 Library unit package_file is not available in library work」というエラー メッセージが表示される
それによると”この問題は、PACE に含まれる HDL Parser でプロジェクトのデフォルト作業ライブラリまたはユーザー定義ライブラリに含まれるパッケージ ファイルが見つからないために発生します。”だそうです。
問題のVHDLファイルはこのように最初にworkライブラリを宣言して、パッケージをuseしているのでERRORになるようです。

LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

library work;
use work.sdram_global_header.all;
-- pragma translate_off
library unisim;
use unisim.vcomponents.all;
-- pragma translate_on

entity Maestro2SB is
port(


アンサーにあるように、ユーザー ライブラリを定義しパッケージ ファイルを参照する行をコメントアウトすれば良いのでしょうが、portの宣言のところに
sdram_a : out std_logic_vector(SDRAM_DEV_ADDR_WIDTH downto 0);
のようにパッケージで宣言したconstant値を使っているのでコメントアウトはできない。
なので、アンサーの最後に書いてあるようにISEのProcessesペインの[Translate] プロセスを展開表示し、[Assign Package Pins Post-Translate] を実行することにした。
PACE_ERROR_3_070405.png

そうするとちゃんとPACEが起動してパッケージを表示することができた。
PACE_ERROR_4_070405.png

  1. 2007年04月05日 11:55 |
  2. PACEの使い方
  3. | トラックバック:0
  4. | コメント:0

PACEの使い方2

PACEの使い方の続き。
現在WebpackISE8.1i、SP1だが、PACEが少しおかしい。カラーツールバーのアイコンが表示されないようだ。下図で赤で囲んだ所に四角の色のついたアイコンがあるはず。四角の色のついたアイコンは無くともその辺をクリックすれば色が付くようなので、これでやってみる。
信号のグループごとに色をつけてみる。色を付けるグループをDesign Object List - I/O Pinsウインドウから選択する。そうして、下図で赤で囲んだ所を適当にクリックすると色が付く。
pace_9_060128.png

これで信号をピンに配置してみよう。現在はArchitecture ViewだがPackage Viewで行っても良い。しかし、Architecture Viewの方がFPGAチップの形状が見えるので私は良いと思う。関連する信号はなるべく集めておいたほうが良いと思うし、データパスはなるべくチップの左右に配置したい。Architecture Viewで信号を割り当てPackage Viewで確認というのが私の好きなスタイルだ。
Design Object List - I/O PinsウインドウからA_nをArchitecture ViewのDevice Architecture for xc3s200-4-ft256ウインドウのB1にドラックアンドドロップする。
pace_10_060128.png

今度はブロックでドラックアンドドロップしてみよう。
Design Object List - I/O PinsウインドウからAN_n<0>からAN_n<3>までを選択してArchitecture ViewのDevice Architecture for xc3s200-4-ft256ウインドウのC1からのピンにドラックアンドドロップする。ドラックアンドドロップの途中では白抜き三角が下向きに4つ縦に並んでいると思うが一番下の白抜き三角をC1にあわせると下向きに信号がピンに配置される。
これはメニューIOBsのDistribute ActionがDistribute Downになっているからだが上向きに配置する場合にはDistribute Upにすれば逆向きになる。
pace_11_060128.png

信号をピンに配置するとDesign Object List - I/O Pinsウインドウの左端の箱が無くなる。全て配置して、今度はI/O Std.を設定しよう。ISE6.3ではDesign Object List - I/O Pinsウインドウは2分割されて下にGroupを表示するペインが出ていたのだが、今使っているISE8.1ではディフォルトで出ていないみたい。何か設定があるのだろうがわからない。手動でグループ化してみよう。グループにする信号をまとめて選択して右クリックでメニューを出す。Groupがあるので選択。(下図)
pace_12_060128.png

そうするとDesign Object List - I/O Pinsウインドウが1本ずつ表示するペイン(上)とグループを表示するペイン(下)に分かれる。グループの信号にI/O Std.を一括して設定するにはグループペインから行うのが便利だ。I/O Std.からSSTL2_IIを選んでみた。上のペインを見るとグループのすべての信号に同じI/O Std.が設定されているが見える。
pace_13_060128.png


PACEも結構便利だった。現在PACEでピンを割り振っている。しかし、SSTL2はVREF必要なので、結構ピンを使ってしまう。ピンが足りなくなったのでDDR SDRAMは止めてSDRAMでいくことになりそうだ。DDR SDRAMのモジュールが出来ているので残念だが、DCMの位相シフト方式では100MHz以下対応とXilinxのアプリノートに書いてある。実際83MHzでは動いても133MHzでは動かなかった。133MHzで動くためにはDQSをクロックとして使うかDDR SDRAMに行く配線の行き返りの長さの配線にクロックを通して遅延を付加したクロックでデータを受信しなければいけないようだ。
スパルタン3Eスタータキットが発売されたらDDR SDRAMコントローラを作ってみたい。スパルタン3EはIOBに調整できるディレイが入っているのでより簡単に組めると思う。
  1. 2006年01月28日 07:40 |
  2. PACEの使い方
  3. | トラックバック:0
  4. | コメント:0

PACEの使い方1

今日はPACEでのピンの割り振り方を書き留めておこうと思う。
おなじみのdynadisp_testプロジェクトを使うがDDR SDRAMを接続すると思ってみてほしい。
最初にHDLのソースを書く。そしてISEのProcessesウインドウのUser Constraintsを展開してAssgin Package Pinsをダブルクリック。
pace_1_060126.png

PACEが開く。まずはIOBのDDRレジスタのクロックの制限を大体見るためにDifferential Pairを表示してみよう。メニューバーのIOBsからShow Differential Pairsを選択する。
pace_3_060126.png

Differential Pairが赤い糸で表示される。(#けして離れられないかもしれない)
pace_3_060126.png

Architecture ViewからPackage Viewに変更するため、右のウインドウの下のPackage ViewタブをクリックするとPackage Viewになる。ここでも赤い線でDifferential Pairが表示される。
pace_4_060126.png

BANK7のみSSTL2レベルのIOに対応するためにVREFピンをPROHIBITする。メニューバーのIOBsからProhibit Special Pins...を選択する。下図のようなダイアログが開くので、BANK7にチェックを入れる。次にProhibit Pin TypesのVREFにチェックを入れ、OKボタンをクリック。
pace_5_060126.png

BANK7のVREFピンが灰色で示されて(下図)、UCFファイルにPROHIBIT制約が追加される。
pace_6_060126.png

次にコンフィギュレーションで使用するピンを予約しておこう。セレクトマップでコンフィギュレーションするということにする。同様にメニューバーのIOBsからProhibit Special Pins...を選択する。ダイアログが開くので、Configuration Mode Pinsタブをクリック。Prohibit forの区画でSelectMAPボタンをクリックするとセレクトマップで使うピンがチェックされる。
pace_7_060126.png

OKボタンをクリックするとセレクトマップで使うピンが灰色で示され予約される。VREFと同様にUCFファイルにPROHIBIT制約が追加される。
pace_8_060126.png

  1. 2006年01月27日 20:37 |
  2. PACEの使い方
  3. | トラックバック:0
  4. | コメント:0