KV260でLEDチカを行います。「KV260でLEDチカ(その1)」からの続きです。
論理合成(Synthesis)
- ツールバーから「Run Synthesis」を選択します。
- しばらく待つと合成が完了してダイアログが表示されるので、左側メニュから「Open Systhesized Design 」、Layoutメニューから「I/O Planning」を選択します。
- ここで画面下で「I/O Ports」タブを選び、作成したプログラムのポートを実際のI/Oピンに接続する画面が表示されるので、プルダウンにより I/O ピンに 「H12」、I/O Std に 「LVCMOS33」、Drive Strength に 16mA を指定し、配置配線の制約として LED を設定します。
- 制約ファイル名 「top.xdc 」として保存します。
- ツールバーから「Generate Bitstream 」を選択して、bitstream 「LEDTest/LEDTest.runs/impl_1/top.bit」を生成します。
LEDTest/LEDTest.srcs/constrs_1/new/top.xdc
set_property PACKAGE_PIN H12 [get_ports {led[0]}] set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}] set_property DRIVE 16 [get_ports {led[0]}]
pmodの8ビット分のxdcファイル内容を次に示します。
kv260-pmod.xdc
set_property PACKAGE_PIN H12 [get_ports som240_1_a17] ;# PMOD pin 1 - som240_1_a17 set_property PACKAGE_PIN B10 [get_ports som240_1_b20] ;# PMOD pin 2 - som240_1_b20 set_property PACKAGE_PIN E10 [get_ports som240_1_d20] ;# PMOD pin 3 - som240_1_d20 set_property PACKAGE_PIN E12 [get_ports som240_1_b21] ;# PMOD pin 4 - som240_1_b21 set_property PACKAGE_PIN D10 [get_ports som240_1_d21] ;# PMOD pin 5 - som240_1_d21 set_property PACKAGE_PIN D11 [get_ports som240_1_b22] ;# PMOD pin 6 - som240_1_b22 set_property PACKAGE_PIN C11 [get_ports som240_1_d22] ;# PMOD pin 7 - som240_1_d22 set_property PACKAGE_PIN B11 [get_ports som240_1_c22] ;# PMOD pin 8 - som240_1_c22 set_property IOSTANDARD LVCMOS33 [get_ports "som240_1_a17"]; # Net name HDA11 set_property IOSTANDARD LVCMOS33 [get_ports "som240_1_d20"]; # Net name HDA12 set_property IOSTANDARD LVCMOS33 [get_ports "som240_1_d21"]; # Net name HDA13 set_property IOSTANDARD LVCMOS33 [get_ports "som240_1_d22"]; # Net name HDA14 set_property IOSTANDARD LVCMOS33 [get_ports "som240_1_b20"]; # Net name HDA15 set_property IOSTANDARD LVCMOS33 [get_ports "som240_1_b21"]; # Net name HDA16_CC set_property IOSTANDARD LVCMOS33 [get_ports "som240_1_b22"]; # Net name HDA17 set_property IOSTANDARD LVCMOS33 [get_ports "som240_1_c22"]; # Net name HDA18 set_property SLEW SLOW [get_ports "som240_1_a17"]; # Net name HDA11 set_property SLEW SLOW [get_ports "som240_1_d20"]; # Net name HDA12 set_property SLEW SLOW [get_ports "som240_1_d21"]; # Net name HDA13 set_property SLEW SLOW [get_ports "som240_1_d22"]; # Net name HDA14 set_property SLEW SLOW [get_ports "som240_1_b20"]; # Net name HDA15 set_property SLEW SLOW [get_ports "som240_1_b21"]; # Net name HDA16_CC set_property SLEW SLOW [get_ports "som240_1_b22"]; # Net name HDA17 set_property SLEW SLOW [get_ports "som240_1_c22"]; # Net name HDA18 set_property DRIVE 4 [get_ports "som240_1_a17"]; # Net name HDA11 set_property DRIVE 4 [get_ports "som240_1_d20"]; # Net name HDA12 set_property DRIVE 4 [get_ports "som240_1_d21"]; # Net name HDA13 set_property DRIVE 4 [get_ports "som240_1_d22"]; # Net name HDA14 set_property DRIVE 4 [get_ports "som240_1_b20"]; # Net name HDA15 set_property DRIVE 4 [get_ports "som240_1_b21"]; # Net name HDA16_CC set_property DRIVE 4 [get_ports "som240_1_b22"]; # Net name HDA17 set_property DRIVE 4 [get_ports "som240_1_c22"]; # Net name HDA18
LED 出力の配線
LEDは、 KV260 の PMOD(J2) の1番ピンと GND である5番ピンの間に LED と抵抗「100Ω」を直列に接続します。
ダウンロードしたKV260回路図「xtp682-kria-k26-carrier-card-schematic.zip」を見ると、「 J2 」の「1」ピンは信号名「PMOD_HDA11 」 になります。
信号名「PMOD_HDA11 」は、 R276 を経由して 信号名「HDA11」に変わり、「SOM240_1」 の「A17 」 ピンに繋がります。
ダウンロードした「Kria_K26_SOM_Rev1.xdc」を調べると、「SOM240_1」 の 「A17 」ピンはK26 SOM モジュールの「H12 」ピンになっています。
また、「 H12」 は「 I/Oバンク45 」に属し、 VCCO は 「som240_1_b13」 から供給され、回路図をみると「PL_3V3(3.3V) 」 が供給されます。
作った回路を実行する
FileZillaアプリを使って、作成したbitstream「LEDTest/LEDTest.runs/impl_1/top.bit 」を、KV260 の Ubuntu 環境にコピーします。
ファイルをコピーした後は、ターミナルで下記のように実行します。
sudo sh -c "echo 0 > /sys/class/fpga_manager/fpga0/flags" sudo mkdir -p /lib/firmware sudo cp top.bit /lib/firmware/ sudo sh -c "echo top.bit > /sys/class/fpga_manager/fpga0/firmware"
下記のように点滅します。