I2C Master IP

Herhangi bir AXI4-Lite master’ın on iki adet 32-bit register üzerinden iki telli bir veri yolunu sürmesini sağlayan, bellek eşlemeli bir I2C master. Bit zamanlaması, çerçeveleme, onay (ACK) işleme, clock-stretching kurtarma ve çoklu-master arbitrajı tamamen donanımda yürütülür yazılım yalnızca işlemleri kuyruğa alır ve bir durum sözcüğünü (status word) okur.

Genel Bakış

RunX I2C Master Controller, bir AMBA AXI4-Lite register arayüzünü standart iki telli bir I2C veri yoluna bağlar. START, repeated-START ve STOP çerçevelemesini, 7-bit adreslemeyi, bayt seviyesinde onayı (ACK), programlanabilir bir zaman aşımına sahip slave clock-stretching’i ve çoklu-master arbitraj kaybı tespitini uygular. Bit zamanlaması SYS_CLK ve I2C_CLK parametrelerinden elaborasyon anında türetilir; böylece programlanacak bir çalışma zamanı saat bölücüsü yoktur ve bitstream ile sürücü arasında bir uyumsuzluk riski oluşmaz. 32 kelimelik bir gönderim (transmit) ve 32 kelimelik bir alım (receive) FIFO’su, yazılımı veri yolundan ayrıştırır: bir sürücü tüm bir işlem grubunu kuyruğa alabilir, tek bir biti ayarlayabilir ve tek bir tamamlanma bildirimini işleyebilir.

IP_i2c çekirdeğinin üst seviye yapısı: AXI4-Lite slave, TX/RX FIFO'lara sahip register dosyası ve SCL/SDA pedlerini süren protokol motoru. IP_i2c çekirdeğinin üst seviye yapısı: AXI4-Lite slave, TX/RX FIFO'lara sahip register dosyası ve SCL/SDA pedlerini süren protokol motoru.

Teknik Özellikler

ÖzellikDeğer
Veri yolu arayüzüAMBA AXI4-Lite, 8-bit adres, 32-bit veri
Bit hızlarıStandart 100 kHz, Fast 400 kHz (100 kHz – 800 kHz)
Adresleme7-bit, okuma/yazma yön biti ile
Veri yüküİşlem başına 0 – 4 bayt, grup başına en fazla 255 işlem
FIFO derinliği32 kelime × 32 bit, TX ve RX (parametrelenebilir)
FIFO depolamaBlock RAM · dağıtık RAM · register
Register’lar12 × 32-bit, 0x00 – 0x2C ofsetleri
KesmeAlınan veri üzerinde karşılaştırma eşleşmesiyle tetiklenen, seviye-duyarlı tek bir hat
Saat domainleri1 senkron (s_axi_aclk) + asenkron I2C veri yolu
Kaynak diliSystemVerilog, paketleyiciler için bir Verilog-2001 wrapper ile birlikte
Üretici desteğiAMD Xilinx · Altera · Microchip · Lattice
Lojik (ön izlenim)≈ 400 LUT / 375 FF · 2 × RAMB18 · 0 DSP
FmaxKarakterizasyon beklemede

Kaynak kullanım rakamları, Vivado 2025.2’de bir Kintex-7 xc7k70tfbv676-1 üzerinde, varsayılan parametre setiyle yapılan sentez sonrası (post-synthesis) sonuçlarıdır. Bu rakamlar ön niteliktedir ve cihaza özel karakterizasyona tabidir.

AXI4-Lite İşlemi

Bir register yazma işlemi, tek vuruşlu (single-beat) bir AXI4-Lite işlemidir; slave, kabul edilen bir yazma işlemini adres, veri ve bayt strobe’larını taşıyan tek bir backend darbesine (pulse) dönüştürür. AXI4-Lite yazma işlemi ve sonucunda oluşan iç yazma darbesi.

Karşılaştırma

RunX I2C MasterAMD/Xilinx AXI IICAltera i2c_masterMicrochip CoreI2C
Kaynak kullanımı~ 388 LUT / 375 FF / 2 BRAM375 LUT / 356 FF347 ALM / 483 FF
Fmax256 MHz280 MHz346 MHz
Yazılımla kontrol edilebilir12 register + bare-metal C sürücübare-metal C sürücübare-metal C sürücü
AXI desteğiAXI4-Lite slave, yerel (native)AXI4-Lite slave, yerel (native)yerel değil
Özel frekansElaborasyon anında ayarlanan herhangi bir SYS_CLK / I2C_CLK çiftiElaborasyon anında ayarlanan herhangi bir SYS_CLK / I2C_CLK çiftiHerhangi bir SYS_CLK 100/400 KHz I2C_CLK çifti, çalışma zamanında (runtime) ayarlanır!

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ç
SYS_CLKSistem saat frekansı, 1 MHz – 250 MHz
I2C_CLKHedef bit hızı, 100 kHz – 800 kHz
FIFO_DEPTHHer iki FIFO’nun derinliği, 32-bit kelime cinsinden
FIFO_MEM_TYPEblock · distributed · REG
DEVICEÜretici çıkarım (inference) ipucu: Xilinx · Altera · Lattice · Microchip · generic
VERSION / BUILD_DATESalt okunur (read-only) ID register’ları tarafından döndürülen değerler

Doğrulama

Çekirdek, yalnızca RTL’siyle değil, doğrulama ortamıyla birlikte teslim edilir. Bir UVM doğrulama IP’si; master ve slave agent’ları, START/STOP çerçevelemesi ve onay (ACK) davranışı için protokol denetleyicilerini, bir scoreboard’u ve adresleme modları, bayt sayıları, clock-stretching ve arbitraj senaryoları genelinde fonksiyonel coverage’ı sağlar.

AlanDetay
OrtamUVM agent’ları, protokol denetleyicileri, scoreboard, fonksiyonel coverage
SimülatörlerVivado xsim · Questa / ModelSim
Teslim edilen scriptlerHer iki simülatör için testbench ve regresyon çalıştırıcıları (runner)
Senaryo coverage’ıAdresleme, bayt sayısı, clock-stretching, arbitraj kaybı, NACK
Güncel durumEn güncel RTL revizyonuna karşı regresyon beklemede

Teslim Edilenler

  • ✓ Sentezlenebilir SystemVerilog RTL kaynağı
  • ✓ IP paketleyicileri ve şifreleme akışları için şeffaf Verilog-2001 wrapper
  • ✓ Bare-metal C sürücü ve register header dosyası
  • ✓ Timing constraint şablonu
  • ✓ xsim ve Questa için simülasyon çalıştırma scriptleri
  • ✓ UVM doğrulama IP’si (ayrı lisanslanır)
  • ✓ Ürün Kullanım Kılavuzu (PDF)
  • ✓ Blok diyagramları ve WaveDrom zamanlama kaynak dosyaları

Neden Bu Çekirdek?

Doğrulama. Buradaki fark yaratan unsur, doğrulama ortamının sonradan akla gelen bir ek değil, RTL ile birlikte teslim edilen ve iki simülatörde çalıştırılabilen, protokol denetleyicilerine ve coverage’a sahip bir UVM VIP ürünü olmasıdır.

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

Parametreleştirme. Saat oranı, FIFO derinliği, FIFO depolama biçimi, hedef cihaz ve tanımlama register’larının tümü elaborasyon-zamanı parametreleridir. Bit hızı programlanmaz, türetilir; dolayısıyla bir build çalışma zamanında yanlış yapılandırılamaz.

Yazılım dahildir. Çekirdekle birlikte dokümante edilmiş bir API’ye 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