UART Controller IP

Herhangi bir AXI4-Lite master’ın dört adet 32-bit register üzerinden asenkron seri veri göndermesini ve almasını sağlayan, bellek eşlemeli bir UART. Bit zamanlaması, çerçeveleme, parity, aşırı örneklemeli (oversampled) alım örneklemesi ve hata tespiti tamamen donanımda yürütülür yazılım yalnızca tam baytları push/pop eder.

Genel Bakış

RunX UART Controller, bir AMBA AXI4-Lite register arayüzünü tam çift yönlü (full-duplex) asenkron bir seri hatta bağlar. Bit seviyesindeki tüm zamanlama, G_CLK_FREQ_HZ ve G_BAUD_RATE parametrelerinden build zamanında elaborasyonla türetilir; böylece çalışma zamanında programlanacak bir baud hızı register’ı yoktur ve bitstream ile sürücü arasında bir uyumsuzluk riski oluşmaz.

Bağımsız gönderim (transmit) ve alım (receive) FIFO’ları, yazılımı hat hızından ayrıştırır; alıcı ise her bitin merkezinde üç örneklemli bir çoğunluk oylamasıyla hattı güçlendirir, böylece hat üzerindeki tekil gürültüler bir çerçeveyi bozmaz. Maskelenebilir, seviye-duyarlı tek bir kesme, hem “TX alanı müsait” hem de “RX verisi hazır” durumlarını bildirir.

RUNX UART Controller IP'sine Genel Bakış RUNX UART Controller IP'sine Genel Bakış

Teknik Özellikler

ÖzellikDeğer
Veri yolu arayüzüAMBA AXI4-Lite, 4-bit adres, 32-bit veri
Çerçeveleme5 – 8 veri biti · None/Even/Odd parity · 1 – 2 stop biti
Baud hızıHerhangi biri (G_CLK_FREQ_HZ / G_BAUD_RATE’den elaborasyonla türetilir)
Aşırı örneklemeBit başına 3 örneklemli çoğunluk oylaması
FIFO derinliğiİkinin kuvveti (parametrelenebilir), bağımsız TX ve RX
Register’lar4 × 32-bit, 0x00 – 0x0C ofsetleri
KesmeSeviye-duyarlı tek bir hat, TX-alanı / RX-verisi / hata
Saat domainleri1 senkron (s_axi_aclk) + asenkron RX hattı
Kaynak diliVHDL, paketleyiciler için bir Verilog-2001 wrapper (IP_uart.v) ile birlikte
Üretici desteğiAMD Xilinx · Altera · Lattice · Microchip
Lojik ( Altera, Agilex 3)203 LUT / 211 register · 256 b bellek · 0 DSP
Fmax ( Altera)440.1 MHz

Altera rakamları, gerçek Quartus Prime sentez sonuçlarıdır. AMD/Xilinx lojiği, bir Kintex-7 referans build’inde ≈150–200 LUT / ≈193 register’dır; Xilinx Fmax değeri henüz belirlenmemiştir referans timing koşusu bir saat yolunu kısıtlamadığından, doğrulanmamış bir rakam vermek yerine hiçbir sayı belirtilmemiştir.

Karşılaştırma

RunX UARTAMD/Xilinx AXI UART LiteAltera UART coreMicrochip CoreUART
Kaynak kullanımı203 LUT / 211 FF89 LUT / 110 FF
Fmax440.1 MHz (Altera)416 MHz
Yazılımla kontrol edilebilir4 register + bare-metal C sürücübare-metal C sürücü
AXI desteğiAXI4-Lite slave, yerel (native)AXI4-Lite slave, yerel (native)
RX gürültü bağışıklığıBit başına 3 örneklemli çoğunluk oylamasıAşırı örnekleme yok

Diğer sütunları, güncel üretici veri sayfalarından (datasheet) tamamlanacaktır. Kaynak kullanımı ve frekans rakamları yalnızca aynı cihaz ailesi ve hız derecesinde (speed grade) ölçüldüğünde karşılaştırılabilir olduğundan, her hücre ölçümün alındığı parçayı belirtmelidir.

Parametreleştirme

Her parametre elaborasyon anında çözümlenir; böylece çalışma zamanında programlanması gereken hiçbir şey yoktur ve bitstream ile sürücü arasında bir sapma oluşamaz.

ParametreAmaç
G_CLK_FREQ_HZBaud üretecinin build edildiği sistem saat frekansı
G_BAUD_RATEHedef baud hızı, G_CLK_FREQ_HZ’e göre elaborasyonla türetilir
G_DATA_BITSÇerçeve başına veri biti, 5 – 8
G_PARITYNONE · EVEN · ODD
G_STOP_BITSÇerçeve başına stop biti, 1 – 2
G_FIFO_DEPTHHer iki FIFO’nun derinliği, ikinin kuvveti
G_DEVICEÜretici çıkarım (inference) ipucu: Xilinx · Altera · Lattice · Microchip · generic

Doğrulama

AlanDetay
OrtamKendi kendini denetleyen (self-checking) VHDL testbench’leri (tb_uart_full, tb_uart_master_top, tb_uart_verif)
Co-simülasyonBir DPI köprüsü üzerinden C/RTL sürücü co-simülasyonu
Senaryo coverage’ıÇerçeve formatları genelinde bayt loopback’i, FIFO taşması/boşalması (overflow/underflow), sticky hata bayraklarının tetiklenmesi ve temizlenmesi, TX/RX kesme durumları
Güncel durumYönlendirilmiş (directed) simülasyon başarılı; kısıtlı-rastgele (constrained-random) bir UVM ortamı, ayrı bir Doğrulama IP’si teslimatı olarak planlanmaktadır

Teslim Edilenler

  • ✓ Sentezlenebilir VHDL RTL kaynağı
  • ✓ IP paketleyicileri için şeffaf Verilog-2001 wrapper (IP_uart.v)
  • ✓ Bare-metal C sürücü ve register header dosyası
  • ✓ Timing constraint şablonu
  • ✓ Kendi kendini denetleyen testbench’ler ve simülasyon scriptleri
  • ✓ Ürün Kullanım Kılavuzu (PDF)
  • ✓ Blok diyagramı kaynak dosyası

Neden Bu Çekirdek

Baud hızı asla sapmaz. Bit hızı, çalışma zamanında programlanmaz; G_CLK_FREQ_HZ ve G_BAUD_RATE’den build zamanında elaborasyonla türetilir bir bitstream ile sürücüsü, hat hızı konusunda asla anlaşmazlığa düşemez.

Tasarım gereği çoklu-üretici desteği. RTL, hiçbir üretici-özel primitive örneklemez. Aynı kaynak kodu AMD Xilinx, Altera, Lattice ve Microchip’i hedefler; G_DEVICE yalnızca çıkarım (inference) ipuçlarını değiştirir.

Güçlendirilmiş alım yolu. Her bit merkezinde 3 örneklemli bir çoğunluk oylaması, bağımsız çerçeveleme ve parity kontrolleriyle birlikte; naif, tek örneklemli bir UART’ın gözden kaçıracağı türden tekil hat gürültülerini yakalar.

Yazılım dahildir. Çekirdekle birlikte blocking, timeout ve non-blocking transfer yollarına sahip bare-metal bir C sürücüsü teslim edilir; böylece devreye alma (bring-up), register seviyesinde bir entegrasyon uğraşı değil, bir fonksiyon çağrısı haline gelir.


© 2026 RunX Technology Inc. · Kritik Görev FPGA Tasarımı www.run-x.com · info@run-x.com