Proje amacı
Bu projenin amacı, OV2643 kamerayı yapılandırmak için bir IP'yi özelleştirmektir. Üç önemli nokta var:
(1) Özel bir panoda bir sistemin kurulması gerekir (yani, mevcut bir geliştirme kartını kullanmıyoruz ve pano düzeyinde resmi bir destek paketi yok);
(2) Özel IP;
(3) EDK'da IIC veri yolunun kullanımı.
Bu rutin sayesinde, özel IP'nin kurulması ve kullanımı (pratik uygulamalarda, çoğu kendi kendine oluşturulmuş IP gerektirir) ve bazı özel protokolleri EDK'da uygulama yöntemine (işte IIC) aşina olacaksınız. (Not: bazı adımlar atlanacaktır)
Minimal bir sistem oluşturun
Sistemi kurarken, kendi yaptığımız bir kart kullandığımız için pano destek paketi (bsp) yoktur, bu nedenle aşağıdaki şekilde kırmızı kutuda kütüphane dosyalarını eklemeden bir boşluk bırakın.
Özel Bir Pano için Sistem Oluştur'u seçin. Şekilde gösterilen konfigürasyon, kartımızın bilgileriyle eşleşmektedir. 1, harici kristal osilatörün frekansını gösterir , Boyutunun daha sonra bahsedilen işlemcinin frekansından büyük olması gerekmez, işlemci frekansı harici kristal osilatörün frekansından daha yüksekse, sistem frekansı kendisiyle çarpacaktır. Ayarlanan harici kristal frekansı ucf dosyasında görüntülenebilir. 2 yer sıfırlama potansiyelini gösterir , Kartımız düşük seviyeli sıfırlamadır, bu yüzden burada Aktif Düşük'ü seçin. Bu parametreler aşağıdaki adımlarda görüntülenebilir ve değiştirilebilir.
Sonraki adım, daha önce geliştirme kartını kullanırkenki ile aynıdır Buradaki İşlemci Frekansının işlemci frekansı olduğu unutulmamalıdır. Ve aşağıdaki çevre birimi kutusunun boş olduğunu görebilirsiniz, çünkü BSP kitaplık dosyaları olmayan, kendi kendine yapılan bir kartız. Bitir öğesine tıklayın.
IP ekle
Minimum sistem kurulduktan sonra, sonraki adım ona IP eklemektir. Aşağıdaki şekil OV2643'ün arayüzünü göstermektedir.Bunlardan SDA ve SCL arayüzleri temelde IIC protokolüyle aynı olan SCCB protokolünü kullanır.Bu nedenle, bu iki portun çalışması xilinx ile birlikte gelen IP çekirdeği (AXI_IIC) eklenerek gerçekleştirilebilir. Diğer portlar için IP'yi özelleştirerek uyguluyoruz.
AXI_IIC ekle
AXI IIC Arayüzünün IP çekirdeğini göstermek için IP Kataloğunda doğrudan IIC'yi arayın.
Sadece bağlantı noktasını bağlayın, IP çekirdeğinin donanım bağlantısı hakkında söyleyecek hiçbir şeyi yoktur, odak noktası, daha sonra tartışılacak olan yazılım uygulamasıdır. (Chipcope portu da buraya bağlanmıştır. Sinyali daha iyi görebilmek için, chipcope kullanımına gelince, şimdilik burada görmezden geleceğim. Chipcope kullanımı ilerideki bir makalede ayrıntılı olarak anlatılacaktır).
Özel IP çekirdeği ekleyin
Donanıma tıklayın- > Çevre Birimi Oluşturun veya İçe Aktarın
Sonraki birkaç adım nispeten basittir ve atlanacaktır. Bu adıma ulaşıldığında 1, kütüphanede IP çekirdeğinin oluşturulması anlamına gelir, böylece onu gelecekte birden çok kez kullanacağız; 2, mevcut projede onu oluşturmak anlamına gelir, burada 2'yi seçiyorum.
IP çekirdeği ov2643_ports olarak adlandırılır. Adlandırma için de kurallar vardır.Büyük harf içeremez ve bir sayı ile başlayamaz.İsim yanlışsa yazı tipi rengi kırmızıdır. Aşağıdaki 1.00.a sürüm numarasıdır.
Bu adıma ulaştıktan sonra, Kullanıcı mantığı yazılım kaydını kontrol etmeniz gerekir. Ancak bu şekilde, yazmaçları manipüle ederek işlevlerimizi gerçekleştirebilir ve EDK'da saf donanım yerine yazılım kullanma fikrine uyabiliriz.
Kayıt sayısının bu seçiminde, bir kayıt 32 bit içerir ve her bit bir portu temsil edebilir, bu da bir kayıt defterinin 32 portun kullanımını karşılayabileceği anlamına gelir. Ancak verilog programını daha sonra daha iyi anlamak için, burada iki yazmaç ayarlanır, bir yazmaç girdi için ve bir başka yazmaç çıktı için kullanılır.
Bu adımda üçü de kontrol edilir. Birincisi için, verilog'da daha iyi olduğum için bunu kontrol edin, böylece verilog IP çekirdeğinin Kullanıcı Mantığı kısmında kullanılır.VHDL'yi tercih edenler bu seçeneği işaretlemeden bırakabilirler.
Daha sonra, özel IP için bağlantı noktası bilgisi eklemek için çeşitli dosyaları değiştirmeniz gerekir.
İlki, Project Local PCores'daki MPD dosyasıdır. > USER'de yeni oluşturulan IP çekirdeğini bulun, MPD dosyasını açmak için View MPD'ye sağ tıklayın.
Bağlantı noktasını #PORT bölümüne aşağıdaki gibi ekleyin:
Sırada VHDL dosyası ve verilog dosyası var. Bu iki dosya proje klasöründedir. > pcores- > ov2643_ports_v1_00_a- > hdl. İki dosyayı açın ve istendiği gibi konuma ve ilgili biçime göre değiştirin.
VHDL dosya değişikliği, eklenecek 3 yer vardır:
Verilog dosyası değişikliği, önce bağlantı noktasını ekleyin:
Ardından, kendi gerekli mantığınızı nasıl ekleyeceğinize odaklanın.
Bu iki paragrafın anlamı çok basittir, yani slv_reg0 çıktı yazmacı olarak kullanılır ve slv_reg1 girdi yazmacı olarak kullanılır (ayrıca tüm bağlantı noktalarını tek bir yazmaçta da koyabiliriz). Bu iki kaydı çalıştırarak veri ve çıktı verisi alabiliriz.
Düzenledikten sonra, Proje'yi tıkladığınızdan emin olun. > Kullanıcı Depolarını yeniden tarayın, değişiklik etkili olabilir.
Sonraki adım, yerleşik IP çekirdeği eklenmiş IP çekirdeğinin çalışmasıyla aynıdır. > Bağlantı noktası > Ucf dosyasını değiştirebilirsiniz.
Alan sınırlamaları nedeniyle, SDK bölümü bir sonraki bölümde açıklanacaktır - "EDK'ya Giden Yol (3) -Özel IP (SDK Bölümü)"