zyboというFPGAの入ったARMコアのSocが乗っかっている評価基板を買った。
CPUとFPGAを組み合わせた動作のために、
まずは、FPGAからARM側への割り込みを試してみる。
その過程で知ったこと、使ったサイトのメモ。
全体を通して参考になるページ
http://yuki-sato.com/wordpress/fpga/?q=%2Fcategory%2F%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C%2Ffpga%2F
必要なもの
Vivado
Zybo
PSの設定
VivadoでFPGA側の回路をつくる。
いろいろなチュートリアルを見ると、基本的にはBlock Design上でHDLのブロックなりIPなりを追加、接続していく。
IP Catelogからzynqを追加して必要設定を行う。
PS-PL Configuration
- S AXI GP0 Interface
Peripheral I/O Phins
- Quad SPI Flash
- SD0
(SD0でCard Detectをチェックして47番pinに設定しないとLinuxがブートしない。)
- UART1
- I2C 0
Interrupts
IRQ_F2P
Clock Configuration
で周辺の回路に沿うように設定する。
ZyboだとPSの入力周波数は50MHzになっている。
Zybo Reference Manual [Reference.Digilentinc]
12 Clock Source
Processor/Memory/Clocks
で、CPUの周波数を650MHzとDDRを525MHzにする。
IO Peripheral Clocks
でSDIOを50MHzにする。
PL Fabric Clocks
でFLCK_CLK0
を有効にして100MHzを出力するようにする。
DDR Configuration
でMemory TypeはMT41K128M16 JT-125
にする。
(実装されているDDR3の名前は違っているがコレでいいらしい)
(これは個人的な備忘録なのでバージョンが変わったりなどしたらDigilentのプロジェクトを真似したほうが確実かもしれない)