Picproje Elektronik Sitesi

PICPROJE PROGRAMLAMA DERSLERİ => FPGA Öğreniyorum => Konuyu başlatan: 94onur94 - 23 Mart 2021, 12:47:05

Başlık: SDRAM kullanımı
Gönderen: 94onur94 - 23 Mart 2021, 12:47:05
Merhaba arkadaşlar, elimde bulunan IS42S16400 model 64-Mbitlik SDRAM ile çalışmalar yapıyorum. Rastgele adreslere 16-bit veri yazıp okuma yapıyorum. Yazmada sorun yok ama okuma tarafında sorun yaşıyorum. Linkteki SDRAM kontrolcü modelini kullandım. Tasarlayan arkadaş IS42S16160G kullanmış. Zamanlama ve adres büyüklüklerini kendi entegreme göre değiştirdim.

(https://i.ibb.co/pJmFnB9/timing.png) (https://ibb.co/pJmFnB9)

Tasarladığım test programında aşağıdaki adreslere belirttiğim değerleri yazdırıp sonrasında okuma yaptırdım.

Yazma işlemi;
 1024 adresine -> 3000 + state
 2097152 adresine -> 16000 + state
 2048 adresine -> 12000 + state
 8192 adresine -> 6800 + state
 16384 adresine -> 1800 + state
 32768 adresine -> 5862 + state

Resimde görüldüğü gibi yazdığım veriler doğru bir şekilde okundu.
(https://i.ibb.co/4fF9z7R/true.png) (https://ibb.co/4fF9z7R)

Ancak herhangi bir adresi yada adres içeriğini değiştirip okuma yaparsam, adres içeriği hatalı okunuyor.
2097152 adresi içeriğini 19000 olarak değiştirdim. Bu adresi doğru okudu ama 1024 adresini 1814 olarak okudu.
(https://i.ibb.co/DKzFVJh/false.png) (https://ibb.co/DKzFVJh)

Bazen ilk yüklemede de hatalı okuma yapıyor. Neden bu şekilde hatalı okuma yapıyor?

SDRAM: https://bertantaskin.com/fpga-ile-sdr-sdram-kontrolu/
SDRAM_Top: https://github.com/onur94/FPGA/blob/master/SDRAM_Controller_Fifo.vhd