PYNQ-Z1 > H16 (the 125 MHz external reference clock)を使ってみる > Clock Divider IPで分周して1.25HzをAnalog Discovery 2で測定


動作環境
Windows 10 Pro (v1909) 
PYNQ-Z1 (Digilent) (以下、PYNQと表記)
Vivado v2019.1 (64-bit)
Analog Discovery 2 (以下、AD2)

the 125 MHz external reference clock

11 Clock Sources

The PL of the Zynq-Z7020 also includes 4 MMCM’s and 4 PLL’s that can be used to generate clocks with precise frequencies and phase relationships. Any of the four PS reference clocks or the 125 MHz external reference clock can be used as an input to the MMCMs and PLLs. For a full description of the capabilities of the Zynq PL clocking resources, refer to the “7 Series FPGAs Clocking Resources User Guide” available from Xilinx.

自分が理解したのは以下。

  • H16には125MHzのクロックが入る
  • そのクロックはPLで動く
    • PSがないときにも動く

これをVivado Block Designで使おうとしたが、よくわからなかった。
いろいろ調べて思ったのは、H16はBlock Designでは指定せず、I/O Port設定(もしくはXDC設定)で指定する、ということ。

それを確認する回路を作ってみた。

Clock Dividerで分周して測定

Clock Divider IP (myIP_clockDiv)

上記で使ったIPを今回も使う。
プロジェクトSettingのIPに追加しておく。

Block Design

以下のようにした。

M_AXI_GP0_ACLKはFCLK_CLK0へ手作業で接続した。
myIP_clockDiv_0のclk_125MHzとclk_1p25HzはMake Externalで作成してラベルをそれぞれのものにした。

xlconstant_0は以下の設定としている。
125MHz入力が1.25Hzになるはず。

  • Const Width: 29
  • Const Val: 100000000

XDCファイル

set_property PACKAGE_PIN H16 [get_ports clk_125MHz]
set_property IOSTANDARD LVCMOS33 [get_ports clk_125MHz]
set_property PACKAGE_PIN Y18 [get_ports clk_1p25Hz]
set_property IOSTANDARD LVCMOS33 [get_ports clk_1p25Hz]

今回はPMODAの1ピンを使う。PYNQの回路図でPMODAのJA1_PがY18に接続されていることを確認して、上記とした。
H16の指定は、冒頭に掲載した125MHzのピンがH16であることから指定している。

Run simulationしたときのI/O Portsを参考までに掲載しておく。

動作確認

接続

Analog Discovery 2 (AD2)との接続は以下とした。

  • PYNQ PmodA GND <=> AD2 GND
  • PYNQ PmodA 1ピン <=> AD2の1+ (Scopeで使うピンのプラス側)

測定

WaveFormsのScopeで測定した。

1クロックがdelta time 793.8 msである。

1/793.8 * 1000
1.2597 Hzと確認できた。

関連

皆様、情報感謝です。