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.
Teknik Özellikler
| Özellik | Değer |
|---|---|
| Veri yolu arayüzü | AMBA AXI4-Lite, 4-bit adres, 32-bit veri |
| Çerçeveleme | 5 – 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ı örnekleme | Bit başına 3 örneklemli çoğunluk oylaması |
| FIFO derinliği | İkinin kuvveti (parametrelenebilir), bağımsız TX ve RX |
| Register’lar | 4 × 32-bit, 0x00 – 0x0C ofsetleri |
| Kesme | Seviye-duyarlı tek bir hat, TX-alanı / RX-verisi / hata |
| Saat domainleri | 1 senkron (s_axi_aclk) + asenkron RX hattı |
| Kaynak dili | VHDL, paketleyiciler için bir Verilog-2001 wrapper (IP_uart.v) ile birlikte |
| Üretici desteği | AMD 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 UART | AMD/Xilinx AXI UART Lite | Altera UART core | Microchip CoreUART | |
|---|---|---|---|---|
| Kaynak kullanımı | 203 LUT / 211 FF | 89 LUT / 110 FF | ||
| Fmax | 440.1 MHz (Altera) | 416 MHz | ||
| Yazılımla kontrol edilebilir | 4 register + bare-metal C sürücü | bare-metal C sürücü | ||
| AXI desteği | AXI4-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.
| Parametre | Amaç |
|---|---|
G_CLK_FREQ_HZ | Baud üretecinin build edildiği sistem saat frekansı |
G_BAUD_RATE | Hedef 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_PARITY | NONE · EVEN · ODD |
G_STOP_BITS | Çerçeve başına stop biti, 1 – 2 |
G_FIFO_DEPTH | Her iki FIFO’nun derinliği, ikinin kuvveti |
G_DEVICE | Üretici çıkarım (inference) ipucu: Xilinx · Altera · Lattice · Microchip · generic |
Doğrulama
| Alan | Detay |
|---|---|
| Ortam | Kendi kendini denetleyen (self-checking) VHDL testbench’leri (tb_uart_full, tb_uart_master_top, tb_uart_verif) |
| Co-simülasyon | Bir 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 durum | Yö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