Selamün aleyküm uzun zamandır yazmadığımı fark ettim. En son Logic tasarımı üzerine araştırma yapıyordum ama VHDL öğrenmemin ve Vivado üzerine uzmanlaşmamın acelesi dolayısıyla ara vermek zorunda kaldım. 1. Hedefim Vivado üzerinde uzmanaşıp sonrasında ise Pynq-Z1 kartını programlamayı öğrenmek.
Şimdilik ulaştığım seviye karta N-bit adder programı yüklemek oldu. Ama bundan önce VHDL kodunun kısımlarını açıklamak istiyorum.
`-Library and Package declerations(Bu kısımda standart ve user defined packages ı dahil edebiliyoruz.)
-Entity(Burası dış dünyayla tanımlamaların yapıldığı yer. Init kısmı gibi düşünülebilir.)
-Generic(Sabitler, tanımlamalar)
-Port(Portların tanımlanması -in -out -inout -std_logic -std_logic_vector)
-Architecture(Yapısal olarak her şeyi kurduğumuz yer Main fonksiyonu gibi düşünülebilir ama yazılımsal değil donanımsal atamalar yapıyoruz. Malum FPGA in yapısı sebebiyle...)
-Constants(Sabitlerin tanımlanması)
-Component declerations(Fonksiyon tanımlama gibi düşünülebilir ama tam değil. Aslında her dosya kendi başına belirli giriş ve çıkışları olan birer fonksiyondur. VHDL kodunda oluşturulan structureda alt birimler üst birimlerce bu şekilde kullanılır.)(Küçük not= Vivado da klasörlerle ve kodları dizmekle uğraşmaya gerek kalmaz bir source u diğerine component olarak tanımladığın anda program onu onun altına hierarchical yapıda atar.)
-Types(Burada farklı türler oluşturabiliyoruz. Daha sonra bunları signallere atamak da mümkün.)
-Signals(Başta giriş, çıkış ve ne tür sinyal olduğunu tanımladığımız sinyallerin özelliklerini tanımlıyoruz.Başlangıç değerleri vs.)
-Begin(tüm setupların bitmesi ile artık birşeyler yapabiliriz.)
-Component instantiations(Tanımlanan component e girdi ve çıktı olarak verilecek değer atmalarını yapıyoruz. Fonksiyon kullanmak gibi düşünülebilir.)
-Assingments(Bu kısımda signal değerlerine son atamaları yapılıyor.)
-Concurrent assingements(Dümdüz tanımlama yapılıyor. Burada if, switch case gibi yapılar kullanılabilir. Bir değere bir kere tanımlama yapılabilir yoksa hata verir.
-Sequencial assingments - process block(Burada bazı işlemlerle atamalar yapılabilir
-Combinational Process(Clock olmadan sinyal ataması yapılır.
-Sequencal Process(Atama yapılırken clock kullanılır.)
FPGA_Part_05
A.KARGI

Top comments (0)