FPGA tabanlı düşük güçlü, yüksek hızlı bir kod çözücünün tasarımı

Özet: Geleneksel kodlama ve kod çözme algoritmalarının yüksek karmaşıklığı ve genişlemedeki zorluk göz önüne alındığında, ileri yayılma algoritması ve kendi kendini kodlayan sinir ağlarının yapısı incelenir ve kodlama ve kod çözme algoritması olarak kendi kendini kodlayan bir sinir ağı önerilir ve gerçekleştirme platformu olarak FPGA kullanılır. Güç tüketimi yüksek hızlı dekoder sistemi. Sistem, karakterlerin kodlanmasını ve kodunun çözülmesini gerçekleştirir ve çeşitli multimedya bilgilerinin kodlanmasına ve kodunun çözülmesine uygulanabilir. ModelSim simülasyonu sayesinde, Xilinx ISE uygulanır ve hesaplama doğruluğunu, kaynak tüketimini, hesaplama hızını ve güç tüketimini analiz etmek için donanım ölçülür. Deneysel test sonuçları, tasarlanan kod çözücünün veri kod çözme işlevini doğru bir şekilde tamamlayabildiğini, algoritmanın basit ve verimli olduğunu ve ölçeklenebilirliğin güçlü olduğunu göstermektedir.Sistem, düşük güç tüketimi ve hızlı hız özelliklerine sahiptir ve çeşitli düşük güçlü, taşınabilir ürünlerde yaygın olarak kullanılabilir.

TN791; TP183

Bir

10.16157 / j.issn.0258-7998.173486

Çince alıntı biçimi: Zhou Songjiang, Li Shengchen, Liu Ming. FPGA'ya dayalı düşük güçlü yüksek hızlı kod çözücü tasarımı. Elektronik Teknoloji Uygulaması, 2018, 44 (4): 27-32.

İngilizce alıntı biçimi: Zhou Songjiang, Li Shengchen, Liu Ming. FPGA'ya dayalı düşük güçlü ve yüksek hızlı bir kod çözücü tasarımı. Application of Electronic Technique, 2018, 44 (4): 27-32.

0 Önsöz

Bilgisayar işlem multimedya veya metin bilgisinin temeli, bilginin iletilmesini, görüntülenmesini ve korunmasını kolaylaştırmak için ilgili bilgileri kodlamak ve kodunu çözmektir. Büyük miktarda bilgi işleme talebiyle karşı karşıya kalan hızlı ve verimli bir kodek sistemi, bilgi işleme yeteneklerini etkili bir şekilde geliştirebilir. Son yıllarda, sinir ağlarının geliştirilmesi ve uygulanmasıyla, matematiksel fonksiyon regresyonu için sinir ağlarının kullanılması, bilgi kodlama ve kod çözme için basit ve etkili bir yol sağlar. Kendi kendini kodlayan sinir ağı, denetimsiz bir yapay sinir ağıdır.Ağın çıkış değerini giriş değerine eşit hale getirmek için geri yayılım algoritması eğitimini kullanır, böylece görüntü sıkıştırma ve veri boyutluluğunu azaltmada yaygın olarak kullanılan girdi verileri için bir özellik temsilini öğrenir. Ve diğer alanlar. Kendi kendini kodlayan sinir ağının çıktısı, veri kodlama ve kod çözme için uygun olan girişe eşittir Entropi kodlama gibi geleneksel kodlama ve kod çözme yöntemleriyle karşılaştırıldığında algoritma, genişletilebilir yapı ve daha güçlü uygulanabilirlik ile daha özlü ve etkilidir.

Bazı düşük güçlü, taşınabilir ürünlerde kodeklerin uygulanmasıyla, yüksek hızlı, yüksek hassasiyetli ve düşük güç tüketimi, kodeklerin bir geliştirme eğilimi haline geldi. Alan Programlanabilir Kapı Dizisi (Alan Programlanabilir Kapı Dizisi, FPGA) programlanabilir bir mantık cihazıdır, kullanıcılar donanım açıklama dili ile donanım devre tasarımını tamamlayabilir. FPGA, sabit nokta operasyonlarını ve veri depolamayı verimli ve düşük maliyetle gerçekleştirebilen yüksek performanslı bir dijital sinyal işlemcisi ve büyük miktarda depolama kaynağını entegre eder.Bu nedenle, FPGA şu anda ideal bir kodek uygulama platformudur. FPGA'daki her bir donanım modülü paralel olarak yürütülür ve bu, donanım hızlandırma elde etmek için yoğun hesaplama gerektiren algoritmaları FPGA ile eşleyebilir. Bazı bilim adamları FPGA'yı sinir ağının gerçekleşme platformu olarak kullanmaya çalıştılar ve özellikle hız ve güç tüketimi olmak üzere mükemmel performans elde ettiler. Özetle, gerçekleştirme platformu olarak kendi kendini kodlayan sinir ağına ve FPGA'ya dayanan kodlama ve kod çözme sistemi, yüksek esneklik, yüksek hız ve düşük güç tüketimi özelliklerine sahiptir ve çeşitli düşük güç tüketimi ve taşınabilir uygulamalarda yaygın olarak kullanılabilir.

Bu makale, kendi kendini kodlayan sinir ağının yapısını ve özelliklerini analiz ederek veri kod çözme için bir donanım uygulama mimarisi önermektedir. Ağ hesaplama sürecinde nöronlar arası çalışma ve paralellik özelliklerine göre FPGA'nın yüksek paralellik, düşük güç tüketimi ve yüksek hızlı veri işleme avantajları ile birleştiğinde, kendi kendini kodlayan sinir ağının kod çözme kısmı FPGA ile eşleştirilir. Mimari, hızlı hız ve düşük güç tüketimi özelliklerine sahiptir Makalede tartışılan metin bilgisi kod çözme işlemine ek olarak, mimari, görüntü kodlama ve kod çözme olasılığına sahiptir.

1 Kendinden kodlamalı sinir ağı

Yapay sinir ağı, insan beyni sinir sisteminin yapısını ve işlevini simüle ederek oluşturulan matematiksel bir model olan biyolojik sinir ağının temel ilkelerine dayanır.Modelin, ayrı bir değer, gerçek değer veya amaç işlevine keyfi bir hassasiyetle yaklaşma işlevi vardır. Kendi kendini kodlayan sinir ağı, ağın çıktı değerini öğrenme yoluyla giriş değerine eşit yapmaya çalışan ve böylece girdi verileri için bir özellik temsilini öğrenen bir geri yayılım algoritması kullanan, denetimsiz yapay bir sinir ağıdır.

Kendi kendini kodlayan sinir ağı modeli, ortasında gizli bir katman bulunan simetrik bir yapıdır.Giriş ve çıkış katmanlarındaki nöron sayısı eşittir ve ağın çıkış değeri eğitim yoluyla girdi değerine eşittir. Şekil 1, kendi kendini kodlayan sinir ağının yapısını göstermektedir. Giriş katmanı ve çıkış katmanı m nöron içerir, gizli katman n nöron içerir ve giriş katmanının altındaki "+1" ve gizli katman önyargı düğümüdür . Kendi kendini kodlayan sinir ağının gizli katmanına giriş katmanı kodlayıcıyı oluşturur ve çıkış katmanındaki gizli katman kod çözücüyü oluşturur.Kendi kendini kodlayan sinir ağının eğitim süreci kodlayıcı ve kod çözücüdeki ağırlıkları ve önyargıları ayarlamaktır. Ağ çıkış değeri giriş değerine eşit olacak şekilde bir kimlik işlevine yaklaşır, böylece ağın gizli katmanının çıktı verileri, orijinal giriş verilerinin başka bir karakteristik temsilidir, yani veriler, kendi kendini kodlayan sinir ağının kod çözücüsü tarafından orijinaline geri yüklenebilir. Giriş verileri.

Bu makalede, giriş verileri kendi kendini kodlayan sinir ağının kodlayıcısı tarafından kodlanır ve elde edilen gizli katmanın çıkış verilerine orijinal verilerin kodlanması denir; kodlanan verilerin kodu, kendi kendini kodlayan sinir ağının kod çözücüsü tarafından çözülür. Ham girdi verileri. Daha sonra, Şekil 1'de gösterilen kendi kendini kodlayan sinir ağı yapısına atıfta bulunarak, kendi kendini kodlayan sinir ağının ileri hesaplama süreci tanıtıldı.İlk olarak, gizli katmandaki n nöronun çıktısı formül (1) olarak hesaplanır:

Çıkış katmanındaki m nöronların çıktısı formül (2) 'de gösterilmiştir:

Ağ ileri hesaplama sürecinin denklem (1) ve (2) analizi sayesinde, kendi kendini kodlayan sinir ağının giriş katmanından gelen bilgileri işlediği, çıktı katmanı çıkana kadar gizli katmandan geçtiği ve her katmanın Nöronlar arasındaki hesaplamalar bağımsız ve paraleldir; (1) ve (2) denklemlerinin hesaplamaları çarpma ve toplama işlemleri ile aktivasyon fonksiyonu işlemlerini içerir ve ikisi sırayla gerçekleştirilir.

2 FPGA tasarım şeması

Bu bölüm, FPGA tabanlı donanım kod çözme sisteminin tasarım gereksinimlerini analiz eder, tüm sistemin donanım mimarisi tasarımını ve sistem çalışma prensibini tanıtır ve son olarak tasarımdaki ağ hesaplama modülünü ayrıntılı olarak tanıtır.

2.1 Sistem analizi

Bu metin, veri kod çözme işlevini gerçekleştirmek için Şekil 1'de gösterilen kendi kendini kodlayan sinir ağının kod çözücü kısmını FPGA'da tasarlar ve gerçekleştirir. Kendi kendini kodlayan sinir ağı yazılım tarafında eğitilir Ağ modeli elde edildikten sonra, en yaygın tek bayt kodlama ASCII koduna normalize edilen veriler, kodlanmış verileri elde etmek için kendi kendini kodlayan sinir ağının kodlayıcısına girilir ve son olarak kodlama Veriler, orijinal giriş ASCII kodunu geri yüklemek için veri kod çözme için FPGA ucuna gönderilir.

Kendi kendini kodlayan sinir ağının ileriye doğru hesaplanmasının analizi sayesinde, hesaplama işlemi çarpma ve toplama işlemi ile aktivasyon fonksiyonu işlemini içerir ve ağın her katmanındaki nöronlar arasındaki hesaplama bağımsız ve paraleldir. Kodlanmış verilerin kodunun çözülmesi sürecinde, tasarlanan donanım sisteminin gerçek zamanlı özelliklere sahip olması gerekir. Dağıtılmış bir paralel işleme sistemi olarak, FPGA çok sayıda mantık birimi ve hesaplama birimi içerir ve programlanabilir, hızlı hız, yüksek esneklik, kolay yapılandırma, kısa tasarım döngüsü vb. Özelliklere sahiptir. Bu nedenle, bu makale tasarlanan veri kod çözücüsü olarak FPGA'yı seçer. Donanım uygulama platformu.

Tasarlanan kod çözücü, Şekil 1'de gösterilen kendi kendini kodlayan sinir ağının çıkış katmanına gizli katmanın bir parçasıdır. N × m ağırlık parametreleri ve m önyargı parametreleri içerir. Sırasıyla n ve m gizli ağı temsil eder Kapsayıcı katmandaki ve çıktı katmanındaki nöron sayısı. Kod çözme işlevini gerçekleştirmek için yalnızca ağın ileriye doğru hesaplanması gerektiğinden, ağın ağırlıkları ve önyargıları sabit değerlerdir.Bu nedenle, FPGA'nın dahili kaynakları, ağ ağırlıklarını ve önyargılarını depolamak ve ağa sabit değerler olarak katılmak için tasarımda kullanılabilir. Operasyon.

Kod çözücünün eksiksiz bir kod çözme süreci kısaca şu şekilde tanımlanabilir: giriş verileri kod çözme hesaplaması çıktı sonucu. Pratik uygulamalarda, genellikle birden fazla kodlanmış veri seti vardır, bu nedenle kodlanmış veriler, FPGA'nın tasarımda okuması için harici bir bellekte depolanır. SD bellek kartı, yarı iletken flash belleğe dayalı yeni nesil bir bellek cihazıdır.Küçük boyutu, hızlı veri iletimi ve çalışırken değiştirilebilen özellikleri nedeniyle taşınabilir cihazlarda yaygın olarak kullanılmaktadır. Dolayısıyla bu tasarım, kodlanmış verileri depolamak için SD kart kullanmayı seçer. SD kart okuma işlemi, bir seferde bir veri sektörünü okur ve ağ hesaplama modülünün giriş verilerinin sayısı, Şekil 1'de gösterilen gizli katman nöronlarının sayısı ile aynıdır ve iki veri hacmi eşleşmez. Ek olarak, SD kart okuma veri işlemi ve ağ hesaplaması asenkron olduğundan, bu tasarıma FIFO modülü, SD kart okuma veri modülünün iki asenkron modülü ile ağ hesaplama modülü arasına veri tamponu olarak eklenir.Bu tasarımın genişletilmesi de kolaydır. Farklı sayıda nörona sahip diğer ağ yapıları.

Ek olarak, kodlanmış verilerin çoklu setlerinin kodunu çözmek için insan kontrolünü kolaylaştırmak amacıyla, sistem tasarımı, bir kod çözme işlemi için bir başlatma sinyali üretmek üzere düğmeler kullanır. Orijinal tasarım, sistemi ASCII kodu ve kod çözme temelinde test etmektir Bu nedenle, özellikle harfleri, sayıları ve sembolleri gösteren endüstriyel karakter LCD1602, kod çözme sonuçlarını görüntülemek için kullanılır. Son olarak, FPGA donanım sisteminin kararlılığını artırmak ve sistem saatinin titremesini ve eğimini azaltmak için, tasarıma giriş saati sinyali ile ayarlanmış bir faz ve frekans ilişkisi olduğunda farklılıklar oluşturmak için bir karma modlu saat yöneticisi (MMCM) eklenir. Bu sinyal, her modülün çalışması için kullanılır.

2.2 Donanım sistemi mimarisi

Yukarıdaki analize dayalı olarak tasarlanan FPGA donanım sistemi yapısı Şekil 2'de gösterilmektedir. Sistem çevre birimi modülleri, kodlanmış verileri depolayan bir SD kart, bir diferansiyel saat sinyali üreten bir kristal osilatör, bir sıfırlama sinyali üreten ve sistemin çalışmasını kontrol eden bir düğme ve ağ hesaplama sonuçlarını görüntüleyen bir LCD1602 ekranı içerir. FPGA üç ana modül içerir: veri yükleme modülü, veri işleme modülü ve karışık modlu saat yöneticisi.

Tasarımda, kodlanmış verileri depolamak için bir SD kart kullanılır ve SD kartın çalışması için basit bir komut / yanıt protokolü benimsenir Tüm komutlar FPGA tarafından başlatılır ve SD kart, komutu aldıktan sonra yanıt verilerini döndürür. SD karttaki verileri okumak için önce SD kartın başlatılmasını tamamlamanız gerekir.Sistem, SD kart başlatma modülünü ve SD kart okuma veri modülünü FPGA modüler tasarım prensibine uygun işleve göre tasarlar. FIFO modülü, SD kart ve ağ hesaplama modülü arasında bir veri tamponu görevi görür ve aynı zamanda eşzamansız veri iletimi için de kullanılır.Bu nedenle, eşzamansız çalışma için tasarımda bağımsız okuma saati ve yazma saati kullanılır.

Anahtar saptama modülü, anahtarın harici anahtar çıkış sinyalinin değerini sürekli olarak okur Anahtar algılandığında, modül, bir kod çözme işleminin başlangıç sinyali olarak kullanılacak olan bir yüksek darbe sinyali üretir. Ağ hesaplama modülü, okunan verileri sinir ağının hesaplama yöntemine göre hesaplar. Ekran sürücü modülünün tasarımında, LCD1602'nin başlatma ve veri görüntüleme işlemini kontrol etmek için bir sonlu durum makinesi kullanılır. Ekran sürücü modülüne hesaplama sonuçlarını gerçekleştirmek için modül ile ağ hesaplama modülü arasında bir sinyal hattı bağlantısı vardır. Ekran sürücü modülü, LCD1602 çiftini kontrol eder Hesaplama sonuçları görüntülenir.

Şekil 2'de gösterilen donanım mimarisi diyagramında, karışık modlu saat yöneticisi, her modülün gerektirdiği saat sinyallerini üretmek için harici saat frekansını böler.Veri yükleme modülüne ve veri işleme modülüne iki saat hattı üzerinden bağlanır ve veriler Yükleme modülü ve veri işleme modülü üç sinyal ile bağlanır: data_en, data ve read_clk.

2.3 Sistem çalışma prensibi

FPGA'nın özelliği paralel çalışmayı gerçekleştirebilmesidir.Şekil 2'de gösterilen sistem mimarisi diyagramında veri yükleme modülü ve veri işleme modülü paralel ve asenkron bir şekilde çalışır.Çalışma prensipleri aşağıda ayrı ayrı tanıtılmıştır.

Veri yükleme modülü: Sistem açıldıktan sonra, veri yükleme modülü önce SD kartı başlatmak için SD kart başlatma modülünü kontrol eder Başlatma işlemi bir dizi komut içerir Başlatma tamamlandıktan sonra, SD kart başlatma modülü bir başlatma tamamlama sinyali verir. SD karttaki şifrelenmiş veriler PC tarafında FAT32 dosya sistemi şeklinde yazıldığından, SD kart başlatıldıktan sonra veri yükleme modülü, SD karttaki FAT32 dosya sistemi bilgilerini okumak için SD kart okuma veri modülünü kontrol eder. Kodlanmış verilerin uzunluğunu, yani dosyada bulunan bayt sayısını alın Bu veriler, kodlanmış verilerin okunmasını kontrol etmek için kullanılacaktır. Son olarak, veri yükleme modülü, FIFO'daki ara belleğe alınmış veri miktarını sürekli olarak algılar ve veri miktarı ayarlanan değerden daha az olduğunda, ara belleğe alma için SD karttaki kodlanmış verileri FIFO'ya okumak için SD kart okuma veri modülünü kontrol eder.

Veri işleme modülü: Anahtar algılama modülü, harici tuşa basıldığını algıladığında, yüksek bir darbe sinyali üretir ve ardından veri işleme modülü, hesaplama için üç sinyal data_en, data ve read_clk aracılığıyla FIFO'dan verileri okuyacaktır. Ardından, hesaplama sonuçlarını harici LCD1602'de görüntülemek için ekran sürücü modülü kontrolü aracılığıyla. Veri yükleme modülü ile veri işleme modülü arasındaki üç sinyal data_en, data ve read_clk'nin zamanlama ilişkisi Şekil 3'te gösterilmektedir. Data_en yüksek olduğunda, FIFO'da okunabilen geçerli veriler olduğu anlamına gelir. Bu anda, read_clk sinyali ne zaman olursa olsun Yükselen kenarına ulaşıldığında, veri portundan bir veri okunabilir.

Şekil 4, FPGA donanım sisteminin çalışma akış şemasını göstermektedir.SD kart okuma işlemi ve ağ hesaplaması asenkrondur.Sisteme eklenen FIFO modülü, SD kart okuma veri modülü ve iki asenkron modül arasındaki ağ hesaplama modülü olarak görev yapmaktadır. Veri tamponu.

2.4 Ağ hesaplama modülünün tasarımı

Ağ hesaplama modülü, bu tasarımda temel modüldür.Şekil 1'deki kod çözücüyü uygulamak için kullanılır. Kodlanmış veriler ile kod çözücünün ağırlıkları ve önyargıları formül (2) 'ye göre çarpılarak eklenir ve çıktı aktivasyon fonksiyonu ile elde edilir. değer.

Ağ ileriye doğru hesaplama analizi sayesinde, çarpma ve toplama işlemleri ile aktivasyon fonksiyonu işlemlerini içerdiği anlaşılabilir. Bu tasarımda kendi kendini kodlayan sinir ağının girdisi ASCII koduna normalleştirilmiş veri olduğundan, yani orijinal ASCII kodunun 128'e bölünmesiyle elde edilen değer olduğundan, FPGA modülündeki uyarma fonksiyonunun çıktı değerinin gerçek olması için 128 kat genişletilmesi gerekir. ASCII kod değeri. 128 = 27 olduğundan, FPGA'daki çarpma işlemi kaydırılarak gerçekleştirilebilir, bu nedenle hesaplama sonucunu 128 kat genişletmek, ikili formattaki ondalık noktayı 7 bit sağa kaydırmaya eşdeğerdir. Ayrıca, ondalık noktadan sonraki 7 basamağı doğrudan yakalayan, 128 kat genişletilmiş hesaplama sonucunun ASCII kod değeridir. Bu nedenle, ağ hesaplama modülünde, hesaplama üç bölüme ayrılmıştır: çarpma ve toplama işlemleri, uyarma fonksiyonu işlemleri ve kesme işlemleri Şekil 5, bir çıktı katmanı nöronunun hesaplama yapısının şematik bir diyagramını göstermektedir Çıkış katmanındaki her nöron, Şekil 5'te gösterilmektedir. Hesaplamanın hesaplama yapısı paralel ve bağımsız bir şekilde gerçekleştirilir.

Modüldeki çarpma-toplama işlemi, kodlanmış verileri, kod çözücünün kısmi ağırlıklarını ve önyargılarını, formül (2) 'deki uyarma fonksiyonu içindeki çok-ekle işlem kurallarına göre hesaplamaktır. Bu tasarımda, çıktı katmanı nöronunun uyarma işlevi hard_sigmoid işlevidir ve ifade denklemdir (3):

Tanıma göre, hard_sigmoid fonksiyonu parçalı bir fonksiyondur ve her segment doğrusaldır, ki bu bir FPGA sisteminde uygulaması çok kolaydır, yani girişi yargılamak için koşullu yargı cümlelerini kullanın ve Şekil 6'da gösterildiği gibi hard_sigmoid fonksiyonudur. Donanım uygulamasının şematik diyagramı.

3 Sistem testi analizi

FPGA platformunda tasarlanan kendi kendini kodlayan sinir ağının gerçekleştirilmesini test etmek için bu yazıda seçilen ağ yapısı, giriş katmanı ve çıkış katmanının 4 nöron düğümü, gizli katmanın ise 8 nöron düğümü içermesidir. Seçilen uygulama arka planı, yazılım tarafının ASCII kodunun kodlamasını tamamladığı ve elde edilen kodlanmış verilerin FPGA tarafında kodunun çözüldüğü ASCII kodunun kodlanması ve kodunun çözülmesidir.

Bu deneyin test seti yazılım tarafından oluşturulmuştur.Yazılım ortamında, ASCII kodundaki kontrol dışı karakterler (kod değeri toplam 32 ~ 127, 96'dır) normalize edilir ve ardından rastgele bir kombinasyonda tasarıma 4'lü bir set girilir. Kendi kendini kodlayan sinir ağı ve gizli katmanın çıktısını elde edin ve çıktıyı FPGA'nın test giriş verileri olarak SD karta kaydedin. Seçilen FPGA donanım platformu Xilinx VC707 FPGA geliştirme kartı, sistem geliştirme ortamı Xilinx ISE 14.7 ve simülasyon ortamı ModelSim SE 10.1c'dir.Şekil 7 donanım sistemi test diyagramını göstermektedir.

Şekil 7'de gösterilen donanım sistemi test diyagramında SD kart, LCD1602 görüntü ekranı ve kontrol düğmesidir. Sistem açıldıktan sonra, kontrol düğmesine basılarak veriler sürekli olarak SD karttan okunur ve sonuçlar, Şekil 7'deki LCD1602 görüntü ekranında gösterildiği gibi, ağ hesaplama modülü tarafından hesaplandıktan sonra her seferinde 4 karakter gösterilerek LCD1602 ekranında görüntülenir. İkinci satır, Şekil 1'de gösterilen sinir ağının 4 çıkışına karşılık gelen kodu çözülmüş 4 veridir.

3.1 Ağ hesaplama sonuçlarının analizi

Sinir ağı, ağ ağırlıkları ve önyargılar dahil olmak üzere bir dizi optimum parametre elde etmek için eğitilmiştir. Tasarlanan kendi kendini kodlayan sinir ağının kod çözücü kısmını FPGA'da gerçekleştirmek için ASCII kodu (sinir ağının gizli katmanının çıkış verileri) ile kodlanmış verilerin ve kod çözücü kısmının ağ ağırlıklarının ve önyargılarının elde edilmesi gerekir. Ek olarak, FPGA yalnızca ikili verileri tanıyıp hesaplayabildiğinden, yukarıdaki verileri ikili verilere dönüştürmek gerekir.

FPGA tasarımında, veri gösteriminin yolu doğrudan FPGA mantık kaynak tüketimi ile ilgilidir. Veri gösteriminde ne kadar çok rakam olursa, veri doğruluğu o kadar yüksek olur ve o kadar fazla mantık kaynağı tüketilir, bu nedenle FPGA kaynak tüketimi ile veri doğruluğu arasındaki ilişkinin FPGA tasarımında tartılması gerekir. Bu makalenin pratik uygulamasıyla birleştirildiğinde ve FPGA tasarımında doğruluğu, kaynak kullanımını ve güç tüketimini daha iyi tartmak için bu tasarım, yukarıdaki verileri temsil etmek için sabit nokta sayılarını kullanır.

Çünkü FPGA tasarımında veriyi temsil etmek için sınırlı bit sabit nokta sayısı kullanıldığında, orijinal verinin sabit noktalı niceleme işlemi veri kesilmesinden dolayı hatalara neden olacaktır. Ağ hesaplama modülünün tasarımına göre, hesaplama sonucunun ikili ondalık noktasından sonra çıktısı 7 hanelidir.Bu nedenle tasarımda bu 7 hanenin doğru olduğundan emin olmak, yani orijinal giriş verileri ile karşılaştırıldığında, kod çözme sonrası çıktı sonucunun hatası 2-7'den az olmalıdır. 7,8125 × 10-3'ten küçük olmalıdır. Bu makale, verileri nicelemek için MATLAB altındaki Sabit Nokta Araç Kutusu'nu kullanır ve ardından tasarımdaki verilerin farklı niceleme basamaklarının hesaplama sonucunun hatası üzerindeki etkisini analiz eder.Şekil 8'de gösterildiği gibi, sabit nokta sayısı ondalık nokta sayısını ve maksimum hatayı temsil eder. İlişki.

Şekil 8'den görülebilir:

(1) Sabit noktalı sayının ondalık basamak sayısı arttıkça, maksimum hata değeri azalmaya devam eder, yani veri doğruluğu gittikçe artar;

(2) Sabit noktalı sayının ondalık basamağı 12 olarak değiştirildikten sonra, maksimum hata temelde değişmeden kalır;

(3) Sabit nokta numarası 9 ondalık basamağa sahip olduğunda, maksimum hatası temelde 7.8125 × 10-3 ile aynıdır; sabit nokta sayısı 10 ondalık basamağa sahip olduğunda, maksimum hatası 7.8125 × 10-3'ten daha az gereksinimi karşılamıştır.

Şekil 8'de gösterilen analiz sonuçlarına göre, tasarımdaki ağ ağırlıkları, ofsetleri ve kodlanmış veriler sabit noktalı nicelleştirildiğinde, ondalık basamaklar 10 basamak olacak şekilde tasarlanmıştır. Tam sayı bitlerinin sayısını belirlemek için ağ ağırlıklarını, ofsetleri ve kodlanmış verilerin boyut aralığını daha fazla analiz edin Üç verinin ikili sabit noktalı sayı biçimleri Tablo 1'de gösterilmektedir.

Bu tasarım, ModelSim ortamındaki ağ hesaplama modülünü simüle eder ve modülün çıkardığı hesaplama sonuçlarını yazılımdaki orijinal giriş verileriyle analiz eder ve karşılaştırır.Test edilen verilerdeki maksimum mutlak hata 7.8125 × 10-3'ten daha azdır, Tasarımda hata gereksinimleri. Ayrıca donanım ölçümü ile FPGA hesaplamasından sonra kodlanan tüm verilerin kodu doğru bir şekilde çözülür ve sonuç LCD1602 üzerinde görüntülenir, yani tasarlanan FPGA donanım sistemi kod çözme işlevini doğru bir şekilde tamamlayarak tasarlanan ağın hesaplamasını doğrular. Modülün hata analizi.

3.2 Sistem performans analizi

Tablo 2, sistem mühendisliğinin kapsamlı bir şekilde gerçekleştirilmesinden sonra Xilinx ISE'nin ana kaynak kullanımını göstermektedir. DSP kaynağının çok fazla yer kapladığı görülebilmektedir, çünkü esas olarak çarpma ve toplama hesaplamaları ve ağ hesaplama modülündeki uyarma fonksiyonu hesaplamaları hem sabit noktalı sayı çarpma ve toplama işlemlerini içerdiği için daha fazla DSP kaynağı işgal edilmiştir. Ek olarak, BRAM kaynaklarının işgali esas olarak FIFO modülünün gerçekleştirilmesinden ve ağ hesaplama modülünde ağ ağırlıklarının ve ofsetlerinin depolanmasından kaynaklanmaktadır.

Tablo 3, FPGA donanımının hızı ile yazılım kod çözme hızı arasındaki karşılaştırmayı göstermektedir Yazılım kod çözme MATLAB yazılımında test edilmiştir.İşlemci Intel Core i7'dir ve ana frekans 2.5 GHz'dir. FPGA donanım kod çözme hızı, FPGA'da bir sayaç ayarlayarak kod çözücü giriş verilerini okumadan nihai çıktı sonucuna kadar olan saati saymak ve ardından çalışma süresini hesaplamak için sayma değerini görüntülemek için ChipScope aracını kullanmaktır. Tablo 3'teki sonuçlar, CPU yazılım kod çözme ile karşılaştırıldığında, bu makalede tasarlanan FPGA donanım kod çözücünün 7 kattan fazla hızlandırıldığını göstermektedir.

Xilinx ISE ile birlikte gelen XPower aracı sayesinde, FPGA'nın çalışma gücü tüketiminin yaklaşık 0,389 W olduğu elde edilebilir. LCD1602'nin tasarlanan sistemin çevre ekipmanlarındaki güç tüketimi yaklaşık 0,693 W'dir.Diğer çevre birimlerinin güç tüketimi ihmal edilebilir, dolayısıyla tüm sistemin toplam gücü Tüketim yaklaşık 1 W'tır. Aksine, 2.5 GHz'de saat hızına sahip Intel Core i7-6500U CPU'nun güç tüketimi 65 W kadar yüksek olabilir. Bu sistemin güç tüketiminin genel amaçlı CPU'nun yalnızca% 1.5'i olduğu görülebilir, bu nedenle özellikle FPGA tabanlı için uygundur. Kod çözücü, düşük güçlü taşınabilir cihazlarda kullanılır.

4. Sonuç

Sinir ağının girişi ve çıkışı arasındaki eşleştirme ilişkisini kullanarak, veri kodlama ve kod çözme basit ve verimli bir şekilde uygulanabilir. Kendi kendini kodlayan sinir ağının yapısına ve özelliklerine göre, bu makale onu kodlama ve kod çözme için kullanır ve FPGA'da kendi kendini kodlayan sinir ağının kod çözücü kısmını uygular. Yazılım algoritma tasarımı ve ağ hesaplama sürecinin analizi sayesinde, FPGA modülü işleve ve gereksinimlere göre tasarlanır. Tasarlanan FPGA modüllerini simüle etmek ve doğrulamak için ModelSim yazılımını kullanın, tüm projeyi tasarlamak, sentezlemek ve uygulamak için Xilinx ISE'yi kullanın ve doğrulama için programlama dosyalarını Xilinx VC707 FPGA geliştirme kartına indirin.Aynı zamanda kaynaklar işgal edildi ve Hesaplama hızı ve güç tüketimi değerlendirilir. Test sayesinde, yazılımda kodlanan veriler FPGA sisteminde doğru bir şekilde çözülebilir. Aynı zamanda genel amaçlı bir CPU ile karşılaştırıldığında sistemin hesaplama süreci 7 kattan fazla hızlanır ve çalışma gücü tüketimi CPU'nun sadece% 1.5'i kadardır.Bu nedenle hızlı hız ve düşük güç tüketimi özelliklerine sahiptir.Özellikle gerçek zamanlı, düşük güç gerektiren uygulamalar için uygundur. Taşınabilir cihazlarda tüketim.

Referanslar

Cao Xuehong, Zhang Zongcheng. Bilgi Teorisi ve Kodlama. Beijing: Tsinghua University Press, 2016.

Zhang Dinghui, Li Jinghong, Zuo Xiaowu. Sinir Ağı Kodlama ve Kod Çözme. Ulusal Gençlik İletişim Konferansı.2002.

Wang Yasi, Otomatik kodlayıcıların derin öğrenmede ifade yeteneği üzerine araştırma Harbin: Harbin Teknoloji Enstitüsü, 2014.

Li Shifeng.Kendini kodlayan sinir ağına dayalı metin özelliği seçimi üzerine araştırma. Tianjin: Tianjin Bilim ve Teknoloji Üniversitesi, 2016.

Bai Yuting, Zhang Gang. AVS entropi kodlamasının FPGA uygulaması. Yazılım, 2012, 33 (2): 102-104, 156.

Chen Zhangjin, Zhong Guohai, Bi Zhuo. Düşük maliyetli FPGA tabanlı yüksek hızlı bir 8B / 10B codec tasarımı. Mikrobilgisayar Bilgileri, 2012, 28 (10): 189-190, 480.

Li Huimin, Fan Xitian, Jiao Li ve diğerleri. Büyük ölçekli evrişimli sinir ağları için yüksek performanslı bir FPGA tabanlı hızlandırıcı. Alan Programlanabilir Mantık ve Uygulamalar (FPL), 201626th International Conference on.IEEE, 2016: 1-9.

NURVITADHI E, VENKATESH G, SIM J ve diğerleri.FpGA'lar yeni nesil derin sinir ağlarını hızlandırmada GPU'ları yenebilir mi? 2017 ACM / SIGDA Uluslararası Alan Programlanabilir Kapı Dizileri Sempozyumu Bildirileri. ACM: 5-14.

CYBENKO G. Sigmoidal bir fonksiyonun üst üste binmesi ile yaklaşım Kontrol, Sinyaller ve Sistemlerin Matematiği (MCSS), 1989, 2 (4): 303-314.

BENGIO Y. YZ için derin mimarileri öğrenmek. Temeller ve eğilimler? Makine Öğreniminde, 2009, 2 (1): 1-127.

Lu Yaping Derin ağlar için otomatik kodlayıcılar üzerine araştırma Suzhou: Soochow Üniversitesi, 2016.

Tensorflow.hard_sigmoid tanımı..https: //www.tensorflow.org/api_docs/python/tf/contrib/keras/backend/hard_sigmoid.

Zhang Feng, Pan Jining, Zhu Zhenrong. SPI moduna dayalı Micro SD kart sürücüsünün tasarımı ve doğrulaması. Communication World, 2017 (12): 3-4.

yazar bilgileri:

Zhou Songjiang, Li Shengchen, Liu Ming

(Bilgi Fotoniği ve Optik İletişim Enstitüsü, Pekin Posta ve Telekomünikasyon Üniversitesi, Pekin 100876)

Long Xiaohua, kötülüğe ve kötülüğe karşı özel mücadeleyi araştırmak için Jishou, Huayuan'a gitti.
önceki
"Isn't a Problem", Çin tarzı insan toplumunu hicveden, elle boyanmış bir poster yayınladı
Sonraki
Pan Asia Automotive Technology Center, gelecekteki temel Ar-Ge yeteneklerini geliştirmeye çalışıyor
Soğuk, Milli Gün dosyaları "gizem" gibi
"Akademik Belge" EKF'nin otomatik parazit reddetme uçuş kontrol sisteminin tasarımını iyileştirin
Zhangjiajie: "Televizyon Yüz Yüze Siyaset Soran" ın beşinci sezonu başarıyla sona erdi
Beihang Cai Weide: Blockchain'in Yeni Hesaplama Altyapısı | CCF-GAIR 2017
XGIMI Teknolojisi, CCTV tarafından övüldü: Teknolojik yenilik ve virajlarda sollama, yerel projeksiyon pazarında ilk sırada yer alan
Sonunda, nihayet kurulur ve kötülük bastırılmaz!
Pikachu, bekar köpekleri kurtarmak için sinemadaki Bekarlar Günü'nde en şirin "çöpçatan" ı canlandırıyor
Bilgeliği görmek ofis eserleri yaratacak, siyah teknoloji uçan trapeze fayda sağlayacak
Hengnan County: Endüstriyel transfer ve endüstriyel dönüşüm ve iyileştirmeyi üstlenin
"Yeni Beyaz Leydi Efsanesi" Yu Hazy Ju Jingyi, kırık köprü ve şemsiyeyi yeniden üretiyor
Antik kent kaynıyor, Mi Home'un Çin'in kuzeybatısındaki ilk amiral mağazası 30'unda Xi'an'a yerleşecek
To Top