Single Cycle MIPS İşlemci – Adım6
Merhaba Arkadaşlar,
Bu yazımda sizlere yazdığınız bir program nasıl test edilir onu anlatıp bugüne kadar yazmış olduğumuz işlemcinin doğru işlem yaptığını kanıtlayan bir test programı yazacağım. İlk olarak test programı nasıl yazılır ona bakalım. Benim kullandığım program xilinx 11.1 versiyonu. Yazdığınız bütün dosyaların üstünde bulunan program tipini seçeceğiz. Eğer bir FPGA’e gömmek istiyorsanız implementation, yazdığınız programı test etmek istiyorsanız behavioral simulationi seçiyorsunuz. Aşağıda ekran görüntüsüne bakabilirsiniz:
Devamı...Single Cycle MIPS İşlemci – Adım5
Merhaba arkadaşlar,
Bu yazımda sizlerde data memory(Veri Hafızası) ve son olarak bütün işlemciyi birleştiren en üst modülün kaynak kodunu paylaşacağım. Data memory’miz 256×4 = 1KB olacak. Basit bir ram modulu yazmıştık zaten, bu da diğeri gibi yazılacak.
Devamı...Single Cycle MIPS İşlemci – Adım4
Merhaba Arkadaşlar,
Bu yazımda mips single cycle işlemci için bir kontroller tasarlayacağım ve daha önce yazdığımız bütün modulleri mips adı altında bir top modülde toplayacağım. Kontroller’in yapımı bir işlemci tasarlarken en zor adımlardan biridir çünkü bütün işlemlerin kontol sinyalleri burda üretilir. Anlaşılması daha kolay olması açısından kontroller bu dizyanda iki parçaya bölündü. Birinci kısımda mux’ların seçiminin yapıldığı genel kontrol sinyalleri üretiliyor. İkinci kısımda ise alu-kontrol sinyalleri üretiliyor.
Devamı...Single Cycle MIPS İşlemci – Adım3
Merhaba Arkadaşlar,
Single cycle CPU tasarımına Register file ve ALU ile devam ediyoruz.
- Register File
Register File da adından da anlaşılacağı 32 register’in bulunduğu yer. Özel olarak zero registerin içi her zaman sıfır olacak ve MIPS gereği değiştirelemeyecek. Kısaca oluşturacağımız yapı aşağıdaki gibi olacaktır.
Devamı...Single Cycle MIPS İşlemci – Adım2
Merhaba Arkadaşlar,
Bu yazımda sizlere program counter(PC) ve instruction memory hakkında bilgi vereceğim ve kaynak kodlarını sizinle paylaşacağım.
- Program Counter (PC):
Program counter Türkçe’ye çevirecek olursak yazdığımız programı saymaya yarayan bir yapı diyebiliriz. Örneğin 3 instruction içeren bir program yazdık diyelim :
Devamı...Single Cycle MIPS İşlemci – Adım0
Merhaba Arkadaşlar,
Bu yazımda sizlerle parçalı olarak MIPS(32-bit) single cycle CPU nasıl gerçeklenir onu adım adım anlatacağım. Her parça yazımda bir kaç modul(VHDL dilinde yazılan her bir kaynak kod) yazarak devam edeceğim. En sonunda da bu parçaları birleştirip, 32 bit bir işlemciye sahip olacağınız bir yazı ortaya çıkacak.
Devamı...FPGA Üzerinde Multiplexer ve Mantık Kapıları
Arkadaşlar bu yazımızda FPGA üzerinde mantık kapıları ve multiplexer’ın nasıl oluşturulacağını anlatacağım. Anlatımı baştan sona videoya kadettim. Kısaca özetlemek gerekirse yazdığımız vhdl kodu bir multiplexer’a bağlı olarak gelen seçim bilgilerine göre 4 bitlik iki giriş sinyalini mantıksal kapilar aracılığı ile işleme sokuyor ve bu sonuçlara göre çıktı üretiyor.
Devamı...Quartus II ile DE2 Geliştirme Kitinin Programlanması
Bu yazımızda sizlere Altera firmasının Quartus II programı ile DE2 Geliştirme Kart’larını nasıl programlayacağınızı anlatmaya çalışacağım. Quartus II programının ücretsiz olan web editonını buradan indirebilirsiniz.
Yazarak anlatmaktansa görselliğin daha anlaşılır olacağını düşündüğüm için,bir video hazırladım. Aşağıdaki videoyu izleyerek Quartus II ile bir proje nasıl oluşturulur, oluşturduğunuz projelere dosyalar nasıl eklenir ve projenizi geliştirme kartınıza nasıl yükleyebileceğinizi öğrenebilirsiniz.
VHDL’in Yapısı
Bu yazımızda FPGA’leri programalamak için en çok kullanılan Verilog ve VHDL dillerinden, VHDL’in yapısına değineceğiz. Verilog syntax olarak C’ ye çok benzerken, VHDL syntax ve yapı olarak farklıdır. İlk olarak belirleyicileri tanımlarken dikkat etmemiz gereken imla kurallarıyla başlayalım.
1.Bütün belirleyiciler alfabeden bir karakter (a-z yada A-Z) ile başlamak zorundadır:
“50mhzclock” yazarsanız rakamla başladğı için bunu geçerli bir belirleyici olarak kabul etmeyecektir.
Kabul edilebilir belirleyici örnekleri; clock, ANDkapisi, MULTIPLEXER vs.
Devamı...
