intel - logosuOpenCL için FPGA SDK'sı
Kullanıcı Kılavuzu

UG-OCL009
2017.05.08
Intel® Quartus® Prime Design Suite için son güncelleme: 17.0

RENPHO RF FM059HS WiFi Akıllı Ayak Masajı - simge 5Abone
SAMSUNG SM A136UZKZAIO Galaxy A13 5G Akıllı Telefon - simge 12Geri bildirim gönder

OpenCL™ Intel® Cyclone®V SoC Geliştirme Kiti Referans Platform Taşıma Kılavuzu için Intel® FPGA SDK

V SoC Geliştirme Kiti Referans Platformu Taşıma Kılavuzu, OpenCL için Intel Yazılım Geliştirme Kiti (SDK) ile OpenCL™ için Intel ® FPGA SDK ile kullanım için Intel Cyclone V SoC Geliştirme Kiti Referans Platformunun (c5soc) donanım ve yazılım tasarımını açıklar ™ Intel Cyclone ® . Başlamadan önce Intel, aşağıdaki belgelerin içeriğini öğrenmenizi önemle tavsiye eder:

  1. OpenCLIntel Cyclone V SoC Başlangıç ​​Kılavuzu için Intel FPGA SDK
  2. OpenCL Özel Platform Araç Seti Kullanıcı Kılavuzu için Intel FPGA SDK
  3. Cyclone V Device Handbook, Cilt 3: Sabit İşlemci Sistemi Teknik Referans Kılavuzu Ek olarak, Altera'nın Cyclone V SoC Development Kit ve SoC Embedded Design Suite sayfasına bakın. webdaha fazla bilgi için site. 1 2

Dikkat: Intel, Intel FPGA SDK for OpenCL Özel Platform Araç Kiti Kullanıcı Kılavuzu hakkında derinlemesine bilgi sahibi olduğunuzu varsayar. Cyclone V SoC Geliştirme Kiti Referans Platform Taşıma Kılavuzu, Cyclone V SoC Geliştirme Kiti için bir Özel Platform uygulamak üzere SDK'nın Özel Platform Araç Kitinin kullanımını açıklamaz. Yalnızca Cyclone V SoC Geliştirme Kitindeki SDK desteği ile OpenCL Özel Platformu için genel bir Intel FPGA SDK arasındaki farkları açıklar.

İlgili Bağlantılar

  • OpenCL Cyclone V SoC Başlangıç ​​Kılavuzu için Intel FPGA SDK
  • OpenCL Özel Platform Araç Seti Kullanıcı Kılavuzu için Intel FPGA SDK
  • Cyclone V Device Handbook, Cilt 3: Sabit İşlemci Sistemi Teknik Referans Kılavuzu
  • Altera'daki Cyclone V SoC Development Kit ve SoC Embedded Design Suite sayfası webalan
  1. OpenCL ve OpenCL logosu, Khronos Group™'un izniyle kullanılan Apple Inc. ticari markalarıdır.
  2. OpenCL için Intel FPGA SDK, yayınlanmış bir Khronos Spesifikasyonunu temel alır ve Khronos Uygunluk Testi Sürecini geçmiştir. Mevcut uygunluk durumu şu adreste bulunabilir: www.khronos.org/conformance.

Intel Kurumu. Her hakkı saklıdır. Intel, Intel logosu, Altera, Arria, Cyclone, Enpirion, MAX, Nios, Quartus ve Stratix sözcükleri ve logoları, Intel Corporation'ın veya ABD ve/veya diğer ülkelerdeki yan kuruluşlarının ticari markalarıdır. Intel, FPGA ve yarı iletken ürünlerinin performansını Intel'in standart garantisine uygun olarak mevcut spesifikasyonlara göre garanti eder, ancak herhangi bir zamanda önceden bildirimde bulunmaksızın herhangi bir ürün ve hizmette değişiklik yapma hakkını saklı tutar. Intel, Intel tarafından yazılı olarak açıkça kabul edilmedikçe, burada açıklanan herhangi bir bilgi, ürün veya hizmetin uygulanmasından veya kullanılmasından kaynaklanan hiçbir sorumluluk veya yükümlülük kabul etmez. Intel müşterilerine, yayınlanan herhangi bir bilgiye güvenmeden ve ürün ya da hizmet siparişi vermeden önce cihaz özelliklerinin en son sürümünü edinmeleri önerilir.
*Diğer isimler ve markalar başkalarının mülkiyetinde olabilir.

1.1.1 Cyclone V SoC Geliştirme Kiti Referans Platform Kartı Varyantları
OpenCL Cyclone V SoC Geliştirme Kiti Referans Platformu için Intel FPGA SDK, iki kart çeşidi içerir.

  • c5soc kurulu
    Bu varsayılan kart, iki DDR bellek bankasına erişim sağlar. HPS DDR'ye hem FPGA hem de CPU tarafından erişilebilir. FPGA DDR'ye yalnızca FPGA tarafından erişilebilir.
  • c5soc_shareonly yönetim kurulu
    Bu kart varyantı yalnızca HPS DDR bağlantısı içerir. FPGA DDR'ye erişilemiyor. Bu kart varyantı, bir DDR bellek bankasını desteklemek için daha az donanım gerektiğinden alan açısından daha verimlidir. c5soc_sharedonly kartı aynı zamanda tek bir DDR bellek bankasına sahip son bir üretim kartı için iyi bir prototip oluşturma platformudur.
    OpenCL çekirdeğinizi derlerken bu kart varyantını hedeflemek için aoc komutunuza -board c5soc_sharedonly seçeneğini ekleyin.
    -board hakkında daha fazla bilgi için aoc komutunun seçeneği için OpenCL Programlama Kılavuzu için Intel FPGA SDK'ye bakın.

İlgili Bağlantılar
Belirli bir FPGA Kartı için Çekirdek Derleme (–board )
1.1.2 Cyclone V SoC Geliştirme Kiti Referans Platformunun İçeriği
Cyclone V SoC Geliştirme Kiti Referans Platformu aşağıdakilerden oluşur: files ve dizinler:

File veya Dizin Tanım
board_env.xml Genişletilebilir İşaretleme Dili (XML) file bu, c5soc'u OpenCL için Intel FPGA SDK'ya açıklar.
linux_sd_card_image.tgz Sıkıştırılmış SD flash kart görüntüsü file bir SDK kullanıcısının Cyclone V SoC Geliştirme Kitini SDK ile kullanmak için ihtiyaç duyduğu her şeyi içerir.
kol32 Aşağıdakileri içeren dizin:

1.1.3 Cyclone V SoC Geliştirme Kitinin İlgili Özellikleri

Aşağıdaki liste, OpenCL için Intel FPGA SDK ile ilgili Cyclone V SoC Development Kit bileşenlerini ve özelliklerini vurgulamaktadır:

  • 9 bit Linux çalıştıran çift çekirdekli ARM Cortex-A32 CPU.
  • HPS ve FPGA çekirdek yapısı arasındaki Gelişmiş Genişletilebilir Arabirim (AXI) veri yolu.
  • Her biri 1 gigabayt (GB) DDR3 SDRAM'e bağlanan iki güçlendirilmiş DDR bellek denetleyicisi.
    — Bir DDR denetleyicisine yalnızca FPGA çekirdeği (yani FPGA DDR) tarafından erişilebilir.
    — Diğer DDR denetleyicisine hem HPS hem de FPGA (yani, HPS DDR) tarafından erişilebilir. Bu paylaşılan denetleyici, CPU ve FPGA çekirdeği arasında boş bellek paylaşımına izin verir.
  • CPU, FPGA çekirdek yapısını yeniden yapılandırabilir.

1.1.3.1 Cyclone V SoC Geliştirme Kiti Referans Platformu Tasarım Hedefleri ve Kararları Intel, Cyclone V SoC Geliştirme Kiti Referans Platformunun uygulanmasını birkaç tasarım hedefi ve kararına dayandırır. Intel, bu Referans Platformunu SoC FPGA kartınıza taşırken bu hedefleri ve kararları göz önünde bulundurmanızı önerir.
Aşağıda c5soc tasarım hedefleri verilmiştir:

  1. FPGA ve DDR bellek sistem(ler)i üzerindeki çekirdekler arasında mümkün olan en yüksek bant genişliğini sağlayın.
  2. FPGA (yani, OpenCL çekirdekleri) üzerindeki hesaplamaların, çevre birimlerine hizmet vermeyi içerebilecek diğer CPU görevlerini engellemediğinden emin olun.
  3. Arayüz bileşenleri yerine çekirdek hesaplamaları için mümkün olduğunca fazla FPGA kaynağı bırakın.

Aşağıda, Intel'in tasarım hedeflerinin doğrudan sonuçları olan üst düzey tasarım kararları verilmiştir:

  1. Referans Platformu, yalnızca mümkün olan en geniş konfigürasyona (256 bit) sahip sabit DDR bellek denetleyicilerini kullanır.
  2. FPGA, HPS içindeki AXI veri yolu ve L3 anahtarını kullanmadan doğrudan HPS DDR bellek denetleyicisi ile iletişim kurar. Doğrudan iletişim, DDR'ye mümkün olan en iyi bant genişliğini sağlar ve FPGA hesaplamalarının CPU ile çevresi arasındaki iletişimlere müdahale etmesini önler.
  3. Dağınık topla doğrudan bellek erişimi (SG-DMA), FPGA arayüz mantığının bir parçası değildir. DDR bellek sistemleri arasında büyük miktarda veri aktarmak yerine, verileri paylaşılan HPS DDR'de depolayın. FPGA tarafından CPU belleğine doğrudan erişim, DMA'dan daha verimlidir. Donanım kaynaklarını (yani FPGA alanını) kaydeder ve Linux çekirdek sürücüsünü basitleştirir.
    Uyarı: Paylaşılan HPS DDR sistemi ile yalnızca FPGA tarafından erişilebilen DDR sistemi arasındaki bellek aktarımı çok yavaştır. eğer seçersen
    belleği bu şekilde aktarın, yalnızca çok küçük miktarlardaki veriler için kullanın.
  4. Ana bilgisayar ve aygıt, yalnızca tek bir 2 bit bağlantı noktası kullanarak HPS-FPGA (H32F) köprüsü aracılığıyla birbirleri arasında DMA olmayan veri aktarımı gerçekleştirir. Bunun nedeni, DMA olmadan Linux çekirdeğinin yalnızca tek bir 32 bitlik okuma veya yazma isteği gönderebilmesidir, bu nedenle daha geniş bir bağlantıya sahip olmak gereksizdir.
  5. Ana bilgisayar, kontrol sinyallerini hafif bir H2F (LH2F) köprüsü aracılığıyla cihaza gönderir.
    Ana bilgisayardan cihaza giden kontrol sinyalleri düşük bant genişliğine sahip sinyaller olduğundan, bu görev için bir LH2F köprüsü idealdir.

1.2 Referans Platformunu SoC FPGA Kartınıza Taşıma
Cyclone V SoC Geliştirme Kiti Referans Platformunu SoC FPGA kartınıza bağlamak için aşağıdaki görevleri gerçekleştirin:

  1. Tasarımınızın başlangıç ​​noktası olarak c5soc Referans Platformunun bir DDR bellek veya iki DDR bellek sürümünü seçin.
  2. ALTERAOCLSDKROOT/board/c5soc/ içindeki pin konumlarını güncelleyin /top.qsf file, burada ALTERAOCLSDKROOT, OpenCL kurulumu için Intel FPGA SDK'nın konumuna giden yoldur ve pano varyantının dizin adıdır. c5soc_sharedonly dizini, bir DDR bellek sistemine sahip kart varyantı içindir. c5soc dizini, iki DDR bellek sistemine sahip kart varyantı içindir.
  3.  ALTERAOCLSDKROOT/board/c5soc/ içindeki HPS ve/veya FPGA SDRAM blokları için DDR ayarlarını güncelleyin /sistem.qsys file.
    4. OpenCL için tercih edilen kart tasarımları için tüm Intel FPGA SDK, garantili zamanlama kapanışına sahip olmalıdır. Bu nedenle, tasarımın yerleşimi zamanlama açısından temiz olmalıdır. c5soc kart bölümünü (acl_iface_partition.qxp) SoC FPGA kartınıza bağlamak için aşağıdaki görevleri gerçekleştirin:
    Pano bölmesini değiştirme ve korumayla ilgili ayrıntılı talimatlar için Quartus'a bakın.
    Quartus Prime Standart Sürüm El Kitabı'nın Hiyerarşik ve Ekip Tabanlı Tasarım bölümü için Prime Artımlı Derleme.
    A. acl_iface_partition.qxp dosyasını ALTERAOCLSDKROOT/board/c5soc/c5soc dizininden kaldırın.
    B. acl_iface_region LogicLock™ bölgesini etkinleştirmek için set_global_ataması -adı LL_ENABLED KAPALI -section_id acl_iface_region Tcl komutunu set_global_ataması -adı LL_ENABLED ON -section_id acl_iface_region olarak değiştirerek
    C. Anakartınız için bir OpenCL çekirdeği derleyin.
    D. Gerekirse LogicLock bölgesinin boyutunu ve konumunu ayarlayın.
    e. Tasarımınızın yerleşiminin zamanlama açısından temiz olduğundan emin olduğunuzda, bu bölümü acl_iface_partition.qxp Quartus Prime Dışa Aktarılan Bölüm olarak dışa aktarın File.
    AIntel FPGA SDK for OpenCL Özel Platform Araç Seti Kullanıcı Kılavuzu'nun Garantili Zamanlama Akışı Oluşturma bölümünde açıklandığı gibi, bu .qxp dosyasını içe aktararak  file üst düzey tasarıma geçerek, garantili bir zamanlama kapatma akışına sahip bir pano tasarımı sağlama gereksinimini karşılarsınız.
    Dışa aktarılan bölümünüzün sonuçlarının kalitesini (QoR) etkileyebilecek faktörler için, OpenCL için Intel FPGA SDK Özel Platform Araç Seti Kullanıcı Kılavuzu'ndaki Dışa Aktarılan Pano Bölümü için Sonuçların Genel Kalitesi Hususları bölümüne bakın.
    F. Adım 2'deki komutu set_global_assignment -name LL_ENABLED OFF section_id acl_iface_region'a döndürerek acl_iface_region LogicLock bölgesini devre dışı bırakın.
  4. SoC FPGA kartınız HPS bloğunun farklı pimlerini ve çevre birimlerini kullanıyorsa ön yükleyiciyi ve aygıt ağacı kaynağını (DTS) yeniden oluşturun file. HPS DDR bellek denetleyicisi ayarlarını değiştirirseniz ön yükleyiciyi yeniden oluşturun.
  5. SD flash kart görüntüsünü oluşturun.
  6. SD flash kart görüntüsünü içeren Özel Platformunuzu oluşturun.
  7. OpenCL için Intel FPGA Runtime Environment (RTE) ile kullanmak üzere Özel Platformunuzun bir çalışma zamanı ortamı sürümünü oluşturmayı düşünün. Özel Platformunuzun RTE sürümü, donanım dizinlerini ve SD flash kart görüntüsünü içermez. Bu Özel Platform, ana bilgisayar uygulamalarının çalışmasına izin vermek için SoC FPGA sistemine yüklenir. Bunun aksine, Özel Platformun SDK sürümü, SDK'nın OpenCL çekirdeklerini derlemesi için gereklidir.
    İpucu: RTE için Özel Platformunuzun SDK sürümünü kullanabilirsiniz. Kaydetmek
    alanında, SD flash kart görüntüsünü Özel Platformunuzun RTE sürümünden kaldırın.
  8. Özel Platformunuzu test edin.
    Daha fazla bilgi için Intel FPGA SDK for OpenCL Özel Platform Araç Seti Kullanıcı Kılavuzu'nun Donanım Tasarımını Test Etme bölümüne bakın.

İlgili Bağlantılar

  • Donanım Tasarımını Test Etme
  • Hiyerarşik ve Ekip Tabanlı Tasarım için Quartus Prime Artımlı Derleme
  • Garantili Zamanlama Akışı Oluşturma
  • Dışa Aktarılan Pano Bölmesi İçin Sonuçların Genel Kalitesi Hususları

1.2.1 Ported Referans Platformunu Güncelleme
Cyclone V SoC Geliştirme Kiti Referans Platformunun geçerli sürümünde, HPS bloğu tüm çekirdek dışı mantığı tanımlayan bölümün içindedir. Ancak, HPS'yi .qxp'nin bir parçası olarak dışa aktaramazsınız. file. Önceki bir c5soc sürümünden değiştirdiğiniz mevcut bir Özel Platformu güncellemek için QXP koruma akışını uygulayın, en son çalışma zamanı ortamını elde etmek için SD flash kart görüntüsünü güncelleyin ve board_spec.xml dosyasını güncelleyin file otomatik geçişi etkinleştirmek için.
OpenCL sürüm 14.1 ve sonrası için Altera® SDK, board_spec.xml file yönetim kurulu bilgileri için ve otomatik güncellemeleri uygular. değiştirdiğiniz için
QXP koruma akışını uygulayarak tasarlayın, board_spec.xml dosyasını güncellemelisiniz file geçerli sürümdeki biçimine. güncelleme file SDK'nın korunmayan Özel Platformlar ile mevcut QXP tabanlı Özel Platformlar arasında ayrım yapmasına olanak tanır. Daha fazla bilgi için Intel FPGA SDK for OpenCL Özel Platform Araç Seti Kullanıcı Kılavuzundaki İleri Uyumluluk için Özel Platform Otomasyonuna bakın.

  1. Önceki bir c5soc sürümünden taşınan bir Cyclone V SoC FPGA donanım tasarımında QXP koruma akışını uygulamak için, HPS'yi .qxp'den hariç tutmak üzere bir alt bölüm oluşturmak üzere aşağıdaki adımları gerçekleştirin file:
    A. Çekirdek olmayan mantık çevresinde bir bölüm oluşturmadan önce, .qsf Quartus Prime Ayarlarında HPS çevresinde bir bölüm oluşturun File.
    Örneğinamptarih:
    # HPS'ye özel G/Ç set_instance_ataması -adı PARTITION_HIERARCHY borde_18261 - modelleyen örneği manuel olarak "system:the_system|system_acl_iface:acl_iface|system_acl_iface_hps_0:hps_0|system_acl_iface_hps_0_hps_io:hps_io| system_acl_iface_hps_0_hps_io_border:border" -section_id "system_acl_iface_hps_0_hps_io_border:border"
    # Bölümü, Quartus'un geri kalanı tarafından doğru şekilde işlenmesi için bir HPS_PARTITION türü olacak şekilde ayarlayın
    set_global_assignment -ad PARTITION_TYPE HPS_PARTITION -section_id "system_acl_iface_hps_0_hps_io_border:border"
    quartus_cdb üst -c üst
    –incremental_compilation_export=acl_iface_partition.qxp
    –incremental_compilation_export_partition_name=acl_iface_partition
    –incremental_compilation_export_post_synth=açık
    –incremental_compilation_export_post_fit=açık
    –incremental_compilation_export_routing=açık
    –incremental_compilation_export_flatten=kapalı
    HPS'yi bölümden çıkardıktan sonra, .qxp dosyasını içe aktarabilirsiniz. file ve tasarımınızı derleyin.
  2. Aşağıdaki görevleri gerçekleştirerek SD flash kart görüntüsünü OpenCL için Intel FPGA RTE'nin güncel sürümüyle güncelleyin:
    A. Monte et file tahsis tablosu (fat32) ve genişletilmiş file mevcut görüntüdeki sistem (ext3) bölümleri geri döngü aygıtları olarak. Ayrıntılı talimatlar için SD Flash Kart Görüntüsü Oluşturma bölümündeki 2. Adıma bakın.
    B. /home/root/opencl_arm32_rte dizininde şunu kaldırın: fileRTE'nin önceki sürümünden.
    C. RTE'nin geçerli sürümünü indirin ve /home/root/opencl_arm32_rte dizinine açın.
    D. İçinde /sürücü/versiyon.h file Özel Platformunuzun ACL_DRIVER_VERSION atamasını şu şekilde güncelleyin: . (eski içinample, 16.1.x, burada 16.1, SDK sürümüdür ve x, ayarladığınız sürücü sürümüdür).
    e. Sürücüyü yeniden oluşturun.
    F. Özel Platformunuzun donanım klasörlerini silin. Özel Platformu güncellenmiş sürücüyle birlikte /home/root/opencl_arm_rte/board dizinine kopyalayın.
    G. Altera.icd dosyasını kopyalayın file /home/root/opencl_arm32_rte dizininden /etc/OpenCL/vendors dizinine ekleyin.
    H. Yeni görüntünün bağlantısını kesin ve test edin. Ayrıntılı talimatlar için SD Flash Kart Görüntüsü Oluşturma bölümündeki Adım 8 ila 11'e bakın.

İlgili Bağlantılar

  • SD Flash Kart Görüntüsü Oluşturma sayfa 14
    Ayrıca yeni bir SD flash kart görüntüsü oluşturma seçeneğiniz de vardır.
  • İleri Uyumluluk için Özel Platform Otomasyonu

1.3 Paylaşılan Bellek için Yazılım Desteği
FPGA ve CPU arasındaki paylaşılan fiziksel bellek, SoC FPGA'larda çalışan OpenCL çekirdekleri için tercih edilen bellektir. FPGA, paylaşılan sanal belleğin aksine paylaşılan fiziksel belleğe eriştiği için, kullanıcı sanal adreslerini fiziksel sayfa adresleriyle eşleyen CPU'nun sayfa tablolarına erişimi yoktur.
Donanımla ilgili olarak, OpenCL çekirdekleri, HPS DDR sabit bellek denetleyicisine doğrudan bağlantı aracılığıyla paylaşılan fiziksel belleğe erişir. Yazılımla ilgili olarak, paylaşılan fiziksel bellek desteği aşağıdaki hususları içerir:

  1. CPU üzerinde bellek tahsis etmek için tipik yazılım uygulamaları (örn.ample, malloc() işlevi), FPGA'nın kullanabileceği bir bellek bölgesi tahsis edemez.
    malloc() işlevinin ayırdığı bellek, sanal bellek adres alanında bitişiktir, ancak herhangi bir temel fiziksel sayfanın fiziksel olarak bitişik olması olası değildir. Bu nedenle, ana bilgisayarın fiziksel olarak bitişik bellek bölgelerini tahsis edebilmesi gerekir. Ancak, bu yetenek Linux'taki kullanıcı alanı uygulamalarında mevcut değildir. Bu nedenle, Linux çekirdek sürücüsü ayırma işlemini gerçekleştirmelidir.
  2. OpenCL SoC FPGA Linux çekirdek sürücüsü, paylaşılan fiziksel belleği tahsis etmek ve kullanıcı alanına eşlemek için mmap() işlevini içerir. mmap() işlevi, bir aygıtla paylaşım için fiziksel olarak bitişik bellek bölgeleri talep etmek için standart Linux çekirdek çağrısı dma_alloc_coherent()'i kullanır.
  3. Varsayılan Linux çekirdeğinde, dma_alloc_coherent() boyutu 0.5 megabayttan (MB) fazla fiziksel olarak bitişik bellek ayırmaz. dma_alloc_coherent() işlevinin büyük miktarlarda fiziksel olarak bitişik bellek ayırmasına izin vermek için, Linux çekirdeğinin bitişik bellek ayırıcı (CMA) özelliğini etkinleştirin ve ardından Linux çekirdeğini yeniden derleyin.
    Cyclone V SoC Geliştirme Kiti Referans Platformu için CMA, 512 GB fiziksel belleğin 1 MB'ını yönetir. Uygulamanın gerektirdiği paylaşılan bellek miktarına bağlı olarak bu değeri artırabilir veya azaltabilirsiniz. dma_alloc_coherent() çağrısı, 512 MB'lık fiziksel bitişik belleğin tamamını ayıramayabilir; ancak, rutin olarak yaklaşık 450 MB bellek alabilir.
  4. CPU, dma_alloc_coherent() çağrısının ayırdığı belleği önbelleğe alabilir. Özellikle, ana bilgisayar uygulamasından yapılan yazma işlemleri OpenCL çekirdekleri tarafından görülmez. OpenCL SoC FPGA Linux çekirdek sürücüsündeki mmap() işlevi ayrıca, belleğin bu bölgesi için önbelleğe almayı açıkça devre dışı bırakmak için pgprot_noncached() veya remap_pf_range() işlevine yapılan çağrıları da içerir.
  5. dma_alloc_coherent() işlevi fiziksel olarak bitişik belleği ayırdıktan sonra, mmap() işlevi sanal adresi, ayırdığınız belleğin adres aralığı olan aralığın başına döndürür. Ana bilgisayar uygulaması, belleğe erişmek için bu sanal adresi gerektirir. Öte yandan, OpenCL çekirdekleri fiziksel adresler gerektirir. Linux çekirdek sürücüsü, sanaldan fiziksele adres eşlemesini takip eder. Sürücüye bir sorgu ekleyerek, mmap() işlevinin döndürdüğü fiziksel adresleri gerçek fiziksel adreslerle eşleyebilirsiniz.
    aocl_mmd_shared_mem_alloc() MMD uygulama programlama arabirimi (API) çağrısı aşağıdaki sorguları içerir:
    A. Belleği ayıran ve sanal adresi döndüren mmap() işlevi.
    B. Döndürülen sanal adresi fiziksel adrese eşleyen ekstra sorgu.
    aocl_mmd_shared_mem_alloc() MMD API çağrısı daha sonra iki adres döndürür
    — döndürülen gerçek adres sanal adrestir ve fiziksel adres device_ptr_out'a gider.
    Not: Sürücü, yalnızca mmap() işlevinin fiziksel adreslere döndürdüğü sanal adresleri eşleyebilir. Başka herhangi bir sanal işaretçinin fiziksel adresini talep ederseniz, sürücü bir NULL değeri döndürür.

Uyarı: OpenCL çalışma zamanı kitaplıkları için Intel FPGA SDK, paylaşılan belleğin board_spec.xml dosyasında listelenen ilk bellek olduğunu varsayar. file. Başka bir deyişle, Linux çekirdek sürücüsünün aldığı fiziksel adres, OpenCL çekirdeğinin HPS SDRAM'e ilettiği Avalon® adresi olur.
Çalışma zamanı kitaplığıyla ilgili olarak, paylaşılan belleği aşağıdaki şekilde bir aygıt arabelleği olarak ayırmak için clCreateBuffer() çağrısını kullanın:

  • CL_MEM_USE_HOST_PTR bayrağını belirtirseniz, hem paylaşılan hem de paylaşılmayan belleğe sahip iki DDR kartı varyantı için clCreateBuffer(), paylaşılan belleği ayırır. Diğer bayrakların kullanılması, clCreateBuffer()'ın paylaşılmayan bellekte arabellek ayırmasına neden olur.
  • Yalnızca paylaşımlı belleğe sahip tek DDR kartı varyantı için clCreateBuffer(), belirttiğiniz işaretten bağımsız olarak paylaşılan belleği ayırır.
    Şu anda, ARM CPU'daki 32 bit Linux desteği, SDK çalışma zamanı kitaplıklarındaki paylaşılan bellek desteğinin kapsamını yönetmektedir. Başka bir deyişle, diğer ortamlara derlenen çalışma zamanı kitaplıkları (örn.ample, x86_64 Linux veya 64-bit Windows) paylaşılan belleği desteklemez.
    C5soc, aşağıdaki nedenlerle paylaşılan ve paylaşılmayan bellek arasında ayrım yapmak için heterojen bellek uygulamadı:
    1. Geçmiş—Paylaşılan bellek desteği ilk oluşturulduğunda heterojen bellek desteği mevcut değildi.
    2. Tek tip arabirim—OpenCL açık bir standart olduğundan Intel, heterojen bilgi işlem platformu satıcıları arasında tutarlılığı korur. Bu nedenle, paylaşılan belleği tahsis etmek ve kullanmak için diğer kart satıcılarının mimarileriyle aynı arabirim kullanılır.

1.4 FPGA Yeniden Yapılandırması
SoC FPGA'lar için CPU, CPU'nun çalışmasını kesintiye uğratmadan FPGA çekirdek yapısını yeniden yapılandırabilir. HPS ve çekirdek FPGA'yı birleştiren FPGA Yöneticisi donanım bloğu, yeniden yapılandırmayı gerçekleştirir. Linux çekirdeği, FPGA Yöneticisine kolay erişim sağlayan bir sürücü içerir.

  • İle view FPGA çekirdeğinin durumu için cat /sys/class/fpga/fpga0/ status komutunu çağırın.
    Cyclone V SoC Geliştirme Kiti Referans Platformu ile sağlanan OpenCL program yardımcı programı için Intel FPGA SDK, FPGA'yı programlamak için bu arabirimi kullanır. Çalışan bir CPU ile bir FPGA çekirdeğini yeniden programlarken, program yardımcı programı aşağıdaki görevlerin tümünü gerçekleştirir:
    1. Yeniden programlamadan önce, FPGA ile HPS arasındaki tüm iletişim köprülerini, hem H2F hem de LH2F köprülerini devre dışı bırakın.
    Yeniden programlama tamamlandıktan sonra bu köprüleri yeniden etkinleştirin.
    Dikkat: OpenCL sistemi, FPGA-HPS (F2H) köprüsünü kullanmaz. Daha fazla bilgi için Cyclone V Device Handbook, Cilt 3: Sabit İşlemci Sistemi Teknik Referans Kılavuzu'ndaki HPS-FPGA Arabirimleri bölümüne bakın.
    2. Yeniden programlama sırasında FPGA ile HPS DDR denetleyicisi arasındaki bağlantının devre dışı bırakıldığından emin olun.
    3. Yeniden programlama sırasında FPGA üzerindeki FPGA kesintilerinin devre dışı bırakıldığından emin olun.
    Ayrıca, sürücüye yeniden programlama sırasında FPGA'dan gelen herhangi bir kesintiyi reddetmesini bildirin.

Gerçek uygulamayla ilgili ayrıntılar için program yardımcı programının kaynak koduna bakın.

Uyarı: CPU çalışırken HPS DDR denetleyicisinin yapılandırmasını değiştirmeyin.
Bunu yapmak, CPU'dan bekleyen bellek işlemleri olduğunda DDR denetleyici yapılandırmasını değiştirebileceğiniz için önemli bir sistem hatasına neden olabilir. Bu, CPU çalışırken, FPGA çekirdeğini farklı bir yapılandırmada HPS DDR kullanan bir görüntüyle yeniden programlayamayacağınız anlamına gelir.
OpenCL sisteminin ve Intel SoC FPGA Gömülü Tasarım Paketi (EDS) ile sağlanan Altın Donanım referans tasarımının, HPS DDR'yi tek bir 256 bit moda ayarladığını unutmayın.
Şube tahmini veya sayfa tablosu önceden getirici gibi CPU sistem parçaları, CPU üzerinde hiçbir şey çalışmıyor gibi görünse bile DDR komutları verebilir.
Bu nedenle, önyükleme zamanı, HPS DDR denetleyici yapılandırmasını ayarlamak için tek güvenli zamandır.
Bu aynı zamanda U-boot'un ham bir ikili dosyaya sahip olması gerektiği anlamına gelir. file (.rbf) belleğe yüklenecek görüntü. Aksi takdirde, HPS DDR'yi FPGA'da kullanılmayan bağlantı noktalarıyla etkinleştiriyor ve ardından potansiyel olarak bağlantı noktası yapılandırmalarını değiştiriyor olabilirsiniz. Bu nedenle, OpenCL Linux çekirdek sürücüsü artık HPS DDR denetleyici yapılandırmasını ayarlamak için gerekli mantığı içermez.
Cylone V SoC Geliştirme Kitindeki SW3 çift sıralı paket (DIP) anahtarları, .rbf görüntüsünün beklenen biçimini kontrol eder (yani, file sıkıştırılmış ve/veya şifrelenmiş). C5soc ve SoC EDS ile sağlanan Altın Donanım Referans Tasarımı, sıkıştırılmış ancak şifrelenmemiş .rbf görüntüleri içerir. OpenCL Cyclone V SoC Başlangıç ​​Kılavuzu için Intel FPGA SDK'da açıklanan SW3 DIP anahtarı ayarları, bu .rbf görüntü yapılandırmasıyla eşleşir.

İlgili Bağlantılar

  • HPS-FPGA Arayüzleri
  • SW3 Anahtarlarını Yapılandırma

1.4.1 FPGA Sistem Mimarisi Ayrıntıları
Cyclone V SoC Geliştirme Kiti Referans Platformu desteği, OpenCL için Intel FPGA SDK ile sağlanan Stratix® V Referans Platformunu (s5_ref) temel alır.
c5soc Qsys sisteminin ve çekirdek sürücüsünün genel organizasyonu s5_ref'dekilere çok benzer.
Aşağıdaki FPGA çekirdek bileşenleri, hem c5soc hem de s5_ref'te aynıdır:

  • VERSION_ID bloğu
  • dinlenme mekanizması
  • Bellek bankası bölücü
  • Önbellek gözetleme arayüzü
  • çekirdek saati
  • Denetim kaydı erişimi (CRA) blokları

1.5 Bir SD Flash Kart Görüntüsü Oluşturma
Cyclone V SoC FPGA, bir çip üzerinde tam bir sistem olduğundan, sistemin tam tanımını sağlamaktan siz sorumlusunuz. Intel, bir SD flash kart görüntüsü biçiminde teslim etmenizi önerir. OpenCL kullanıcısı için Intel FPGA SDK, görüntüyü mikro SD flash karta kolayca yazabilir ve SoC FPGA kartı kullanıma hazırdır.
Mevcut Bir SD Flash Kart Görüntüsünü Değiştirme sayfa 13
Intel, Cyclone V SoC Geliştirme Kiti Referans Platformu ile sağlanan görüntüyü değiştirmenizi önerir. Ayrıca yeni bir SD flash kart görüntüsü oluşturma seçeneğiniz de vardır.
SD Flash Kart Görüntüsü Oluşturma sayfa 14
Ayrıca yeni bir SD flash kart görüntüsü oluşturma seçeneğiniz de vardır.

1.5.1 Mevcut Bir SD Flash Kart Görüntüsünü Değiştirme
Intel, Cyclone V SoC ile mevcut görüntüyü değiştirmenizi önerir.
Geliştirme Kiti Referans Platformu. Ayrıca yeni bir SD flash kart görüntüsü oluşturma seçeneğiniz de vardır.
c5soc linux_sd_card_image.tgz görüntüsü file ALTERAOCLSDKROOT/board/c5soc dizininde bulunur; burada ALTERAAOCLSDKROOT, OpenCL'nin kurulum dizini için Intel FPGA SDK yolunu gösterir.

Dikkat: SD flash kart görüntüsünü değiştirmek için root veya sudo ayrıcalıklarına sahip olmanız gerekir.

  1. $ALTERAOCLSDKROOT/board/c5soc/linux_sd_card_image.tgz dosyasını açmak için file, tar xvfzlinux_sd_card_image.tgz komutunu çalıştırın.
  2. Hello_world OpenCL eski sürümünü derleyinampÖzel Platform desteğinizi kullanarak dosya tasarımı. .rbf'yi yeniden adlandırın file OpenCL Çevrimdışı Derleyici için Intel FPGA SDK'nın opencl.rbf olarak oluşturduğunu ve SD flash kart görüntüsü içindeki fat32 bölümüne yerleştirdiğini.
    Hello_world ex'i indirebilirsiniz.ampOpenCL Design Ex'den dosya tasarımıampAltera'daki dosya sayfası webalan.
  3. .rbf'yi yerleştirin file flash kart görüntüsünün fat32 bölümüne.
    Dikkat: fat32 bölümü hem zImage'ı içermelidir file ve .rbf file. .rbf olmadan file, sürücüyü eklediğinizde önemli bir hata oluşacaktır.
  4. SD kart görüntüsünü oluşturduktan sonra, aşağıdaki komutu çağırarak mikro SD karta yazın: sudo dd if=/path/to/sdcard/image.bin of=/dev/sdcard
  5. SD flash kart görüntünüzü test etmek için aşağıdaki görevleri gerçekleştirin:
    A. Mikro SD flash kartı SoC FPGA kartına takın.
    B. Tahtayı çalıştırın.
    C. aocl tanı yardımcı programı komutunu çağırın.

1.5.2 SD Flash Kart Görüntüsü Oluşturma
Ayrıca yeni bir SD flash kart görüntüsü oluşturma seçeneğiniz de vardır. RocketBoards.org'un GSRD v14.0.2 – SD Kart sayfasında yeni bir SD flash kart görüntüsü oluşturmaya ve mevcut bir SD flash kart görüntüsünü yeniden oluşturmaya ilişkin genel talimatlar mevcuttur. webalan.
Aşağıdaki adımlar, Altın Sistem Referans Tasarımı (GSRD) SD flash kart görüntüsünden linux_sd_card_image.tgz görüntüsünü oluşturma prosedürünü açıklamaktadır:
Not:
Görüntüyü c5soc görüntüsünden oluşturmak için bu prosedürde ana hatları verilen tüm uygulanabilir görevleri gerçekleştirin.

  1. Rocketboards.org'dan GSRD SD flash kart görüntüsü sürüm 14.0'ı indirin ve paketinden çıkarın.
  2. Binmek file tahsis tablosu (fat32) ve genişletilmiş file bu görüntüdeki sistem (ext3) bölümleri geri döngü aygıtları olarak. Bir bölümü bağlamak için aşağıdaki adımları gerçekleştirin:
    A. /sbin/fdisk -lu image_ komutunu çağırarak görüntü içindeki bölümün bayt başlangıcını belirleyinfile emretmek.
    Örneğinample, W1 FAT türündeki 95 numaralı bölümün blok ofseti 2121728'dir. Blok başına 512 bayt ile bayt ofseti 512 bayt x 2121728 = 1086324736 bayttır.
    B. Serbest bir döngü cihazı tanımlayın (örn.ample, /dev/loop0) lostup -f komutunu yazarak.
    C. /dev/loop0'ın ücretsiz döngü aygıtı olduğunu varsayarak, lostup /dev/loop0 image_'ı çağırarak flash kart görüntünüzü döngü blok aygıtına atayınfile -0 1086324736 komutu.
    D. mount /dev/loop0 /media/disk1 komutunu çağırarak döngü aygıtını bağlayın.
    resim içinde file, /media/disk1 artık monte edilmiş bir fat32 bölümüdür.
    e. ext3 bölümü için a'dan d'ye kadar olan adımları tekrarlayın.
  3. OpenCL için Intel FPGA Runtime Environment paketinin Cyclone V SoC FPGA sürümünü Altera'daki İndirme Merkezi'nden indirin webalan.
    A. Quartus Prime yazılım sürümünün yanındaki İndir düğmesine tıklayın.
    B. Yayın sürümünü, işletim sistemini ve indirme yöntemini belirtin.
    C. Ek Yazılım sekmesine tıklayın ve Intel FPGA'yı indirmeyi seçin
    OpenCL Linux Cyclone V SoC TGZ için Çalışma Zamanı Ortamı.
    D. aocl-rte- dosyasını indirdikten sonra .arm32.tgz file, paketini aç
    sahibi olduğunuz bir dizin.
  4. Paketlenmemiş aocl-rte- .arm32 dizinini görüntünün ext32 bölümündeki /home/root/opencl_arm3_rte dizinine atın file.
  5. Özel Platformunuzun donanım klasörlerini silin ve ardından Özel Platformu /home/root/opencl_arm32_rte pano alt dizinine yerleştirin.
  6. init_opencl.sh dosyasını oluşturun file /home/root dizininde aşağıdaki içeriğe sahip: export ALTERAOCLSDKROOT=/home/root/opencl_arm32_rte export AOCL_BOARD_PACKAGE_ROOT=$ALTERAOCLSDKROOT/board/ export PATH=$ALTERAOCLSDKROOT/bin:$PATH export LD_LIBRARY_PATH=$ALTERAOCLSDKROOT/host/arm32/lib:$LD_LIBRARY_PATH insmod $AOCL_BOARD_PACKAGE_ROOT/driver/aclsoc_drv.ko
    SDK kullanıcısı, ortam değişkenlerini ve OpenCL Linux çekirdek sürücüsünü yüklemek için source ./init_opencl.sh komutunu çalıştırır.
  7. Ön yükleyiciyi güncellemeniz gerekirse, DTS files veya Linux çekirdeği için, SoC EDS'den arm-linux-gnueabihf-gcc derleyicisine ihtiyacınız var. Yazılımı edinmek, yeniden derlemek ve ilgili yazılımı güncellemek için Intel SoC FPGA Embedded Design Suite Kullanım Kılavuzunda belirtilen talimatları izleyin. filemonte edilmiş fat32 bölümünde.
    Dikkat: Özel Platformunuz c5soc'takinden farklı pin kullanımlarına sahipse büyük olasılıkla ön yükleyiciyi güncellemeniz gerekir.
    Unutmayın: Linux çekirdeğini yeniden derlerseniz, Linux çekirdeği sürücüsünü aynı Linux çekirdeği kaynağıyla yeniden derleyin fileS. Linux çekirdek sürücüsü ile Linux çekirdeği arasında uyumsuzluk varsa, sürücü yüklenmeyecektir. Ayrıca, CMA'yı etkinleştirmeniz gerekir.
    Daha fazla bilgi için Linux Çekirdeğini Yeniden Derleme bölümüne bakın.
  8. Hello_world OpenCL eski sürümünü derleyinampÖzel Platform desteğinizi kullanarak dosya tasarımı. .rbf'yi yeniden adlandırın file OpenCL Çevrimdışı Derleyici için Intel FPGA SDK'nın opencl.rbf olarak oluşturduğunu ve SD flash kart görüntüsü içindeki fat32 bölümüne yerleştirdiğini.
    Hello_world ex'i indirebilirsiniz.ampOpenCL Design Ex'den dosya tasarımıampAltera'daki dosya sayfası webalan.
    9. Gerekli tüm bilgileri sakladıktan sonra fileflash kart görüntüsünün üzerine, aşağıdaki komutları çağırın:
    A. senkronizasyon
    B. /media/disk1 bağlantısını kes
    C. bağlantıyı kes Neresi ext3 bölümünü sayfa 3'teki 3'ye bağlamak için kullandığınız dizin adıdır (örn.ample, /medya/disk2).
    D. Lostup -d /dev/loop0
    e. Lostup -d /dev/döngü1
  9. Aşağıdaki komutu çağırarak SD flash kart görüntüsünü sıkıştırın: tar cvfz .tgz linux_sd_card_image
  10. teslim et .tgz file Özel Platformunuzun kök dizini içinde.
  11. SD flash kart görüntünüzü test etmek için aşağıdaki görevleri gerçekleştirin:
    A. Ortaya çıkan sıkıştırılmamış görüntüyü bir mikro SD flash karta yazın.
    B. Mikro SD flash kartı SoC FPGA kartına takın.
    C. Tahtayı çalıştırın.
    D. aocl tanı yardımcı programı komutunu çağırın.

İlgili Bağlantılar

  • Intel SoC FPGA Gömülü Tasarım Paketi Kullanım Kılavuzu
  • OpenCL Tasarım ÖrneğiampAltera'daki dosya sayfası webalan
  • Linux Çekirdeğini Yeniden Derleme sayfa 16
    CMA'yı etkinleştirmek için önce Linux çekirdeğini yeniden derlemeniz gerekir.
  • FPGA Kartınızın Cihaz Adını Sorgulama (teşhis)

1.6 Cyclone V SoC FPGA için Linux Çekirdeğini Derleme
OpenCL uygulamalarını Cyclone V SoC FPGA kartında çalıştırmadan önce, Linux çekirdek kaynağını derlemeli ve OpenCL Linux çekirdek sürücüsünü derleyip kurmalısınız.

  1. Linux Çekirdeğini Yeniden Derleme sayfa 16
    CMA'yı etkinleştirmek için önce Linux çekirdeğini yeniden derlemeniz gerekir.
  2. OpenCL Linux Çekirdek Sürücüsünü Derleme ve Kurma sayfa 17 OpenCL Linux çekirdek sürücüsünü derlenmiş çekirdek kaynağına karşı derleyin.

1.6.1 Linux Çekirdeğini Yeniden Derleme
CMA'yı etkinleştirmek için önce Linux çekirdeğini yeniden derlemeniz gerekir.

  1. RocketBoards.org'un Kaynaklar sayfasındaki GSRD v14.0 – Derleme Linux bağlantısına tıklayın webLinux çekirdeği kaynak kodunun indirilmesi ve yeniden oluşturulmasıyla ilgili talimatlara erişmek için site.
    OpenCL için™ Intel FPGA SDK ile kullanım için socfpga-3.13-rel14.0'ı belirtin .
  2. Not: Oluşturma işlemi, arch/arm/configs/socfpga_defconfig dosyasını oluşturur. file. Bu file socfpga varsayılan yapılandırması için ayarları belirtir.
    Arch/arm/configs/socfpga_defconfig dosyasının altına aşağıdaki satırları ekleyin file.
    CONFIG_MEMORY_ISOLATION=y
    CONFIG_CMA=y
    CONFIG_DMA_CMA=y
    CONFIG_CMA_DEBUG=y
    CONFIG_CMA_SIZE_MBYTES=512
    CONFIG_CMA_SIZE_SEL_MBYTES=y
    CONFIG_CMA_ALIGNMENT=8
    CONFIG_CMA_AREAS=7
    CONFIG_CMA_SIZE_MBYTES yapılandırma değeri, kullanılabilir fiziksel bitişik belleğin toplam sayısı üzerindeki üst sınırı belirler. Daha fazla belleğe ihtiyacınız varsa bu değeri artırabilirsiniz.
  3. Dikkat: SoC FPGA kartındaki ARM işlemcisinin kullanabileceği toplam fiziksel bellek miktarı 1 GB'dir. Intel, CMA yöneticisini 1 GB'a yakın bir değere ayarlamanızı önermez.
  4. Geçerli yapılandırmayı temizlemek için make mrproper komutunu çalıştırın.
  5. make ARCH=arm socfpga_deconfig komutunu çalıştırın.
    ARCH=arm, ARM mimarisini yapılandırmak istediğinizi belirtir.
    socfpga_defconfig, varsayılan socfpga yapılandırmasını kullanmak istediğinizi belirtir.
  6. export CROSS_COMPILE=arm-linux-gnueabihf- komutunu çalıştırın.
    Bu komut, istenen araç zincirinin önekini belirtmek için CROSS_COMPILE ortam değişkenini ayarlar.
  7. make ARCH=arm zImage komutunu çalıştırın. Ortaya çıkan görüntü, arch/arm/boot/zImage içinde bulunur file.
  8. zImage'ı yerleştirin file flash kart görüntüsünün fat32 bölümüne. Ayrıntılı talimatlar için Rocketboards.org adresindeki Cyclone V SoC FPGA'ya özgü GSRD Kullanım Kılavuzuna bakın.
  9. Not: OpenCL Linux çekirdek sürücüsünü doğru bir şekilde yerleştirmek için önce bir SDKgenerated.rbf yükleyin. file FPGA'ya aktarın.
    .rbf'yi oluşturmak için file, eski bir SDK tasarımı derleyinampHedeflenen Özel Platform olarak Cyclone V SoC Geliştirme Kiti Referans Platformu ile dosya.
    9. .rbf'yi yerleştirin file flash kart görüntüsünün fat32 bölümüne.
    Dikkat: fat32 bölümü hem zImage'ı içermelidir file ve .rbf file. .rbf olmadan file, sürücüyü eklediğinizde önemli bir hata oluşacaktır.
  10. Daha önce değiştirdiğiniz veya oluşturduğunuz SD kart görüntüsünü içeren programlanmış mikro SD kartı Cyclone V SoC Geliştirme Kitine takın ve ardından SoC FPGA kartını çalıştırın.
  11. Uname -r komutunu çalıştırarak kurulu Linux çekirdeğinin sürümünü doğrulayın.
  12. CMA'yı çekirdekte başarılı bir şekilde etkinleştirdiğinizi doğrulamak için, SoC FPGA kartı açıkken grep init_cma /proc/kallsyms komutunu çalıştırın.
    Çıkış boş değilse CMA etkinleştirilir.
  13. Yeniden derlenmiş Linux çekirdeğini SDK ile kullanmak için, Linux çekirdeği sürücüsünü derleyin ve kurun.

İlgili Bağlantılar

  • Altın Sistem Referans Tasarımı (GSRD) Kullanım Kılavuzları
  • Bir SD Flash Kart Görüntüsü Oluşturma sayfa 13
    Cyclone V SoC FPGA, bir çip üzerinde tam bir sistem olduğundan, sistemin tam tanımını sağlamaktan siz sorumlusunuz.

1.6.2 OpenCL Linux Çekirdek Sürücüsünün Derlenmesi ve Kurulması
OpenCL Linux çekirdek sürücüsünü derlenmiş çekirdek kaynağına karşı derleyin.

Sürücü kaynağı, OpenCL için Intel FPGA Runtime Environment'ın Cyclone V SoC FPGA sürümünde mevcuttur. Ayrıca, OpenCL tarafından oluşturulan .rbf için bir Intel FPGA SDK yüklediğinizden emin olun. file Linux çekirdek modülünün yanlış kurulumunu önlemek için FPGA'ya.

  1. OpenCL için Intel FPGA Runtime Environment paketinin Cyclone V SoC FPGA sürümünü Altera'daki İndirme Merkezi'nden indirin webalan.
    A. Quartus Prime yazılım sürümünün yanındaki İndir düğmesine tıklayın.
    B. Yayın sürümünü, işletim sistemini ve indirme yöntemini belirtin.
    C. Ek Yazılım sekmesine tıklayın ve Intel FPGA'yı indirmeyi seçin
    OpenCL Linux Cyclone V SoC TGZ için Çalışma Zamanı Ortamı.
    D. aocl-rte- dosyasını indirdikten sonra .arm32.tgz file, paketini aç
    sahibi olduğunuz bir dizin.
    Sürücü kaynağı aocl-rte- .arm32/board/c5soc/ sürücü dizini.
  2. OpenCL Linux çekirdek sürücüsünü yeniden derlemek için sürücünün Make (Make) bölümünde KDIR değerini ayarlayın.file Linux çekirdeği kaynağını içeren dizine files.
  3. Araç zincirinizin önekini belirtmek için export CROSS_COMPILE=arm-linux-gnueabihf- komutunu çalıştırın.
  4. Make clean komutunu çalıştırın.
  5. aclsoc_drv.ko dosyasını oluşturmak için make komutunu çalıştırın. file.
  6. opencl_arm32_rte dizinini Cyclone V SoC FPGA kartına aktarın.
    scp -r'yi çalıştırma root@ipadresiniz: komutu çalışma zamanı ortamını/home/root dizinine yerleştirir.
  7. SD kart görüntüsünü oluşturduğunuzda oluşturduğunuz init_opencl.sh komut dosyasını çalıştırın.
  8.  aocl tanı yardımcı programı komutunu çağırın. Siz init_opencl.sh'yi başarıyla çalıştırdıktan sonra teşhis yardımcı programı başarılı bir sonuç döndürür.

1.7 Bilinen Sorun
Şu anda Intel FPGA SDK for OpenCL'nin Cyclone V SoC Geliştirme Kiti Referans Platformu ile kullanımına ilişkin belirli sınırlamalar vardır.

  1. clGetDeviceInfo() çağrısının CL_DEVICE_VENDOR ve CL_DEVICE_NAME dizeleri tarafından bildirilen satıcı ve pano adlarını geçersiz kılamazsınız.
  2. Ana bilgisayar, paylaşılan DDR sisteminde (yani, HPS DDR) sabit bellek ayırırsa ve çekirdek çalıştırıldıktan sonra sabit belleği değiştirirse, bellekteki verilerin süresi dolabilir. Bu sorun, FPGA çekirdeğinin CPU'dan HPS'ye DDR işlemlerini gözetleyememesi nedeniyle ortaya çıkar.
    Sonraki çekirdek yürütmelerinin eski verilere erişmesini önlemek için aşağıdaki geçici çözümlerden birini uygulayın:
    • Başlatıldıktan sonra sabit belleği değiştirmeyin.
    • Birden çok __constant veri kümesine ihtiyacınız varsa, birden çok sabit bellek arabelleği oluşturun.
    • Varsa, hızlandırıcı kartınızdaki FPGA DDR'de sabit bellek ayırın.
  3. ARM'deki SDK yardımcı programı yalnızca programı destekler ve yardımcı program komutlarını teşhis eder.
    Flash, install ve uninstall yardımcı program komutları, aşağıdaki nedenlerden dolayı Cyclone V SoC Development Kit için geçerli değildir:
    A. Kurulum yardımcı programının aclsoc_drv Linux çekirdek sürücüsünü derlemesi ve SoC FPGA'da etkinleştirmesi gerekir. Geliştirme makinesinin derlemeyi gerçekleştirmesi gerekir; ancak, zaten SoC FPGA için Linux çekirdek kaynakları içerir. Geliştirme makinesi için Linux çekirdeği kaynakları, SoC FPGA için olanlardan farklıdır. SoC FPGA için Linux çekirdeği kaynaklarının konumu muhtemelen SDK kullanıcısı tarafından bilinmiyor. Benzer şekilde, kaldırma yardımcı programı da Cyclone V SoC Development Kit tarafından kullanılamaz.
    Ayrıca, aclsoc_drv'yi SoC panosuna teslim etmek zordur çünkü Cyclone V SoC Development Kit'in varsayılan dağıtımı Linux çekirdeği içermemektedir. files veya GNU Derleyici Koleksiyonu (GCC) derleyicisi.
    B. Flash yardımcı programı, bir .rbf dosyası yerleştirmeyi gerektirir file Bir OpenCL tasarımının mikro SD flash kartın FAT32 bölümüne. Şu anda, SDK kullanıcısı kartı açtığında bu bölüm takılı değil. Bu nedenle, bölümü güncellemenin en iyi yolu bir flash kart okuyucu ve geliştirme makinesi kullanmaktır.
  4. OpenCL Çevrimdışı Derleyici yürütülebilir dosyası için Intel FPGA SDK arasında geçiş yaparken files (.aocx) farklı kart türevlerine (yani, yalnızca c5soc ve c5soc_share) karşılık gelen, .aocx'i yüklemek için SDK'nın program yardımcı programını kullanmalısınız. file yeni pano varyantı için ilk kez. Ana bilgisayar uygulamasını yeni bir kart varyantı kullanarak çalıştırırsanız ancak FPGA başka bir kart varyantından gelen görüntüyü içeriyorsa, önemli bir hata meydana gelebilir.
  5. .qxp file Quartus Prime yazılımı sürekli olarak bu bölümün zamanlama gereksinimlerini karşıladığından arabirim bölümü atamalarını içermez.
  6. Anakartı açtığınızda, ortam erişim denetimi (MAC) adresi rastgele bir sayıya ayarlanır. LAN politikanız bu davranışa izin vermiyorsa, aşağıdaki görevleri gerçekleştirerek MAC adresini ayarlayın:
    A. U-Boot açılışı sırasında, U-Boot komut istemine girmek için herhangi bir tuşa basın.
    B. Komut istemine setenv ethaddr 00:07:ed:00:00:03 yazın.
    Herhangi bir MAC adresini seçebilirsiniz.
    C. saveenv komutunu yazın.
    D. Tahtayı yeniden başlatın.

1.8 Belge Revizyon Geçmişi
Tablo 1.
OpenCL Cyclone V SoC için Intel FPGA SDK Belge Revizyon Geçmişi
Geliştirme Kiti Referans Platform Taşıma Kılavuzu

Tarih Sürüm Değişiklikler
Mayıs-17 2017.05.08 • Bakım sürümü.
Ekim 2016 2016.10.31 •OpenCL için Altera SDK, OpenCL için Intel FPGA SDK olarak yeniden markalandı.
•Altera Çevrimdışı Derleyici, OpenCL Çevrimdışı Derleyici için Intel FPGA SDK olarak yeniden markalandı.
Mayıs-16 2016.05.02 • Bir SD flash kart görüntüsünün oluşturulması ve değiştirilmesine ilişkin değiştirilmiş talimatlar.
•Linux çekirdeğini ve OpenCL Linux çekirdek sürücüsünü yeniden derlemeye ilişkin değiştirilmiş talimatlar.
15 Kasım 2015.11.02 •Bakım sürümü ve Quartus II'nin örneklerini Quartus Prime olarak değiştirdi.
Mayıs-15 15.0.0 •FPGA Yeniden Yapılandırmasında, FPGA çekirdeğini yeniden programlama talimatı kaldırıldı
Birlikte . kediyi çağırarak rbf görüntüsü fileisim>. rbf
> /dev/ fpga0 komutu, çünkü bu yöntem önerilmez.
Aralık-14 14.1.0 • Belge, Altera Cyclone V SoC Geliştirme Kiti Referans Platformu Taşıma Kılavuzu olarak yeniden adlandırıldı.
• Yeniden programlama yardımcı programı aocl programına güncellendifilead>.aocx yardımcı program komutu.
• Teşhis yardımcı programı aocl teşhis ve aocl teşhis için güncellendi yardımcı komut
• Referans Platformunu SoC Panonuza Taşıma bölümündeki prosedür, garantili zamanlama kapatma akışı için zamanlama açısından temiz bir bölüm oluşturmak üzere c5soc pano bölümünün taşınması ve değiştirilmesine ilişkin talimatları içerecek şekilde güncellendi.
•Aşağıdaki görevlerin prosedürlerini ana hatlarıyla belirtmek için Portlu Referans Platformunu Güncelleme konusu eklendi:
1. Kart bölmesindeki sabit işlemci sistemi (HPS) bloğu hariç
2. SD flash kart görüntüsünün güncellenmesi
•Bir SD Flash Kart Görüntüsü Oluşturma bölümü güncellendi. Başlangıç ​​noktası olarak SoC Embedded Design Suite (EDS) ile sağlanan görüntü yerine Golden System Reference Design (GSRD) görüntüsünün 14.0 sürümünün kullanılması önerilir.
•Linux Çekirdeğini ve OpenCL Linux Çekirdeği Sürücüsünü Yeniden Derleme bölümü güncellendi:
1. CROSS COMPILE değişkenini ayarlamak için talimat eklendi.
2.CMA'nın başarıyla etkinleştirildiğini doğrulamak için çalıştırdığınız komutu değiştirdi.
Temmuz-14 14.0.0 •İlk sürüm.

Belgeler / Kaynaklar

OpenCL için Intel FPGA SDK [pdf] Kullanıcı Kılavuzu
OpenCL için FPGA SDK, FPGA SDK, OpenCL için SDK, SDK

Referanslar

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmiştir *