VHDL'de High-Speed Seri Interface Design'a Giriş

Modern dijital sistemler, dört gigabit'den fazla bir süredir veriye hızlı bir şekilde hareket etmek için yüksek hızlı seri protokollerine güveniyor ve PCI Express (PCIe), Ethernet ve USB, sinyal bütünlüğünü, saat alan geçişlerini, encoding şemalarını tanımlamak ve gerçek zamanlı hataları ikinci kez gerçekleştirmek için.Bu arayüzleri VHDL'de tasarlarken, dijital mantık tasarımını ve belirli protokollerin derin anlayışını gerektirir.

Bu makale, VHDL'de yüksek hızlı seri arayüzleri tasarlamak için kapsamlı bir kılavuz sunar, PCIe, Ethernet ve USB. Topics, protokol temelleri, tasarım zorlukları, anahtar VHDL teknikleri ve doğrulama stratejileri içerir. Her protokol, pratik uygulama rehberliği ile bireysel olarak incelenir.

Yüksek Hızlı Seri Protokollerinin Temelleri

Seri neden Paralel Üzerinde?

Yüksek hızlı seri bağlantıları, daha eski paralel otobüsleri değiştirir, çünkü pin sayılarını azaltırlar ve alıcının gelen geçişlerden gelen saati kurtarmasını gerektirir. Data is captured as specific pair (e.g., PCIe TX/RX) over one or more roads.The serial data stream contains saat gömülüyor, which requires the client to save the hours from the incoming Transitions.

Yaygınlık ve Scrambling

DC dengesini korumak ve saat kurtarma için yeterli geçiş sağlamak için, seri protokollerin line kodlama şemalarını çalıştırdığı:

  • [FONT=0)8b/10b kodlama[[Dönetici] – Gigabit Ethernet, PCIe Gen1/2 tarafından kullanılır ve USB 3.x. Her 8bit veri, 10bit sembolüne haritalanır, maksimum 5'in uzunluğuna garanti eder ve 4'ten fazla aynı sayıyı garanti eder.
  • [FONT=0]128b/130b kodlama[[Dönetici:0)[[[Dönetici:0)|128b/130b kodlama[0] – PCIe Gen3/4/5 ve 100GbE. Veri akışını rastgele bir şekilde düzeltin ve sadece 128 veri için 2 bit ekin eklenmeleri eklenir.
  • [FONT:0]64b/66b ve 64b/67b[DÜT:1] – 10GbE ve 25GbE varyantlarında, uyum sağlayan senkronizasyon başlıkları ile.

VHDL'de, enkoding/decoding mantığı kombinasyonal veya boru hatları olarak sentezlenmelidir, genellikle 8b/10b ve lineer geri bildirim kayıtları için 8b/10b ve lineer geri bildirim kayıtları (LFSR) kullanılarak yapılır.

Yüksek hızlı veri transferi başlamadan önce, seri bağlantıları hız, şerit kutupluluğu ve eşitleştirmeyi pazarlık etmek için bağlantı eğitimi gerçekleştirmektedir. Örneğin, www.FLT:0)Link Eğitim ve Durum State Machine (LTSSM))[Dönetici, konsülme, kurtarma, L0 (aktif), ve L1/L2 (düşük güç) Ethernet PHYs, reklam yeteneklerini reklam için otomatikleştirme.

VHDL'de High-Speed Interfaces için tasarım meydanları

VHDL'yi çoklu-gigabit seri bağlantıları için yazmak birkaç katkıda bulunmaz:

Saat Domain Crossing (CDC) ve senkronizasyon

Çoğu yüksek hızlı arayüzler birden fazla saat domaine sahiptir: veri saati seri akıştan kurtarıldı, sistem saati ve muhtemelen her şerit için ileri bir saat.Birsenkron alandan gelen veri geçişi, iki veya üç yüz ayak uçlu kelime ile geçilmelidir) veya Xilinx XPM veya Alternatif Alternatif Alternatif olarak Alternatif olarak Alternatif olarak Alternatif olarak Alternatif olarak Alternatif olarak HTMLSFO'lar için önerilen bir saattir.

Metastability

Bir saat kenarının yakınında sinyal değiştiğinde, yakalama kutusu bir metastable duruma girebilir. Yüksek veri oranları ve birden fazla saat alanı ile metastability bir güvenilirlik endişe olur. Uygun senkronizasyon zincirleri ve hataların zamanını hesaplamak (MTBF) çoğu FPGA cihazı senkronize MTBF raporları sağlar.

Signal Integrity ve I /O Standartları

VHDL doğrudan analog sinyal bütünlüğü yönetmez, ancak tasarım transceivers ile doğru bir şekilde arayüze ihtiyaç duyar (örneğin, Xilinx GTY veya Intel Transceiver). Dijital mantık transceiver'nin paralel yan arayüzü için zaman sınırlamaları karşılamalıdır (örneğin, PCS-PMA arayüzü).

Gerçek Zamanlı Hata

Seri bağlantılar gürültü, haç veya yanlış eşleştirmeler nedeniyle biraz hata tespiti (CRC, çeksum) ve yeniden geçiş (örneğin, PCIe'nin Data Link Katman ACK/NAK) bunları VHDL'de boru hatlarıyla uygulamaktadır.

Yüksek Hızlı Seri için Anahtar VHDL Tasarım Teknikleri

Borulining ve Retiming

Kombinasyon yolları birkaç kapıdan daha uzun süre zaman zaman zaman zaman zaman zaman zaman zaman zamanlaması ihlallerine neden olur. ek boru hatları aşamalarıyla kritik yolları parçalayın. VHDL tasarımcıları, özellikle kodlama / kodlama için, CRC komplikesi ve FIFO noktaları için. kayıt yapan mantığı yeniden yapılandırmayı önlemek için sentez özellikleri kullanın.

Satışcı Transceiver IP

Düşük seviyeli transceiver mantığı (serializer, deserializer, saat kurtarma) doğrudan VHDL'de FPGA'lar için uygulanmaz. Bunun yerine, tasarımcılar anında satıcıya sunulan IP çekirdeklerini (örneğin Xilinx GT Wizard, Intel Transceiver Toolkit).

Paketler ve Bileşenleri ile modüler tasarım

Projeyi sürekli olarak, işlevleri ve türleri için paketlere organize edin. gibi yeniden kullanılabilir bileşenler oluşturun:

  • [FONT:0]SerDes sarmalı [Döntgen: 1) Transceiver'in üzerinde Özet, 8b/10b veya gurer entegrasyon.
  • [FONT=0)Link state makinesi[[DÜT:1] – Protokole özel (örneğin Ethernet otomatik-negotiation, PCIe LTSSM).
  • [FONT=0)CRC motoru [Döneticiler için parametrelenebilir (CRC-32 for Ethernet, CRC-16 for USB, CRC-32C for PCIe).
  • [FONT:0)FIFO[[DÜT:1] – Konigurable derinlik, tip ve saat domainleri.

VHDL-2008'in [[0] çoklu-lane tasarımları için kullanın.

Synthesis Attributes ve Constraints

Her saat domain (input/ ⁇ gecikmeleri, saat grupları) için uygun zaman sınırlamaları ayarlama, [[Döneticileri:2) ve ESFLT:3, kritik senkronizasyon yollarını korumak için.For Xilinx için geçerli.

VHDL'de PCI Express'i Uygulamayın

PCIe Architecture Genel Bakış

PCIe bir tabakalı mimariyi takip ediyor: Fiziksel Katman, Data Link Katmanı ve İşlem Katmanı. Fiziksel Katman daha da Mantıksal (gelişme) ve Elektrik (PMA) ile uyumludur. çoğu VHDL çalışması, Data Link Katman ve İşlem Katmanına odaklanır, çünkü fiziksel Katmanı genellikle FPGA'larda sertleştirilmiş transceivers ve PHY IP ile idare edilir.

PCIe için Anahtar VHDL Bileşenler

  • [FONT=0)Lane Management[[Dönetici:0)[Döneticileri için] - Çok-lane tasarımları (x1, x2, x4, x8, x16), per-lane masasıew ve sembolü hizalama için desen dedektörleri uygulayın.
  • [FONT:0)Link Eğitim Devlet Makine (LTSSM))[Uygunlukta tanımlanmış 12 devlet makinesinin uygulanması.Her devlet belirli zamanlayıcıları ve karşıtları vardır. VHDL'de, gelişmiş saate karşı hassas bir işlem.
  • [FONT=0)Data Link Katman[DÜDÜT:1) - Dizi numarası izleme, CRC-32c nesli ve ACK /NAK protokolü.Gerekli paketler onaylayan bir yeniden deneme.
  • [FONT=0)Transaction Katman[DÜT:1)[Döneticiler bellek, I/O, yapılandırma ve mesaj TLPs (Transaction Katman Packets) Header nesli ve parsing, artı akış kontrolü kredilerle.

Pratik VHDL Örnek Snippet

-- Simplified LTSSM implementation (partial)
type ltssm_state is (DETECT, POLLING, CONFIGURATION, L0, ...);
signal current_state, next_state : ltssm_state;
process(clk, rst)
begin
 if rst = '1' then
 current_state <= DETECT;
 elsif rising_edge(clk) then
 current_state <= next_state;
 end if;
end process;

Not: Real LTSSM, PollingActive ve YapılandırmaComplete gibi zamanlayıcıları içerir. istikrarlı bir referans saati tarafından yönlendirilir.

PCIe Core'un Doğrulaması

PCIe karmaşıktır, doğru bir Fikri Mülkiyet (VIP) veya ticari bir simülasyon ortamı kullanmayı düşünün. VHDL testbenches TLP serisini ve kontrol yanıtlarını kullanabilir. Xilinx'in entegre PCIe bloğu [Dön bağlantı için][BİLMİŞ)[BİLMİŞİM)

VHDL'de Ethernet'i uygulama

Ethernet Protokolü Katmanları

OSI modelinden, Ethernet fiziksel katman (PHY) ve Data Link Katmanı (MAC) VHDL tasarımları, MAC (Media Access Controller) genellikle bir MII, GMII, RGMII veya SGMII otobüsleriyle dışsal bir PHY ile bağlantı kurmaktır.

Ethernet için Anahtar VHDL Bileşenler

  • [FONT=0)MAC Core – CSMA/CD (veya tam ekranlı) protokolü, çerçeve kasıtlı, ön nesil, CRC-32 check/append.
  • [FONT=0)PHY Interface[[DÜDÜDÜDÜDÜSÜSÜSÜSÜSÜSÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ: 0, 10GbE için, bir XGMII (32-bit veripath) veya seri arayüzü kullanın.
  • [FONT=0)Packet Buffer[[[Dönetici: 1) [FO veya çift-port RAM, gelen/outgoing çerçeveleri, aşırı akış ve alt akışları ele alan bir RAM.
  • [FONT=0)Auto-Negotiation[[Dönetici: 1 ) – Bir PHY yönetim arayüzü tasarlayın (örneğin MDIO), otomatik-ngotiation state makinesinin reklam yeteneklerinin uygulanması için uygulanır.

Seri Transceivers üzerinde Ethernet

1GbE SGMII veya 10GbE için, VHDL kodu, seri bağlantı ve şerit bağlantısını yönetmek zorundadır. Transceiver'nin sabit PCS modunda (örneğin, 8b/10b for SGMII) veya transceiver'yi bir ham seri olarak yapılandırın.

Pratik Örnek: CRC-32 Uygulama

Ethernet çerçeveleri için bir CRC-32. Boru hattı: Bir boru hattı VHDL mimarisi:

-- CRC-32 macro (IEEE 802.3 polynomial)
signal data_in : std_logic_vector(7 downto 0);
signal crc_out : std_logic_vector(31 downto 0);
...
crc_engine : entity work.crc32
 generic map (DATA_WIDTH => 8, CRC_WIDTH => 32)
 port map (clk, rst, data_valid, data_in, crc_out);

Dış Kaynak

Referans:0)IEEE 802.3 Ethernet Çalışma Grubu[Dönetici için [[Dönerli ve [[Dönemli x xAPP1082) için 1Gb/10Gb Ethernet tasarım yönergeleri için.

USB'yi VHDL'de uygulama

USB Genel Bakış

USB 3.0 ve 3.1, çift-bün mimarisi kullanır: bir miras USB 2.0 yolu (bireysel çift, 480 Mbps) ve süper hızlı bir yol ( 8b/10b kodlama, 10 Gbps'ye kadar). VHDL tasarımı için, yüksek hız hedeflemekteyse süper hızlı fiziksel ve bağlantı katmanına odaklanır. USB spesifikasyon USB, Link ve Protokol katmanları.

USB 3.x SuperSpeed için Anahtar VHDL Bileşenler

  • [FONT=0)Link Katman Devlet Makinesi[[Dönetici: 1 ) – Bağlantı başlangıç, güç yönetimi ve hata kurtarma. Devletler (örneğin, U0 (aktif), U1/U2/U3 (düşük güç) içerir.
  • [FONT:0]8b/10b Encoder/Decoder[[[Dönetici: 1 ) – USB 3.0 için bir VHDL görünümü veya sentezlenebilir ROM kullanın.
  • [FONT:0)Lane Deskewing) – SuperSpeed, COM (comma) karakterlerine dayanan sembolün belirlenmesine hala ihtiyaç duyar.
  • [FONT=0) FRANSIZI ([FONT) ve bağlantı komutları (LC) Framing dizilerini tanıyan bir devlet makinesi uygulayın (örneğin, SKP sipariş edilen setler).
  • [FONT=0)Link Komutanlığı Decoder[[[Dönetici: 1 ) – TS1, TS2 (eğitim) ve SKP (skip) gibi işlemler.

USB Device Controller Controller

USB cihazı için, VHDL tasarımı uç noktaları uygulamalıdır: bir mikro kontrol uç noktası (EP0) kurulum /status, toplu, kesme ve USB cihazını işlemek için çalışan bir bilgisayar cihazı.The protokol katmanı handles process requests and the data toggle protokolü.This is often together with a micro controller or a DMA engine. many FPGA design use a soft-core işlemci (e.g., MicroBlaze) running Hardware to handle USB device to handle USB device.

Dış Kaynak

ResmiFL:0) XP 3.1 Belirti[Dönetici: 1) VHDL-spic uygulama yönergeleri için gereklidir, bkz.D:2).Intel AN 141: USB 3.0 PHY Design).

Doğrulama ve Simülasyon Stratejileri

Testbench Architecture

Uygulamalı bağlantı komutları ve kontrol bağlantı devlet geçişleri oluşturmak için, CRC'yi doğrulama ve test etme (yarısı) için VHDL testibenches oluşturun.For PCIe, hizalayıcı eğitim dizilerini oluşturur.For PCIe, formasyonları ve kontrol bağlantı devlet geçişleri için.For Ethernet, send valid and permissions, verify CRC, and test operations (yarısı)

Modeller kullanarak, Vivado Simulator veya VCS

Satıcı IP modelleri dahil olmak üzere tam tasarıma ek olarak, yönlendirilmiş testler, kenar davalarını kapsamak için rastgele kısıtlanmış testler.For PCIe, izleme ve puanlama sağlayan bir doğrulama IP (VIP) kullanmayı düşünün.For Ethernet, transceiver modeli tipik olarak saat jitter ve sinyal yayılımını içerir.

Timing Closure and Post-Synthesis Simülasyon

sentezden sonra, tasarımın gerekli frekansı (örneğin, XGMII için 125 MHz) ile uyumlu gecikmeler ile çalıştırın.Influord /hold and Hour-out scheduling.Use satıcı tools' statik zamanlama analysis to ensure the design meet the required frequency (e.g., 125 MHz for RGMII, 250 MHz for XGMII).

FPGA Prototipleme ve Donanım Geçerliliği

FPGA Board'ı seçmek

Yüksek hızlı seri arayüzler için, uygun transceiver desteği olan bir yönetim kurulu seçin. Xilinx Kintex-7 / 12 inç + veya Intel Arria 10/Stratix 10 yüksek hızlı GTP / GTY /GTG transceivers.For the board has the correct Links: PCIe slot, SFP+ kafes (For Ethernet) veya USB 3.0 konektörü sunuyor.

Debugging Teknikleri

Entegre mantık analizörleri (Xilinx ILA, Intel Signal Tap) iç devletlere kullanın. Çünkü seri bağlantılar hızlı, transceiver paralel tarafta veri yakalamak.For PCIe, use a PCIe analysisr (e.g., Teledyne LeCroy) to check uyumluluğu kontrol etmek için bir ağ analizörü kullanın.

Ortak Pitfalls

  • Improper reset dizisi: transceivers genellikle belirli bir güç toplama ve sıfırlama sırasını gerektirir. Satıcının yönergelerini takip edin.
  • Saat: Geri kalan saat küresel bir saat olarak yollanmalıdır. Doğru saat yönetim parçaları kullanın (MMCM, PLL).
  • FIFO Overflow: Kullanıcı mantığının yeterince hızlı bir şekilde veri tüketebileceğini sağlayın. geri baskı mekanizmaları (örneğin, XOFF paketleri).

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

VHDL'de yüksek hızlı seri arayüzler tasarlayın, Ethernet ve USB, çok değerli bir görevde çalışan sağlam bir arayüz gerektirir.Veri merkezi iletişim, müşteri elektronikleri veya endüstriyel kontrol, bu VHDL tekniklerini yönetmek için dikkatli bir şekilde uygulamanızı sağlar.

[FONT:0)Dönemli Referanslar[Dönemli:0)

  • [FONT:0)PCI-SIG PCIe Base Vitamin).
  • [FONT=0]Xilinx XAPP1193: 7 Serisi FPGAs Transceiver Büyücü)
  • [FONT=0)IEEE 802.3 Ethernet Çalışma Grubu[Dönem: 1 )
  • [FONT=0)IZE ([FONT)
  • [FONT=0]Intel AN 141: USB 3.0 PHY Design).