Bir zynq cihazında Cortex-A9 işlemci ve FPGA arasındaki iletişim AXI protokolü kullanılarak yapılır.
- Genel Amaçlı AXI portları: 2x Usta ve 2x Slave port (FPGA CPU'SU) (FPGA gelen CPU'ya) FPGA ve CPU (Zynq TRM) arasında iletişim kurmak için kullanılabilecek bağlantı noktalarının üç tipi vardır. Bu portlar, işlem sisteminin merkezi ara bağlantısına bağlanır ve DDR bellek veya çip üzeri bellek (OCM) üzerinden veri aktarmak için kullanılabilir.
- Yüksek Performanslı AXI portları: doğrudan bağlı yüksek yayılımlı portu (CPU FPGA itibaren) Köle port: (FPGA gelen CPU'ya) 4x Köle portu DDR veya OCM'de
- ACP (Hızlandırıcı koherensinin Bağlantı Noktası) yüksek bandwidith erişimi sağlamak Snoop kontrol ünitesine (SCU). SCU önbellek tutarlılığını korur (önbellek boşluğu/geçersiz kılma gerekliliklerini ortadan kaldırır).
Sorunuzda, sizin durumunuzda CPU'nun iletişimin Master olduğunu anlarım. General-Purpose axi ana portlarını kullanmanız gerekecektir. AXI4 akış arabirimini AXI ara bağlantısına bağlayamazsınız. AXI4 Streaming - AXI dönüşümü yapmanız gerekir. Performans gereksinimlerinize bağlı olarak bir AXI DMA ip çekirdeği (AXI DMA IP core) iyi bir çözüm olabilir.
"Open (/ dev /)" yazılımını kullanarak yazılım bakış açısından iletişim kurmak istiyorsanız, bir Linux aygıt sürücüsüne ihtiyacınız olacaktır. DMA çekirdek kullanıyorsanız iletişim genellikle bu gibi görünecektir:
Başlat DMA çekirdek
DMA çekirdek alıp bunu
- Belirli bir bellek adresinden veri getirmek için DMA çekirdeğini yapılandıracak veri ve IP bloğunuzun AXI4 akış arabirimine besle
- IP bloğunuz veri üzerinde bir miktar işlem yapar ve belleğe geri gönderir (DMA kullanarak) veya başka bir şey yapar (harici arabirime gönderilir ...)
DMA çekirdeğinizin kayıt seti bellek eşlemeli olacak ve kendi Linux aygıt sürücüsü ile erişilebilir olacaktır. Hata ayıklama amacıyla, kayıtlara erişmek ve donanımınızın işlemlerini hızlı bir şekilde doğrulamak için mmap kullanmanızı öneririm. Linux çekirdeği aygıt sürücüsüne gittiğinizde bu kitabı okumanızı öneririm: Linux Device Drivers 3the edition
'a bağlayabilirsiniz. Zynq donanımında AXI-Stream arabirimleri yoktur. Bu sizin PL'lere eklediğiniz anlamına gelir ve bağlantınızda daha fazla ayrıntıya gerek kalmadan size yardımcı olmayacaktır. –