FPGAの部屋

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

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。ご利用ください。 http://marsee101.web.fc2.com/index.html

カテゴリ: UltraZed-EG

@ikwzm さんの”UltraZed 向け Debian GNU/Linux の構築”をやってみて、UltraZed-EG Starter Kit 用のDebian を構築して、ZYBO やZYBO Z7 と同様に使いたいというのが趣旨です。
そして、@ikwzm さんの”UltraZed 向け Debian GNU/Linux の構築”で作ったDebian に tcf-agnet をインストールできれば、パソコンで動作するVivado SDKからリモートデバッグできて、とても便利です。よってこれを試してみたいと思います。(この規模とCPU性能だと自分の所に eclipse をインストールして自分でデバッグでも良いとは思いますが)
できればYOLO2 か何か規模のある程度、大きなディープ・ニューラルネットワークをUltraZed-EG Starter Kit に載せてみたいと思っている。そのためのプラットフォームとして使用してみたい。それから、DNNを実装するに当たって、今のVivado HLS では自分の意図するようにネットワークをHDLに展開してくれないので、展開 C コードを自動生成するPython(が良いですかね?)スクリプトを作りたいと思っている。

前振りが長くなってしまったが、最初に、記事を書いて頂いた @ikwzm さんに深い感謝を表したいと思います。本当にありがとうございました。助かります。

UltraZed 向け Debian GNU/Linux の構築(イントロ編)”だが、申し訳ないけど、前振りなので、飛ばす。

UltraZed 向け Debian GNU/Linux の構築(Boot Loader編)”をやってみよう。

起動ファイルのBOOT.bin について書かれている。Linux を起動するときに BOOT.bin を構成するファイルは、次の5つだそだ。下に引用する。

FSBL (First Stage Boot Loader)
PMUFW (Platform Manager Unit Firmware)
BL31 (ARM Trusted Firmware Boot Loader state 3-1)
U-Boot
PL-Bitstream (option)


ノーマルZynq からだと、PMUFW と BL31 が増えているようだ。

ZynqMP のブートシーケンス
ステージ0 (内部ROM)
ステージ1 (FSBL - First Stage Boot Loader)
  ここで、PMUFW がロードされるそうだ。
ステージ2 (BL31 - ARM Trusted Firmware Boot Loader Stage 3-1)
ステージ3 (U-Boot)

@ikwzm さんの”ZynqMP-FPGA-Linux”の”UltraZed EG IOCC”を使わせてもらって、UltraZed-EG Starter Kit でDebian を動作させてみよう。

@ikwzm さん、いつもありがとうございます。使わせていただきます。

やり方は”UltraZed EG IOCC”を見ながらその通りにやってみる。

まずは、次のコマンドを実行した。
git clone git://github.com/ikwzm/ZynqMP-FPGA-Linux
cd ZynqMP-FPGA-Linux
git checkout v0.1.1

7bf10ec6.png


git lfs pull
abed3881.png


ZynqMP-FPGA-Linux ディレクトリを tree コマンドでディレクトリ構造を見た結果を示す。
c7f413cd.png


”FPGA+SoC+Linux+Device Tree Overlay+FPGA Manager(PYNQ-Z1対応)”を試してみる2(Micro SDカードの準備)”の通りに 8 GB の Micro SD カードを用意した。
444c3be9.png


FAT32 のUltraZed-EG と ext3 の ROOT_FS をマウントした。
f5fc0697.png


~/ZynqMP-FPGA-Linux/target/UltraZed-EG-IOCC/boot ディレクトリのファイルを /media/ono/UltraZed-EG ディレクトリにコピーした。
cp ZynqMP-FPGA-Linux/target/UltraZed-EG-IOCC/boot/* /media/ono/UltraZed-EG/
4f5b8a83.png


/media/ono/UltraZed-EG ディレクトリのファイルを示す。
a9a73a25.png


sudo tar xfz ZynqMP-FPGA-Linux/debian9-rootfs-vanilla.tgz -C /media/ono/ROOT_FS/
e4090242.png


/media/ono/ROOT_FS ディレクトリを示す。
0748ed31.png


sudo mkdir /media/ono/ROOT_FS/fpga
sudo mkdir /media/ono/ROOT_FS/fpga/debian
sudo cp ZynqMP-FPGA-Linux/linux-image-4.9.0-xlnx-v2017.3-zynqmp-fpga_4.9.0-xlnx-v2017.3-zynqmp-fpga-1_arm64.deb /media/ono/ROOT_FS/fpga/debian/
sudo cp ZynqMP-FPGA-Linux/linux-headers-4.9.0-xlnx-v2017.3-zynqmp-fpga_4.9.0-xlnx-v2017.3-zynqmp-fpga-1_arm64.deb /media/ono/ROOT_FS/fpga/debian/

f1a12d18.png


/media/ono/ROOT_FS/fpga/debian ディレクトリを示す。
848aabd3.png


これで、Micro SDカードが完成したので、UltraZed-EG Starter Kit に挿入して電源ONした。
Debian が無事に起動した。
8ac9fe45.png


起動メッセージを貼っておく。

Xilinx Zynq MP First Stage Boot Loader
Release 2017.2   Dec 24 2017  -  11:06:15
NOTICE:  ATF running on XCZU3EG/silicon v4/RTL5.1 at 0xfffea000, with PMU firmware
NOTICE:  BL31: Secure code at 0x0
NOTICE:  BL31: Non secure code at 0x8000000
NOTICE:  BL31: v1.4(release):development build
NOTICE:  BL31: Built : 11:44:32, Dec 24 2017
PMUFW:  v0.3


U-Boot 2017.01 (Dec 25 2017 - 00:11:15 +0900) Xilinx ZynqMP UltraZed-EG-IOCC

I2C:   ready
DRAM:  2 GiB
EL Level:       EL2
Chip ID:        xczu3eg
MMC:   sdhci@ff160000: 0 (eMMC), sdhci@ff170000: 1 (SD)
reading uboot.env

** Unable to read "uboot.env" from mmc0:1 **
Using default environment

In:    serial@ff000000
Out:   serial@ff000000
Err:   serial@ff000000
Bootmode: SD_MODE1
Net:   ZYNQ GEM: ff0e0000, phyaddr 9, interface rgmii-id

Warning: ethernet@ff0e0000 (eth0) using random MAC address - 9a:5e:bc:78:ef:9c
eth0: ethernet@ff0e0000
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc1 is current device
Device: sdhci@ff170000
Manufacturer ID: 74
OEM: 4a60
Name: USDU1
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 7.3 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
reading uEnv.txt
461 bytes read in 11 ms (40 KiB/s)
Loaded environment from uEnv.txt
Importing environment from SD ...
Running uenvcmd ...
reading image-4.9.0-xlnx-v2017.3-fpga
13042176 bytes read in 880 ms (14.1 MiB/s)
reading devicetree-4.9.0-xlnx-v2017.3-fpga-zynqmp-uz3eg-iocc.dtb
34934 bytes read in 20 ms (1.7 MiB/s)
## Flattened Device Tree blob at 04000000
   Booting using the fdt blob at 0x4000000
   Loading Device Tree to 000000000fff4000, end 000000000ffff875 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.0-xlnx-v2017.3-zynqmp-fpga (ichiro@sphinx-vm-ubuntu) (gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) ) #1 SMP Thu Dec 21 13:06:41 JST 2017
[    0.000000] Boot CPU: AArch64 Processor [410fd034]
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 256 MiB at 0x0000000070000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] percpu: Embedded 21 pages/cpu @ffffffc06ff74000 s47384 r8192 d30440 u86016
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: enabling workaround for ARM erratum 845719
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 517120
[    0.000000] Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk1p2 rw rootwait uio_pdrv_genirq.of_id=generic-uio
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.000000] Memory: 1789496K/2097152K available (8892K kernel code, 576K rwdata, 2732K rodata, 512K init, 389K bss, 45512K reserved, 262144K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     modules : 0xffffff8000000000 - 0xffffff8008000000   (   128 MB)
[    0.000000]     vmalloc : 0xffffff8008000000 - 0xffffffbebfff0000   (   250 GB)
[    0.000000]       .text : 0xffffff8008080000 - 0xffffff8008930000   (  8896 KB)
[    0.000000]     .rodata : 0xffffff8008930000 - 0xffffff8008be0000   (  2752 KB)
[    0.000000]       .init : 0xffffff8008be0000 - 0xffffff8008c60000   (   512 KB)
[    0.000000]       .data : 0xffffff8008c60000 - 0xffffff8008cf0200   (   577 KB)
[    0.000000]        .bss : 0xffffff8008cf0200 - 0xffffff8008d5163c   (   390 KB)
[    0.000000]     fixed   : 0xffffffbefe7fd000 - 0xffffffbefec00000   (  4108 KB)
[    0.000000]     PCI I/O : 0xffffffbefee00000 - 0xffffffbeffe00000   (    16 MB)
[    0.000000]     vmemmap : 0xffffffbf00000000 - 0xffffffc000000000   (     4 GB maximum)
[    0.000000]               0xffffffbf00000000 - 0xffffffbf01c00000   (    28 MB actual)
[    0.000000]     memory  : 0xffffffc000000000 - 0xffffffc080000000   (  2048 MB)
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 64.
[    0.000000]  RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=4
[    0.000000] NR_IRQS:64 nr_irqs:64 0
[    0.000000] GIC: Adjusting CPU interface base to 0x00000000f902f000
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] arm_arch_timer: Architected cp15 timer(s) running at 99.99MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x171015c90f, max_idle_ns: 440795203080 ns
[    0.000003] sched_clock: 56 bits at 99MHz, resolution 10ns, wraps every 4398046511101ns
[    0.000287] Console: colour dummy device 80x25
[    0.000307] Calibrating delay loop (skipped), value calculated using timer frequency.. 199.99 BogoMIPS (lpj=399996)
[    0.000315] pid_max: default: 32768 minimum: 301
[    0.000431] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000437] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.001093] ASID allocator initialised with 65536 entries
[    0.001652] zynqmp_plat_init Power management API v0.3
[    0.001736] EFI services will not be available.
[    0.002118] Detected VIPT I-cache on CPU1
[    0.002149] CPU1: Booted secondary processor [410fd034]
[    0.002452] Detected VIPT I-cache on CPU2
[    0.002472] CPU2: Booted secondary processor [410fd034]
[    0.002761] Detected VIPT I-cache on CPU3
[    0.002780] CPU3: Booted secondary processor [410fd034]
[    0.002819] Brought up 4 CPUs
[    0.002834] SMP: Total of 4 processors activated.
[    0.002841] CPU features: detected feature: 32-bit EL0 Support
[    0.002847] CPU: All CPU(s) started at EL2
[    0.002862] alternatives: patching kernel code
[    0.003642] devtmpfs: initialized
[    0.009113] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.015329] xor: measuring software checksum speed
[    0.052049]    8regs     :  2048.000 MB/sec
[    0.092080]    8regs_prefetch:  1882.000 MB/sec
[    0.132112]    32regs    :  2500.000 MB/sec
[    0.172145]    32regs_prefetch:  2182.000 MB/sec
[    0.172149] xor: using function: 32regs (2500.000 MB/sec)
[    0.172249] pinctrl core: initialized pinctrl subsystem
[    0.172979] NET: Registered protocol family 16
[    0.190620] cpuidle: using governor menu
[    0.190848] Failed to initialise IOMMU /amba/smmu@fd800000
[    0.191041] vdso: 2 pages (1 code @ ffffff8008937000, 1 data @ ffffff8008c64000)
[    0.191053] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.191658] DMA: preallocated 256 KiB pool for atomic allocations
[    0.206145] reset_zynqmp reset-controller: Xilinx zynqmp reset driver probed
[    0.206799] ARM CCI_400_r1 PMU driver probed
[    0.210336] zynqmp-pinctrl ff180000.pinctrl: zynqmp pinctrl initialized
[    0.238939] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    0.304416] raid6: int64x1  gen()   374 MB/s
[    0.372346] raid6: int64x1  xor()   399 MB/s
[    0.440410] raid6: int64x2  gen()   613 MB/s
[    0.508452] raid6: int64x2  xor()   548 MB/s
[    0.576501] raid6: int64x4  gen()   950 MB/s
[    0.644540] raid6: int64x4  xor()   689 MB/s
[    0.712598] raid6: int64x8  gen()  1007 MB/s
[    0.780633] raid6: int64x8  xor()   666 MB/s
[    0.848700] raid6: neonx1   gen()   662 MB/s
[    0.916766] raid6: neonx1   xor()   695 MB/s
[    0.984811] raid6: neonx2   gen()  1069 MB/s
[    1.052857] raid6: neonx2   xor()   949 MB/s
[    1.120907] raid6: neonx4   gen()  1382 MB/s
[    1.188942] raid6: neonx4   xor()  1083 MB/s
[    1.256982] raid6: neonx8   gen()  1443 MB/s
[    1.325034] raid6: neonx8   xor()  1103 MB/s
[    1.325038] raid6: using algorithm neonx8 gen() 1443 MB/s
[    1.325042] raid6: .... xor() 1103 MB/s, rmw enabled
[    1.325046] raid6: using intx1 recovery algorithm
[    1.325882] SCSI subsystem initialized
[    1.326101] usbcore: registered new interface driver usbfs
[    1.326142] usbcore: registered new interface driver hub
[    1.326187] usbcore: registered new device driver usb
[    1.326265] media: Linux media interface: v0.10
[    1.326297] Linux video capture interface: v2.00
[    1.326327] pps_core: LinuxPPS API ver. 1 registered
[    1.326331] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.326348] PTP clock support registered
[    1.326381] EDAC MC: Ver: 3.0.0
[    1.326708] FPGA manager framework
[    1.326858] fpga-region fpga-full: FPGA Region probed
[    1.326958] Advanced Linux Sound Architecture Driver Initialized.
[    1.327304] Bluetooth: Core ver 2.22
[    1.327331] NET: Registered protocol family 31
[    1.327335] Bluetooth: HCI device and connection manager initialized
[    1.327345] Bluetooth: HCI socket layer initialized
[    1.327352] Bluetooth: L2CAP socket layer initialized
[    1.327375] Bluetooth: SCO socket layer initialized
[    1.328020] clocksource: Switched to clocksource arch_sys_counter
[    1.328102] VFS: Disk quotas dquot_6.6.0
[    1.328150] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.333325] NET: Registered protocol family 2
[    1.333729] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[    1.333847] TCP bind hash table entries: 16384 (order: 6, 262144 bytes)
[    1.334137] TCP: Hash tables configured (established 16384 bind 16384)
[    1.334209] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[    1.334254] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[    1.334406] NET: Registered protocol family 1
[    1.334641] RPC: Registered named UNIX socket transport module.
[    1.334646] RPC: Registered udp transport module.
[    1.334649] RPC: Registered tcp transport module.
[    1.334653] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.335102] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[    1.335862] futex hash table entries: 1024 (order: 5, 131072 bytes)
[    1.335945] audit: initializing netlink subsys (disabled)
[    1.335972] audit: type=2000 audit(1.324:1): initialized
[    1.336515] workingset: timestamp_bits=62 max_order=19 bucket_order=0
[    1.337189] NFS: Registering the id_resolver key type
[    1.337207] Key type id_resolver registered
[    1.337211] Key type id_legacy registered
[    1.337220] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.337241] jffs2: version 2.2. (NAND) (SUMMARY)  c 2001-2006 Red Hat, Inc.
[    1.342073] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    1.342080] io scheduler noop registered
[    1.342085] io scheduler deadline registered
[    1.342095] io scheduler cfq registered (default)
[    1.343355] xilinx-dpdma fd4c0000.dma: Xilinx DPDMA engine is probed
[    1.343741] Write failed gate address:1000f02
[    1.343846] xilinx-zynqmp-dma fd500000.dma: ZynqMP DMA driver Probe success
[    1.343980] xilinx-zynqmp-dma fd510000.dma: ZynqMP DMA driver Probe success
[    1.344135] xilinx-zynqmp-dma fd520000.dma: ZynqMP DMA driver Probe success
[    1.344269] xilinx-zynqmp-dma fd530000.dma: ZynqMP DMA driver Probe success
[    1.344405] xilinx-zynqmp-dma fd540000.dma: ZynqMP DMA driver Probe success
[    1.344540] xilinx-zynqmp-dma fd550000.dma: ZynqMP DMA driver Probe success
[    1.344679] xilinx-zynqmp-dma fd560000.dma: ZynqMP DMA driver Probe success
[    1.344815] xilinx-zynqmp-dma fd570000.dma: ZynqMP DMA driver Probe success
[    1.345086] xilinx-zynqmp-dma ffa80000.dma: ZynqMP DMA driver Probe success
[    1.345224] xilinx-zynqmp-dma ffa90000.dma: ZynqMP DMA driver Probe success
[    1.345363] xilinx-zynqmp-dma ffaa0000.dma: ZynqMP DMA driver Probe success
[    1.345498] xilinx-zynqmp-dma ffab0000.dma: ZynqMP DMA driver Probe success
[    1.345638] xilinx-zynqmp-dma ffac0000.dma: ZynqMP DMA driver Probe success
[    1.345777] xilinx-zynqmp-dma ffad0000.dma: ZynqMP DMA driver Probe success
[    1.345921] xilinx-zynqmp-dma ffae0000.dma: ZynqMP DMA driver Probe success
[    1.346058] xilinx-zynqmp-dma ffaf0000.dma: ZynqMP DMA driver Probe success
[    1.346232] zynqmp_pm firmware: Power management API v0.3
[    1.378801] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    1.380299] ff000000.serial: ttyPS0 at MMIO 0xff000000 (irq = 40, base_baud = 6249999) is a xuartps
[    2.344446] console [ttyPS0] enabled
[    2.348408] ff010000.serial: ttyPS1 at MMIO 0xff010000 (irq = 41, base_baud = 6249999) is a xuartps
[    2.357593] [drm] Initialized
[    2.360846] [drm] load() is defered & will be called again
[    2.366757] xilinx-drm-dp-sub fd4aa000.dp_sub: Xilinx DisplayPort Subsystem is probed
[    2.374677] Unable to detect cache hierarchy from DT for CPU 0
[    2.385879] brd: module loaded
[    2.392174] loop: module loaded
[    2.396117] ahci-ceva fd0c0000.ahci: ceva,p1-cominit-params property not defined
[    2.403459] ahci-ceva: probe of fd0c0000.ahci failed with error -22
[    2.409810] mtdoops: mtd device (mtddev=name/number) must be supplied
[    2.417060] m25p80 spi0.0: found n25q256a, expected n25q512a
[    2.422760] m25p80 spi0.0: n25q256a (65536 Kbytes)
[    2.427481] 3 ofpart partitions found on MTD device spi0.0
[    2.432934] Creating 3 MTD partitions on "spi0.0":
[    2.437710] 0x000000000000-0x000000100000 : "boot"
[    2.443043] 0x000000100000-0x000000140000 : "bootenv"
[    2.448532] 0x000000140000-0x000001740000 : "kernel"
[    2.454850] libphy: Fixed MDIO Bus: probed
[    2.460085] tun: Universal TUN/TAP device driver, 1.6
[    2.465055] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    2.471360] CAN device driver interface
[    2.475757] macb ff0e0000.ethernet: Not enabling partial store and forward
[    2.483104] libphy: MACB_mii_bus: probed
[    2.488789] macb ff0e0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0e0000 irq 30 (9a:5e:bc:78:ef:9c)
[    2.498530] TI DP83867 ff0e0000.etherne:09: attached PHY driver [TI DP83867] (mii_bus:phy_addr=ff0e0000.etherne:09, irq=-1)
[    2.510135] usbcore: registered new interface driver asix
[    2.515491] usbcore: registered new interface driver ax88179_178a
[    2.521549] usbcore: registered new interface driver cdc_ether
[    2.527362] usbcore: registered new interface driver net1080
[    2.533003] usbcore: registered new interface driver cdc_subset
[    2.538906] usbcore: registered new interface driver zaurus
[    2.544473] usbcore: registered new interface driver cdc_ncm
[    2.550693] usbcore: registered new interface driver uas
[    2.555960] usbcore: registered new interface driver usb-storage
[    2.562234] mousedev: PS/2 mouse device common for all mice
[    2.568170] rtc_zynqmp ffa60000.rtc: rtc core: registered ffa60000.rtc as rtc0
[    2.575343] i2c /dev entries driver
[    2.579070] cdns-i2c ff030000.i2c: 400 kHz mmio ff030000 irq 32
[    2.585917] usbcore: registered new interface driver uvcvideo
[    2.591578] USB Video Class driver (1.1.1)
[    2.596212] cdns-wdt fd4d0000.watchdog: Xilinx Watchdog Timer at ffffff8008ed9000 with timeout 10s
[    2.605306] Bluetooth: HCI UART driver ver 2.3
[    2.609671] Bluetooth: HCI UART protocol H4 registered
[    2.614795] Bluetooth: HCI UART protocol BCSP registered
[    2.620081] Bluetooth: HCI UART protocol LL registered
[    2.625201] Bluetooth: HCI UART protocol ATH3K registered
[    2.630583] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    2.636876] Bluetooth: HCI UART protocol Intel registered
[    2.642252] Bluetooth: HCI UART protocol Broadcom registered
[    2.647857] Bluetooth: HCI UART protocol QCA registered
[    2.653102] usbcore: registered new interface driver bcm203x
[    2.658741] usbcore: registered new interface driver bpa10x
[    2.664296] usbcore: registered new interface driver bfusb
[    2.669767] usbcore: registered new interface driver btusb
[    2.675200] Bluetooth: Generic Bluetooth SDIO driver ver 0.1
[    2.680895] usbcore: registered new interface driver ath3k
[    2.686436] EDAC MC: ECC not enabled
[    2.690090] EDAC DEVICE0: Giving out device to module zynqmp-ocm-edac controller zynqmp_ocm: DEV ff960000.memory-controller (INTERRUPT)
[    2.702697] cpufreq: cpufreq_online: CPU0: Running at unlisted freq: 1099999 KHz
[    2.710100] cpufreq: cpufreq_online: CPU0: Unlisted initial frequency changed to: 1199999 KHz
[    2.718960] sdhci: Secure Digital Host Controller Interface driver
[    2.725050] sdhci: Copyright(c) Pierre Ossman
[    2.729388] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.735564] ledtrig-cpu: registered to indicate activity on CPUs
[    2.741619] usbcore: registered new interface driver usbhid
[    2.747110] usbhid: USB HID core driver
[    2.752738] fpga_manager fpga0: Xilinx ZynqMP FPGA Manager registered
[    2.759786] pktgen: Packet Generator for packet performance testing. Version: 2.75
[    2.767483] Netfilter messages via NETLINK v0.30.
[    2.772234] ip_tables: (C) 2000-2006 Netfilter Core Team
[    2.777511] Initializing XFRM netlink socket
[    2.781768] NET: Registered protocol family 10
[    2.786635] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    2.791993] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.798243] NET: Registered protocol family 17
[    2.802609] NET: Registered protocol family 15
[    2.807037] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    2.819959] Ebtables v2.0 registered
[    2.823567] can: controller area network core (rev 20120528 abi 9)
[    2.829716] NET: Registered protocol family 29
[    2.834109] can: raw protocol (rev 20120528)
[    2.838359] can: broadcast manager protocol (rev 20161123 t)
[    2.844004] can: netlink gateway (rev 20130117) max_hops=1
[    2.849544] Bluetooth: RFCOMM TTY layer initialized
[    2.854350] Bluetooth: RFCOMM socket layer initialized
[    2.859470] Bluetooth: RFCOMM ver 1.11
[    2.863197] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    2.868491] Bluetooth: BNEP filters: protocol multicast
[    2.873700] Bluetooth: BNEP socket layer initialized
[    2.878644] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    2.884549] Bluetooth: HIDP socket layer initialized
[    2.889652] 9pnet: Installing 9P2000 support
[    2.893848] Key type dns_resolver registered
[    2.898539] registered taskstats version 1
[    2.902987] Btrfs loaded, crc32c=crc32c-generic
[    2.918499] [drm] load() is defered & will be called again
[    2.924699] xilinx-psgtr fd400000.zynqmp_phy: Lane:3 type:8 protocol:4 pll_locked:yes
[    2.932734] xilinx-drm-dp fd4a0000.dp: device found, version 4.010
[    2.938839] xilinx-drm-dp fd4a0000.dp: Display Port, version 1.0200 (tx)
[    2.946521] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    2.951939] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[    2.959810] xhci-hcd xhci-hcd.0.auto: hcc params 0x0238f625 hci version 0x100 quirks 0x02010010
[    2.968448] xhci-hcd xhci-hcd.0.auto: irq 220, io mem 0xfe200000
[    2.974542] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    2.981248] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.988449] usb usb1: Product: xHCI Host Controller
[    2.993308] usb usb1: Manufacturer: Linux 4.9.0-xlnx-v2017.3-zynqmp-fpga xhci-hcd
[    3.000773] usb usb1: SerialNumber: xhci-hcd.0.auto
[    3.005958] hub 1-0:1.0: USB hub found
[    3.009642] hub 1-0:1.0: 1 port detected
[    3.013703] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    3.019114] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[    3.026797] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    3.034895] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
[    3.041599] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.048801] usb usb2: Product: xHCI Host Controller
[    3.053661] usb usb2: Manufacturer: Linux 4.9.0-xlnx-v2017.3-zynqmp-fpga xhci-hcd
[    3.061126] usb usb2: SerialNumber: xhci-hcd.0.auto
[    3.066274] hub 2-0:1.0: USB hub found
[    3.069957] hub 2-0:1.0: 1 port detected
[    3.120025] mmc0: SDHCI controller on ff160000.sdhci [ff160000.sdhci] using ADMA 64-bit
[    3.176026] mmc1: SDHCI controller on ff170000.sdhci [ff170000.sdhci] using ADMA 64-bit
[    3.184642] OF: graph: no port node found in /xilinx_drm
[    3.189876] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.196467] [drm] No driver support for vblank timestamp query.
[    3.243768] mmc0: new HS200 MMC card at address 0001
[    3.248926] mmcblk0: mmc0:0001 Q2J55L 7.09 GiB
[    3.253492] mmcblk0boot0: mmc0:0001 Q2J55L partition 1 16.0 MiB
[    3.259446] mmcblk0boot1: mmc0:0001 Q2J55L partition 2 16.0 MiB
[    3.265390] mmcblk0rpmb: mmc0:0001 Q2J55L partition 3 4.00 MiB
[    3.271930]  mmcblk0: p1
[    3.285962] mmc1: new high speed SDHC card at address 59b4
[    3.291577] mmcblk1: mmc1:59b4 USDU1 7.31 GiB
[    3.296619]  mmcblk1: p1 p2
[    3.339460] random: fast init done
[    7.324783] xilinx-drm xilinx_drm: No connectors reported connected with modes
[    7.331928] [drm] Cannot find any crtc or sizes - going 1024x768
[    7.344608] Console: switching to colour frame buffer device 128x48
[    7.355861] xilinx-drm xilinx_drm: fb0:  frame buffer device
[    7.380030] [drm] Initialized xilinx_drm 1.0.0 20130509 on minor 0
[    7.386366] rtc_zynqmp ffa60000.rtc: setting system clock to 2016-11-03 17:20:55 UTC (1478193655)
[    7.395160] of_cfs_init
[    7.397604] of_cfs_init: OK
[    7.401677] ALSA device list:
[    7.404554]   No soundcards found.
[    7.409324] EXT4-fs (mmcblk1p2): mounting ext3 file system using the ext4 subsystem
[    7.429639] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[    7.437663] VFS: Mounted root (ext3 filesystem) on device 179:34.
[    7.447709] devtmpfs: mounted
[    7.450810] Freeing unused kernel memory: 512K (ffffffc000be0000 - ffffffc000c60000)
[    7.922171] systemd[1]: systemd 232 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[    7.940358] systemd[1]: Detected architecture arm64.

Welcome to Debian GNU/Linux 9 (stretch)!

[    7.956544] systemd[1]: Set hostname to <debian-fpga>.
[    8.248911] systemd[1]: Reached target Swap.
[  OK  ] Reached target Swap.
[    8.264225] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[    8.280172] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[    8.296139] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe.
[  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
[    8.320166] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    8.336086] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[    8.352264] systemd[1]: Created slice System Slice.
[  OK  ] Created slice System Slice.
         Mounting POSIX Message Queue File System...
[  OK  ] Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Listening on Journal Socket.
         Starting Nameserver information manager...
         Starting Remount Root and Kernel File Systems...
         Mounting Debug File System...
[  OK  ] Created slice system-getty.slice.
[  OK  ] Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Reached target Encrypted Volumes.
[  OK  ] Reached target Paths.
         Starting Create Static Device Nodes in /dev...
[  OK  ] Created slice User and Session Slice.
[  OK  ] Reached target Slices.
[  OK  ] Listening on Journal Audit Socket.
         Starting Load Kernel Modules...
[  OK  ] Listening on Syslog Socket.
         Starting Journal Service...
[  OK  ] Created slice system-serial\x2dgetty.slice.
[  OK  ] Mounted Debug File System.
[  OK  ] Mounted POSIX Message Queue File System.
[  OK  ] Started Remount Root and Kernel File Systems.
[  OK  ] Started Create Static Device Nodes in /dev.
[  OK  ] Started Load Kernel Modules.
[  OK  ] Started Nameserver information manager.
[  OK  ] Started Journal Service.
         Starting Apply Kernel Variables...
         Mounting Configuration File System...
         Starting udev Kernel Device Manager...
         Starting Load/Save Random Seed...
         Starting Flush Journal to Persistent Storage...
[  OK  ] Reached target Local File Systems (Pre).
         Mounting /config...
         Starting udev Coldplug all Devices...
[  OK  ] Mounted Configuration File System.
[  OK  ] Mounted /config.
[  OK  ] Started Apply Kernel Variables.
[  OK  ] Started Load/Save Random Seed.
[    8.889501] systemd-journald[1607]: Received request to flush runtime journal from PID 1
[  OK  ] Started Flush Journal to Persistent Storage.
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Found device /dev/ttyPS0.
[  OK  ] Started udev Coldplug all Devices.
[  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
[    9.341732] random: crng init done
[  OK  ] Found device /dev/mmcblk0p1.
         Mounting /boot...
[    9.740992] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[  OK  ] Mounted /boot.
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
[  OK  ] Started ifup for eth0.
         Starting Raise network interfaces...
[  OK  ] Started Create Volatile Files and Directories.
[  OK  ] Reached target System Time Synchronized.
         Starting Update UTMP about System Boot/Shutdown...
[  OK  ] Started Update UTMP about System Boot/Shutdown.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Started Daily apt download activities.
[  OK  ] Started Daily apt upgrade and clean activities.
[  OK  ] Reached target Timers.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
         Starting System Logging Service...
         Starting Login Service...
[  OK  ] Started Regular background program processing daemon.
[  OK  ] Started D-Bus System Message Bus.
[   10.131541] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
         Starting Avahi mDNS/DNS-SD Stack...
[  OK  ] Started System Logging Service.
[  OK  ] Started Login Service.
[  OK  ] Started Avahi mDNS/DNS-SD Stack.
[  OK  ] Started Raise network interfaces.
[  OK  ] Reached target Network.
         Starting OpenBSD Secure Shell server...
         Starting Permit User Sessions...
[  OK  ] Reached target Network is Online.
         Starting Samba NMB Daemon...
         Starting LSB: Start NTP daemon...
[  OK  ] Started Permit User Sessions.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttyPS0.
[  OK  ] Reached target Login Prompts.
[  OK  ] Started OpenBSD Secure Shell server.
[  OK  ] Started LSB: Start NTP daemon.
[   11.140381] macb ff0e0000.ethernet eth0: link up (1000/Full)
[   11.146000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
         Starting Samba SMB Daemon...
[  OK  ] Started Samba SMB Daemon.

Debian GNU/Linux 9 debian-fpga ttyPS0

debian-fpga login:


UltraZed-EG Starter Kit のチュートリアル2”の続き。

前回はSDKでアプリケーションソフトを作成してHello World をUltraZed-EG Starter Kit で動作させた。今回は、チュートリアルの続きやってみよう。

PS User LED を点滅させるのをやってみた。
PS User LED は、UltraZed™ I/O Carrier Card Version 1.0 の 7 ページによるとUltraZed-EG Starter Kit のPS のMIO[31] に接続されている。つまり、PS 側なので、ソフトウェアだけで動作するということになる。

まずは、SDKでFile メニューからNew -> Application Project を選択した。

New Project ダイアログが開いた。Project Name にPS_User_LED を入力し、Board Support Package は、Use existing のラジオボタンをクリックして、standalone_bsp_0 を選択した。(といっても1つしかBSPを作っていないので、一択だった)
UltraZed-EG_StKit_tut_47_171114.png

Next -> ボタンをクリックして、Empty Application を選択し、Finish ボタンをクリックした。
UltraZed-EG_StKit_tut_48_171114.png

PS_User_LED プロジェクトが生成された。

UltraZed_EG_SK_Tutorial_2016_4_v1.zip\ultrazed_eg_starter_kit フォルダにPS_User_LED を点滅させるソフトウェアの ps_user_led.c がある。
UltraZed-EG_StKit_tut_49_171114.png

SDK の PS_User_LED プロジェクトの src フォルダ内にドラック&ドロップした。
すると、File Operation ダイアログが開く。デフォルトで Copy files のラジオボタンがチェックされているので、そのままOKボタンをクリックした。
UltraZed-EG_StKit_tut_50_171114.png

ps_user_led.c がコンパイルされて、PS_User_LED.elf が生成された。
UltraZed-EG_StKit_tut_51_171114.png

SDK のPS_User_LED プロジェクトを右クリックし、右クリックメニューからRun As -> Launch on Hardware (System Debugger) を選択して、PS_User_LED.elf を実行した。

UltraZed-EG Starter Kit のPS_User_LEDが点滅した。赤く光っているLED がPS_User_LED だ。
UltraZed-EG_StKit_tut_62_171114.jpg

ギガビット・インサーポートのテスト

ギガビット・インサーポートのテストを行った。
SDK のFile メニューからNew -> Application Project を選択して、表示されたNew Project ダイアログで、Project Name にEth_Test を、Board Support Package のCreate New ラジオボタンをクリックして、Eth_Test _bsp を入力した。
Next -> ボタンをクリックした。
UltraZed-EG_StKit_tut_52_171114.png

Templates のAvailable Templates で、IwIP Echo Server をクリックし、Finish ボタンをクリックした。
UltraZed-EG_StKit_tut_53_171114.png

Eth_Test と Eth_Test_bsp プロジェクトが生成された。
UltraZed-EG_StKit_tut_54_171114.png

SDK のEth_Test プロジェクトを右クリックし、右クリックメニューからRun As -> Launch on Hardware (System Debugger) を選択して、Eth_Test.elf を実行した。
stdout に IwIP TCP echo sever の表示が出た。
UltraZed-EG_StKit_tut_55_171114.png

SDK のFile メニューからNew -> Application Project を選択して、表示されたNew Project ダイアログで、Project Name にPeriph_Test を、Board Support Package のUse existing ラジオボタンをクリックして、standalone_bsp_0 を選択した。
Next -> ボタンをクリックした。
UltraZed-EG_StKit_tut_56_171114.png

Templates のAvailable Templates で、Peripheral_Tests をクリックし、Finish ボタンをクリックした。
UltraZed-EG_StKit_tut_57_171114.png

Pheriph_Test プロジェクトが生成された。
UltraZed-EG_StKit_tut_58_171114.png

まずはFPGA をコンフィギュレーションするために、SDKのXilinx メニューからProgram FPGA を選択した。

Program FPGA ダイアログが表示された。Program ボタンをクリックした。
UltraZed-EG_StKit_tut_59_171114.png

SDK のPeriph_Test プロジェクトを右クリックし、右クリックメニューからRun As -> Launch on Hardware (System Debugger) を選択して、Periph_Test.elf を実行した。

stdout に結果が出力された。
UltraZed-EG_StKit_tut_60_171114.png

1つFail になった。

UltraZed-EG Starter Kit のチュートリアル1”の続き。

前回は、UltraZed-EG Starter Kit のチュートリアルを初めて、Vivado で論理合成、インプリメント、ビットストリームの生成まで実行できた。今回は、SDKでアプリケーションソフトを作成して、実機テストしてみよう。

前回、インプリメントが成功したので、File メニューからExport -> Export Hardware... を選択して、ハードウェアをエクスポートした。
File メニューからLaunch SDK を選択して、SDK を起動した。
UltraZed-EG_StKit_tut_34_171114.png

SDK の File メニューからNew -> Board Support Package を選択した。

standalone を選択している。Finish ボタンをクリックした。
UltraZed-EG_StKit_tut_35_171114.png

Hardware Platform をクリックして見ると、プロセッサが全選択できるようだ。
UltraZed-EG_StKit_tut_36_171114.png

Board Support Package Settings ダイアログが開いた。
UltraZed-EG_StKit_tut_37_171114.png

Overview の standalone をクリックすると、stdin と stdout が psu_uart_0 になっているのが見えた。
UltraZed-EG_StKit_tut_38_171114.png

OKボタンをクリックすると、SDK で standalone_bsp_0 が生成された。
UltraZed-EG_StKit_tut_39_171114.png

SDK のFile メニューから New -> Application Project を選択した。
Project Name にHello_UltraZed と入力し、Board Support Package は先ほど生成した standalone_bsp_0 を選択した。
UltraZed-EG_StKit_tut_40_171114.png

Next -> をクリックして、次のTemplate 画面でデフォルトの Hello World を選択したままで、Finish ボタンをクリックした。
UltraZed-EG_StKit_tut_41_171114.png

SDK にHello_UltraZed が生成された。
UltraZed-EG_StKit_tut_42_171114.png

Console 画面を示す。
UltraZed-EG_StKit_tut_43_171114.png

UltraZed_EG_Starter_Kit_Tutorial_VIvado_2016_4.pdf の 29 ページの”7 Setting up the Hardware ”からUltraZed-EG Starter Kit の設定を引用する。

Please perform the following steps to setup the UltraZed-EG Starter Kit.
・ Plug the UltraZed-EG SOM onto the IO Carrier Card via JX1/JX2/JX3 connectors and connect
the fan to the fan header (JP5) on the IO Carrier Card.
・ Set the UltraZed-EG SOM SW2 Boot Mode switch (MODE[3:0] = SW2[4:1]) to ON, ON, ON,
and ON positions (Boot Mode set to JTAG, MODE[3:0] = 0x0).
・ Install a jumper on the IO Carrier Card JP1.
・ Connect the USB A-mini-B cable to the U18 USB port (SMT2 JTAG module on the IO Carrier
Card) and the USB port of the PC. This will provide JTAG connection to the board.
・ Connect the USB A-mini-B cable to J11 on the IO Carrier Card and the USB port of the PC.
This will provide USB-UART connection to the board.
・ Connect 12V power supply to J7 on the IO Carrier Card.
・ Connect an Ethernet cable to the J5 RJ45 connector on the IO Carrier Card and the Gigabit
Ethernet port of the PC.
・ Slide the SW8 power switch to the ON position on the IO Carrier Card.
・ Start a Tera Term session and set the serial port parameters to 115200 baud rate, 8 bits, 1
stop bit, no parity and no flow control (please refer to the Setting up the Host PC section at
the end of this document for installing the software driver for the USB-UART port and setting
up the UART).
・ Set the IP address of your PC to 192.168.1.1 with subnet mask of 255.255.255.0.


この後で、UltraZed-EG Starter Kit のUSB-Serial のドライバが無かったので、Silicon Labs のCP21XXのドライバをインストールした。
UltraZed-EG_StKit_tut_44_171114.png

Hello_UltraZed を右クリックし、右クリックメニューからRun As -> Launch on Hardware (System Debugger) を選択した。
UltraZed-EG_StKit_tut_45_171114.png

Tera Term に Hello World が表示された。
UltraZed-EG_StKit_tut_46_171114.png

UltraZed-EG Starter Kit のチュートリアルをやってみることにした。

UltraZed-EG Starter Kit Tutorial – Vivado 2016.4 をダウンロードして、その中に UltraZed_EG_Starter_Kit_Tutorial_Vivado_2016_4.pdf が入っているので、それを見ながら、Vivado 2017.3 でチュートリアルをやっていくことにした。
UltraZed-EG_StKit_tut_1_171113.png

UltraZed_EG_SK_Tutorial_2016_4_v1.zip には、UltraZed-EG Starter Kit のボードファイルが入っていたが、ES のものだったので、Github/Avnet のbdf/ultrazed_3eg_iocc/1.0 にC バージョンのボードファイルがあった。
UltraZed-EG_StKit_tut_2_171113.png

Vivado 2017.3 の Vivado\2017.3\data\boards\board_files フォルダに ultrazed_3eg_iocc フォルダをコピーした。
UltraZed-EG_StKit_tut_3_171113.png

Vivado 2017.3 を立ち上げて、プロジェクトを新規作成した。
デフォルトで進むダイアログは書かないことにする。

Project Name ダイアログ。
UltraZed-EG_StKit_tut_4_171113.png

Default Part ダイアログ。無事に UltraZed-3EG IO Carrier Card が出てきた。
UltraZed-EG_StKit_tut_5_171113.png

New Project Summary ダイアログ。
UltraZed-EG_StKit_tut_6_171113.png

プロジェクトが作成された。
UltraZed-EG_StKit_tut_7_171113.png

Create Block Design を行った。
UltraZed-EG_StKit_tut_8_171113.png

ブロックデザインで、Add IP を行った。 zynq で検索して、Zynq UltraScale + MPSoC をダブルクリックした。
UltraZed-EG_StKit_tut_9_171113.png

zynq_ultra_ps_e_0 が追加された。Run Block Automation をクリックする。
UltraZed-EG_StKit_tut_10_171113.png

Run Block Automation ダイアログ。
UltraZed-EG_StKit_tut_11_171113.png

UltraZed-3EG IO Carrier Card の設定が入ったはず。
UltraZed-EG_StKit_tut_12_171113.png

zynq_ultra_ps_e_0 をダブルクリックして、設定ダイアログを表示した。
UltraZed-EG_StKit_tut_13_171113.png

I/O Configuration 画面 1/3 、Zynq よりもMIO が増えているようだ。
UltraZed-EG_StKit_tut_14_171113.png

I/O Configuration 画面 2/3。
UltraZed-EG_StKit_tut_15_171113.png

I/O Configuration 画面 3/3 、GT Lane もMIOにできているみたいだ。
UltraZed-EG_StKit_tut_16_171113.png

Clock Configuration 、pl_clk0 が見当たらないがどこにあるんだろうか?
UltraZed-EG_StKit_tut_17_171113.png

(2017/11/15:追加)
Clock Configuration に Output Clocks タブがあった。ここで、PLへのクロック周波数を設定していた。
UltraZed-EG_StKit_tut_61_171114.png 

DDR Configuration
UltraZed-EG_StKit_tut_18_171113.png

PS-PL Configuration
UltraZed-EG_StKit_tut_19_171113.png

ダイアログを閉じた。
Vivado の真ん中上のウインドウで、DIP switches をダブルクリックした。
UltraZed-EG_StKit_tut_20_171113.png

Connect Board Component ダイアログが開いた。デフォルトのままOKボタンをクリックした。
UltraZed-EG_StKit_tut_21_171113.png

axi_gpio_0 が Add IP されたので、Run Block Automation をクリックした。
UltraZed-EG_StKit_tut_22_171113.png

Run Block Automation ダイアログが開いた。デフォルトのままOKボタンをクリックした。
UltraZed-EG_StKit_tut_23_171113.png

2つ IP が追加され、配線された。
UltraZed-EG_StKit_tut_24_171113.png

Vivado の真ん中上のウインドウで、LED をダブルクリックした。
Connect Board Component ダイアログが開いた。デフォルトのままOKボタンをクリックした。
UltraZed-EG_StKit_tut_25_171113.png

axi_gpio_0 に GPIO2 が追加された。
UltraZed-EG_StKit_tut_26_171113.png

Vivado の真ん中上のウインドウで、Push buttons をダブルクリックした。
Connect Board Component ダイアログが開いた。デフォルトのままOKボタンをクリックした。
UltraZed-EG_StKit_tut_27_171113.png

axi_gpio_1 が追加された。Run Block Automation をクリックした。
UltraZed-EG_StKit_tut_28_171113.png

Run Block Automation ダイアログが表示された。デフォルトのままOKボタンをクリックした。
UltraZed-EG_StKit_tut_29_171113.png

ブロックデザインが完成した。
Validate Design をクリックした。
UltraZed-EG_StKit_tut_30_171113.png

成功した。
UltraZed-EG_StKit_tut_31_171113.png

Vivado の真ん中上のウインドウをSource タブをクリックし、design_1 を右クリックして、右クリックメニューから Create HDL Wapper... を選択した。
Creater HDL Wapper ダイアログが表示された。デフォルトのままOKボタンをクリックした。
design_1_wrapper.v が生成されて、トップのファイルになった。
UltraZed-EG_StKit_tut_32_171113.png

Flow Navigator から Generate Bitstream をクリックした。
ダイアログがいくつか開いたが、デフォルトのままOKボタンをクリックした。
論理合成、インプリメント、ビットストリームの生成が行われ、成功した。結果を示す。
UltraZed-EG_StKit_tut_33_171113.png

↑このページのトップヘ