FC2カウンター FPGAの部屋 FPGA Editorの使い方
FC2ブログ

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

FPGAの部屋

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

FPGA Editorの使い方4

"FPGA Editorの使い方3"の続き。もうわかっているかも知れませんが一応説明します。
追加したProbe(テスト用の出力ピン)の削除の仕方です。

まずはFPGA Editorを立ち上げます。
FPGA EditorをRead/Writeモードに設定します。
"File" - "Main Properties..."を選択する。
FPGA_Editor_10_060318.png


Main Propertiesダイアログが立ち上がる。
FPGA_Editor_11_060318.png


"General"タブが選択されていて、その中の"Edit Mode"が"No Logic Changes"が選択されていると思うが、ここのプルダウンメニューから"Read Write"を選ぶ。これでFPGA Editorで編集が出来るようになった。
FPGA_Editor_12_060318.png


List1ウインドウの"Name Filter"に"*Inst_ssgdisp_FreqDivi_lcnt<7>_out*"と入力するとInst_ssgdisp_FreqDivi_lcnt<7>_outが表示されるのでそれを選択する。
World1を見るとInst_ssgdisp_FreqDivi_lcnt<7>_outが赤く表示される。
FPGA_Editor_14_060320.png


この状態で右の並んでいるボタンから"delete"ボタンをクリックする。
FPGA_Editor_15_060320.png


そうすると"Inst_ssgdisp_FreqDivi_lcnt<7>_out"(D6ピン)が削除されます。
FPGA_Editor_16_060320.png


以前のウインドを示します。ピンクの矢印のネットが削除されているのがわかると思います。
FPGA_Editor_17_060320.png


"File" - "Save"を選択してセーブします。
FPGA Editorを終了します。

ISEの"Processes"ペインを見ると"Generate Programming File"にオレンジ?になっているので、ここをダブルクリックしてもう一度実行する。
FPGA_Editor_13_060318.png


これで元に戻りました。
  1. 2006年03月20日 19:04 |
  2. FPGA Editorの使い方
  3. | トラックバック:0
  4. | コメント:0

FPGA Editorの使い方3

FPGA Editorの使い方3だ。まだChipscopeの配線をつなぎなおす機会が無いのでFPGAの内部配線をテストピンに出してオシロスコープで観察するやり方をやってみようと思う。
使用するのは以前同様ここにあるサンプルをISE8.1iに変換して使うことにする。
”FPGA Editorの使い方1”を参照してFPGA Editorを立ち上げる。
今回はfreqdiv.vhdのlcntカウンタの一部のネットを見てみよう。lcnt(15 downto 0)のうちのlcnt(7)を見てみよう。lcntは50MHzクロックを分周しているので、7番目だと1/256になっているはずである。195KHz、周期は5.12usだ。
最初にFPGA EditorをRead/Writeモードに設定しよう。
"File" - "Main Properties..."を選択する。
FPGA_Editor_10_060318.png


Main Propertiesダイアログが立ち上がる。
FPGA_Editor_11_060318.png


"General"タブが選択されていて、その中の"Edit Mode"が"No Logic Changes"が選択されていると思うが、ここのプルダウンメニューから"Read Write"を選ぶ。これでFPGA Editorで編集が出来るようになった。
FPGA_Editor_12_060318.png


これで編集できるので、ネットを出力用のピンにつなごう。
FPGA EditorのList1ウインドウの一番上のプルダウンメニューから"All Nets"を選択する。下のペインにネット名が表示されるので"Inst_ssegdisp_FreqDivi_lcnt<7>"をクリックして選択する。選択したネットを表示するためにZoom Selectionのアイコンをクリックする。そうするとArray1ウインドウに選択されたネットが表示される。
FPGA_Editor_1_060318.png


このネットをオシロで見るためにSpartan-3 Starter KitのA2コネクタの7番ピン(PA-IO4(D6))に出力してみよう。
"Tools" - "Probes"を選択する。
FPGA_Editor_2_060318.png


Probesウインドウが開く。"Add"ボタンをクリックする。
FPGA_Editor_3_060318.png


"Define Probe"ウインドウが開く
"Pin Name"にInst_ssgdisp_FreqDivi_lcnt<7>_outと入れる。(この名前は自分の好きな名前でよい)
"Select Net"に"*FreqDivi_lcnt<7>*"と入れてFilterボタンを押す。
下のペインにInst_ssgdisp_FreqDivi_lcnt<7>が表示されるので、それをクリック。
"Select Pin Numbers"の"Method"をプルダウンメニューから"Manual"にする
"Available Pins"でD6を選択する
FPGA_Editor_4_060318.png


">"ボタンをクリックして"Selected Pins"ペインにD6を入れる。
"OK"ボタンをクリック
FPGA_Editor_5_060318.png


"Probes"ウインドウにInst_ssgdisp_FreqDivi_lcnt<7>_outピン(D6)が追加される。そこまでのDelayは3.484nsだそうだ。
FPGA_Editor_6_060318.png


"Close"ボタンをクリックして、ウインドウを閉じる。
"List1"ウインドウのプルダウンメニューから"All Components"を選択し、Typeの列をクリックするとIOBが上に来る。
Inst_ssgdisp_FreqDivi_lcnt<7>_outがD6ピンにつながっているのが確認できる。
FPGA_Editor_7_060318.png


"File" - "Save"を選んでセーブする。
probeスクリプトファイルをセーブするかどうか聞いてくるダイアログが出る。
”はい”ボタンをクリックしてセーブしてみよう。
FPGA_Editor_8_060318.png


セーブダイアログが出るので、”保存”ボタンをクリックする。
セーブしておくと"Probes"ウインドウで"Open Probes..."からprobes.scrを選ぶと"Probes"ウインドウにInst_ssgdisp_FreqDivi_lcnt<7>_outピン(D6)が自動的に追加される様だ。
FPGA_Editor_9_060318.png


FPGA Editorを終了する。
ISEの"Processes"ペインを見ると"Generate Programming File"にオレンジ?になっているので、ここをダブルクリックしてもう一度実行する。
FPGA_Editor_13_060318.png


これで普通にSpartan-3 Starter Kitにダウンロードすれば195KHz、周期は5.12usの矩形波がSpartan-3 Starter KitのA2コネクタの7番ピン(PA-IO4(D6))に出力されるはずだ。ただし、時々長いかもしれない。50000分周ということは最後は80カウントで0クリアなので、最後の0の区間は次の0の区間に続くので80+128=208カウントになる。

最後に、この記事が本当に195KHz、周期は5.12usの矩形波がSpartan-3 Starter KitのA2コネクタの7番ピン(PA-IO4(D6))に出力されるかどうかは確認していない。確認できる方は確認して教えてほしい。今日は無理だが私も近いうちに確認する。

3月20日:195KHz、周期は5.12usの矩形波がSpartan-3 Starter KitのA2コネクタの7番ピン(PA-IO4(D6))に出力されるのを確認した。
なお、上で

ISEの"Processes"ペインを見ると"Generate Programming File"にオレンジ?になっているので、ここをダブルクリックしてもう一度実行する。


という文があるが、一回bitファイルを作らないとこうならない。ISE7.1iのプロジェクトをISE8.1iのプロジェクトに変換した直後ではチェックはついていないはずなので訂正します。
  1. 2006年03月18日 10:27 |
  2. FPGA Editorの使い方
  3. | トラックバック:0
  4. | コメント:1

FPGA Editorの使い方2

今日はスライスやIOBの中身を見ることにしようと思う。
以前クロックパスを見てみたInst_ssgdisp_FreqDivi_lcnt_12とswl_3が同様に論理素子に割り当てられているかを見てみよう。
最初にInst_ssgdisp_FreqDivi_lcnt_12を見てみる。右上のList1ウインドウからInst_ssgdisp_FreqDivi_lcnt_13を選択する。List1ウインドウはスライス単位なので1つのスライス単位にInst_ssgdisp_FreqDivi_lcnt_12とInst_ssgdisp_FreqDivi_lcnt_13がいっしょにはいってるためInst_ssgdisp_FreqDivi_lcnt_13としか表示しないようだ。
そうすると、右下のWorld1ウインドウにInst_ssgdisp_FreqDivi_lcnt_13の位置に赤い点が表示される。
FPGA_Editor_1_060118.png

下図の赤で囲んだZoom Selection(F11)をクリックするとInst_ssgdisp_FreqDivi_lcnt_13の入っているスライスが赤い色で表示される。
FPGA_Editor_2_060118.png

これをダブルクリックするとこのスライスの中がどう配線されているかがわかる。(下図参照)
FPGA_Editor_3_060118.png

次にsw<3>をList1ウインドウでクリックして、Zoom Selection(F11)をクリックする。
FPGA_Editor_4_060118.png

IOBが赤く選択される。赤く選択されたIOBをダブルクリックするとIOBの中の配線が見える。
FPGA_Editor_5_060118.png

sw<3>ではIOB内右下の入力FFを使用している。左のほうにはDDR出力レジスタが見える。出力だけではなく出力イネーブルもDDRレジスタになっている。
ちなみにList1ウインドウはAll Componentsで選択している。一番上のリストボックスをプルダウンすると、All Netsなどで選択できる。
後、Array1ウインドウで見えるスライスとIOBは四角いがBRAMは細長い四角だ。

FPGA Editorは使い始めると便利なツールだと思う。特に自分意に沿わない結果になった時にどうしてだろうということでFPGA内を見るときには効果を発揮する。
また、配線のしなおしもできる。まだ説明していないがRead/Wirteモードにして配線しなおすことが出来る。これは特にパッドに見たい配線を持って行ってロジアナで見るとか、こっちのほうが私には重要だが、Chipscopeの配線をインプリメントせずにつなぎかえるとかに使えるらしい。
Chipscopeのどんな名前の配線をつなぎかえるかはまだ試していないので、そのうちに試してみたい。
  1. 2006年01月18日 19:59 |
  2. FPGA Editorの使い方
  3. | トラックバック:0
  4. | コメント:4

FPGA Editorの使い方1

ISE8.1でFPGA EditorとCORE Generatorが使えるようになった。
一般的にはCORE Generatorが使えるほうが大きいと思うが、同期FIFO、非同期FIFOが使えるのは良い。しかし、リード・イネーブルを入れてから次のクロックでデータが出るのが困ることがあるので、自分でFIFOを作ったりしている。
今日はFPGA Editorについて使い方を書いてみようと思う。
”ISEで任意のパスのディレイを見る方法”を参照してほしい。
サンプル回路は7セグメントLEDのダイナミック点灯の回路。サンプルはここにあります。
ファイルをダウンロードするとdynadisp_test_1ms.ZIPというファイルが出てくる。これをWindows XPだったらダブルクリックで、それ以外だったらソフト(Winzip等)を使って解凍する。
解凍すると、dynadisp_testというフォルダが出てくる。それを開けるとVHDLファイルとまたdynadisp_testというフォルダが出てくる。そのフォルダをまたダブルクリックすると、ISEのプロジェクトファイルdynadisp_test.iseがあるので、それをダブルクリックしてISEを起動すると、ISE8.1に変換するかどうかを聞いてくるダイアログが出てくるのでOKを選択してプロジェクトを変換する。
ISE8.1が立ち上がる。とてもかっこよくなったし、summaryが見やすくなって、いろんな所のログが一望できて便利になった。エラーも見やすくなった。
ISE81_060116.png

Processesウインドウから"Implement Design"を展開して"Place & Route"を展開し、"View/Edit Routed Design (FPGA Editor)"をダブルクリック。
そうすると論理合成、インプリメントをしてFPGA Editorが起動する。下のような画面が表示できる。
FPGA_Editor_1_060116.png

同じような画面が見えないときは、上図の赤で囲ったボタンを同じにしてほしいそうすれば、同じ画面が見えるはず。ここはいろんなリソースを表示するかどうかを選べる。余り表示しすぎると邪魔だし、適当に表示させるが良いと思う。サイトやローカルライン、ロングライン、これはやってみると良くわかるだろう。
まずはクロックラインを表示させてみよう。List1ウインドウからTypeの項目をクリックすると、Typeの項目でソートされる。一番上にclk_BUFGP/BUFGがきていると思う。そこをクリックして色を変えると下のWorld1ウインドウにBUFGPが赤で表示される。(下図参照)
それから下図の赤で囲んだZoom Selection(F11)をクリックするとclk_BUFGP/BUFGが大きくArray1ウインドウに表示される。
FPGA_Editor_2_060116.png

三角の赤い素子がclk_BUFGP/BUFGだ。上の三角の頂点から出ている線がグローバルクロックラインなので、その線をクリックする。そうするとグローバルクロックラインが選択され、World1ウインドウを見ると赤く表示される。
次にグローバルクロックラインのディレイを見てみよう。右端からdelayボタン(下図で赤く囲まれている)を押すと、選択されたグローバルクロックラインがつながっている論理素子までのディレイを下のウインドウに全て表示する。
FPGA_Editor_3_060116.png

  1. 2006年01月16日 21:40 |
  2. FPGA Editorの使い方
  3. | トラックバック:0
  4. | コメント:4