Dürtü C - Impulse C

Ortak Geliştirici
Tarafından tasarlandıImpulse Accelerated Teknolojileri
GeliştiriciImpulse Accelerated Teknolojileri
İlk ortaya çıktı2003
Kararlı sürüm
3.60.a.8 / 2009-09-30
işletim sistemiFPGA ve ilgili gömülü işlemciler
LisansImpulse Accelerated Technologies tarafından satılan ve dağıtılan FPGA derleyicisi
İnternet sitesiwww.ImpulseC.com[ölü bağlantı ]
Tarafından etkilenmiş
C Programlama Dili, Akımlar-C

Dürtü C bir alt kümesidir C programlama dili C uyumlu bir işlev kitaplığı destekleyici paralel programlama özellikle hedeflenen uygulamaların programlanması için FPGA cihazlar. Tarafından geliştirilmiştir Impulse Accelerated Teknolojileri Kirkland, Washington.

Genel Bakış

Üst düzey sentez araç Ortak Geliştirici bir Impulse C içerir derleyici ve FPGA tabanlı uygulamaların geliştirilmesine yönelik ilgili işlev kitaplığı. Impulse C, standart ile uyumludur ANSI C FPGA'ları hedefleyen uygulamaları tasarlamak ve hata ayıklamak için standart C araçlarının kullanılmasına izin verir. Impulse C derleyicisi, C'nin bir alt kümesini kabul eder ve şu şekilde FPGA donanımı oluşturur. Donanım Açıklama Dili (HDL) Dosyalar. Impulse C, yerleşik sistem tasarımcılarının ve yazılım programcılarının C dili uygulama hızlandırma için FPGA cihazlarını hedeflemesine olanak tanır.

Impulse C, paralellik sağlaması bakımından standart C'den farklıdır. programlama modeli karma işlemci ve FPGA platformları için. Bu amaçla, Impulse C, standart C ile yazılan uygulamaların programlanabilir FPGA donanımıyla birlikte standart işlemcileri de içerebilen kaba taneli paralel mimarilere eşlenmesini sağlayan işlevler ve veri türleri biçiminde C'ye uzantılar içerir.

Impulse C araçları, donanım / yazılım ortak simülasyon araçlarının yanı sıra C'denRTL Uygulama öğelerini FPGA aracılığıyla donanıma eşlemek için kullanılan zamanlama / optimize etme teknolojisi mantık sentezi araçlar.

Programlama modeli

Impulse C, sıralı süreçleri iletmek (CSP) programlama modeli, hata ayıklayıcılar ve profil oluşturucular gibi standart C araçlarıyla uyumlu kalırken. Impulse C, veri akışı odaklı akış uygulamaları için tasarlanmıştır, ancak aynı zamanda bir iletişim mekanizması olarak paylaşılan belleğin kullanımı dahil olmak üzere alternatif programlama modellerini desteklemek için tasarlanmıştır.

Bir Impulse C akış uygulamasında, donanım ve yazılım süreçleri, öncelikle doğrudan donanımda uygulanan arabelleğe alınmış veri akışları aracılığıyla iletişim kurar. Çift saat kullanılarak uygulanan bu veri arabelleği FIFO'lar derleyici tarafından oluşturulan, paralel uygulamaların, aksi takdirde gerekli olacak döngüsel senkronizasyon olmadan nispeten yüksek bir soyutlama seviyesinde yazılmasını mümkün kılar.

Impulse C kullanılarak, bir uygulama, donanım ve yazılım bileşenlerine bölünmüş veya tamamen bir FPGA cihazı içinde uygulanan çok işlemli bir uygulama oluşturmak için bölümlere ayrılabilir. Örneğin, bir görüntü filtreleme uygulaması, her biri bir veya daha fazla C alt yordamı kullanılarak açıklanan paralel, ardışık düzenlenmiş işlemlerin bir koleksiyonu olarak Impulse C kullanılarak açıklanabilir.

Uygulamanın yazılım tarafında, örneğin gömülü bir FPGA işlemcisinde, Impulse C kütüphanesi işlevleri, veri akışlarını açmak ve kapatmak, akışlardaki verileri okumak veya yazmak ve istenirse sonuçlar için durum mesajları veya anket göndermek için kullanılır. İşlemciden FPGA iletişimine yönelik akış okumaları ve yazmaları, FPGA'ya özgü, dahili veya harici veri yolu arabirimlerinden yararlanan işlemler olarak belirtilebilir.

Uygulamanın donanım tarafında, Impulse C kütüphanesi işlevleri ve diğer C ifadeleri, sentezlenebilir HDL dosyaları biçiminde eşdeğer, paralel donanım uygulamaları oluşturmak için derlenir. Bu dosyalar, FPGA donanım bitmapleri oluşturmak için FPGA araçları tarafından işlenir.

Impulse C akış programlama modelinin merkezinde süreçler ve akışlar bulunur. İşlemler, bir uygulamanın bölümlerini eşzamanlı olarak çalıştırarak bağımsız olarak senkronize edilir. Donanım süreçleri, standart C'nin bir alt kümesi kullanılarak yazılır ve verileri kabul ederek, hesaplamalar yaparak ve çıktılar üreterek bir uygulamanın işini gerçekleştirir. Tipik bir uygulamada veri, ara belleğe alınmış akışlar aracılığıyla veya bazı durumlarda mesajlar ve / veya paylaşılan bellekler aracılığıyla işlemden işleme akar. Oluşturulan FIFO'ların genişliği ve derinliği dahil olmak üzere her akışın özellikleri C başvurusunda belirtilebilir.

Başvurular

Impulse C, aşağıdakileri içeren uygulamalar için kullanılır: görüntü işleme ve dijital sinyal işleme açık gömülü sistemler finansal dahil olmak üzere yüksek performanslı bilgi işlem uygulamalarının hızlandırılmasının yanı sıra analiz, biyoinformatik ve bilimsel hesaplama.

Hedef platformlar

Impulse C, mevcut yumuşak ve sert çekirdekli işlemcileri de dahil olmak üzere Xilinx ve Altera'nın FPGA'larını destekler. Altera Nios II ve Xilinx 's MicroBlaze ve PowerPC.

Dış bağlantılar