今回買ってみた FPGA トレーニングキット Nexys 4 の使い方は、販売元の Digilent 社のサイトにいろんな情報や、デザインに使うためのファイルがあります。
■ サイトを覗いてみる
ページ上部は製品の仕様などが書かれていますが、このページのいちばん下を見ると、実際にいじくるために参考となる、必要となるファイルが置かれています。
■ サイトから入手できるファイル(特に大事なもの)
Nexys 4 reference manual
製品マニュアルです。先のブログ記事に購入したパッケージの写真をのせましたが、製品にはマニュアルが含まれていないので、このファイルをダウンロードして参照することになります。 FPGA への電源供給方法やプログラミング方法のほか、各種 I/O がどのような仕様になっているか等も解説されているので、このファイルを一通り見ると、このボードでどういう I/O ができるかは一通り判るようになっています。
Nexys 4 schematics
トレーニングボードの配線図。
Nexys4 Master UCF File for ISE designs
Nexys4 Master XDC File for Vivado designs
これらのファイルは制約ファイルと呼ばれるものだそうです。 Nexys 4 は ALTRIX-7 を載せたトレーニングボードですが、 FPGA から出ているピンからは各種 I/O に接続されています。制約ファイルには、この FPGA ピンと基板上の I/O の対応が記述されています。
■ 制約ファイルを見てみる
各ピンからどの I/O に接続されているかは先のリファレンスマニュアルや配線図をみるとわかるのですが、デザイン環境で作ったロジックを実際の I/O ピンに割り当てるための定義サンプルがこのファイルに含まれています。UCF ファイルは今回利用する ISE DS
用、XDC ファイルは新しいデザイン環境である Vivado DS 用のファイルです。 UCF ファイルの中を覗いてみると
## Clock signal
#NET "clk" LOC = "E3" | IOSTANDARD = "LVCMOS33"; #Bank = 35, Pin name = IO_L12P_T1_MRCC_35, Sch name = CLK100MHZ
#NET "clk" TNM_NET = sys_clk_pin;
#TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 100 MHz HIGH 50%;
## Switches
#NET "sw<0>" LOC = "U9" | IOSTANDARD = "LVCMOS33"; #Bank = 34, Pin name = IO_L21P_T3_DQS_34, Sch name = SW0
#NET "sw<1>" LOC = "U8" | IOSTANDARD = "LVCMOS33"; #Bank = 34, Pin name = IO_25_34, Sch name = SW1
#NET "sw<2>" LOC = "R7" | IOSTANDARD = "LVCMOS33"; #Bank = 34, Pin name = IO_L23P_T3_34, Sch name = SW2
#NET "sw<3>" LOC = "R6" | IOSTANDARD = "LVCMOS33"; #Bank = 34, Pin name = IO_L19P_T3_34, Sch name = SW3
#NET "sw<4>" LOC = "R5" | IOSTANDARD = "LVCMOS33"; #Bank = 34, Pin name = IO_L19N_T3_VREF_34, Sch name = SW4
こんな感じの定義が並んでいて、上記の部分では水晶が E3 というピンに、スイッチは U9, U8, R7, R6, R5... というピンに繋がっていることがわかります。ここで先の Reference Manual を見てみましょう。こちらでもやはり、 E3 が 100MHz の水晶発振子に接続されていることが確認できます。
この制約ファイルは全てコメントアウト状態になっていますが、たとえば CLK の部分をコメントアウトするとVHDL などから CLK というピンが見えるようになり、 sw<0> 〜 sw<3> のコメントアウトを解除してあげた制約ファイルをプロジェクトファイルに追加すると、 から sw(0)〜sw(3) という形で各ポートにアクセスできるようになります。
0 件のコメント:
コメントを投稿