Categories
Information Technologies

Syllabus

HaftaKonuTarih
1GirişAsenkron
2Bilgisayar TemelleriAsenkron
3Yazılım ve İşletim SistemleriAsenkron
4İnternetin TemelleriAsenkron
5Temel Bilgisayar GüvenliğiAsenkron
6Word IAsenkron
7Word IIAsenkron
8VizeSınav Haftası
9Word IIIAsenkron
10Excel IAsenkron
11Excel IIAsenkron
12Excel IIIAsenkron
13PowerPoint IAsenkron
14PointPoint IIAsenkron
15FinalSınav Haftası
   
Categories
Information Technologies

Detailed Course Description

Ders Açıklaması

Bu derste öğrenciye, bilgisayarın temel donanım birimlerinin ve işletim sistemlerinin tanıtılması, internet kullanımı hakkında bilgi verilmesi ve ofis programlarını (Word, Excel, Powerpoint) kullanarak bilgisayarda doküman, elektronik tablo ve sunum hazırlamak için gerekli olan temel bilgi ve becerilerin kazandırılması amaçlanmaktadır.

Ders Saatleri (Teorik + Lab)

Asenkron

Ön Gereksinimler

Yok

Yardımcı Kaynaklar

Dersin referans kaynakları aşağıda listelenmektedir.

• Bilgisayara Giriş ve Office 2007, Kriter Basım Yayın Dağıtım
• Temel Bilgisayar Eğitimi, Tugay Arat, Nesip Ergül, Eğitim Kitabevi Yayınevi
• Bilgisayara Giriş, Becit İşçitürk, PEGEM Akademi
• Computer Concepts, Illustrated Series, 9th Edition, (2013). J. Jamrich Parsons, & D. Oja, Course Technology, Boston, MA.
• Microsoft Office 2013 Fundamentals – Illustrated Series, (2014), M. Hunt, B. Clemens, Course Technology, Cengage Learning, Boston, MA.

Yazılımlar

Microsoft Office (Word, Excel, Powerpoint) yazılımı kullanılacaktır.

Dersler

Dersler asenkron olarak yürütülecektir.

Öğrenim Çıktıları

  • Donanım ve yazılımların çalışması hakkında bilgi sahibi olur
  • Bilgisayar ve çevre bileşen donanımlarını tanır
  • İşletim sistemi, internet, ofis uygulamaları kullanmayı öğrenir
  • Dijital ortamda sunum hazırlama becerisi kazanır
  • İletişim teknolojileri hakkında bilgi edinir

Notlandırma

Dönem notu; vize, ödevler ve final sınavı ile belirlenecektir. Değerlendirme yüzdeleri aşağıdaki tabloda verilmiştir.

FaaliyetlerOranlar
Vize%30
Ödev%20
Final%50

Dönem sonu notunun karşılık geldiği ağırlık ve harf notu aşağıdaki tabloda verilmiştir.

Dönem NotuAğırlıkHarf Notu
90-1004.00AA
85-893.50BA
80-843.00BB
75-792.50CB
65-742.00CC
50-641.50DC
45-491.00DD
0 -440FF

Akademik Dürüstlük

Ödevin amacı, ders hakkında derinlemesine araştırma yapmayı öğrenmek ve pratik bilgiler kazanmayı sağlamaktır. Verilen ödevler hakkında, diğer öğrenciler ile birlikte çalışma teşvik edilmektedir. Çalışma grubu oluşturan öğrenciler, kendi başına çalışan öğrencilere göre sınavlarda daha başarılı olmaktadırlar. 

Ancak bir ödevi çözmek için başkaları ile birlikte çalışsanız bile, her bir sorunun çözümünü yardım almadan kendiniz yapmalısınız. Çözümünüzü bir araştırma yolu ile elde ederseniz (örn. bir internet araması), çözümü kendi cümle ve/veya kodunuz ile ifade etmelisiniz. Çözümü sözlü olarak sorulduğunda, öğrencinin açıklayabilmesi beklenmektedir. 

Verilen ödev bir kod ise, kendinizin yazması gerekmektedir. Hata ayıklamada başkalarından yardım alabilirsiniz. Kodda intihal tespiti için manuel ve otomatik mekanizmalar kullanılacaktır. İntihal, sınav içi kopya ve benzeri davranışlar disiplin yönetmeliğine göre cezalandırılır.

Categories
Courses

Information Technologies

Course Description: Bu derste öğrenciye, bilgisayarın temel donanım birimlerinin ve işletim sistemlerinin tanıtılması, internet kullanımı hakkında bilgi verilmesi ve ofis programlarını (Word, Excel, Powerpoint) kullanarak bilgisayarda doküman, elektronik tablo ve sunum hazırlamak için gerekli olan temel bilgi ve becerilerin kazandırılması amaçlanmaktadır.

Categories
Courses

Computer Architecture

Course Description: Bu ders temel mantık kapıları, kombinasyonel ve ardışık devreler, sonlu durum makinaları, bellekler, RISC-V işlemci komut seti, pipelining ve performans, RISC, CISC, ISA, assembler, linker, loader, cache’ler, sanal bellek, interruptlar, paralelizm, giriş ve çıkış elemanları konularını içermektedir. Ders kapsamında başlangıç tasarım verilen bir RISC-V işlemcisinin kontrol ve ALU blokları temel SystemVerilog dili özellikleri kullanılarak tasarım ve doğrulama çalışmaları yapılacaktır.

Categories
Object Oriented Design

Final Sample Questions

Decorator

  1. “Hello” print yapan bir fonksiyon tanımlayınız.

    Ekrana aldığı fonksiyonun geriye döndürdüğü string ifadenin tersten yazıp, başına *** ve sonuna — ekleyen bir decorator fonksiyon geliştiriniz.

    print yapan fonksiyonu dekoratör fonksiyonu ile dekore ediniz.

    Beklenen çıktı ***olleH—

Tasarım Kalıpları

  1. Tasarım kalıpları kullanmanın avantajları nelerdir?
  2. Fabrika tasarım kalıbı nasıl çalışır?
  3. Adapter tasarım kalıbı nasıl çalışır?
  4. Command tasarım kalıbı nasıl çalışır?
  5. MVC nedir? Nasıl çalışır?
  6. Bir dilden başka bir dile çeviri yapan bir uygulama bulunmaktadır. Mevcut olan uygulamaya yeni diller eklenmek isteniyor. 3 elemanlı bir kelime listesi yaratınız. Kelimeleri “Merhaba”, “Güzel”, “Evet” içerikleri ile doldurunuz. Yeni eklenebilecek dillere karşı esnek bir çözüm sağlayacak uygun bir tasarım kalıbı kullanarak uygulama geliştiriniz. Hangi tasarım kalıbının neden kullanıldığını açıklayınız.

Refactoring ve Yazılım Testi

  1. Kirli ve Temiz Kod nedir?
  2. Aşağıda verilen kaynak koda refactoring işlemi uygulayınız.

Eş Zamanlılık

  1. Thread ve Process arasındaki farklar nedir?
  2. Sequential, Concurrent ve Paralel hesaplama arasındaki farklar nedir?
  3. Fibonacci sayısını tespit eden bir fonksiyon geliştiriniz. Bu fonksiyonu hem concurrent hemde ardışık olarak 10,11 ve 12 argümanları ile çalıştırıp hesaplama sürelerini gösteren bir uygulama geliştiriniz
Categories
Object Oriented Design

Midterm Sample Questions

Veri Koleksiyonları

  1. 10 ile 100 arasında rasgele bir sayı oluşturun. Oluşturulan rasgele sayı kadar bir liste oluşturarak içerisine rasgele sayılar ekleyiniz. Eklenen sayıların ortanca sayısını ekrana gösteren bir uygulama geliştiriniz.
  2. 10 ile 100 arasında rasgele iki sayı oluşturun. Oluşturulan 1. rasgele sayı kadar 1. listeye rasgele sayılar yerleştiriniz. Oluşturulan 2. rasgele sayı kadar 2. listeye rasgele sayılar yerleştiriniz. Bu iki liste arasındaki ortak elemanları ekrana gösteren bir uygulama geliştiriniz. Not: Ortak sayılar aranırken aynı sayı sadece bir defa ekrana basılmalıdır.

Objeler ve Sınıflar

  1. dikdortgenPrizmasi isminde bir sınıf geliştirilecektir. Aşağıdaki şekilde bir dikdörtgen prizması verilmiştir.


    Bu sınıfın private olarak en, boy ve yukseklik ve public alan değişkenleri bulunmaktadır.

    Constructor’unda 3 adet integer almakta ve değişkenlere yazmaktadır.

    hacimHesapla fonksiyonu geriye en, boy, yukseklik değişkenlerinin çarpımını döndürmektedir ve alan değişkenine kaydetmektedir.

    yuzeyAlanHesapla fonksiyonu ise, tüm yüzlerin alan toplamını geri döndürmektedir.

    dikdortgenPrizmasi sınıfını test eden bir kod geliştiriniz. Sınıftan yaratılan objenin hacimHesapla ve yuzeyAlanHesapla fonksiyonlarını kullanarak ekrana bastırınız.

  2. zaman isimli bir sınıf oluşturunuz.

    public olarak,

    * int yil
    * int ay
    * int gun
    * int saat
    * int dakika
    * int saniye

    * zaman(self, int, int, int, int, int, int)
    * zaman farkAl(zaman)
    * void bastir()

    değişken ve fonksiyonları bulunmaktadır.

    Sınıf’ın constructor’undan alınan argümanlar, sınıf değişkenlerine yazılmaktadır.

    farkAl fonksiyonu, zaman sınıfı objesi alıp, şu anki obje ile argüman olarak alınan objenin arasındaki farkı alıp geriye zaman sınıfı olarak döndürmektedir. Eğer şuanki obje, argüman olarak alınan objeye göre daha yeni bir tarih ise, geriye dönecek tüm zaman değişkenleri -1 olacaktır.

    bastir fonksiyonu ise tüm değişkenleri ekrana bastırmaktadır.

    Main’de zaman sınıfından iki obje türetip, ilk objenin farkAl fonksiyonuna ikinci objeyi argüman olarak gönderip, geri dönen zaman sınıfının değişkenlerini ekrana bastir fonksiyonu ile bastiriniz.

  3. ikizkenarUcken isimli bir sınıf yaratınız.

    Bu sınıfta private olarak,

    * int ikizKenarAcisi
    * int digerAci
    * int digerAciHesaplama()

    değişkenler ve fonksiyonu

    Public olarak,

    * ikizKenarUcken(int)
    * int ikizKenarAcisiAl()

    fonksiyonu bulunmaktadır.

    Constructor’da alınan argüman, ikizKenarAcisi değişkenine yazılmakta ve digerAciHesaplama fonksiyonu çağrılmaktadır.

    ikizKenarAcisiAl() fonksiyonu geriye ikizKenarAcisi degiskenini dondurmektedir.

    digerAciHesaplama fonksiyonu, ikizKenarAcisi değişkenini iki ile çarparak 180’den çıkartıp, digerAci değişkenine yazmaktadır. digerAci değişkeni – hesaplanır ise, bu fonksiyon hata mesajı yazdıracaktır. Eğer digerAci değişkeni 60 çıktı ise, ekrana “Eşkenar üçken” yazdırılacaktır.

    ikizKenarUcken sınıfını test edecek bir kod parçacığı geliştiriniz.

Kalıtım

  1. Bir üniversite’nin ders bilgilerini içerecek bir uygulama geliştirilecektir.

    Fizik, kimya, matematik ve ders isminde 4 sınıf oluşturunuz.

    ders sınıfında;

    * string dersAdi
    * int kayitliOgrenciSayisi

    değişkenleri bulunacaktır.

    Fizik, kimya ve matematik sınıfları, ders sınıfından kalıtım yapılacaktır.

    Bu sınıfların constructor’unda ders adı ve kayitliOgrenciSayisi parametresi alarak dersAdı ve kayitliOgrenciSayisi değişkenlerine yazacaktır.

    Bu sınıfların içine yazılacak, kimyaDeneyiYap, fizikDeneyiYap, matematikDeneyiYap fonksiyonları ile ekrana “Fizik deneyi yapıldı”, “Kimya deneyi yapıldı”, “Matematik deneyi yapıldı” metinlerini bastırınız (Örn kimya sınıfı için sadece kimyaDeneyiYap fonksiyonu olacak).

    Fizik, kimya ve matematik sınıflarından birer obje yaratıp, alma fonksiyonları ile ders isim ve kayıtlı öğrenci sayısını ekrana bastıran bir test uygulaması geliştiriniz.

  2. dikdortgen ve dikdortgenAlan isimli iki sınıf oluşturulacaktır.

    dikdortgen sınıfında;

    * int en
    * int boy

    değişkenleri ve 

    * int enAl()
    * int boyAl()
    * int enAyarla(int)
    * int boyAyarla(int)

    fonksiyonları bulunmaktadır. Al fonksiyonları değeri geri döndürmekte, ayarla fonksiyonları ise aldığı argümanı değişkenlere atamaktadır. Ayarla fonksiyonları girilen sayının 0’dan büyük, 1000’den küçük olmasını kontrol etmekte, doğru giriş alındıysa geriye 0, yanlış ise 1 döndürmektedirler.

    dikdortgenAlan sınıfında

    * int alanHesapla()

    fonksiyonu bulunmaktadır. Bu fonksiyon aldığı argümanları çarparak geri döndürmektedir.

    dikdörtgenAlan sınıfı dikdortgen sınıfından türetilmiştir.

    dikdortgenAlan sınıfından bir obje türetip, en ve boy değerlerini kullanıcıdan alarak sınıf değişkenlerine yazınız. En ve boy değişkenleri istenen aralıkta değilse, tekrar giriş yapmasını fonksiyondan dönen değere göre sağlayınız.

    alanHesapla fonksiyonunu çağırarak, hesaplanmış alanı ekrana bastırınız.

  3. Aşağıda birbirleri ile olan ilişkisi UML diyagramı olarak verilen sınıfları geliştiriniz.


    vadesizHesap ve vadeliHesap sınıfları, hesapBilgileri sınıfından türetilmiştir.hesapBilgileri sınıfındaki;

    paraYatir fonksiyonu, bakiye değişkeninin değerinin üzerine eklenerek güncellemektedir. Aldığı argüman 0’dan küçük ise kullanıcıya hata mesajı göstermelidir.

    vadesizHesap sınıfındaki;

    Constructor aldığı iki parametreyi, eksiBakiyeUcreti ve eksiBakiyeLimiti değişkenlerine yazmaktadır.

    paraCek fonksiyonu, bakiye değişkeninin değerinden eksilterek güncellemektedir. Aldığı argüman 0’dan küçük ise kullanıcıya hata mesajı göstermelidir. Ayrıca güncellenecek değer en fazla -eksiBakiyeLimiti kadar olabilir. -eksiBakiyeLimiti’den fazla olduğu durumda kullanıcıya hata mesajı göstermelidir.

    Örn. eksikBakiyeLimiti 2000 ise, kullanıcının bakiyesi -2000’den daha az olamaz.

    Eğer kullanıcının yapılan paraCek fonksiyonu ile bakiyesi 0’ın altına düşüyorsa, bakiyeden ayrıca eksiBakiyeUcreti’de çıkartılır.

    vadeliHesap sınıfındaki;

    Constructor aldığı parametreyi, yillikFaizOrani değişkenine yazmaktadır.

    faizOdemesiHesapla fonksiyonu çağrıldığında, faizOranına göre bakiye değişkenini artırmaktadır. Örn faiz oranı 11 ise, bakiye+= bakiye * 11 /100 yapılacaktır.

Çok Biçimlilik

  1. siralamaAlgoritmalari isiminde bir sınıf oluşturunuz.

    Bu sınıfın içerisinde public olarak;

    siralamaAlgoritmari constructor’u, constructor parametre almamaktadır. Sınıfta bulunan değişken hesaplamaAdimlari değerini 0’a atamaktadır.

    hesaplamaAdimlariniGetir fonksiyonu argüman almadan, geriye hesaplamaAdimlari integer değişkenini geriye döndürmektedir..

    selectionSortAlgoritması isminde bir sınıf tanımanacaktır. Bu sınıf siralamaAlgoritmalari sınıfından kalıtım yapılacaktır. Public olarak sirala fonksiyonu tanımlanacaktır. Bu fonksiyon liste alıp, geriye selection sort algoritması ile sıralanmış liste döndürecektir. Bu fonksiyonda selection sort algoritmasının kaç döngü adımında tamamlandığını sıralama işleminin sonunda sınıftaki hesaplamaAdimlari değişkenine yazmaktadır. 

    bubbleSortAlgoritmasi isminde bir sınıf tanımanacaktır. Bu sınıf siralamaAlgoritmalari sınıfından kalıtım yapılacaktır. Public olarak sirala fonksiyonu tanımlanacaktır. Bu fonksiyon liste alıp, geriye bubbleSort algoritması ile sıralanmış liste döndürecektir. Bu fonksiyonda bubbleSort algoritmasının kaç döngü adımında tamamlandığını sıralama işleminin sonunda sınıftaki hesaplamaAdimlari değişkenine yazmaktadır. 

    Main’de selectionSortAlgoritmasi ve bubbleSortAlgoritmasi sınıflarından birer obje türeterek, rasgele elemanlar doldurulmuş 100 elemana sahip bir listeyi objelerin sirala fonksiyonlarına besleyiniz. Fonksiyonlardan dönen sıralanmış vektörleri ekrana bastırınız ve objelerin hesaplamaAdimlariniGetir fonksiyonlarını çağırarak algoritmaların sıralamayı kaç adımda yaptığını ekrana bastırınız.
  2. amd, intel ve arm isminde üç sınıf oluşturunuz. Bu sınıflara public olaral flopsGucunuGetir fonksiyonu yazınız.

    amd sınıfında bu fonksiyon geriye 1 milyon,
    intel sınıfında geriye 2 milyon,
    arm sınıfında geriye 3 milyon

    döndürecektir. 

    Mainde 100 elemanlı bir liste oluşturarak, bu listenin ilk 50 elemanına amd sınıfından, 25 elemanına intel ve kalan 25 elemanına arm sınıfından türetilmiş objeleri atayınız. Tüm listeyi döngü ile tarayarak flopsGucunuGetir fonksiyonunu çağırarak bir integer değişkenin üzerinde toplayınız. Toplam sonucu, CPU’ların toplam gücü olarak ekrana bastırınız.
  3. petrol isminde bir sınıf oluşturunuz. Public olarak litreFiyati değişkeni vardır. Sınıfın constructor’unda aldığı bir argümanı bu değişkene yazmaktadır.

    karaAraci ve denizAraci isminde iki sınıf oluşturup bu sınıfları petrol sınıfından kalıtım yapınız. Sınıflara constructor tanımalayarak bir argüman alıp, aldığı argümanı kalıtım yaptığı petrol sınıfının constructor’u üzerinden litreFiyatı değişkenine yazmalıdır. Her iki sınıftada petrolFiyatiAl fonksiyonunu yazınız.

    karaAraci sınıfı için petrolFiyatiAl fonksiyonu litreyi gösteren bir argüman alıp, geriye litre * 1.70 * litreFiyati ile çarparak geriye döndürülmelidir.
    denizAraci sınıfı için petrolFiyatiAl fonksiyonu litreyi gösteren bir argüman alıp, geriye litre *litreFiyatı ile çarparak geriye döndürülmelidir.

    Mainde karaAraci ve denizAraci sınıflarından birer obje yaratarak, petrolFiyatiAl fonksiyonlarına 10 (kara aracı) ve 20 (deniz aracı) girişleri vererek dönen değeri ekrana bastırınız.
Categories
Digital Design

Final Sample Questions

Bellekler

  1. Bir RAM’in 100 adresi ve her bir adreste 32 bitlik saklama alanı bulunuyorsa, toplam RAM’in boyutu nedir?
  2. RAM (Random Access Memory) nedir? Bir kaç cümle ile açıklayınız.
  3. Bir RAM’in 16 bitlik adres girişi var, ve toplam boyutu 4 MB (Mega Byte) ise bir adreste kaç bitlik veri saklanıyordur?
  4. Bir RAM’in 16 bitlik adres girişi var, ve toplam boyutu 4 Mb (Mega bit) ise bir adreste kaç bitlik veri saklanıyordur?
  5. Statik ve Dinamik RAM’lerin karşılaştırınız.

Optimizasyonlar ve Ödünleşmeler

  1. Aşağıda verilen Kmap’in sahip olduğu fonksiyonun en sade halini gösteriniz.

  2. Aşağıda verilen Kmap’in sahip olduğu fonksiyonun en sade halini gösteriniz.

  3. Aşağıda verilen Kmap’in sahip olduğu fonksiyonun en sade halini gösteriniz.

Arayüzler

  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. SOC FPGA’ler hangi uygulamalarda tercih edilmektedir?

Çoklu Clock Alanlı Tasarım

  1. Metastability nedir?
  2. Farklı iki clock alanlı tasarım arasında veri aktarım için bir örnek yapı gösteriniz.
Categories
Digital Design

Midterm Sample Questions

Sayı Sistemler ve Boolean Cebri

  1. 10’luk tabandaki 92 sayısını 16’lık tabanda (HEX) olarak ifade ediniz.
     
  2. 1110110110 sayısını 16’lık (HEX) tabanda ifade ediniz.
     
  3. -16 sayısını en az bit kullanarak 2’lik tümleyen (twos complement) formatında ifade ediniz.
     
  4. 1100111 2’lik tümleyen formatındaki sayıyı onluk tabana çeviriniz.
     
  5. İkilik tümleyen formatta olan 0001 ve 11 sayısını toplayınız.
     
  6. İkilik tümleyen gösterim formatının, işaret bitli gösterim formatına göre avantajı nedir? Neden dijital tasarım dünyasında bu gösterim tercih ediliyor?
     
  7. A ve B isminde 8 bitlik değeri bilinmeyen iki sayı olsun. Bu iki sayı XOR işlemi yapıldığında,

    A^B = 00110100
    Ve (AND) işlemi yapıldığında,
    A&B = 11001001

    sonuçları elde ediliyor. A + B sayısının toplam değeri nedir? İpucu: Bir bit Ve(AND)’lendiğinde sonuç 1 ise, her iki sayı kesinlikte 1’dir. Buradan yola çıkarak hem Ve (AND) hemde XOR’a bakarak sayıların ne olduklarını toplama yapabilecek kadar bulmanız mümkündür.
     
  8. Fixed Point ve IEEE Floating Point formatı ve farklarını birkaç cümle ile açıklayınız.
     
  9. 400 kişilik bir sınıfta, herkese farklı bir numara vermek için en az kaç bite ihtiyaç bulunmaktadır?
     
  10. Soru 8’de bulunan bit sayısı ile, bit sayısını arttırmaya gerek kalmadan kaç öğrenci daha sınıfa kabul edilebilir?
     
  11. 5 bit kullanarak, 7 ve -7 sayılarını ikilik tümleyen formatta ifade ediniz.
     
  12. 6 bit kullanarak ikilik tümleyen formatta -32 sayısını ifade ediniz.
     
  13. 101, 44, -128, 127 sayılarını ikilik tümleyen formatta 8 bit olarak ifade ediniz.
     
  14. Sayıyı bir bit sağa kaydırmak, sayıyı 2’e bölmek, bir bit sola kaydırmak ise sayıyı iki ile çarpmak ile aynı anlama gelmektedir. Bu nasıl olmaktadır? Bir kaç cümle ile açıklayınız.
     
  15. Aşağıdaki 4’bitlik ikilik tümleyen formatındaki sayıların toplama işlemlerinin hangileri taşma yapmaktadır?

    1100 + 0011
    1100 + 0100
    0111 + 0001
    0111 + 1001
     
  16. İkilik tümleyen formatında toplama işlemi yaparken hangi durumlarda taşma olmaktadır? Açıklayınız.
     
  17. Taşma yaratacak 9 bitlik işaretsiz ikilik tabanda iki sayı bulun.
     
  18. Aşağıdaki mantık işlemlerini hesaplayınız.

    01010111 OR 11010111
    101 OR 110
    NOT (1011) OR NOT(1100)
    NOT (1000 AND (1100 OR 0101))
    NOT (NOT (1101) )
    (0110 OR 0000) AND 1111
     
  19. Aşağıdaki doğruluk tablosunu verilen ifadeye göre doldurunuz.

Kobinasyonel Devreler

  1. Transistör nedir? Bir kaç cümle ile açıklayınız.
     
  2. Aşağıda örnek verilen bir transistörün “Base”, “Emitter”, “Collector” pinleri ne için kullanılmaktadır?


  3. Aşağıda NAND kapısının şeması verilmiştir. A ve B isminde iki giriş alıp, Out isminde bir çıkış vermektedir. NAND fonksiyonu Out = !(A & B) şeklinde ifade edilebilir. 



    Aşağıda verilen şekilde ise, NAND kapısının girişine sadece tek bir giriş bağlanmıştır. A isimli giriş ile Out çıkışını doğruluk tablosunu çiziniz (A’nın 0 ve 1 olduğunda Out’un ne olduğunu gösteren tablo). Tabloya bakarak Out çıkışının A girişine göre nasıl değiştiğini yorumlayınız. NAND ile elde edilmiş olan yeni mantık kapısının ismini yazınız.


  4. Aşağıdaki ifadeyi mantık kapıları ile çiziniz. Devreyi çizdikten sonra demorgan kuralı ile devreyi sadeleştirebildiğiniz kadar sadeleştirin. Sadeleşen devreyi çiziniz.


  5. Aşağıdaki şekilde gizli bir mantık kapısı içeren kombinasyonel devre verilmiştir. Devrenin A girişine göre ürettiği değerler doğruluk tablosunda verilmiştir. Tablodaki out çıktısının değerlerine göre, mantık kapısı yazan kutunun içerisinde hangi mantık kapısı olabilir?


  6. Çözücü (Decoder) Nedir? Nasıl çalışmaktadır?
     
  7. 5 girişli bir çözücünün (Decoder) kaç çıkışı bulunmaktadır?
     
  8. Seçici (Multiplexer) Nedir? Nasıl çalışmaktadır?
     
  9. 16 girişli bir seçicinin (Multiplexer) kaç çıktısı bulunmaktadır? Kaç adet seçme (select) bit’i bulunmaktadır?
     
  10. Aşağıdaki şekilde 2×1 multiplexer kullanılarak bir Ve (And) kapısı yapılmıştır. Yine 2×1 multiplexer kullanarak Veya (Or) kapısı yapınız.

  11. Aşağıda verilen doğruluk tablosuna (truth table) göre mantık kapıları ile eşdeğer devreyi çiziniz.


     
  12. Sadece 2×1 multiplexer’ler kullanarak 4×1 multiplexer yapınız.
     
  13. Verilen doğruluk tablosunu, aşağıdaki devreye göre tamamlayınız.


  14. Full Adder’lar kullanarak, 4 bitlik iki sayının toplamını yapabilecek bir devre çiziniz. Full Adder’ların iç yapısını çizmeyiniz.
  15. Aşağıda verilen kombinasyonel devrenin Verilog dilindeki gösterimini yazınız.
  1. Aşağıda verilen Verilog RTL kodunun karşılığı olan donanım’ın şematik çizimini yapınız.
  1. 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

Ardışık Lojik

  • D tipi tutucu (latch) ve D tipi saklayıcı (Register) nedir? Arasındaki farklar nedir? 
  • Saat kristali nedir? 
  • Clock sinyali nedir? Ne için kullanılır? 
  • Periyodu 100 ns olan bir clock’un frekansı nedir? 
  • Ardışık devreler neden kullanılır? Neden kombinasyonel devreler ile bazı işlemler gerçekleştirilemiyor?
  • Aşağıda verilen D tipi yükselen kenar tetiklenen saklayıcıya gelen cp (clock) ve x sinyaline göre Q çıkışından çıkması gereken sinyali çiziniz.


  • Aşağıdaki devrede 4 adet d tipi saklayıcı kullanılmıştır. Devre uzun bir süre d girişinden 0 verilerek çalıştırılmış ve başlangıçta q0, q1, q2 ve q3 0 olarak çıktı vermektedir. Devrenin girişi 1’e dönüştürüldüğü andan itibaren, aşağıdaki dalga formunu doldurunuz.
  • Aşağıda verilen ardışık devreye belirli bir giriş dizisi verildiğinde 1 değerini üretmektedir (Pattern Checker). Verilmiş olan 4 pattern’den hangisinin 1 değerini ürettirebileceğini tespit ediniz. Başlangıçta saklayıcıların değerlerini 0 olarak alınız.

A -) 0110
B -) 1001
C -) 0100
D -) 1101

  • 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.

Doğrulama Yaklaşımları

  • Aşağıda verilen testbench kod parçacığında c’nin değeri, simulasyon başladıktan kaç ns sonra atama satırı yapılıp güncellenir?

Durum Makinaları

  • Aşağıda D tipi saklayıcı ve MUX barındıran bir devre bulunmaktadır.



    Yanında ise bu devrenin durum makinaları ile ifade edilmiş hali bulunmaktadır. Q0 durumu Q çıkışının 0 verdiği, Q1 durumu ise Q çıkışının 1 verdiği durumu temsil etmektedir. Q çıkışı 0 verir iken, w girişi ne gelmelidir ki Q yine 0 çıkmaya devam etsin? Bu durumu Q0’ın kendi üstüne ok ile döndüğü yerdeki w = yerine yazmalısınız. Bu mantık ile w= olan yerleri tamamlayınız.
  • Aşağıda verilen Mealy durum makinasının Verilog dilinde gerçekleyiniz.
  • Moore durum makinası gösterimi ile, ard arda 3 defa 1 girişi yakaladığında 1 çıktısı veren diğer durumlarda 0 veren yapıyı çiziniz.

Veriyolu Elemanları

  • 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
Categories
Digital Design

Labs

LabKonuTarihİndirme
1Kombinasyonel Lojik30.10.2020
2Ardışık Lojik06.11.2020
3Doğrulama Yaklaşımları13.11.2020
4Durum Makinaları20.11.2020
5Bellekler11.12.2020
6FB-CPU RTL Tasarım18.12.2020
7SOC Konseptleri, Xilinx IPI Tasarım ve Arayüzler08.01.2021 

Lab teslim dokümanı

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

Categories
Digital Design

Homeworks

ÖdevKonuTarihSon Teslim TarihiTeslim YöntemiİndirmeÇözüm 1Çözüm 2
1Kombinasyonel Lojik30.10.202006.11.2020Yazılı Olarak Ders Sınıfında Teslim 
2Ardışık Lojik06.11.202013.11.2020Yazılı Olarak Ders Sınıfında Teslim 
3Doğrulama Yaklaşımları13.11.202020.11.2020Yazılı Olarak Ders Sınıfında Teslim  
4Durum Makinaları20.11.202027.11.2020Yazılı Olarak Ders Sınıfında Teslim  
5FB-CPU RTL Tasarım25.12.202008.01.2021Yazılı Olarak Ders Sınıfında Teslim