Category: Courses
Lecture Notes
Syllabus
Hafta | Konu | Tarih |
---|---|---|
1 | Giriş | |
2 | Elektriğe Giriş ve Dirençler | |
3 | Ohm Yasası | |
4 | Seri Devreler | |
5 | Paralel Devreler | |
6 | Kapasitans | |
7 | Hata Ayıklama | |
8 | Vize | Sınav Haftası |
9 | Donanım Doğrulama Metodları (DDM): Sınıflar | |
10 | DDM: Kalıtım | |
11 | FB-CPU System Verilog TB | |
12 | DDM: Değişken Türleri | |
13 | DDM: Arayüzler | |
14 | DDM: Rasgeleleştirme | |
15 | Final ve Proje Sunumları | Sınav Haftası |
Detailed Course Description
Ders Açıklaması
Bu ders elektronik devrelerin analog ve dijital boyutlarını içermektedir. Ders analog ve dijital olarak iki bölümden oluşmaktadır. İlk bölüm olan analog kısımda temel elektronik devre elemanları anlatılmaktadır. İkinci bölümde popüler dijital tasarım dillerinden olan SystemVerilog ile tasarım ve doğrulama konuları üzerinde çalışmalar yapılmaktadır. Ders projesi kapsamında FB-CPU isimli bir işlemci tasarımının SystemVerilog dili ile otonom kontrolünü yapan bir doğrulama ortamı geliştirilecektir.
Ders Saatleri (Teorik + Lab)
Cuma 9.00-14.00
Öğretim Elemanları ve Ofis Saatleri
Dr. Öğr. Üyesi Vecdi Emre Levent, Ofis 311 – Salı 16.00-17.00
Arş. Gör. Uğur Özbalkan, Ofis 311 – Salı 16.00-17.00
Ön Gereksinimler
Yok
Yardımcı Kaynaklar
Dersin referans kaynakları aşağıda listelenmektedir.
- Grobs Basic Electronics, 11th edition, Mitchel E. Schultz, McGraw-Hill, 2010
- RTL Modeling with SystemVerilog for Simulation and Synthesis: Using SystemVerilog for ASIC and FPGA Design, 1st Edition, Stuart Sutherland, 2017
Yazılımlar
Xilinx Vivado 2019.1
Dersler
Dersin haftalık 2 saat teorik, 2 saat laboratuvar bölümü bulunmaktadır. Öğretim üyesi tarafından verilen ders materyallerinin ders öncesi incelenip, ders sonrasında ise tekrar edilmesi beklenmektedir.
Öğrenim Çıktıları
- Temel analog devreler
- Direnç, devreler, kapasitans
- İleri seviye dijital tasarım metodları
- İleri seviye dijital doğrulama metodları
Quizler
Dönem içerisinde iki adet quiz yapılacaktır. 30 dk süre verilecektir. Quiz tarihi bir hafta önceden duyurulacaktır.
Notlandırma
Derslere %80 oranında devam zorunludur.
Dönem notu; vize, lablar, ödevler, proje ve final sınavı ile belirlenecektir. Değerlendirme yüzdeleri aşağıdaki tabloda verilmiştir.
Faaliyetler | Oranlar |
---|---|
Vize | %20 |
Ödev/Quiz | %10 |
Lab | %15 |
Proje | %25 |
Final | %30 |
Bonus | 5 Puan’a kadar |
Ödev ve quizlerin teslim saati üzerinden her geçen saat için 5 puan kesilecektir.
Dönem sonu notunun karşılık geldiği ağırlık ve harf notu aşağıdaki tabloda verilmiştir.
Dönem Notu | Ağırlık | Harf Notu |
90-100 | 4.00 | AA |
85-89 | 3.50 | BA |
80-84 | 3.00 | BB |
75-79 | 2.50 | CB |
65-74 | 2.00 | CC |
50-64 | 1.50 | DC |
45-49 | 1.00 | DD |
0 -44 | 0 | FF |
Beklenen Efor
Öğrencinin dönem içinde göstermesi beklenen efor tablosu aşağıda verilmiştir.
İçerik | Saat | Kaç Defa | Ara Toplam |
Derse Hazırlık | 2 | 14 | 28 |
Ders Tekrarı | 2 | 14 | 28 |
Ödev | 4 | 6 | 24 |
Proje | 48 | 1 | 48 |
Sınıf Dersi | 4 | 14 | 56 |
Ara Sınav ve Final | 24 | 2 | 48 |
Öğrenciler dersten başarılı olmak için dönem boyunca ortalama 232 saat harcamaları beklenmektedir.
Kodlama Ödevleri
Kodlama ödevlerinin notlandırılması, kodun doğruluğu, kalite ve algoritmik gerçeklemedeki detayları incelenerek yapılacaktır.
Doğruluk
Verilecek her bir ödev için test girişi ve beklenen çıkışlar paylaşılacaktır. Ancak ödev kontrolü yapılırken sizinle paylaşılmamış başka test durumları da denenecektir. Çalışma zamanı, beklenenden çok uzun süren kodlar yanlış olarak değerlendirilebilir.
Teori
Kod, istenen algoritmanın tasarımı olmalıdır. En optimum çözüm beklenmemektedir. Ancak bellek ve çalışma zamanı beklenenden çok fazla olmamalıdır.
Yazılı Ödevler
Ödev kendi el yazınız ile yazılmalıdır. Ödev cevap kağıtının üzerinde, dersin adı, öğrenci adı ve soyadı, öğrenci numarası ve tarih bulunmalıdır.
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.
System on Chip (SOC) Design
Course Description: Bu ders kapsamında özel tasarlanmış bir donanım ve işlemci mimarilerinin bir arada kullanıldığı yapıların tasarımı anlatılmaktadır. Ders kapsamında Xilinx ZYNQ 7000 serisi FPGA’leri üzerinde deneyler gerçekleştirilmektedir. 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 çalışması yapılacaktır.
Electronic Circuits
Course Description: Bu ders elektronik devrelerin analog ve dijital boyutlarını içermektedir. Ders analog ve dijital olarak iki bölümden oluşmaktadır. İlk bölüm olan analog kısımda temel elektronik devre elemanları anlatılmaktadır. İkinci bölümde popüler dijital tasarım dillerinden olan SystemVerilog ile tasarım ve doğrulama konuları üzerinde çalışmalar yapılmaktadır. Ders projesi kapsamında FB-CPU isimli bir işlemci tasarımının SystemVerilog dili ile otonom kontrolünü yapan bir doğrulama ortamı geliştirilecektir.
Final Sample Questions
RISC, CISC ISA
- RISC-V işlemcisi komut seti hangi türdedir? Yaklaşık kaç komutu bulunmaktadır ve komutların özellikleri nelerdir?
- X86 işlemcisi komut seti hangi türdedir? Yaklaşık kaç komutu bulunmaktadır ve komutların özellikleri nelerdir?
- RISC ve CISC mimarileri arasındaki farklar nelerdir?
Cache’ler
- Cache nedir?
- Cache’ler neden kullanılmaktadır?
- Bir bilgisayarın bellek hiyerarşisini çiziniz.
- Cache hit ve miss ne anlama gelmektedir?
- 256 Byte’lık bir ana bellek (RAM) ile CPU arasında bir Cache yerleştirilmek isteniyor. Bu cache 4 byte direct mapped, 1 byte block size türündedir. Cache’in index ve tag alanları kaç bitlik olmalıdır?
- 64 Byte’lık bir ana bellek (RAM) ile CPU arasında bir Cache yerleştirilmek isteniyor. Bu cache 8 byte direct mapped, 1 byte block size türündedir.
Sırasıyla CPU’a gelen;
LOAD 101010
LOAD 101011
LOAD 101010
komutlarına göre, Cache hit ve miss durumlarını açıklayınız. (Açıklama: LOAD 101010 komutu ana bellekteki 101010 adresindeki (42) değeri bir saklayıcıya yükler)
- 32 Byte’lık bir ana bellek (RAM) ile CPU arasında bir Cache yerleştirilmek isteniyor. Bu cache 8 byte direct mapped, 2 byte block size türündedir.
Sırasıyla CPU’a gelen;
LOAD 11001
LOAD 11110
LOAD 11100
komutlarına göre, Cache’i bir tablo halinde çizip, 3 adımda Cache’in içereceği verileri gösteriniz. Başlangıçta bellekteki adreslerde adres numarası değer olarak içermektedir. Yani 0. adreste 0, 1. adreste 1 … içerikleri bulunmaktadır. - Bir CPU’daki L1 Cache’de hit zamanı 1 ns;
hit olmadığında L2 Cache’den çekilmesi 10ns;
L2 cache’de de hit olmadığında ana bellekten getirilmesi 50 ns zaman almaktadır.
Tamamı yükleme operasyonu olan bir uygulamada operasyonların %5’i L1 Cache’de bulunamamakta, kalanların %20’si de L2 cache’de bulunamamaktadır. Buna göre bu uygulama L2 cache olmadan koşturulduğunda kaç ns zaman sürecektir? L2 cache olduğunda kaç ns sürecektir? - Write-Through ve Write-Back mekanizmaları nedir? Aralarındaki farklar nedir?
Virtual Memory
- Memory management unit (MMU)’nun görevi nedir?
- Sanal adres ihtiyacı neden vardır?
- Page table nedir? Ne amaç ile kullanılır?
- Page Fault nedir?
- Segmentation Fault nedir?
Paralelizm, Çok Çekirdek ve Senkronizasyon
- Bir hesaplama cihazının çok çekirdekli olması her zaman performansının artacağı anlamına gelir mi? Örnekler vererek açıklayınız.
- Static scheduling nedir?
- Cache Coherency nedir? Hangi sorunlar ile karşılaşılmaktadır?
- Cache Coherency sorununu çözmek için uygulanan bir tekniği açıklayınız.
Midterm Sample Questions
Mantık Kapıları ve Aritmetiği
- 10’luk tabandaki 92 sayısını 16’lık tabanda (HEX) olarak ifade ediniz.
- 1110110110 sayısını 16’lık (HEX) tabanda ifade ediniz.
- -16 sayısını en az bit kullanarak 2’lik tümleyen (twos complement) formatında ifade ediniz.
- 1100111 2’lik tümleyen formatındaki sayıyı onluk tabana çeviriniz.
- İkilik tümleyen formatta olan 0001 ve 11 sayısını toplayınız.
- İ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?
- 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.
- Fixed Point ve IEEE Floating Point formatı ve farklarını birkaç cümle ile açıklayınız.
- 400 kişilik bir sınıfta, herkese farklı bir numara vermek için en az kaç bite ihtiyaç bulunmaktadır?
- Soru 8’de bulunan bit sayısı ile, bit sayısını arttırmaya gerek kalmadan kaç öğrenci daha sınıfa kabul edilebilir?
- 5 bit kullanarak, 7 ve -7 sayılarını ikilik tümleyen formatta ifade ediniz.
- 6 bit kullanarak ikilik tümleyen formatta -32 sayısını ifade ediniz.
- 101, 44, -128, 127 sayılarını ikilik tümleyen formatta 8 bit olarak ifade ediniz.
- 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.
- 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
- İkilik tümleyen formatında toplama işlemi yaparken hangi durumlarda taşma olmaktadır? Açıklayınız.
- Taşma yaratacak 9 bitlik işaretsiz ikilik tabanda iki sayı bulun.
- 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
- Aşağıdaki doğruluk tablosunu verilen ifadeye göre doldurunuz.
Kobinasyonel ve Ardışık Devreler
- Transistör nedir? Bir kaç cümle ile açıklayınız.
- Aşağıda örnek verilen bir transistörün “Base”, “Emitter”, “Collector” pinleri ne için kullanılmaktadır?
- 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. - 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.
- 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?
- Çözücü (Decoder) Nedir? Nasıl çalışmaktadır?
- 5 girişli bir çözücünün (Decoder) kaç çıkışı bulunmaktadır?
- Seçici (Multiplexer) Nedir? Nasıl çalışmaktadır?
- 16 girişli bir seçicinin (Multiplexer) kaç çıktısı bulunmaktadır? Kaç adet seçme (select) bit’i bulunmaktadır?
- 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.
- Aşağıda verilen doğruluk tablosuna (truth table) göre mantık kapıları ile eşdeğer devreyi çiziniz.
- Sadece 2×1 multiplexer’ler kullanarak 4×1 multiplexer yapınız.
- Verilen doğruluk tablosunu, aşağıdaki devreye göre tamamlayınız.
- 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.
- Aşağıda verilen kombinasyonel devrenin Verilog dilindeki gösterimini yazınız.
![](http://www.levent.tc/wp-content/uploads/2020/11/verilog-3.png)
- Aşağıda verilen Verilog RTL kodunun karşılığı olan donanım’ın şematik çizimini yapınız.
![](http://www.levent.tc/wp-content/uploads/2020/11/verilog-4.png)
- 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
![](http://www.levent.tc/wp-content/uploads/2020/11/verilog-7.png)
- 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.
![](http://www.levent.tc/wp-content/uploads/2020/10/4bitshift.png)
- 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.
![](http://www.levent.tc/wp-content/uploads/2020/11/comb.png)
A -) 0110
B -) 1001
C -) 0100
D -) 1101
- Aşağıda verilen Verilog RTL kodunu sentezlendiği zaman ortaya çıkacak devreyi çiziniz.
![](http://www.levent.tc/wp-content/uploads/2020/11/verilog.png)
- 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.
![](http://www.levent.tc/wp-content/uploads/2020/11/verilog-8.png)
Sonlu 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.
![](http://www.levent.tc/wp-content/uploads/2020/11/verilog-6.png)
- 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.
Bellekler
- Bir RAM’in 100 adresi ve her bir adreste 32 bitlik saklama alanı bulunuyorsa, toplam RAM’in boyutu nedir?
- RAM (Random Access Memory) nedir? Bir kaç cümle ile açıklayınız.
- Bir RAM’in 16 bitlik adres girişi var, ve toplam boyutu 4 MB (Mega Byte) ise bir adreste kaç bitlik veri saklanıyordur?
- Bir RAM’in 16 bitlik adres girişi var, ve toplam boyutu 4 Mb (Mega bit) ise bir adreste kaç bitlik veri saklanıyordur?
- Statik ve Dinamik RAM’lerin karşılaştırınız.
- Tri-State buffer nedir? Ne amaç ile kullanılır?
- SRAM ve DRAM’in farkı nedir?
RISC-V İşlemcisi
- RISC-V işlemcisi Harvard Mimarisi ile geliştirilmiştir. Bu mimarinin getirdiği avantaj nedir?
- RISC ve CISC mimarileri nedir? Aralarındaki farkları anlatınız.
- Fetch, Decode, Execute, Memory Access ve WriteBack adımlarında hangi işlemler yapılmaktadır?
- RISC-V işlemci komut setinde (Instruction Set) aritmetik, bellek ve kontrol komutları bulunmaktadır. Bu komutlar aşağıda verilen tabloda özetlenmiştir. Komutların bit gösterimleri de ikinci tabloda verilmektedir. Tabloya göre maddelerdeki soruları yanıtlayınız.
![](http://www.levent.tc/wp-content/uploads/2021/03/riscv-isa.png)
![](http://www.levent.tc/wp-content/uploads/2021/03/risc-v-isaCodes-1024x434.png)
- add rd, rs1, rs2 ne işlemi yapmaktadır?
- Saklayıcı 5: 9
Saklayıcı 3: 2
Saklayıcı 1: 10
başlangıç değerleri ile, add 5, 3, 1 işlemi sonucunda saklayıcı değerleri ne olacaktır? - add 5, 3, 1 operasyonu için 32 bitlik RISC-V komutunu binary olarak gösteriniz.
- Saklayıcı 20: 10
Saklayıcı 21: 11
Program counter: 20
başlangıç değeri için
beq 20, 21, 100 operasyonu sonucunda program counter değeri ne olur?
bltu 20, 21, 100 operasyonu sonucunda program counter değeri ne olur? - slli 15, 21, 3 operasyonu için 32 bitlik RISC-V operasyon gösterimini yazınız.
- Saklayıcı 15: 3
Saklayıcı 21: 15
başlangıç değerleri için, slli 15, 21, 3 işlemi sonucunda, değişim gösteren saklayıcılar hangi(leri) ve değerleri ne olduğunu gösteriniz.
Pipelining ve Performans
- Pipelining nedir?
- Bir işlemcinin CPI değeri 1.2, 100 MHz ile koşmaktatır. İkinci işlemci ise CPI değeri 1.05 ve 90 MHz de koşmaktadır. Hangi işlemci saniyede daha fazla işlem yapabilmektedir?
- Bir programda kullanılan komutların oranı ve kaç cycle sürdüğü bilgisi aşağıda verilmektedir.
%15 dallanma (5 Cycles / Instruction)
%45 aritmetik (3 Cycles / Instruction)
%40 belleğe yükleme (4 Cycles / Instruction)
Buna göre bu işlemci;
Tek cycle’da işlemleri yaptığı modda 10 MHz’de
Çok cycle’da (pipelined) modda ise 20 MHz’de koşabiliyor.
Her iki durum içinde saniyede kaç milyon işlem yapabildiğini (MIPS) hesaplayınız. - Bir işlemci 400 MHz’de, CPI = 2.3 değeri ile 500 milyon işlem yapabilmesi için kaç saniye zaman gereklidir?