CircuitVerse projesi

Bu sayfada, Google Dokümanlar Sezonu için kabul edilen bir teknik yazım projesinin ayrıntıları yer almaktadır.

Proje özeti

Açık kaynak kuruluşu:
CircuitVerse
Teknik yazar:
dvl'ler
Proje adı:
CircuitVerse Etkileşimli Kitap Birleştirme ve İyileştirmeler
Proje süresi:
Standart uzunluk (3 ay)

Proje açıklaması

1 Özet

CircuitVerse, web tabanlı grafik kullanıcı arayüzü kullanılarak devrelerin tasarlanıp simüle edilebileceği bir platform sunmayı amaçlayan açık kaynak bir projedir. Mantık simülatörü, temel olarak eğitim amaçlı tasarlanmış olsa da CPU uygulamalarını tasarlamak için kullanılabilir. Yazılımla ilgili teknik dokümanların yanı sıra, dijital mantık tasarımını öğrenme konusunda kullanıcıya rehberlik eden etkileşimli bir online kitap da mevcuttur. Kitap, kullanıcının etkileşimli bir deneyim için devreleri doğrudan kitaptan denemesine olanak tanır.

Kitap geliştirme sürecinin ilk aşamalarında olduğundan şu anda bazı alakalı bölümler eksik. Genel yapı, farklı bölümleri birbirine bağlayan akış açısından gevşek ve daha ayrıntılı içerik gerektiriyor. Ayrıca kuruma göre, katkıda bulunanların projeye katkıda bulunmasına yardımcı olacak yönergeler veya hangi içeriklerin hangi öncelikte olacağı konusunda katkı sağlayacak bir plan ya da yol haritası yoktur.

Bu teklifin amacı; katkı yönergeleri oluşturmak, konu geliştirme planı oluşturmak, mevcut içeriğin iyileştirilmesine katkıda bulunmak ve ayrıca geliştirme planına göre yeni içerikler oluşturmak için mentorlarla birlikte çalışmaktır.

2 Etkileşimli Kitabın Mevcut Durumu

Proje, Google Summer of Code 2019'da kullanıma sunulduktan sonra öğrenci topluluğunun desteğiyle "kontrolsüz bir büyüme" sergiledi. Proje organizasyonu temel olarak geliştiricilerden oluştuğu için Etkileşimli Kitap'ı iyileştirmek amacıyla harici yardım almak için GSoD'ye katıldılar. Projenin geliştiricileri, kitabın şu anda bazı bölümlerinin yeniden yazılmasını, yeni içerik eklenmesini ve daha ayrıntılı ve kapsamlı hale getirilmesini gerektirdiğini tespit etti. Ayrıca ekip, GSoD'den sonra yeni katkılara yönelik yönergelerin yanı sıra içerik geliştirme için genel bir "ana plana" sahip olmasını da beklemektedir.

3 Bu teklifin katkısı nedir?

Bu teklif, katkıda bulunanlar için daha uyumlu bir ortak çalışma süreci sağlamayı ve böylece içerikleri daha tutarlı hale getirmeyi amaçlayan, katkı yönergelerinin ilk sürümünün birlikte oluşturulmasına katkıda bulunacak. Kitabın konuları için bir geliştirme planı da belirtilir. Yeni geliştirme planına göre en acil eklemeler ve değişiklikler de katkıda bulunacaktır.

4 Mevcut alternatiflerin analizi

Benzer özelliklere sahip birkaç gelişmiş açık kaynak projesi, dokümanlar için katkı yönergeleri geliştirmiştir. Örneğin, Wikibooks ([Help:Contributing], [Wikibooks:Policies and guidelines]), OpenStreetMap ([Organised Editing Guidelines]) veya Linux Documentation Project ([LDP Author Guide]). Bu örnekler, başarılı açık kaynak projelerinin deneyimlerine dayalı olarak projenin yönergelerini oluşturmak için kullanılabilir.

Konunun geliştirme planı için açık kursların (ör. [MIT Open Courseware]) müfredatlarının yanı sıra [Lessons In Electric Circuits -- Volume IV -Digital], [Wikibooks: Digital Circuits] ve [Wikibooks: Digital Electronics] gibi açık kitaplar da dahil olmak üzere dijital mantık devreleri hakkındaki referans kitapları karşılaştırılabilir.

[Help:Contributing] https://en.wikibooks.org/wiki/Help:Contributing

[Wikibooks:Politikalar ve kurallar] https://en.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

[Düzenli Düzenleme Yönergeleri] https://wiki.osmfoundation.org/wiki/Organized_Editing_Guidelines

[LDP Yazar Rehberi] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

[MIT Open Courseware] https://ocw.mit.edu/

[Lessons In Electric Circuits -- Volume IV -Digital] https://www.ibiblio.org/kuphaldt/electricCircuits/Digital/index.html

[Wikibooks: Digital Circuits] https://en.wikibooks.org/wiki/Digital_Circuits

[Wikibooks: Dijital Elektronik] https://en.wikibooks.org/wiki/Digital_Electronics

5 Önerilen dokümanların yapısı

Bu etkileşimli kitap, amatör elektronik hobicilerden ve ikincil eğitim öğrencilerinden üçüncül eğitim öğrencilerine ve dijital mantık devrelerindeki becerilerini yenilemesi veya güçlendirmesi gereken profesyonellere kadar geniş bir kitleye fayda sağlayabilir.

Kitabın kullanıcılarındaki heterojenliği gidermek için her katmanın, içeriklerin karmaşıklık ve teorik derinlik düzeyinin artmasına karşılık geldiği bir "çok katmanlı" yapı önerilir.

Bu nedenle, dokümanların yapısı iki boyutta gelişir. İlk boyut, dijital mantık sistemlerindeki konuların mantıksal veya geleneksel sırasına karşılık gelirken ikinci boyut düzeyi temsil eder.

Aşağıdaki yapılandırılmış listede, önerilen iki boyutlu yapı gösterilmektedir. Standart konu sırası en üst düzeyde sunulur. Kolaylık sağlamak amacıyla her konu için temel, orta ve ileri seviyelere karşılık gelen yalnızca üç karmaşıklık katmanı tanımlanmıştır. Her düzeyde, belirli genel konuyla ilgili içerikler listelenir.

  • İkili sayılar kullanılarak gösterim:
    • Temel düzey: İkili sayılar, Negatif miktarlar, Diğer tabanlar, Kodlama.
    • Orta düzey: [no specific content]
    • İleri seviye: Modüller ve halkalar
  • İkili sayılarla matematiksel işlemler:
    • Temel düzey: Toplama, Çıkarma, Çarpma, Bölme
    • Orta düzey: Boole cebiri, Boole işlevleri
    • İleri düzey: Diğer cebirler, Shannon ayrışması
  • Birleşik SSI bileşenleri:
    • Temel düzey: Semboller, Mantık kapıları, Mantık tabloları
    • Orta düzey: Mantık aileleri, Evrensel kapılar
    • İleri seviye: Zaman davranışı (zamanlama modelleri, tehlikeler)
  • Kombinasyonlu mantık tasarımı:
    • Temel düzey: İşlevsel açıklama, Uygulama
    • Orta düzey: Standart işlevler, k-Haritalar
    • İleri seviye: Haritaya girilen değişkenler, Quine McCluskey, İkili küp gösterimi
  • Kombinasyonel MSI bileşenleri:
    • Temel düzey: MUX, DEMUX, Kodlayıcı, Kod Çözücü, Yarım toplayıcı, Tam toplayıcı
    • Orta düzey: MUX tabanlı işlevler
    • İleri seviye: [no specific content]
  • Kombinasyonel LSI bileşenleri:
    • Temel düzey: ROM, ALU
    • Orta düzey: PLD'ler (ÜLR, PAL, GAL)
    • İleri seviye: [no specific content]
  • Sıralı SSI bileşenleri:
    • Temel düzey: Kilitler, Flip-flop'lar, Saat sinyalleri, Zaman diyagramları
    • Orta düzey: Bellek Geri Bildirimi, Senkronize sistemler, Eşzamansız sistemler
    • İleri seviye: [no specific content]
  • Sıralı MSI bileşenleri:
    • Temel düzey: Kayıtlar, Sayaçlar
    • Orta düzey: [no specific content]
    • İleri seviye: [no specific content]
  • Sıralı tasarım:

    • Temel düzey: [no specific content]
    • Orta seviye: Sıralı sentez, FSM (Mealy, Moore), durum diyagramları, durum minimumlaştırma, durum ataması, Yarış koşulları
    • İleri seviye: MSI tabanlı tasarım, LSI tabanlı tasarım, Akış şemaları, MDS diyagramları

    Temel seviye, kullanıcıların ileri düzey matematik bilgisine sahip olmadan dijital mantık devrelerinin nasıl çalıştığını ve nasıl kullanıldığını anlamalarına olanak tanımalıdır. Bu nedenle, amatör hobiciler ve orta öğretim öğrencileri için uygun olabilir. Bu kullanıcılar gerekli becerilere sahipse ve daha kapsamlı bilgi edinmek istiyorsa orta seviyedeki içeriklerin bir kısmını veya tamamını kullanabilirler.

    Orta düzey, içerik ve şartlar açısından dijital mantık sisteminde üçüncü düzey bir giriş kursuna eşdeğer olmalıdır.

    Son olarak, ileri düzey seviye, genellikle üniversitelerdeki dijital sistemlerle ilgili tamamlayıcı veya isteğe bağlı ileri düzey derslerde bulunabilen içerikleri kapsar.

    Önerilen bu yapı, projenin ilk aşamasında (3. Hafta) mentorlarla tartışılacak ve daha sonra bu, uzun vadeli bir konu geliştirme planı taslağı oluşturmada yararlanılacak bir iş olacaktır.

    Önerilen yapıda, dokümanların mevcut içeriğinin tamamı olmasa da çoğu kullanılabilir. Bu içerikler gerektiğinde düzenlenip genişletilecek veya düzeltilecektir. Ayrıca, mevcut dokümanlar henüz kapsamına alınmayan içerikler için yeni bölümler yazılacak.

6 Hedef

  1. İnteraktif Kitap projesi için katkı kurallarının ilk taslağını oluşturun.
  2. Kitabın konularında bir gelişmenin ana hatlarını belirtin.
  3. Mevcut içeriği yeniden yazın ve yeniden yapılandırın.
  4. Geliştirme planına göre yeni içerikler oluşturun.

7 Zaman çizelgesi

1. Hafta: (14 Eylül - 20 Eylül) Başka projelerin örnekleri ve projede o ana kadar elde edilen deneyimler ışığında mentorlarla en iyi yönergeleri analiz edin ve tartışın. 2. Hafta: (21 Eylül - 27 Eylül) Yönergelerin taslağını yazın 3. Hafta: (28 Eylül - 4 Ekim) Konu geliştirme planının taslağını mentorlarla görüşün. 4. Hafta: (5-11 Ekim) Geliştirme planı yazın. 5. ila 11. haftalar: (12 Ekim - 29 Kasım) Yeni konuların yanı sıra yeniden yapılandırılmış içeriklerden oluşan katkıları yazın. 12. Hafta: (30 Kasım - 5 Aralık) Proje raporu gönderimi. Proje değerlendirmesi: (3 Aralık - 10 Aralık) - Teknik yazarın değerlendirme gönderimi. - Mentörlerin değerlendirme gönderimi.

8 Neden CircuitVerse Etkileşimli Kitabı

COVID-19 küresel krizi nedeniyle, dijital mantık sistemleri ile ilgili lisans dersindeki öğrencilerime yardımcı olacak online kaynaklar aramaya başladım. Free-Libre Açık Kaynak teknolojilerini yıllardır savunuyorum. Bu nedenle bu tür projelere öncelik veriyorum. CircuitVerse simülatörünü buldum ve bu aracın, Üniversitemizin COVID-19'u önleme önlemleri nedeniyle laboratuvar aktivitelerindeki eksikliği giderecek mükemmel bir araç olduğuna karar verdim. Simülasyon aracını test ederken etkileşimli kitaplarını da buldum. Dijital mantık sistemleri ile ilgili eksiksiz bir kurs için ana referans olarak içerik henüz yeterli olmasa da mevcut içerikler doğru ve anlaşılır olduğu için öğrenme kaynaklarına ekledim.

Simülasyonlarını ve kitaplarını yoğun bir şekilde kullandığım için kuruluş, GSoD hakkında bilgi vermek için benimle iletişime geçti. Bu projeyi, uzmanlık alanımdan projeye katkıda bulunma fırsatı olarak gördüm.

9 Referans

  • [Wikibooks Yardımı:Katkıda bulunma],
  • [Wikibooks:Politikalar ve kurallar]
  • [OpenStreetMap Düzenli Düzenleme Kuralları]
  • [The Linux Documentation Project (LDP) Author Guide]
  • [MIT Open Courseware Introductory Digital Systems Laboratory Syllabus]
  • [Lessons In Electric Circuits -- Volume IV -Digital]
  • [Wikibooks: Dijital Devreler]
  • [Wikibooks: Digital Electronics]
  • [Linux Broşürü Projesi]

    [Wikibooks Yardımı:Katkıda bulunma] https://tr.wikibooks.org/wiki/Yardım:Katkıda bulunma

    [Wikibooks:Politikalar ve kurallar] https://tr.wikibooks.org/wiki/Wikibooks:Policies_and_guidelines

    [OpenStreetMap Düzenli Düzenleme Kuralları] https://wiki.osmfoundation.org/wiki/Organised_Editing_Guidelines

    [The Linux Documentation Project (LDP) Author Guide] https://www.tldp.org/LDP/LDP-Author-Guide/html/index.html

    [MIT Open Courseware Introductory Digital Systems Laboratory Syllabus] https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-111-introductory-digital-systems-laboratory-spring-2006/syllabus/

    [Lessons In Electric Circuits -- Volume IV -Digital] https://www.ibiblio.org/kuphaldt/electricCircuits/Digital/index.html

    [Wikibooks: Dijital Devreler] https://tr.wikibooks.org/wiki/Digital_Circuits

    [Wikibooks: Dijital Elektronik] https://tr.wikibooks.org/wiki/Digital_Electronics

    [The Linux Brochure Project] http://lbproject.sourceforge.net/