KV260でLEDチカを行います。「KV260でLEDチカ(その1)」からの続きです。

論理合成(Synthesis)

  1. ツールバーから「Run Synthesis」を選択します。
  2. しばらく待つと合成が完了してダイアログが表示されるので、左側メニュから「Open Systhesized Design 」、Layoutメニューから「I/O Planning」を選択します。
  3. ここで画面下で「I/O Ports」タブを選び、作成したプログラムのポートを実際のI/Oピンに接続する画面が表示されるので、プルダウンにより I/O ピンに 「H12」、I/O Std に 「LVCMOS33」、Drive Strength に 16mA を指定し、配置配線の制約として LED を設定します。
  4. 制約ファイル名 「top.xdc 」として保存します。
  5. 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]}]
    
  6. ツールバーから「Generate Bitstream 」を選択して、bitstream 「LEDTest/LEDTest.runs/impl_1/top.bit」を生成します。

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"

下記のように点滅します。