UM-BUS Veriyolu Test Sisteminde PCIe Tasarımı ve Uygulaması

UM-BUS, dinamik yeniden yapılandırma özelliğine sahip yüksek hızlı bir seri veri yoludur. UM-BUS veriyolunun aktarım hızı ve bant genişliği esnekliği açısından avantajlarını doğrulamak için, bu makale bir UM-BUS test sistemi tasarladı, işlevi toplanan veri yolunu SDRAM belleğine tamponlamak ve FPGA tarafı SDRAM belleğini ve PC'yi gerçekleştirmektir. İletişim, analiz ve işleme için verileri bilgisayara aktarın.

PCIe1.1 (PCI Express) bakış açısına göre noktadan noktaya seri bağlantı, tam çift yönlü aktarım benimser ve gerçek ihtiyaçlara göre x1, x4, x8 ve x16 kanallarında esnek bir şekilde yapılandırılabilir ve tek kanallı tek yönlü iletim bant genişliği 250 MB / s'ye ulaşabilir , Bu makale, SDRAM bellek ve PC arasındaki iletişim aktarım tasarımını birlikte gerçekleştirmek için DMA (Doğrudan Bellek Erişimi) iletim mekanizmasına dayalı PCIe1.1x4 kanalını kullanır.

1 Araştırma geçmişi

1.1 UM-BUS'a Giriş

UM-BUS veri yolu, çok hatlı eşzamanlı yedekli veri yolu topolojisini benimser, düğüm ara bağlantı modunu benimser, 30'a kadar veri yolu düğümü cihazını bağlayabilir ve eşzamanlı veri iletimi için 32 kanal kullanır ve tek kanal hızı 200 Mb / sn'ye ulaşabilir . Topolojik sonuç Şekil 1'de gösterilmektedir, burada n, veriyolundaki düğüm sayısını ve m fiziksel kanal sayısını temsil eder.

Bu makaledeki UM-BUS veri yolu test sistemi, 16 kanallı eşzamanlı iletim kullanan UM-BUS veri yolu için tasarlanmıştır.Teorik hız, mevcut test ve uygulama bant genişliği gereksinimlerinin çoğunu karşılayan 400 MB / sn'ye ulaşabilir. Toplanan yüksek hızlı veri yolu verilerini analiz ve işleme için bilgisayara aktarmak ve test işlevi gereksinimlerini tamamlamak için bu belge, UM-BUS veri yolu test sisteminde PCIe1.1 teknolojisini tasarlar ve uygular.

Şekil 2'de gösterildiği gibi, UM-BUS test sisteminde, sistem, PC'nin veri toplama modülü tarafından toplanan ve işlenen verileri harici bir SDRAM bellek aracılığıyla arabelleğe almasını ve ardından verileri PCIe arabirimi aracılığıyla depolama için PC'ye aktarmasını gerektirir. Şu anda, UM-BUS veri yolu veri toplama modülü ve yüksek hızlı önbellek modülünün tasarımı tamamlanmıştır Bu makale, PCIe iletişim arayüzünün tasarımı ve uygulanmasına odaklanmaktadır.

2 PCIe iletişim arayüz tasarımı

PCIe veriyolunun yüksek bant genişliği avantajından daha iyi yararlanmak için, bu makale, PCIe IP sabit çekirdekli PCIe IP sabit çekirdekli Uç Nokta Bloğu Plus ile içine yerleştirilen PCIe iletişim arabirimini tasarlamak için Xilinx'in Virtex-5 serisi XC5VLX85T FPGA'sını kullanır. CPU'nun çalışma verimliliğini artırmak için, DMA tasarımı tanıtıldı Bu makale, yüksek hızlı veri aktarımını kontrol etmek için PCIe IP sabit çekirdeğini kontrol etmek için veri yolu ana DMA (BUS Ana DMA, BMD) yöntemini kullanır.

3 donanım mantık tasarımı

Xilinx Company'nin XC5VLX85T PFGA'sını Windows sistem platformu altında, Xilinx'in XAPP1052 referans durumuna göre hedefleyerek, PCIe veri yolunun BMD işlevinin mantık tasarımı gerçekleştirildi.

Şekil 3'te gösterildiği gibi, BMD esas olarak aşağıdaki beş bölümden oluşur:

(1) PCIe IP sabit çekirdek: diğer PCIe cihazlarıyla harici olarak iletişim kurar ve gönderen motor ve alıcı motorla dahili olarak veri iletir.

(2) Cihaz kontrol modülü: Alıcı motor tarafından ayrıştırılan verileri alın ve verileri SDRAM'de saklayın; TLP paketlerini düzenlemek için gönderen motor tarafından kullanılmak üzere SDRAM'deki verileri okuyun. PCIe IP çekirdeği ve SDRAM'ın her iki tarafında farklı saat alanlarının ve farklı hızların veri tamponlaması ve bit genişliği dönüşümünü eşleştirmek için bir FIFO tampon modülü tasarlanmıştır.

(3) Kontrol modülünü kaydedin: Bilgisayardan komutları ve konfigürasyonları analiz edin ve ilgili işlemleri gerçekleştirmek için gönderen motora, alıcı motora ve cihaz kontrol modülüne bildirimde bulunun.

(4) Motor modülünün alınması: TLP paketinin alınması ve ayrıştırılması, TLP'nin başlık bilgisine göre kayıt kontrol modülünün kaydına karşılık gelen verilerin yazılması veya alınan bellek okuma TLP'nin paketinin açılması.

(5) Motor modülünün gönderilmesi: TLP paketlerine gönderilecek verilerin düzenlenmesi ve PCIE IP çekirdeğine gönderilmesinden sorumludur.

3.1 DMA iletiminin mantık tasarımı ve gerçekleştirilmesi

DMA aktarımı, DMA okuma (PC uçtan FPGA ucuna) ve DMA yazma (FPGA uçtan PC ucuna) olmak üzere iki işlemi içerir.

3.1.1 DMA okuma tasarımı ve uygulaması

DMA okuma işlemi iki işlemi içerir: Gönderen motor, DMA okuma talebi TLP'sini birleştirir ve gönderir ve alıcı motor, PC tarafından döndürülen CPLD TLP'yi alır.

Bu makale, alıcı motorda 4 TAG hafızası kurar.Her TAG hafızası, paketi tamamlamayı bekleyen bir okuma talebine karşılık gelir.TAG hafızası, cihaz erişim adresini ve okuma talebinin uzunluğunu saklamak için kullanılır.Her okuma talebi için, PC daha fazlasını kullanabilir Bir CPLD TLP yanıt verir PC CPLD TLP'yi gönderdiğinde, alıcı motor, cihaz tarafında SDRAM'ın yazma adresini elde etmek için CPLD TLP'deki TAG tanımlayıcısına göre karşılık gelen TAG belleğini arar. Bu nedenle, gönderen motor bir okuma talebi TLP'si gönderdiğinde, mevcut TAG hafızasını beklemeli ve okuma talebinin TAG tanımlayıcısı olarak mevcut TAG hafıza numarasını kullanmalıdır. Mevcut ETİKET'in önceliği hariç tutulduğunda, öncelik 0, 2, 1, 3'e ayarlanır. Aşağıdaki program parçaları, TAG boşta sinyali TAG_empty_o ve alıcı motordaki TAG etiketi TAG_empty_Index öncelik ayarı yöntemidir; burada TAG_Valid, alıcı motordur ETİKET'e karşılık gelen ETİKET.

Bunun için tasarlanan DMA okuma işlemi aşağıdaki gibidir:

(1) DMA okuma isteği TLP'si gönder

Toplam rmrd_count DMA okuma talebi TLP'lerinin gönderilmesi gerekir ve rmrd_count kayıt kontrol modülündeki yazılım tarafından ayarlanır. Alıcı motor boşta bir ETİKET'e sahip olduğunda, DMA okuma talebi TLP'sinin ilk 64 bitini gönderin ve TAG kimliği olarak boşta TAG numarasını TAG_empty_Index_i, yani trn_rd = {TAG_empty_Index_i} kullanın.

32 bit adres bilgisine göre DMA okuma talebi TLP'sinin ikinci 64 bitini birleştirin ve gönderin.

(2) PC tarafından iade edilen CPLD TLP'yi alın

Süreç Şekil 4'te gösterilmektedir.

CPLD TLP'nin ilk 64 bitini alın ve TLP paketinin veri uzunluğunu ayrıştırın.

Alıcı tampon FIFO boş olduğunda ve alınan TAG geçerli olduğunda, analizle elde edilen veriler tamponlama için FIFO'ya yazılır.

CPLD TLP takip verilerini alın ve arabelleğe almak için FIFO'ya yazın.

CPLD TLP iletimi tamamlandıysa, alınan veri uzunluğunu değerlendirin. Gerçek alınan veri uzunluğu TLP paketinin iletim uzunluğu ile aynıysa, mevcut CPLD TLP doğru bir şekilde alınır ve TAG geçerli bayrağı temizlenir Bu zamanda, TAG belleği boş durumdadır ve yeni bir DMA okuma talebi için kullanılabilir.

3.1.2 DMA yazma tasarımı ve uygulaması

DMA yazma işleminin ana yöntemi, TLP başlığındaki her alanı doğru bir şekilde doldurmak ve verileri 64 bit'e göre TLP başlığına paralel olarak yerleştirmek ve bunu PCIe IP sabit çekirdeğine iletmek ve ardından sert çekirdek, PCIe protokolünü kullanarak PC'ye seri olarak iletmektir. Gönderen motorda DMA yazma işlemi gerçekleştirilir, işlem prosedürü Şekil 5'te gösterildiği gibi gösterilir.

(1) SDRAM bellek verilerini okumak için FIFO gönderin. Aktarılacak veri miktarı 4096 B'den büyük veya ona eşit olduğunda, aktarılacak veri miktarı 4096 B'dir, aksi takdirde aktarılacak veri miktarı SDRAM'da kalan veri miktarıdır.

(2) FIFO okuma verisinin gönderilmesi tamamlanmışsa, TLP'leri yazmak için DMA'yı gönderin.

TLP paket sayısı değerini cur_wr_count olarak ayarlayın, başlangıç değeri sıfırdır: cur_wr_count < = cur_wr_count + 1'b1, DMA yazma isteğinin her alanını TLP başlığının ilk 64 bitine doldurun ve gönderin.

32 bit adresi ve ilk 32 bit veriyi TLP paket başlığının ikinci 64 bit sözcüğüne doldurun ve gönderin.

Her TLP tarafından iletilecek verileri, iletim için TLP'nin sonraki 64 bit kelimelerine doldurun.

(3) cur_wr_count, iletilmesi gereken TLP paketlerinin sayısının ayar değerine ulaşıncaya ve DMA yazma işlemi tamamlanıncaya kadar (2) adımını tekrarlayın.

3.2 SDRAM kontrol modülü tasarımı

Bu yazıda, harici genişletme SDRAM bellek yongası kullanılmıştır ve SDRAM denetleyicisi veri önbelleğe almayı gerçekleştirmek için yonga üzerinde programlanmıştır. İki adet 32 M × 16 bit SDRAM kullanılır.SDRAM bellek yalnızca tek bağlantı noktalı veri işlemlerini gerçekleştirir.SDRAM denetleyici, sol bağlantı noktası ve sağ bağlantı noktasıyla çift bağlantı noktalı denetleyici olarak tasarlanmıştır.Mantık olarak, denetleyici sol bağlantı noktası giriş verilerini ve sağ bağlantı noktasını gerçekleştirir. Bağlantı noktası çıkış verilerinin işlevi. Çift bağlantı noktalı tasarım, veri aktarım yönünün esnek kontrolünü gerçekleştirir.

Şekil 6, S0 ve S2'nin komutları beklediği SDRAM kontrol mantığının durum makinesidir. S1, DMA okuma modu tarafından alma tamponunda FIFO'da tamponlanan verilerin SDRAM'a yazma talebinde bulunduğunu, SDRAM denetleyicisinin sol port modu haline geldiğini ve verilerin SDRAM'da depolandığını belirtir. S3, bir DMA yazma talebi olduğunu belirtir ve gönderme arabelleği FIFO'nun SDRAM verilerini okuma isteği olduğunda, SDRAM denetleyicisi doğru bağlantı noktası modu olur ve veriler, SDRAM belleğinden okunduktan sonra gönderme arabelleği FIFO'ya aktarılır.

4 Yazılım tasarımı

Yazılım tasarımı, sürücü tasarımı ve uygulama yazılımı programlamayı içerir.

Bu makaledeki PCIe sürücüsü, Windows 7 işletim sistemi altında geliştirilmiş ve tasarlanmıştır ve donanım sürücüsü geliştirmenin iş yükünü büyük ölçüde basitleştiren ve güçlü bir platform taşınabilirliğine sahip olan Jungo'nun yazılımı WinDriver kullanılarak oluşturulmuştur. WinDriver, donanım aygıtının açıklamasına göre otomatik olarak bir aygıt sürücüsü kaynak kodu program çerçevesi oluşturabilen Xilinx'in BMD modunu destekler.Kullanıcı, sürücünün geliştirilmesini tamamlamak için Visual Studio 2015 altında uygulanacak işleve göre kod ekler.

Uygulama yazılımı programının geliştirilmesi Visual Studio2015'i kullanır, ana işlevi okuma ve yazma ile DMA okuma ve yazma için doğrudan erişimin doğruluğunu test etmektir. PCIe veri iletimini gerçekleştirme sürecinde, veri aktarım işlemi şu şekildedir: veriler PC belleğinden PCIe arabirimi aracılığıyla bir DMA okuma modunda FPGA dahili iletim arabelleği FIFO'ya aktarılır ve FPGA'nın dahili SDRAM kontrol mantığı verileri SDRAM belleğine iletir. Depolama ve aşağı doğru aktarım başarılı olduktan sonra, FPGA dahili mantığı, depolanan verileri SDRAM belleğinden okur ve ardından verileri, PCIe arabirimi üzerinden DMA yazarak PC belleğine geri aktarır ve verileri orijinal verilerle karşılaştırır.

5 FPGA test doğrulaması

Tasarım tarafından uygulanan PCIe arayüzünü test etmek ve doğrulamak için, donanım parçasını kartın FPGA yongasına yakmak, kartın PCIe altın parmağıyla bilgisayarın ana kartına takmak, bilgisayarı yeniden başlatmak ve yeni donanımın takılı olduğunu tespit etmek gerekir. Karşılık gelen PCIe sürücü dosyası yüklenebilir ve başarılı kurulumdan sonra işlev testi gerçekleştirilebilir.

Üst bilgisayar yazılımı arayüzü Şekil 7'de gösterilmektedir. Şekilden testin DMA okuma işlemini, DMA yazma işlemini ve kayıt okuma ve yazma işlemlerini içerdiğini görebilirsiniz.Adımlar aşağıdaki gibidir:

(1) DMA okuma işlemini gerçekleştirin, PC belleğine aktarılacak veri dosyasını okuyun ve ardından FPGA'nın ucuna yazın;

(2) DMA yazma işlemi, FPGA verileri DMA yazma yoluyla PC'ye geri yazar ve bir dosya biçiminde PC'ye kaydeder ve PC yazılı verileri ve ilk verileri doğrular;

(3) Doğrudan erişim işlemi, belirtilen adresteki kayıt defterine okuma ve yazma işlemleri.

DMA okuma ve yazma işlemleri sırasında, ChipScope Analyzer aracı, DMA okuma ve yazma işlemleri sırasında veri aktarımının doğruluğunu doğrulamak için her modülün port verilerini yakalamak için kullanılır. DMA okumasını örnek olarak alırsak, Şekil 8'de gösterildiği gibi, alıcı motor modülü, PCIe IP sabit çekirdeğinden trn_rd sinyalini alır, ayrıştırır ve geçerli verileri alır, alıcı tampon FIFO, geçerli verilerini okur ve dout sinyalini çıkarır ve SDRAM belleği, SDR_Din sinyalini okur. depolama. PC tarafından gönderilen orijinal veriler ile SDR_Din sinyal verileri karşılaştırıldığında, DMA okuma işleminin doğru olduğu bilinmektedir. Şekil 7'nin yazılım arayüzünden, DMA okuma ve yazma veri uzunluğunun 107640 B olduğu ve orijinal PC verilerinin ve DMA okuma ve yazma işlemlerinden dönen verilerin hepsinin aynı olduğu, dolayısıyla DMA okuma ve yazmanın doğru olduğu görülebilir.

Birçok testten sonra, her seferinde toplam iletişim verisi miktarı 100 GB'den az değildir ve iki DMA okuma ve yazma kanalında tutarsız veri bulunmaz ve çerçeve kaybı veya hatası yoktur. Bu hesaplamadan, PCIe iletişim verilerinin hata oranı 10-8'den düşüktür.

DMA okuma ve yazma hızları Tablo 1'de gösterilmektedir.

X4 modunda, DMA'nın eklenmesiyle yazma hızı yaklaşık 9 kat arttı, okuma hızı yaklaşık 10 kat arttı ve PCIe veriyolunun ortalama DMA okuma ve yazma hızı 500 MB / sn'nin üzerinde sabitlendi ve tümü 16 kanallı veri yolu test sistemini aştı 400 MB / s yüksek hızlı veri aktarım gereksinimleri.

6. Sonuç

Bu belge, UM-BUS veri yolu test sistemindeki PCIe1.1 x4 bağlantı kanalının uygulama şemasını tasarlar ve gerçekleştirir ve veri yolu test sisteminde PCIe iletişim arabirim modülü ile PC arasındaki yüksek hızlı veri aktarımını çözmek için FPGA tabanlı PCIe veri yolu DMA veri iletimini kullanır. Sorun ve test sisteminde SDRAM önbellek işlemesi tamamlandı ve son olarak PCIe işlevini WinDriver yazılımı ile test etti. Test sonuçları, PCIe veriyolunun DMA okuma ve yazma hızının, UM-BUS veriyolunda 16 kanallı eşzamanlı iletim ile veri yolu test sisteminin 400 MB / sn bant genişliği gereksinimini aşan 500 MB / sn'nin üzerinde kararlı olduğunu göstermektedir.

Referanslar

Zhang Weigong, Zhou Jiqin, Li Jie, ve diğerleri UM-BUS veri yolu ve erişim mimarisi Açta Electronica Sinica, 2015, 43 (9): 1776-1785.

Deng Zhe, Zhang Weigong, Zhu Xiaoyan, vb Dinamik Yeniden Yapılandırılabilir Veri Yolu için Veri İletim Yönetim Yönteminin Tasarımı ve Uygulanması Bilgisayar Mühendisliği, 2013, 39 (1): 264-269.

Wang Chunliang. UM-BUS sistemine dayalı otobüs test şeması üzerine araştırma Pekin: Capital Normal University, 2014.

Wang Jialiang, Zhao Shuguang.PCI-E arabirimi ve DMA denetleyici tasarımının FPGA ile uygulanması Bilgisayar Teknolojisi ve Geliştirme, 2011, 21 (6): 181-184.

Wang Zhiguang, HD Yun. FPGA tabanlı PCIe veri yolu arabirimine dayalı DMA denetleyici tasarımı. Elektronik Teknoloji Uygulaması, 2018, 44 (1): 9-12.

Li Chao, Qiu Keni, Zhang Weigong, vb. PCIE veri yolu ana moduna dayalı DMA yüksek hızlı veri iletim sisteminin tasarımı Elektronik Teknolojinin Uygulanması, 2015, 41 (9): 142-145.

Xilinx DS551.LogiCORE IP uç nokta bloğu artı PCI express için v1.15. 2011.

LAWLEY J.Bus ana performans gösterimi Xilinx uç nokta PCI ekspres çözümleri için referans tasarımı. ABD: Xilinx, 2015.

Wang Qi. PCI Express Mimarisine Giriş. Beijing: Mechanical Industry Press, 2010.

yazar bilgileri:

Güneş Fengxia 1, Zhang Weigong 1, 2, 3, Zhou Jiqin 3, Wang Ying 1

(1. Bilgi Mühendisliği Okulu, Capital Normal Üniversitesi, Pekin 100048;

2. Capital Normal Üniversitesi Pekin Yüksek Hassasiyetli Görüntüleme Teknolojisi Yenilik Merkezi, Pekin 100048;

3. Yüksek Güvenilirlik Gömülü Sistem Teknolojisi için Pekin Mühendislik Teknolojisi Araştırma Merkezi, Capital Normal Üniversitesi, Beijing 100048)

İki kız arkadaş "esrarengiz bir şekilde" birbiri ardına kaybolur, adam çöker
önceki
SRAM FPGA Tek Etkinlik Etkisi Güçlendirme Platformunun Tasarımı
Sonraki
Kalçamı bükemiyorum! Türkiye'nin ABD'ye tekrar tekrar sert sözleri
Ayı çocukları, 32. kattaki çatıda "tavuk yeme" oyunu oynuyor
[Blog yayını seri] Çalıştır, SOC (1) -yazılım donanımı nasıl kontrol eder?
1 Haziran'dan itibaren Çin hangi ABD çiplerine gümrük vergisi uygulayacak? Hangi zincirleme reaksiyona sahip olacak?
Fransızlar yalnız kalmak istemiyor: 7 savaşçı uçak gemisinden kalkıyor ve Güney Çin Denizi'nin çevresindeki güçlere acil iniş yapıyor
Okumaya değer üst düzey bir resmi konuşma
Çok nadir! ABD Ordusu ayrıca bizden sadece üç yıl sonra satın alınan S300 hava savunma füzelerine sahip.
WWDC yeni sona erdi ve her yerde 40.000 Mac Pro var. Bu operasyon nedir?
Hava fotoğrafçılığı: Dragon Boat Festivalini karşılamak için Dragon Boat Race
Harbin Central Caddesi'ne 30 "polis çiçeği" eklendi
"Macaron Play with Pictures" ın ana yaratıcısı ile röportaj: 30 milyon kişi kullanıyor, en eğlenceli kesme uygulamasını nasıl oluşturuyorlar?
Çevirmene gerek yok! Bu kullanımı kolay çok dilli çeviri uygulaması seyahat etmeyi kolaylaştırır
To Top