Categories
System on Chip (SOC) Design

Midterm Sample Questions

Linux Fundamentals

  1. Bir klasördeki dosyaların tamamını listelip, dosyaların okuma yazma çalıştırma izinlerinin ne durumda olduğu nasıl listelenir?
  2. Root yetkisi nedir?
  3. sudo komutu nedir? Neden gerekli olmaktadır? Örnek vererek açıklayınız.
  4. /home/emre/x.txt dosyasını /var/tmp/test/y.txt dosyası olarak kopyalanmak isteniyor. İlgili komutu yazınız.
  5. CPU kaynağını en çok tüketen uygulama nasıl bulunur. Bu uygulamayı tespit ettikten sonra komut satırından nasıl öldürülür? Açıklayınız
  6. Bash script nedir?
  7. Bir dosyayı görüntülemek için more, tail, head komutları kullanılabilir. Komutların farkları nedir? Ne amaçla kullanılabilirler açıklayınız. Dosyanın ilk 3 satırını, dosyanın son 5 satırını gösteren komutları yazınız.
  8. Ortam değişkeni nedir? Ne amaçla kullanılır?
  9. Terminalde ‘KEY’ isminde bir ortam değişkeni oluşturup içerisine 1234 sayısını yazınız. Bir bash script oluşturup KEY ortam değişkenin değerini alıp karesini print yapan bir bash script geliştiriniz.
  10. Dışarıdan bir argüman alan bash script geliştiriniz. Bu bash script’e gelen argüman eğer 0 ise, şu anki tarih saati bulunduğu klasörde saat.txt dosyası yaratıp içerisine yazmalıdır. Kendisine gelen argüman 1 ise, bulunduğu klasörde deneme.txt dosyası var ise o dosyanın içeriğini print etmeli eğer dosya yok ise “Dosya Bulunamadi” uyarısını print etmelidir.

Embedded Linux Toolchain

  1. Linux çekirdeği nedir?
  2. Bir boot sürecinde aşağıda verilen görseldeki adımlar izlenmektedir.



    Figürde verilen adımları açıklayınız.
    BOOT.BIN dosyası nedir? Hangi dosyalardan oluşur?
  3. Aşağıda verilen kavramları açıklayınız

    * ROOTFS
    * Image.ub
    * Device Tree

PL/PS CoDesign

  1. Linux’te bulunan devmem komutu nedir? Bu komut ile 0x40000000 adresine hexadecimal olarak ABCD yazıp, 0x40000008 adresinde bulunan içeriği okuyacak bir komutu yazınız.
  2. MMAP Komutu ne yapmaktadır?
  3. 0x40000000 adresinde bir AXI GPIO IP’si bulunmaktadır. Bu IP’nin register space’i aşağıda verilmektedir.



    AXI GPIO’nun 1. kanal çıkış bölümüne bir bitlik LED bağlanmıştır. 1. kanal giriş bölümüne ise 8 bitlik bir saklayıcı bulunmaktadır. Giriş bölümünden 0x11 değeri geldiğinde LED’i 1 yapan diğer tüm durumlarda LED’i 0 yapan bir petalinux ortamı için uygulama geliştiriniz.
  4. PL bölümünde bir AXI GPIO IP’si bulunarak oluşturulmuş bir petalinux imajında

    ls /sys/class/gpio

    komutu çalıştırılarak bağlanmış GPIO’nun ne olduğu görülmektedir.

    Buna göre örneğin komutun çıktısında gpio496 olduğu görülmüştür.

    Petalinux ortamında GPIO’nun değerini her saniye tersine çeviren bir uygulama geliştiriniz.

Categories
System on Chip (SOC) Design

Final Sample Questions

Interfaces II

  • lwIP kütüphanesi ile UDP haberleşme örneği aşağıdaki linkte verilmektedir.

    https://github.com/Xilinx/embeddedsw/blob/master/lib/sw_apps/lwip_udp_perf_server/src/udp_perf_server.c

    bu kod parçacığında 162-260. satırlar arasında UDP paketi yakalandığında çağrılan callback fonksiyonu bulunmaktadır. Fonksiyonu modifiye ederek, Ethernetten içerisinde ‘S,’E’,’L’,’A’,’M’ byte’ı barıdıran bir paket geldiğinde, geriye ‘M,’E’,’R,’H,’A,’B’,’A’ byte’larını gönderen bir uygulama geliştiriniz.
  • MAC adresi nedir?
  • TCP ve UDP arasındaki farklar nedir?

Microblaze

  • Aşağıda Microblaze, uartlite ve AXI Interconnect IP’lerinin giriş ve çıkış arayüzleri verilmiştir.





    Bu üç IP’i birbirlerine bağlayarak microblaze’in UART paketleri gönderebileceği sistemi oluşturunuz. Diğer (Örn, DLMB, ILMB) bağlantıların çizilmesine gerek yoktur.
  • Aşağıda blok diyagramda tasarlanmış olan bir microblaze tabanlı sistemin Adress Editor pencere görüntüsü bulunmaktadır.


    Microblaze’e bağlı olan GPIO IP’sinin giriş bölümüne 8 bitlik bir switch bağlanmış, çıkış bölümüne ise LED’ler bağlanmıştır. AXI GPIO’nun saklayıcı listesi aşağıda verilmektedir.


    Bu sistem için, CPU üzerinde switch’lerden alınan değerin bir fazlasını LED’lerde gösterecek bir kod parçacığı geliştiriniz.
  • AXI Interrupt Controller IP’sinin görevi nedir?
  • Microblaze gibi softcore bir işlemci hangi durumlarda kullanılması tercih edilebilir? Hardcore bir işlemciye göre avantaj ve dezavantajlarını sıralayınız.

Performance Profiling and Debugging

  • Breakpoint nedir? Ne amaçla kullanılır?
  • Profiler Tool nedir?
  • Bir yazılımda en yavaş çalışan fonksiyonu bulmak için izlenebilecek stratejiler nedir?

QEMU

  • QEMU nedir?
  • Bir emulatör kullanmanın avantaj ve dezavantajları nedir?

Categories
System on Chip (SOC) Design

Midterm Sample Questions

RTL Design

  • Aşağıda verilen kombinasyonel devrenin Verilog dilindeki gösterimini yazınız.
  • Aşağıda verilen Verilog RTL kodunun karşılığı olan donanım’ın şematik çizimini yapınız.
  • Aşağıda verilen devrenin Verilog gösterimindeki karşılığını yazınız. A, B, C, D ve Sel sinyalleri giriş, y sinyali ise çıkıştır
  • Aşağıda verilen Verilog RTL kodunu sentezlendiği zaman ortaya çıkacak devreyi çiziniz.
  • Aşağıda verilen verilog kod parçacığı sentezlenince oluşacak donanım şematiğini çiziniz.

  • Aşağıda verilen devrenin Verilog gösterimini yazınız.
  • Aşağıda verilen Mealy durum makinasının Verilog dilinde gerçekleyiniz.
  • Aşağıda verilen 3 Verilog kod parçacığı farklı shifter tasarımlarıdır. Hangi tasarımın kombinasyonel hangisinin ardışık devreler ile gerçeklendiğini ifade edip, devrelerini çiziniz. Not: Tasarımda normalde kullanmayı tercih etmediğimiz, kombinasyonel döngü olabilir. Kaydırma devresini kutu olarak çizebilirsiniz.
  • 4 farklı operasyon yapabilen iki 4’er bitlik sayı girişi alan bir ALU tasarlanacaktır. Operasyonlar; toplama, cıkartma, çarpma ve 0 üretmektir (Operasyon kodu 3 olduğunda sonuç 0 olacaktır). Operasyon kodu girişi bulunmakta ve 2 bitliktir. ALU tasarımını verilog dilinde yapınız

ZYNQ Mimarisi

  1. PS ve PL kavramları nedir?
  2. Microblaze nedir? PS’den farkı nedir?
  3. APU nedir? APU’da bulunan I-Cache, D-Cache ve L2 Cache’in görevlerini açıklayınız?
  4. MIO nedir? Ne amaçla kullanılır?
  5. EMIO nedir? Ne amaçla kullanılır?
  6. ZYNQ mimarisinde bulunan GP, HP ve ACP portları nedir? Aralarındaki fark nedir?
  7. Cache Coherence nedir? Bu ihtiyaç için ZYNQ mimarisindeki çözüm nedir? Olası sorunu bir örnek ile açıklayıp, çözümü anlatınız.
  8. ZYNQ mimarisindeki NEON Engine nedir?

Veriyolları

  1. AXI arayüzü nedir? Kim tarafından geliştirilmiştir?
  2. AXI gibi bir arayüzü modüller arasında iletişim için kullanmanın avantajı nedir?
  3. Xilinx ortamında kullanılan AXI türlerini açıklayınız.
  4. AXI Lite ve AXI MM arayüzleri arasındaki farkı açıklayınız.
  5. Master ve Slave kavramlarını açıklayınız?
  6. AXI Lite ve AXI MM veriyolu üzerinde bulunan 5 kanalın isimleri ve görevleri nelerdir?
  7. AXI arayüzlerindeki ready sinyali ne işe yaramaktadır?
  8. AXI arayüzlerindeki valid sinyali ne işe yaramaktadır?

Interfaces

  1. UART arayüzü nasıl çalışmaktadır?
  2. SPI arayüzü nasıl çalışmaktadır?
  3. I2C arayüzü nasıl çalışmaktadır?
  4. Aşağıda verilen Xilinx Github Reposunda bulunan UART loopback örneğinde, UART portundan 32 byte’lık veri transfer edilip, geriye alınıp aynı sonucun gelip gelmediği kontrol edilmektedir.

    https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/uartps/examples/xuartps_polled_example.c

    Bu örneğin dışarıdan gelecek 100 UART paketini toplayıp, sonucunu geriye UART hattından döndürecek şekilde değiştiriniz.

Categories
System on Chip (SOC) Design

LMS and Piazza

Öğrencilerin soru sorup yanıt alabileceği bir soru cevap sistemi sunulmaktadır. Ders duyuruları, öğrenci soruları ve cevapları için bir platformdur. Aşağıdan erişebilirsiniz. 

https://piazza.com/class/kre5vtyygs7is

Blackboard (Learning Management System), bazı ödevlerin teslimi için LMS sistemi üzerinden olması istenecektir.
https://blackboard.fbu.edu.tr/

Categories
System on Chip (SOC) Design

Labs

LabKonuTarihİndirme
1Interfaces I
2Interrupt’lar
3Interfaces II
4Microblaze I
5Microblaze II

Lab teslim dokümanı

Uzaktan LAB bağlantısı: fpga.levent.tc

Categories
System on Chip (SOC) Design

Exams and Sample Questions

Vize

Final

Categories
System on Chip (SOC) Design

Project

CORDIC Tabanlı HW/SW CoDesign: Donanım hızlandırıcı olarak Xilinx’in CORDIC (COordinate Rotation DIgital Computer) IP’si kullanıldığı ve işlemcinin hesap yükünü donanım hızlandırıcıya aktardığı bir proje yapılacaktır

Proje detayları için tıklayınız.

Categories
System on Chip (SOC) Design

Homeworks

ÖdevKonuTarihSon Teslim TarihiTeslim Yöntemiİndirme
1Interfaces IYazılı Olarak Ders Sınıfında Teslim 
Categories
System on Chip (SOC) Design

Lecture Notes

HaftaNotlarİndirme
1Giriş
2RTL Tasarım
3ZNYQ Mimarisi
4Veriyolları
5Interfaces I
6PL/PS CoProcessing
7Interrupt’lar
8Vize Sınav Haftası
9Interfaces II
10Donanım Hızlandırıcı Projesi
11Microblaze I
12Microblaze II
13Performance Profiling ve Debugging
14QEMU
15Final ve Proje SunumlarıSınav Haftası
Categories
System on Chip (SOC) Design

Syllabus

HaftaKonuTarih
1Giriş
2RTL Tasarım
3ZYNQ Mimarisi
4Veriyolları
5Interfaces I
6PL/PS CoProcessing
7Interrupt’lar
8Vize Sınav Haftası
9Interfaces II
10Microblaze I
11Microblaze II
12Donanım Hızlandırıcılar
13Performance Profiling ve Debugging
14QEMU
15Final ve Proje SunumlarıSınav Haftası