たろねっと

初心者エンジニアの成長日記

Xilinx社FPGA Zynqボードについて調べてみる(Arty、Zybo、PYNQ比較)

こんにちは。m-taroです。

 

今日は、兼ねてから始めてみたかったFPGAについて調べてみたいと思います。

FPGAと言えば、2代巨頭のAlteraやxilinxが有名ですね。

 

どっちにしよう…って思っていたが、周りはxilinx使いがほとんど。

うちの会社だけかもしれないが、教えてもらうには同じメーカの方がいい。

 

ってことで話を聞くと、答えは一つ!

「どうせやるなら、Zynqでしょ。ソフトもできるよ。」

こればっかり…

 

たしかに、ZynqはFPGAロジック部とプロセッサ部が両方乗っているので、両方勉強できなくもないが、難しくない?

 

これの答えは

「Zyboにすればブログがいっぱいあるし、分かりやすいよ」

・・・・なるほど、ネットで調べて頑張れと。

 

分かりましたよ。調べながらやりますよ。

 

といことで、なんぞや?から調べてみました。

まずはZybo

 

DIGILENT社が提供するFPGA開発ボード。

その内、Zynq搭載製品は3シリーズ。

 ・Arty Z7シリーズ

 ・Zybo Z7シリーズ

 ・PYNQ-Z1シリーズ

 

なんか色々出てきた。とりあえず調べてみる。

 

■Arty Z7シリーズ

 Arty Z7-10とZ7-20があり、Z7-20の方がロジック数が多く、大規模な開発が可能。

 まずはArty Z7シリーズをベース。

  Arty Z7-10 Arty Z7-20
FPGA part XC7Z010-1CLG400C XC7Z020-1CLG400C
1 MSPS On-chip ADC Yes Yes
Processor  Dual ARM Cortex A9 Dual ARM Cortex A9
Look-up Tables (LUTs) 17,600 53,200
Flip-flops 35,200 106,400
Block RAM 270 KB 630 KB
Clock Management Tiles 2 4
Available Shield I/O 26 49 
    • 650MHz dual-core Cortex-A9 processor
    • DDR3 memory controller with 8 DMA channels and 4 High Performance AXI3 Slave ports
    • High-bandwidth peripheral controllers: 1G Ethernet, USB 2.0, SDIO
    • Low-bandwidth peripheral controller: SPI, UART, CAN, I2C
    • Programmable from JTAG, Quad-SPI flash, and microSD card (Micro USB cable not included).
    • Programmable logic equivalent to Artix-7 FPGA
  • Memory
    • 512MB DDR3 with 16-bit bus @ 1050Mbps
    • 16MB Quad-SPI Flash with factory programmed 48-bit globally unique EUI-48/64™ compatible identifier
    • microSD slot
  • Power
    • Powered from USB or any 7V-15V external power source
  • USB and Ethernet
    • Gigabit Ethernet PHY
    • USB-JTAG Programming circuitry
    • USB-UART bridge
    • USB OTG PHY (supports host only) 
  • Audio and Video
    • HDMI sink port (input)
    • HDMI source port (output)
    • PWM driven mono audio output with 3.5mm jack 
  • Switches, Push-buttons, and LEDs
    • 4 push-buttons
    • 2 slide switches
    • 4 LEDs
    • 2 RGB LEDs
  • Expansion Connectors
    • Two standard Pmod ports
    • Arduino/chipKIT Shield connector
      • Up to 49 Total FPGA I/O (see table above)
      • 6 Single-ended 0-3.3V Analog inputs to XADC
      • 4 Differential 0-1.0V Analog inputs to XADC

store.digilentinc.com

 

■Zybo Z7シリーズ

 Zybo Z7-10、Z7-20があり、Z-20の方がロジック数も多く、大規模な開発が可能。

 ここはArty Z7シリーズと一緒ですね。

  Zybo Z7-10 Zybo Z7-20
FPGA part XC7Z010-1CLG400C XC7Z020-1CLG400C
1 MSPS On-chip ADC Yes Yes
Look-up Tables (LUTs) 17,600 53,200
Flip-flops 35,200 106,400
Block RAM 270 KB 630 KB
Clock Management Tiles 2 4
Available Shield I/O 32 40
Total Pmod Ports 5 6
Fan Connector No Yes
Zynq Heat Sink No Yes
HDMI CEC Support TX port only TX and RX ports
RGB LEDs 1 2
    • 667 MHz dual-core Cortex-A9 processor
    • DDR3L memory controller with 8 DMA channels and 4 High Performance AXI3 Slave ports
    • High-bandwidth peripheral controllers: 1G Ethernet, USB 2.0, SDIO
    • Low-bandwidth peripheral controllers: SPI, UART, CAN, I2C
    • Programmable from JTAG, Quad-SPI flash, and microSD card
    • Programmable logic equivalent to Artix-7 FPGA
  • Memory
    • 1 GB DDR3L with 32-bit bus @ 1066 MHz
    • 16 MB Quad-SPI Flash with factory programmed 128-bit random number and 48-bit globally unique EUI-48/64™ compatible identifier
    • microSD slot
  • Power
    • Powered from USB or any 5V external power source
  • USB and Ethernet
    • Gigabit Ethernet PHY
    • USB-JTAG Programming circuitry
    • USB-UART bridge
    • USB 2.0 OTG PHY with host and device support
  • Audio and Video
    • Pcam camera connector with MIPI CSI-2 support
    • HDMI sink port (input) with CEC (Zybo Z7-20) and without CEC (Zybo Z7-10)
    • HDMI source port (output) with CEC
    • Audio codec with stereo headphone, stereo line-in, and microphone jacks
  • Switches, Push-buttons, and LEDs
    • 6 push-buttons (2 processor connected)
    • 4 slide switches
    • 5 LEDs (1 processor connected)
    • 2 RGB LEDs (Zybo Z7-20) and 1 RGB LED (Zybo Z7-10)
  • Expansion Connectors
    • 6 Pmod ports (Zybo Z7-20) and 5 Pmod Ports (Zybo Z7-10)
      • 8 Total Processor I/O
      • 40 Total FPGA I/O (Zybo Z7-20) and 32 (Zybo Z7-10)
      • 4 Analog capable 0-1.0V differential pairs to XADC

Artyと比べると、上位互換ですね。メモリがDDR3Lで1GB載っていたり、カメラのI/FであるMIPI CSI-2をサポートしていたりしますね。USBも「2.0」が明記されています。

 

また、ZyboはSDSoCのライセンスあり版もあります。

Zynq内部はロジック側(PL側)とプロセッサ側(PS側)に分かれており、お互いにアクセスはできるが、基本的には独立で動きます。そのため、開発に使う言語が異なり、PL側はHDLやVerilog、PS側はC言語を用いるようです。

ここで、全てC言語で書いてしまおう!!というのがSDSoCです。これができれば、C/C++など高位言語でPS側から操れてしまう。

わざわざドライバを作らなくても、引数をロジック側に渡すと処理した結果が返ってくるようです。

…この辺は良くわからないので、これから勉強ですね。

 

store.digilentinc.com

 

■PYNQ-Z7シリーズ

 PYNQ-Z1のみがあります。ArtyやZyboと違い、Pythonで手軽にZynqを動かせるようです。詳しいことは…理解できませんが、シーンによってはとても便利なもののようです。

store.digilentinc.com

 

■まとめ

 結果的にPYNQはよく理解した人が使うべきもののような気がしますので、

 ArtyかZynqということになりますね。

 見た目はホワイトボードArtyがかっこいい!!

 ですが、将来的にカメラを繋げて動してみたい。というのもあるので、

 Zyboで勉強してみようかな?

 若干気になるのは、Zybo Z-20にはある。あれ!

 そう、ファンコネクタとヒートシンク!!

 Z-10には無くても大丈夫なのか??最初はカメラなんかぶん回さない…というかできないので、大丈夫かな?

 

ボード選びで迷っている方がいれば参考にしていただければと幸いです。

 

 

ではでは、また。